diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index 88008c551..492b9225e 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -10357,6 +10357,27 @@ + + preview + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + @@ -26274,6 +26295,27 @@ + + csi_invitation + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + diagnostic_authorization false @@ -26972,6 +27014,137 @@ labels + + groups + + + authorization + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + financial + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + post + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + pre + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + ro + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + worksheet + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + misc false @@ -27898,6 +28071,48 @@ templates + + estimator_detail + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + estimator_summary + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + hours_sold_detail_closed false diff --git a/client/package-lock.json b/client/package-lock.json index 080f7c4b8..1257a8a9b 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -59,7 +59,20 @@ "reselect": "^4.0.0", "sass": "^1.32.8", "styled-components": "^5.2.0", - "subscriptions-transport-ws": "^0.9.18" + "subscriptions-transport-ws": "^0.9.18", + "web-vitals": "^0.2.4", + "workbox-background-sync": "^5.1.3", + "workbox-broadcast-update": "^5.1.3", + "workbox-cacheable-response": "^5.1.3", + "workbox-core": "^5.1.3", + "workbox-expiration": "^5.1.3", + "workbox-google-analytics": "^5.1.3", + "workbox-navigation-preload": "^5.1.3", + "workbox-precaching": "^5.1.3", + "workbox-range-requests": "^5.1.3", + "workbox-routing": "^5.1.3", + "workbox-strategies": "^5.1.3", + "workbox-streams": "^5.1.3" }, "devDependencies": { "redux-logger": "^3.0.6", @@ -237,11 +250,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", - "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", + "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", "dependencies": { - "@babel/compat-data": "^7.13.8", + "@babel/compat-data": "^7.13.12", "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" @@ -363,9 +376,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz", - "integrity": "sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", "dependencies": { "@babel/helper-module-imports": "^7.13.12", "@babel/helper-replace-supers": "^7.13.12", @@ -373,8 +386,8 @@ "@babel/helper-split-export-declaration": "^7.12.13", "@babel/helper-validator-identifier": "^7.12.11", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" } }, "node_modules/@babel/helper-optimise-call-expression": { @@ -477,9 +490,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", - "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", + "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1150,9 +1163,9 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.10.tgz", - "integrity": "sha512-E+aCW9j7mLq01tOuGV08YzLBt+vSyr4bOPT75B6WrAlrUfmOYOZ/yWk847EH0dv0xXiCihWLEmlX//O30YhpIw==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.13.tgz", + "integrity": "sha512-SNJU53VM/SjQL0bZhyU+f4kJQz7bQQajnrZRSaU21hruG/NWY41AEM9AWXeXX90pYr/C2yAmTgI6yW3LlLrAUQ==", "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" }, @@ -1461,14 +1474,15 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz", - "integrity": "sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.13.13.tgz", + "integrity": "sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-transform-react-display-name": "^7.12.13", - "@babel/plugin-transform-react-jsx": "^7.12.13", - "@babel/plugin-transform-react-jsx-development": "^7.12.12", + "@babel/plugin-transform-react-jsx": "^7.13.12", + "@babel/plugin-transform-react-jsx-development": "^7.12.17", "@babel/plugin-transform-react-pure-annotations": "^7.12.1" }, "peerDependencies": { @@ -1515,25 +1529,24 @@ } }, "node_modules/@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", + "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", "dependencies": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", + "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/parser": "^7.13.13", + "@babel/types": "^7.13.13", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "node_modules/@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dependencies": { "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", @@ -1679,15 +1692,15 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/@firebase/analytics": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.6.tgz", - "integrity": "sha512-bf1Kvfigce1dwAQz3iHEKHyz2Kps42ikpTiPBpvMoLaP2+45H5Vmkm33T6w/yjyOPmhKvJtGDMRPrL+BozhWxQ==", + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.7.tgz", + "integrity": "sha512-ObnFDewIqiamvU7UKDx+0jfLrD3LyqEIsXZdjnGQhY/xc10HFH0jp23lOzb39CWf/399X+xMMJ3Uj51VyHwbJQ==", "dependencies": { "@firebase/analytics-types": "0.4.0", - "@firebase/component": "0.3.0", - "@firebase/installations": "0.4.22", + "@firebase/component": "0.3.1", + "@firebase/installations": "0.4.23", "@firebase/logger": "0.2.6", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1706,14 +1719,14 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/@firebase/app": { - "version": "0.6.17", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.17.tgz", - "integrity": "sha512-xLXY8507VaVkg5l1mWIUh/OrGqutexKxngbvEdpD9PXY2qiBRApXgvdIJ+DuuhaZDnG+3M/5hlP1IIx7XnkAsA==", + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.18.tgz", + "integrity": "sha512-eBThPc4QGHy/FC+oHZsnp4Qk6oksYTZ10B4jXaVH1lCS5eUSKvV1TIzAtpkPzMp2huS/qBz411r1tkQUv5vKcw==", "dependencies": { "@firebase/app-types": "0.6.1", - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/logger": "0.2.6", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "dom-storage": "2.1.0", "tslib": "^2.1.0", "xmlhttprequest": "1.8.0" @@ -1759,11 +1772,11 @@ } }, "node_modules/@firebase/component": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.3.0.tgz", - "integrity": "sha512-jlyaQMLKkzetjHd41P6wywNNVIy+Pqa2Xf+GS/cdgLyPD5IhjqvJHEv0SrLL2ceRhXCA5ETUxSvV6aKbFgV3Vw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.3.1.tgz", + "integrity": "sha512-8ACaB772bWwZRE47aVEYzld+jlDPgvHnLZoiVtG6BzygonVnKzwXo0wK6wcRzCbx4kun7G/gXYM0gUMkqvKtRA==", "dependencies": { - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" } }, @@ -1773,15 +1786,15 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/@firebase/database": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.9.6.tgz", - "integrity": "sha512-8vuErwj6AlfFt0Y4q1aJYmFDcymV+Rd6Mik0XdgZ+a4iel+kGxGN3izxCQ/hWZNIvd2lCC3XI2bsRoDEkS4Nnw==", + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.9.7.tgz", + "integrity": "sha512-JUm6CnUxFRuyWvzTAzv/Mo/KYwLtUezpNGa4AzbhbdS8t3ewprc/7ARFErpv95cIM5MgiiPcLOC5F+mLDmrQwA==", "dependencies": { "@firebase/auth-interop-types": "0.1.5", - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/database-types": "0.7.0", "@firebase/logger": "0.2.6", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "faye-websocket": "0.11.3", "tslib": "^2.1.0" } @@ -1800,14 +1813,14 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/@firebase/firestore": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.2.1.tgz", - "integrity": "sha512-3NNzYk517usr0g0FL+RiUVVexsiNtduktv0t+xLApqmCue/MUodv5r0tYcCeo733Yq7+SSFsLgNd//jqa0zLOg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.2.2.tgz", + "integrity": "sha512-tFB0gRZcYQ8y9WBO5cSCij8pspF4vv2NdUkG8qWKG9cx2ccXnjo3qiQWRkoLuJGPaicCOGt11c08KvNSy/zfDA==", "dependencies": { - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/firestore-types": "2.2.0", "@firebase/logger": "0.2.6", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "@firebase/webchannel-wrapper": "0.4.1", "@grpc/grpc-js": "^1.0.0", "@grpc/proto-loader": "^0.5.0", @@ -1836,11 +1849,11 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/@firebase/functions": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.4.tgz", - "integrity": "sha512-5OK5vTfpM7JDadCrad/c1xLND0RGulZY9URL6fyoAYzMOx1Y6FWSM77LEjPfCQsd60P1qSJBTJ+9tzVMbaylWw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.5.tgz", + "integrity": "sha512-8T/BKscHJhzQ7cM9Kn2Hcs8mkA1Zypzvo4b0mue7hRm6W/vzDMsgTiAUk7j7H1HEEf1Saw58h2tlQBg2rdDHPQ==", "dependencies": { - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/functions-types": "0.4.0", "@firebase/messaging-types": "0.5.0", "node-fetch": "2.6.1", @@ -1862,13 +1875,13 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/@firebase/installations": { - "version": "0.4.22", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.22.tgz", - "integrity": "sha512-ICsNUiA0iX9b/kgJP2h9RAkGI+3aAfeRDLcAIoVBwIEZkNfxXTzXnrde04mnsGkA4zh74ADJCotzUuKb9QjIZg==", + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.23.tgz", + "integrity": "sha512-vULPhK0DbDcXL0utJ8Td8+x5ArpUjSbCarz5ttR+u3Xsn1sEC6EX2Tlmua6csqNnBU/VpMo1bopWOvCVyX9jYA==", "dependencies": { - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/installations-types": "0.3.4", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "idb": "3.0.2", "tslib": "^2.1.0" }, @@ -1896,14 +1909,14 @@ "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==" }, "node_modules/@firebase/messaging": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.7.6.tgz", - "integrity": "sha512-kjzIiEunzWtkFzpyXfwHdQwWG1jLnAziKd8nIrBsGGW/dNV1VVUWB1iBnhGvnY0qrRcmqx0SMY6DtYIQasR5Eg==", + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.7.7.tgz", + "integrity": "sha512-osS61riot7Kg3YPuQWGqxOHos+IXOrTvTdchFOU/HVxenwmXteOpepEeNC3PZvudnYSKoI/w6voo5+E5yUyftw==", "dependencies": { - "@firebase/component": "0.3.0", - "@firebase/installations": "0.4.22", + "@firebase/component": "0.3.1", + "@firebase/installations": "0.4.23", "@firebase/messaging-types": "0.5.0", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "idb": "3.0.2", "tslib": "^2.1.0" }, @@ -1926,15 +1939,15 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/@firebase/performance": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.8.tgz", - "integrity": "sha512-0YG37wfe0RxVKSrNUUVKCMYXU7fGCp+pxxlU5ri4fLcsHqFMShEVYS9U4ahe7gg9a/ah5qSp+kHomGquNt8IIw==", + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.9.tgz", + "integrity": "sha512-2BozmCAbvL4iFZwHE+9xSrdl3sJeF1/l8X2Ci4n8n+vwZjQbhq5pHPSZXLVT78i23V3XM14eS4SUJVqNL/QkRw==", "dependencies": { - "@firebase/component": "0.3.0", - "@firebase/installations": "0.4.22", + "@firebase/component": "0.3.1", + "@firebase/installations": "0.4.23", "@firebase/logger": "0.2.6", "@firebase/performance-types": "0.0.13", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1963,15 +1976,15 @@ } }, "node_modules/@firebase/remote-config": { - "version": "0.1.33", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.33.tgz", - "integrity": "sha512-bBCC0UOYioIyJXlQGBHbDcZo7NTVEcgQGoqRpenSNZ1obsjTt0SXJMcYJFiP+wzut8O3UBKlc2q72UgX8naPHA==", + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.34.tgz", + "integrity": "sha512-4dXdRjwuTH8lckmF8bPYCq0P/fM3NLV9QAF98Anft7f/0ZZNAucyQpvlK8KP7IRBZcllXq1Rla4THCNFtrLLOA==", "dependencies": { - "@firebase/component": "0.3.0", - "@firebase/installations": "0.4.22", + "@firebase/component": "0.3.1", + "@firebase/installations": "0.4.23", "@firebase/logger": "0.2.6", "@firebase/remote-config-types": "0.1.9", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1990,13 +2003,13 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/@firebase/storage": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.4.5.tgz", - "integrity": "sha512-ZSuK7iqHMI7SJV55BmqtAFwdZC3CQ5SudkAQk7cBHEqZZUx0HGnalOqLu04zPlJsQRIT/CgekaizXpHuUPKfyw==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.4.6.tgz", + "integrity": "sha512-nXhLuPKGJlty2whW56T5/Kpr/3O+cKSB5YcCcRKUO8eBu/1VvIswPgipWFaIpgZ3hkXJqaNzYLYpTdIf1UPWrQ==", "dependencies": { - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/storage-types": "0.3.13", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -2019,11 +2032,11 @@ "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" }, "node_modules/@firebase/util": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.4.0.tgz", - "integrity": "sha512-z8A+9YGM61ZXQ2KBSVwxXaELOJjG+EQ374YolqNVMvWBJzTNGZGaVP81Ggl8XD10Xinyt1Dgdo86JDV0OAnvqA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.4.1.tgz", + "integrity": "sha512-XhYCOwq4AH+YeQBEnDQvigz50WiiBU4LnJh2+//VMt4J2Ybsk0eTgUHNngUzXsmp80EJrwal3ItODg55q1ajWg==", "dependencies": { - "tslib": "^2.0.0" + "tslib": "^2.1.0" } }, "node_modules/@firebase/util/node_modules/tslib": { @@ -3089,9 +3102,9 @@ } }, "node_modules/@rollup/plugin-replace": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.1.tgz", - "integrity": "sha512-XwC1oK5rrtRJ0tn1ioLHS6OV5JTluJF7QE1J/q1hN3bquwjnVxjtMyY9iCnoyH9DQbf92CxajB3o98wZbP3oAQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", "dependencies": { "@rollup/pluginutils": "^3.1.0", "magic-string": "^0.25.7" @@ -3122,13 +3135,13 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, "node_modules/@sentry/browser": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.2.3.tgz", - "integrity": "sha512-QUqrZdAosY2MPAUfJYpyCT+dA6v7A2h8imO8R3Lbi0hRSPr+L7zjqHgFs3CTHJLmLV74cxHt6rVVUPSksYNQDQ==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.2.4.tgz", + "integrity": "sha512-OV1CQUxNawncpSEcrA+YccOu72rLC0tyYq/Pc4D/ihpfJmvR0o0L8vZYESay55V5lcqnJPFp8IyCJ2bF8IZTsA==", "dependencies": { - "@sentry/core": "6.2.3", - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/core": "6.2.4", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "tslib": "^1.9.3" }, "engines": { @@ -3136,14 +3149,14 @@ } }, "node_modules/@sentry/core": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.2.3.tgz", - "integrity": "sha512-GpfHoSJiXchVXgyaMWVtIPVw2t97KkD1OJ4JdL3/TeH3auX5XvsN5iHTk+x/Er8t13IpOnvidH1xWdV1dnax2w==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.2.4.tgz", + "integrity": "sha512-8Z98OTM4wFS2n3T+V8a6cYWHDAk1byWuMb8JquZLdYgR5O1jkSpSFrhksQ+B/wDbVw05VOolSNFJsDTC2D5qXg==", "dependencies": { - "@sentry/hub": "6.2.3", - "@sentry/minimal": "6.2.3", - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/hub": "6.2.4", + "@sentry/minimal": "6.2.4", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "tslib": "^1.9.3" }, "engines": { @@ -3151,12 +3164,12 @@ } }, "node_modules/@sentry/hub": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.2.3.tgz", - "integrity": "sha512-D5Horfo2l0p52S7KPvy7qwWNMrE4IsCN8ODbfcCsfJu7hEXJmItbkbohIVSqO5neukhn5nu+x8kyCe9Q5u1Q6g==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.2.4.tgz", + "integrity": "sha512-dY8Vj3c4oIirNNNzWkJvoRMzjlU8Nw3PJ/IwhdWjiQhj5/oqOzJwJQSMeOKdOGIhArAifr0hSXdy1+tHGEOOdQ==", "dependencies": { - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "tslib": "^1.9.3" }, "engines": { @@ -3164,12 +3177,12 @@ } }, "node_modules/@sentry/minimal": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.2.3.tgz", - "integrity": "sha512-Gpn9x4NQAG7E94EK1+hAz9GUcYrffTuqJ/XgqvHYk0jsHZ6RfsXYrmBac0ZwUxOivMf2t0n5opK0v5rhMDfF2w==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.2.4.tgz", + "integrity": "sha512-KN+Abbz5CCAceSMvwymSG8GIVPaz4Y/xuY7R7dA8IlzncHaWRQ/Ss0PXjYUWL4YoTlTK6id1AW0i3JMICHMVgw==", "dependencies": { - "@sentry/hub": "6.2.3", - "@sentry/types": "6.2.3", + "@sentry/hub": "6.2.4", + "@sentry/types": "6.2.4", "tslib": "^1.9.3" }, "engines": { @@ -3177,14 +3190,14 @@ } }, "node_modules/@sentry/react": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.2.3.tgz", - "integrity": "sha512-T2mBD9ZFxzLQ3Kc5cey7A5fBA+qN67NdmRw9W1Grk6cEoJIrQYg3LnFbM5YnBBK86ciXQlgz7ZsF7rbjRcmWMQ==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.2.4.tgz", + "integrity": "sha512-0TqM51HwnAUoDSYyK38Bq/m6xLqWHsOL98Uu4HoMMmx6VXW1xf1UDxhjmIQFfjWfYT5tlld0CoDRfTJJlc82Ow==", "dependencies": { - "@sentry/browser": "6.2.3", - "@sentry/minimal": "6.2.3", - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/browser": "6.2.4", + "@sentry/minimal": "6.2.4", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "hoist-non-react-statics": "^3.3.2", "tslib": "^1.9.3" }, @@ -3196,14 +3209,14 @@ } }, "node_modules/@sentry/tracing": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.2.3.tgz", - "integrity": "sha512-OnQZKp7qVera+Z4ly6hgybGgyf10p2VDXqwueXkMVeLD+PwlPG8a8NMpKkZ+QxwRbQbSFhRLQaib3NX34tusBQ==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.2.4.tgz", + "integrity": "sha512-FNPTd22Q487SVyGM4BXlVeeRwPr9CG0OV8bz+GRHQtpVDhL+zdkGlIJYbxZnrOcdyYNVgLCJUPDHqyv55nhU4A==", "dependencies": { - "@sentry/hub": "6.2.3", - "@sentry/minimal": "6.2.3", - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/hub": "6.2.4", + "@sentry/minimal": "6.2.4", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "tslib": "^1.9.3" }, "engines": { @@ -3211,19 +3224,19 @@ } }, "node_modules/@sentry/types": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.2.3.tgz", - "integrity": "sha512-BpA+9FherWgYlkMD/82bGFh/gAqZNlZX5UE8vWLKyyzNyOEEz3v9ScxE8dOSWE4v5iXJR1O3jjxaTcRQxPVgCA==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.2.4.tgz", + "integrity": "sha512-c+vEExoj8H67NPaskTvxJBSAtDWzfFXOmlkicEZPUWbkL+Yxxlbzp1lI8K6GOks56UYMUBUU/fwQvv/34cO96g==", "engines": { "node": ">=6" } }, "node_modules/@sentry/utils": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.2.3.tgz", - "integrity": "sha512-YnkJm97wSvck39eRpqWjIuuwbvzPilvAcMqhbUy9yK/UBQMDGUzAKCOKH40udw1DwMUCWjJ71mOCDgUorE4Fog==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.2.4.tgz", + "integrity": "sha512-lavbb3yQMUleVffmDkPH7X3dlgbXlyiFNmfER+swJ6WRxa4Yq6I8yea2s6maoqnZMhZe+yztn455DPwXIItfCA==", "dependencies": { - "@sentry/types": "6.2.3", + "@sentry/types": "6.2.4", "tslib": "^1.9.3" }, "engines": { @@ -3525,9 +3538,9 @@ } }, "node_modules/@tanem/react-nprogress": { - "version": "3.0.59", - "resolved": "https://registry.npmjs.org/@tanem/react-nprogress/-/react-nprogress-3.0.59.tgz", - "integrity": "sha512-Y2uULtEftCF+HDXTZvRUW9xwb0lvQAJeVg9kucSsq9k/56CM3dwQGfENGNNSb7Urg21MV27io6ylet5hMcSarA==", + "version": "3.0.60", + "resolved": "https://registry.npmjs.org/@tanem/react-nprogress/-/react-nprogress-3.0.60.tgz", + "integrity": "sha512-TXtn+D9zKWqbbYct/VdC9fB9zG3IYe5/KH34IOVRjg1JPLyy9va7Cse7zBvNz0OVf2TzRtojkR9Gkd2QxqyFUw==", "dependencies": { "@babel/runtime": "^7.13.10", "hoist-non-react-statics": "^3.3.2", @@ -3540,9 +3553,9 @@ } }, "node_modules/@tinymce/tinymce-react": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tinymce/tinymce-react/-/tinymce-react-3.11.1.tgz", - "integrity": "sha512-rmEsZpX9h1BoUlFZJuLMSMKEjl45y3mvTKz34j40UC3oYOi1k0okmDXD4ckb3ByrOl8oluefDQnyoAbaGWY6gg==", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@tinymce/tinymce-react/-/tinymce-react-3.12.2.tgz", + "integrity": "sha512-M6YQ9e+9rpxrZDOeNPmjgroEfooEKiMVuI4I3+xQtMX1hQQ/t9pGE9nUdS0faZDvqhlc8B/w12GJQNU5ekPo4g==", "dependencies": { "prop-types": "^15.6.2", "tinymce": "^5.7.1" @@ -3621,9 +3634,9 @@ "integrity": "sha512-Abz8bTzy8UWDeYs9pCa3D37i29EWDjNTjemdk0ei1ApYVNqulYlGUKip/jLOpogkPSsPz/GvZCYiC7MFlEk0iQ==" }, "node_modules/@types/eslint": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz", - "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==", + "version": "7.2.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.8.tgz", + "integrity": "sha512-RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ==", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -3712,9 +3725,9 @@ "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, "node_modules/@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.0", @@ -3791,9 +3804,9 @@ "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==" }, "node_modules/@types/tapable": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", - "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz", + "integrity": "sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==" }, "node_modules/@types/uglify-js": { "version": "3.13.0", @@ -3809,13 +3822,13 @@ "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" }, "node_modules/@types/webpack": { - "version": "4.41.26", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz", - "integrity": "sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==", + "version": "4.41.27", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz", + "integrity": "sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA==", "dependencies": { "@types/anymatch": "*", "@types/node": "*", - "@types/tapable": "*", + "@types/tapable": "^1", "@types/uglify-js": "*", "@types/webpack-sources": "*", "source-map": "^0.6.0" @@ -3858,12 +3871,12 @@ "integrity": "sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.19.0.tgz", - "integrity": "sha512-CRQNQ0mC2Pa7VLwKFbrGVTArfdVDdefS+gTw0oC98vSI98IX5A8EVH4BzJ2FOB0YlCmm8Im36Elad/Jgtvveaw==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.20.0.tgz", + "integrity": "sha512-sw+3HO5aehYqn5w177z2D82ZQlqHCwcKSMboueo7oE4KU9QiC0SAgfS/D4z9xXvpTc8Bt41Raa9fBR8T2tIhoQ==", "dependencies": { - "@typescript-eslint/experimental-utils": "4.19.0", - "@typescript-eslint/scope-manager": "4.19.0", + "@typescript-eslint/experimental-utils": "4.20.0", + "@typescript-eslint/scope-manager": "4.20.0", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -3889,14 +3902,14 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.19.0.tgz", - "integrity": "sha512-9/23F1nnyzbHKuoTqFN1iXwN3bvOm/PRIXSBR3qFAYotK/0LveEOHr5JT1WZSzcD6BESl8kPOG3OoDRKO84bHA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.20.0.tgz", + "integrity": "sha512-sQNlf6rjLq2yB5lELl3gOE7OuoA/6IVXJUJ+Vs7emrQMva14CkOwyQwD7CW+TkmOJ4Q/YGmoDLmbfFrpGmbKng==", "dependencies": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.19.0", - "@typescript-eslint/types": "4.19.0", - "@typescript-eslint/typescript-estree": "4.19.0", + "@typescript-eslint/scope-manager": "4.20.0", + "@typescript-eslint/types": "4.20.0", + "@typescript-eslint/typescript-estree": "4.20.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" }, @@ -3912,13 +3925,13 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.19.0.tgz", - "integrity": "sha512-/uabZjo2ZZhm66rdAu21HA8nQebl3lAIDcybUoOxoI7VbZBYavLIwtOOmykKCJy+Xq6Vw6ugkiwn8Js7D6wieA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.20.0.tgz", + "integrity": "sha512-m6vDtgL9EABdjMtKVw5rr6DdeMCH3OA1vFb0dAyuZSa3e5yw1YRzlwFnm9knma9Lz6b2GPvoNSa8vOXrqsaglA==", "dependencies": { - "@typescript-eslint/scope-manager": "4.19.0", - "@typescript-eslint/types": "4.19.0", - "@typescript-eslint/typescript-estree": "4.19.0", + "@typescript-eslint/scope-manager": "4.20.0", + "@typescript-eslint/types": "4.20.0", + "@typescript-eslint/typescript-estree": "4.20.0", "debug": "^4.1.1" }, "engines": { @@ -3938,12 +3951,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.19.0.tgz", - "integrity": "sha512-GGy4Ba/hLXwJXygkXqMzduqOMc+Na6LrJTZXJWVhRrSuZeXmu8TAnniQVKgj8uTRKe4igO2ysYzH+Np879G75g==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.20.0.tgz", + "integrity": "sha512-/zm6WR6iclD5HhGpcwl/GOYDTzrTHmvf8LLLkwKqqPKG6+KZt/CfSgPCiybshmck66M2L5fWSF/MKNuCwtKQSQ==", "dependencies": { - "@typescript-eslint/types": "4.19.0", - "@typescript-eslint/visitor-keys": "4.19.0" + "@typescript-eslint/types": "4.20.0", + "@typescript-eslint/visitor-keys": "4.20.0" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" @@ -3954,9 +3967,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.19.0.tgz", - "integrity": "sha512-A4iAlexVvd4IBsSTNxdvdepW0D4uR/fwxDrKUa+iEY9UWvGREu2ZyB8ylTENM1SH8F7bVC9ac9+si3LWNxcBuA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.20.0.tgz", + "integrity": "sha512-cYY+1PIjei1nk49JAPnH1VEnu7OYdWRdJhYI5wiKOUMhLTG1qsx5cQxCUTuwWCmQoyriadz3Ni8HZmGSofeC+w==", "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, @@ -3966,12 +3979,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.19.0.tgz", - "integrity": "sha512-3xqArJ/A62smaQYRv2ZFyTA+XxGGWmlDYrsfZG68zJeNbeqRScnhf81rUVa6QG4UgzHnXw5VnMT5cg75dQGDkA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.20.0.tgz", + "integrity": "sha512-Knpp0reOd4ZsyoEJdW8i/sK3mtZ47Ls7ZHvD8WVABNx5Xnn7KhenMTRGegoyMTx6TiXlOVgMz9r0pDgXTEEIHA==", "dependencies": { - "@typescript-eslint/types": "4.19.0", - "@typescript-eslint/visitor-keys": "4.19.0", + "@typescript-eslint/types": "4.20.0", + "@typescript-eslint/visitor-keys": "4.20.0", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -3992,11 +4005,11 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.19.0.tgz", - "integrity": "sha512-aGPS6kz//j7XLSlgpzU2SeTqHPsmRYxFztj2vPuMMFJXZudpRSehE3WCV+BaxwZFvfAqMoSd86TEuM0PQ59E/A==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.20.0.tgz", + "integrity": "sha512-NXKRM3oOVQL8yNFDNCZuieRIwZ5UtjNLYtmMx2PacEAGmbaEYtGgVHUHVyZvU/0rYZcizdrWjDo+WBtRPSgq+A==", "dependencies": { - "@typescript-eslint/types": "4.19.0", + "@typescript-eslint/types": "4.20.0", "eslint-visitor-keys": "^2.0.0" }, "engines": { @@ -4424,13 +4437,13 @@ "color-convert": "^1.9.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/antd": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/antd/-/antd-4.14.1.tgz", - "integrity": "sha512-984zBd4EtsBfCC4dUmDAZfaCphjcm7+ldKBWJHPyheUZL5S3X7ZSz+Ld75XGNFj4pLjcGMi2SwGOr/4hmByNsg==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/antd/-/antd-4.15.0.tgz", + "integrity": "sha512-24HMixmQAhCyqb0ND5wX5DYRTbPactCT36mfVKowqgr77eT7XQ59Uu6aS513mbeiVhXcHrNlrlCKNZBSeEDgPg==", "dependencies": { "@ant-design/colors": "^6.0.0", "@ant-design/icons": "^4.6.2", @@ -4491,9 +4504,6 @@ "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" } }, "node_modules/aphrodite": { @@ -5566,7 +5576,7 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/bindings": { @@ -5677,7 +5687,7 @@ "fill-range": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/broadcast-channel": { @@ -5998,7 +6008,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6021,9 +6031,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001204", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz", - "integrity": "sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==" + "version": "1.0.30001205", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001205.tgz", + "integrity": "sha512-TL1GrS5V6LElbitPazidkBMD9sa448bQDDLrumDqaggmKFcuU2JW1wTOHJPukAcOMtEmLcmDJEzfRrf+GjM0Og==" }, "node_modules/capture-exit": { "version": "2.0.0", @@ -6059,7 +6069,7 @@ "supports-color": "^5.3.0" }, "engines": { - "node": ">=4" + "node": ">=10" } }, "node_modules/char-regex": { @@ -6088,9 +6098,6 @@ "normalize-path": "~3.0.0", "readdirp": "~3.5.0" }, - "engines": { - "node": ">= 8.10.0" - }, "optionalDependencies": { "fsevents": "~2.3.1" } @@ -6362,10 +6369,7 @@ "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" }, "node_modules/common-tags": { "version": "1.8.0", @@ -6635,9 +6639,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz", - "integrity": "sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.0.tgz", + "integrity": "sha512-9yVewub2MXNYyGvuLnMHcN1k9RkvB7/ofktpeKTIaASyB88YYqGzUnu0ywMMhJrDHOMiTjSHWGzR+i7Wb9Z1kQ==", "dependencies": { "browserslist": "^4.16.3", "semver": "7.0.0" @@ -6656,9 +6660,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.1.tgz", - "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.10.0.tgz", + "integrity": "sha512-CC582enhrFZStO4F8lGI7QL3SYx7/AIRc+IdSi3btrQGrVsTawo5K/crmKbRrQ+MOMhNX4v+PATn0k2NN6wI7A==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -6682,7 +6686,7 @@ "yaml": "^1.7.2" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/craco-less": { @@ -6958,9 +6962,9 @@ } }, "node_modules/css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -7219,9 +7223,9 @@ "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" }, "node_modules/d3-scale": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.3.tgz", - "integrity": "sha512-8E37oWEmEzj57bHcnjPVOBS3n4jqakOeuv1EDdQSiSrYnMCBdMd3nc4HtKk7uia8DUHcY/CGuJ42xxgtEYrX0g==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.4.tgz", + "integrity": "sha512-PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==", "dependencies": { "d3-array": "^2.3.0", "d3-format": "1 - 2", @@ -7742,7 +7746,7 @@ "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, "node_modules/dom-align": { @@ -7977,9 +7981,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.699", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.699.tgz", - "integrity": "sha512-fjt43CPXdPYwD9ybmKbNeLwZBmCVdLY2J5fGZub7/eMPuiqQznOGNXv/wurnpXIlE7ScHnvG9Zi+H4/i6uMKmw==" + "version": "1.3.704", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.704.tgz", + "integrity": "sha512-6cz0jvawlUe4h5AbfQWxPzb+8LzVyswGAWiGc32EJEmfj39HTQyNPkLXirc7+L4x5I6RgRkzua8Ryu5QZqc8cA==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -8235,7 +8239,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "engines": { - "node": ">=0.8.0" + "node": ">=8" } }, "node_modules/escodegen": { @@ -8315,9 +8319,9 @@ } }, "node_modules/eslint": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", - "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz", + "integrity": "sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==", "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.0", @@ -8758,7 +8762,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", "engines": { - "node": ">=10" + "node": ">=4" } }, "node_modules/eslint-webpack-plugin": { @@ -9060,7 +9064,7 @@ "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -9573,7 +9577,7 @@ "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/filter-obj": { @@ -9693,24 +9697,24 @@ } }, "node_modules/firebase": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-8.3.1.tgz", - "integrity": "sha512-2BhzHQ8ZDh4BLZ9bicW8FEKFOYmu/w1sKhR5vi4X9SP+dsYNoKyFOP7Sfmk0GoENzt2+Y04GgfS5YERXLQky+w==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-8.3.2.tgz", + "integrity": "sha512-qGKASp6lXcV8NriHz/3wdltyLUjHOVkON6TQ1syGjW0sS5q/yTl9LK4O83hDLwG+UeRVRhLOaVa3jaLG4o3gnw==", "dependencies": { - "@firebase/analytics": "0.6.6", - "@firebase/app": "0.6.17", + "@firebase/analytics": "0.6.7", + "@firebase/app": "0.6.18", "@firebase/app-types": "0.6.1", "@firebase/auth": "0.16.4", - "@firebase/database": "0.9.6", - "@firebase/firestore": "2.2.1", - "@firebase/functions": "0.6.4", - "@firebase/installations": "0.4.22", - "@firebase/messaging": "0.7.6", - "@firebase/performance": "0.4.8", + "@firebase/database": "0.9.7", + "@firebase/firestore": "2.2.2", + "@firebase/functions": "0.6.5", + "@firebase/installations": "0.4.23", + "@firebase/messaging": "0.7.7", + "@firebase/performance": "0.4.9", "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.33", - "@firebase/storage": "0.4.5", - "@firebase/util": "0.4.0" + "@firebase/remote-config": "0.1.34", + "@firebase/storage": "0.4.6", + "@firebase/util": "0.4.1" }, "engines": { "node": "^8.13.0 || >=10.10.0" @@ -10215,7 +10219,7 @@ "pump": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10430,7 +10434,7 @@ "pify": "^4.0.1" }, "engines": { - "node": ">=6" + "node": ">=10" } }, "node_modules/handle-thing": { @@ -11266,6 +11270,9 @@ "integrity": "sha512-XTHvRUS4ZJNzC1GixJRmOlWSS45fSt+DJoyQC9ytj0WxQfcgofQtDtyKKYxHUqEsWCs+LIWftPF1ie7+i012Fg==", "dependencies": { "css-in-js-utils": "^2.0.0" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/internal-ip": { @@ -11332,7 +11339,7 @@ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-accessor-descriptor": { @@ -11381,7 +11388,7 @@ "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/is-boolean-object": { @@ -11573,7 +11580,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { - "node": ">=0.12.0" + "node": ">=0.10.0" } }, "node_modules/is-number-object": { @@ -11755,7 +11762,7 @@ "is-docker": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/isarray": { @@ -13863,12 +13870,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "node_modules/jsdom": { - "version": "16.5.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz", - "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==", + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.2.tgz", + "integrity": "sha512-JxNtPt9C1ut85boCbJmffaQ06NBnzkQY/MWO3YxPW8IWS38A26z+B1oBvA9LwKrytewdfymnhi4UNH3/RAgZrg==", "dependencies": { "abab": "^2.0.5", - "acorn": "^8.0.5", + "acorn": "^8.1.0", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", "cssstyle": "^2.3.0", @@ -13890,7 +13897,7 @@ "webidl-conversions": "^6.1.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", + "whatwg-url": "^8.5.0", "ws": "^7.4.4", "xml-name-validator": "^3.0.0" }, @@ -13993,9 +14000,6 @@ }, "bin": { "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" } }, "node_modules/jsoneditor": { @@ -14197,9 +14201,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.9.14", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.14.tgz", - "integrity": "sha512-lQEHej1NQwKwmn89ixSfvj+m7Gm6AsafuxU1BMsS22VUizQPnamVslA2d5wsHHaaXOExAvlcYjUF1C7ieTzoCg==" + "version": "1.9.15", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.15.tgz", + "integrity": "sha512-gKgvXJmYX00mS+dsy7VUWAsnfKeAyEqGFmDBDor2mtHo08RkceNLQ6PUKS+6h7Tq1SK/4MP2Re8rJ3J0gHmfTA==" }, "node_modules/lines-and-columns": { "version": "1.1.6", @@ -14299,11 +14303,21 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -14331,6 +14345,11 @@ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" + }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -15214,7 +15233,7 @@ "path-key": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/nth-check": { @@ -15645,7 +15664,7 @@ "aggregate-error": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15821,7 +15840,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/path-is-absolute": { @@ -15842,7 +15861,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/path-parse": { @@ -15956,7 +15975,7 @@ "find-up": "^2.1.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/pkg-dir/node_modules/find-up": { @@ -17209,12 +17228,12 @@ } }, "node_modules/postcss-safe-parser/node_modules/postcss": { - "version": "8.2.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz", - "integrity": "sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz", + "integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==", "dependencies": { "colorette": "^1.2.2", - "nanoid": "^3.1.20", + "nanoid": "^3.1.22", "source-map": "^0.6.1" }, "engines": { @@ -17501,9 +17520,9 @@ } }, "node_modules/protobufjs/node_modules/@types/node": { - "version": "13.13.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.47.tgz", - "integrity": "sha512-R6851wTjN1YJza8ZIeX6puNBSi/ZULHVh4WVleA7q256l+cP2EtXnKbO455fTs2ytQk3dL9qkU+Wh8l/uROdKg==" + "version": "13.13.48", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz", + "integrity": "sha512-z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==" }, "node_modules/proxy-addr": { "version": "2.0.6", @@ -17852,9 +17871,9 @@ } }, "node_modules/rc-input-number": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.0.2.tgz", - "integrity": "sha512-9AcD3/D18Oa41xZnBFvJ0fdp6AJkf/en8uKi8E69Ct+sh64qIYbWUXeh1PXhJgrCHIoNNT8OWaTebypT4/d3ZA==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.0.3.tgz", + "integrity": "sha512-y0nVqVANWyxQbm/vdhz1p5E1V5Y6Yd2+3MGKntSzCxrYgw0F7/COXkbRdcTECnXwiDv8ZrbYQ1pTP3u43PqE4Q==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -17883,9 +17902,9 @@ } }, "node_modules/rc-menu": { - "version": "8.10.6", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-8.10.6.tgz", - "integrity": "sha512-RVkd8XChwSmVOdNULbqLNnABthRZWnhqct1Q74onEXTClsXvsLADMhlIJtw/umglVSECM+14TJdIli9rl2Bzlw==", + "version": "8.10.7", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-8.10.7.tgz", + "integrity": "sha512-m/ypV7OjkkUsMdutzMUxEI8tWyi0Y1TQ5YkSDk7k2uv2aCKkHYEoDKsDAfcPeejo3HMo2z5unWE+jD+dCphraw==", "dependencies": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -18235,9 +18254,9 @@ } }, "node_modules/rc-util": { - "version": "5.9.5", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.5.tgz", - "integrity": "sha512-YQFlk5j8aEOpkJV5VibcCYk8prve8s9BALiN561FoL9OfQRk41nvfD8jENIvsDsbfq9AFO7Iq7YFEENJkn9Hog==", + "version": "5.9.8", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.8.tgz", + "integrity": "sha512-typLSHYGf5irvGLYQshs0Ra3aze086h0FhzsAkyirMunYZ7b3Te8gKa5PVaanoHaZa9sS6qx98BxgysoRP+6Tw==", "dependencies": { "@babel/runtime": "^7.12.5", "react-is": "^16.12.0", @@ -18559,9 +18578,9 @@ } }, "node_modules/react-i18next": { - "version": "11.8.11", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.8.11.tgz", - "integrity": "sha512-S17B952IB8T5Zs0SoGNR5zSHU5N7+X2D2OydhAtqNHT+iw9Tbt7WBNExufe9NbmpUQUUjKrCHIkl2diNTdGYtA==", + "version": "11.8.12", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.8.12.tgz", + "integrity": "sha512-M2PSVP9MzT/7yofXfCOF5gAVotinrM4BXWiguk8uFSznJsfFzTjrp3K9CBWcXitpoCBVZGZJ2AnbaWGSNkJqfw==", "dependencies": { "@babel/runtime": "^7.13.6", "html-parse-stringify2": "^2.0.1" @@ -18590,9 +18609,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-number-format": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.5.1.tgz", - "integrity": "sha512-c+yFS7EAMy4B4A2ROY5hQdZ+Po8FIEUMl8nxHUNwjPhDUwBz7I594fwhdYFDF4qVG4GwDpZyneXGAyiJe6sj4Q==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.5.3.tgz", + "integrity": "sha512-y7+2HtVjQI82Pome1Xxdf8RODZ6vAGwBnao4Iohl8/zhzWpkuLzvquXHXzXuHT6Xija4QddFAGitUbW3dN4sNg==", "dependencies": { "prop-types": "^15.7.2" }, @@ -19003,7 +19022,7 @@ "path-type": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/read-pkg-up": { @@ -19015,7 +19034,7 @@ "read-pkg": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/read-pkg-up/node_modules/find-up": { @@ -19106,9 +19125,6 @@ "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" } }, "node_modules/readdirp": { @@ -19119,7 +19135,7 @@ "picomatch": "^2.2.1" }, "engines": { - "node": ">=8.10.0" + "node": ">=0.10" } }, "node_modules/recharts": { @@ -19842,9 +19858,9 @@ } }, "node_modules/rtl-css-js": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.0.tgz", - "integrity": "sha512-Dl5xDTeN3e7scU1cWX8c9b6/Nqz3u/HgR4gePc1kWXYiQWVQbKCEyK6+Hxve9LbcJ5EieHy1J9nJCN3grTtGwg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.1.tgz", + "integrity": "sha512-G9N1s/6329FpJr8k9e1U/Lg0IDWThv99sb7k0IrXHjSnubxe01h52/ajsPRafJK1/2Vqrhz3VKLe3E1dx6jS9Q==", "dependencies": { "@babel/runtime": "^7.1.2" } @@ -20289,7 +20305,7 @@ "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">= 8.9.0" + "node": ">= 4" }, "funding": { "type": "opencollective", @@ -20337,9 +20353,6 @@ }, "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/send": { @@ -21614,7 +21627,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/strip-comments": { @@ -21676,16 +21689,16 @@ } }, "node_modules/styled-components": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.2.1.tgz", - "integrity": "sha512-sBdgLWrCFTKtmZm/9x7jkIabjFNVzCUeKfoQsM6R3saImkUnjx0QYdLwJHBjY9ifEcmjDamJDVfknWm1yxZPxQ==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.2.3.tgz", + "integrity": "sha512-BlR+KrLW3NL1yhvEB+9Nu9Dt51CuOnHoxd+Hj+rYPdtyR8X11uIW9rvhpy3Dk4dXXBsiW1u5U78f00Lf/afGoA==", "dependencies": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", "@emotion/is-prop-valid": "^0.8.8", "@emotion/stylis": "^0.8.4", "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1", + "babel-plugin-styled-components": ">= 1.12.0", "css-to-react-native": "^3.0.0", "hoist-non-react-statics": "^3.0.0", "shallowequal": "^1.1.0", @@ -21779,7 +21792,7 @@ "has-flag": "^3.0.0" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/supports-hyperlinks": { @@ -21866,7 +21879,7 @@ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", "engines": { - "node": ">=0.10" + "node": ">=0.10.0" } }, "node_modules/symbol-tree": { @@ -21875,12 +21888,17 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "node_modules/table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.9.tgz", + "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==", "dependencies": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", + "ajv": "^8.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.0" }, @@ -21889,9 +21907,9 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz", - "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.0.2.tgz", + "integrity": "sha512-V0HGxJd0PiDF0ecHYIesTOqfd1gJguwQUOYfMfAWnRsWQEXfc5ifbUFhD3Wjc+O+y7VAqL+g07prq9gHQ/JOZQ==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -22346,7 +22364,7 @@ "is-number": "^7.0.0" }, "engines": { - "node": ">=8.0" + "node": ">=0.10.0" } }, "node_modules/toggle-selection": { @@ -22372,7 +22390,7 @@ "universalify": "^0.1.2" }, "engines": { - "node": ">=6" + "node": ">=0.8" } }, "node_modules/tough-cookie/node_modules/universalify": { @@ -22532,7 +22550,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -22598,14 +22616,17 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", - "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dependencies": { "function-bind": "^1.1.1", - "has-bigints": "^1.0.0", - "has-symbols": "^1.0.0", - "which-boxed-primitive": "^1.0.1" + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/uncontrollable": { @@ -22722,7 +22743,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "engines": { - "node": ">= 10.0.0" + "node": ">= 4.0.0" } }, "node_modules/unload": { @@ -22955,7 +22976,7 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "optional": true, "bin": { - "uuid": "dist/bin/uuid" + "uuid": "bin/uuid" } }, "node_modules/v8-compile-cache": { @@ -22964,9 +22985,9 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" }, "node_modules/v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz", + "integrity": "sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==", "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0", @@ -23400,6 +23421,11 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/web-vitals": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz", + "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==" + }, "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", @@ -24527,10 +24553,7 @@ "isexe": "^2.0.0" }, "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "which": "bin/which" } }, "node_modules/which-boxed-primitive": { @@ -24853,9 +24876,6 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", - "engines": { - "node": ">=8.3.0" - }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" @@ -25112,11 +25132,11 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", - "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", + "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", "requires": { - "@babel/compat-data": "^7.13.8", + "@babel/compat-data": "^7.13.12", "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" @@ -25224,9 +25244,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz", - "integrity": "sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", "requires": { "@babel/helper-module-imports": "^7.13.12", "@babel/helper-replace-supers": "^7.13.12", @@ -25234,8 +25254,8 @@ "@babel/helper-split-export-declaration": "^7.12.13", "@babel/helper-validator-identifier": "^7.12.11", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" } }, "@babel/helper-optimise-call-expression": { @@ -25338,9 +25358,9 @@ } }, "@babel/parser": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", - "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==" + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", + "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.13.8", @@ -25834,9 +25854,9 @@ } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.10.tgz", - "integrity": "sha512-E+aCW9j7mLq01tOuGV08YzLBt+vSyr4bOPT75B6WrAlrUfmOYOZ/yWk847EH0dv0xXiCihWLEmlX//O30YhpIw==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.13.tgz", + "integrity": "sha512-SNJU53VM/SjQL0bZhyU+f4kJQz7bQQajnrZRSaU21hruG/NWY41AEM9AWXeXX90pYr/C2yAmTgI6yW3LlLrAUQ==", "requires": { "@babel/helper-plugin-utils": "^7.13.0" } @@ -26086,14 +26106,15 @@ } }, "@babel/preset-react": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz", - "integrity": "sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.13.13.tgz", + "integrity": "sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==", "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-transform-react-display-name": "^7.12.13", - "@babel/plugin-transform-react-jsx": "^7.12.13", - "@babel/plugin-transform-react-jsx-development": "^7.12.12", + "@babel/plugin-transform-react-jsx": "^7.13.12", + "@babel/plugin-transform-react-jsx-development": "^7.12.17", "@babel/plugin-transform-react-pure-annotations": "^7.12.1" } }, @@ -26134,25 +26155,24 @@ } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", + "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", + "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/parser": "^7.13.13", + "@babel/types": "^7.13.13", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "requires": { "@babel/helper-validator-identifier": "^7.12.11", "lodash": "^4.17.19", @@ -26269,15 +26289,15 @@ } }, "@firebase/analytics": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.6.tgz", - "integrity": "sha512-bf1Kvfigce1dwAQz3iHEKHyz2Kps42ikpTiPBpvMoLaP2+45H5Vmkm33T6w/yjyOPmhKvJtGDMRPrL+BozhWxQ==", + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.7.tgz", + "integrity": "sha512-ObnFDewIqiamvU7UKDx+0jfLrD3LyqEIsXZdjnGQhY/xc10HFH0jp23lOzb39CWf/399X+xMMJ3Uj51VyHwbJQ==", "requires": { "@firebase/analytics-types": "0.4.0", - "@firebase/component": "0.3.0", - "@firebase/installations": "0.4.22", + "@firebase/component": "0.3.1", + "@firebase/installations": "0.4.23", "@firebase/logger": "0.2.6", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" }, "dependencies": { @@ -26294,14 +26314,14 @@ "integrity": "sha512-Jj2xW+8+8XPfWGkv9HPv/uR+Qrmq37NPYT352wf7MvE9LrstpLVmFg3LqG6MCRr5miLAom5sen2gZ+iOhVDeRA==" }, "@firebase/app": { - "version": "0.6.17", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.17.tgz", - "integrity": "sha512-xLXY8507VaVkg5l1mWIUh/OrGqutexKxngbvEdpD9PXY2qiBRApXgvdIJ+DuuhaZDnG+3M/5hlP1IIx7XnkAsA==", + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.18.tgz", + "integrity": "sha512-eBThPc4QGHy/FC+oHZsnp4Qk6oksYTZ10B4jXaVH1lCS5eUSKvV1TIzAtpkPzMp2huS/qBz411r1tkQUv5vKcw==", "requires": { "@firebase/app-types": "0.6.1", - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/logger": "0.2.6", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "dom-storage": "2.1.0", "tslib": "^2.1.0", "xmlhttprequest": "1.8.0" @@ -26340,11 +26360,11 @@ "requires": {} }, "@firebase/component": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.3.0.tgz", - "integrity": "sha512-jlyaQMLKkzetjHd41P6wywNNVIy+Pqa2Xf+GS/cdgLyPD5IhjqvJHEv0SrLL2ceRhXCA5ETUxSvV6aKbFgV3Vw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.3.1.tgz", + "integrity": "sha512-8ACaB772bWwZRE47aVEYzld+jlDPgvHnLZoiVtG6BzygonVnKzwXo0wK6wcRzCbx4kun7G/gXYM0gUMkqvKtRA==", "requires": { - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" }, "dependencies": { @@ -26356,15 +26376,15 @@ } }, "@firebase/database": { - "version": "0.9.6", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.9.6.tgz", - "integrity": "sha512-8vuErwj6AlfFt0Y4q1aJYmFDcymV+Rd6Mik0XdgZ+a4iel+kGxGN3izxCQ/hWZNIvd2lCC3XI2bsRoDEkS4Nnw==", + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.9.7.tgz", + "integrity": "sha512-JUm6CnUxFRuyWvzTAzv/Mo/KYwLtUezpNGa4AzbhbdS8t3ewprc/7ARFErpv95cIM5MgiiPcLOC5F+mLDmrQwA==", "requires": { "@firebase/auth-interop-types": "0.1.5", - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/database-types": "0.7.0", "@firebase/logger": "0.2.6", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "faye-websocket": "0.11.3", "tslib": "^2.1.0" }, @@ -26385,14 +26405,14 @@ } }, "@firebase/firestore": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.2.1.tgz", - "integrity": "sha512-3NNzYk517usr0g0FL+RiUVVexsiNtduktv0t+xLApqmCue/MUodv5r0tYcCeo733Yq7+SSFsLgNd//jqa0zLOg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.2.2.tgz", + "integrity": "sha512-tFB0gRZcYQ8y9WBO5cSCij8pspF4vv2NdUkG8qWKG9cx2ccXnjo3qiQWRkoLuJGPaicCOGt11c08KvNSy/zfDA==", "requires": { - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/firestore-types": "2.2.0", "@firebase/logger": "0.2.6", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "@firebase/webchannel-wrapper": "0.4.1", "@grpc/grpc-js": "^1.0.0", "@grpc/proto-loader": "^0.5.0", @@ -26414,11 +26434,11 @@ "requires": {} }, "@firebase/functions": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.4.tgz", - "integrity": "sha512-5OK5vTfpM7JDadCrad/c1xLND0RGulZY9URL6fyoAYzMOx1Y6FWSM77LEjPfCQsd60P1qSJBTJ+9tzVMbaylWw==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.5.tgz", + "integrity": "sha512-8T/BKscHJhzQ7cM9Kn2Hcs8mkA1Zypzvo4b0mue7hRm6W/vzDMsgTiAUk7j7H1HEEf1Saw58h2tlQBg2rdDHPQ==", "requires": { - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/functions-types": "0.4.0", "@firebase/messaging-types": "0.5.0", "node-fetch": "2.6.1", @@ -26438,13 +26458,13 @@ "integrity": "sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ==" }, "@firebase/installations": { - "version": "0.4.22", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.22.tgz", - "integrity": "sha512-ICsNUiA0iX9b/kgJP2h9RAkGI+3aAfeRDLcAIoVBwIEZkNfxXTzXnrde04mnsGkA4zh74ADJCotzUuKb9QjIZg==", + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.23.tgz", + "integrity": "sha512-vULPhK0DbDcXL0utJ8Td8+x5ArpUjSbCarz5ttR+u3Xsn1sEC6EX2Tlmua6csqNnBU/VpMo1bopWOvCVyX9jYA==", "requires": { - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/installations-types": "0.3.4", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "idb": "3.0.2", "tslib": "^2.1.0" }, @@ -26468,14 +26488,14 @@ "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==" }, "@firebase/messaging": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.7.6.tgz", - "integrity": "sha512-kjzIiEunzWtkFzpyXfwHdQwWG1jLnAziKd8nIrBsGGW/dNV1VVUWB1iBnhGvnY0qrRcmqx0SMY6DtYIQasR5Eg==", + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.7.7.tgz", + "integrity": "sha512-osS61riot7Kg3YPuQWGqxOHos+IXOrTvTdchFOU/HVxenwmXteOpepEeNC3PZvudnYSKoI/w6voo5+E5yUyftw==", "requires": { - "@firebase/component": "0.3.0", - "@firebase/installations": "0.4.22", + "@firebase/component": "0.3.1", + "@firebase/installations": "0.4.23", "@firebase/messaging-types": "0.5.0", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "idb": "3.0.2", "tslib": "^2.1.0" }, @@ -26494,15 +26514,15 @@ "requires": {} }, "@firebase/performance": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.8.tgz", - "integrity": "sha512-0YG37wfe0RxVKSrNUUVKCMYXU7fGCp+pxxlU5ri4fLcsHqFMShEVYS9U4ahe7gg9a/ah5qSp+kHomGquNt8IIw==", + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.9.tgz", + "integrity": "sha512-2BozmCAbvL4iFZwHE+9xSrdl3sJeF1/l8X2Ci4n8n+vwZjQbhq5pHPSZXLVT78i23V3XM14eS4SUJVqNL/QkRw==", "requires": { - "@firebase/component": "0.3.0", - "@firebase/installations": "0.4.22", + "@firebase/component": "0.3.1", + "@firebase/installations": "0.4.23", "@firebase/logger": "0.2.6", "@firebase/performance-types": "0.0.13", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" }, "dependencies": { @@ -26529,15 +26549,15 @@ } }, "@firebase/remote-config": { - "version": "0.1.33", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.33.tgz", - "integrity": "sha512-bBCC0UOYioIyJXlQGBHbDcZo7NTVEcgQGoqRpenSNZ1obsjTt0SXJMcYJFiP+wzut8O3UBKlc2q72UgX8naPHA==", + "version": "0.1.34", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.34.tgz", + "integrity": "sha512-4dXdRjwuTH8lckmF8bPYCq0P/fM3NLV9QAF98Anft7f/0ZZNAucyQpvlK8KP7IRBZcllXq1Rla4THCNFtrLLOA==", "requires": { - "@firebase/component": "0.3.0", - "@firebase/installations": "0.4.22", + "@firebase/component": "0.3.1", + "@firebase/installations": "0.4.23", "@firebase/logger": "0.2.6", "@firebase/remote-config-types": "0.1.9", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" }, "dependencies": { @@ -26554,13 +26574,13 @@ "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==" }, "@firebase/storage": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.4.5.tgz", - "integrity": "sha512-ZSuK7iqHMI7SJV55BmqtAFwdZC3CQ5SudkAQk7cBHEqZZUx0HGnalOqLu04zPlJsQRIT/CgekaizXpHuUPKfyw==", + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.4.6.tgz", + "integrity": "sha512-nXhLuPKGJlty2whW56T5/Kpr/3O+cKSB5YcCcRKUO8eBu/1VvIswPgipWFaIpgZ3hkXJqaNzYLYpTdIf1UPWrQ==", "requires": { - "@firebase/component": "0.3.0", + "@firebase/component": "0.3.1", "@firebase/storage-types": "0.3.13", - "@firebase/util": "0.4.0", + "@firebase/util": "0.4.1", "tslib": "^2.1.0" }, "dependencies": { @@ -26578,11 +26598,11 @@ "requires": {} }, "@firebase/util": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.4.0.tgz", - "integrity": "sha512-z8A+9YGM61ZXQ2KBSVwxXaELOJjG+EQ374YolqNVMvWBJzTNGZGaVP81Ggl8XD10Xinyt1Dgdo86JDV0OAnvqA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.4.1.tgz", + "integrity": "sha512-XhYCOwq4AH+YeQBEnDQvigz50WiiBU4LnJh2+//VMt4J2Ybsk0eTgUHNngUzXsmp80EJrwal3ItODg55q1ajWg==", "requires": { - "tslib": "^2.0.0" + "tslib": "^2.1.0" }, "dependencies": { "tslib": { @@ -27395,9 +27415,9 @@ } }, "@rollup/plugin-replace": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.1.tgz", - "integrity": "sha512-XwC1oK5rrtRJ0tn1ioLHS6OV5JTluJF7QE1J/q1hN3bquwjnVxjtMyY9iCnoyH9DQbf92CxajB3o98wZbP3oAQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", "requires": { "@rollup/pluginutils": "^3.1.0", "magic-string": "^0.25.7" @@ -27421,84 +27441,84 @@ } }, "@sentry/browser": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.2.3.tgz", - "integrity": "sha512-QUqrZdAosY2MPAUfJYpyCT+dA6v7A2h8imO8R3Lbi0hRSPr+L7zjqHgFs3CTHJLmLV74cxHt6rVVUPSksYNQDQ==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.2.4.tgz", + "integrity": "sha512-OV1CQUxNawncpSEcrA+YccOu72rLC0tyYq/Pc4D/ihpfJmvR0o0L8vZYESay55V5lcqnJPFp8IyCJ2bF8IZTsA==", "requires": { - "@sentry/core": "6.2.3", - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/core": "6.2.4", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "tslib": "^1.9.3" } }, "@sentry/core": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.2.3.tgz", - "integrity": "sha512-GpfHoSJiXchVXgyaMWVtIPVw2t97KkD1OJ4JdL3/TeH3auX5XvsN5iHTk+x/Er8t13IpOnvidH1xWdV1dnax2w==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.2.4.tgz", + "integrity": "sha512-8Z98OTM4wFS2n3T+V8a6cYWHDAk1byWuMb8JquZLdYgR5O1jkSpSFrhksQ+B/wDbVw05VOolSNFJsDTC2D5qXg==", "requires": { - "@sentry/hub": "6.2.3", - "@sentry/minimal": "6.2.3", - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/hub": "6.2.4", + "@sentry/minimal": "6.2.4", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "tslib": "^1.9.3" } }, "@sentry/hub": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.2.3.tgz", - "integrity": "sha512-D5Horfo2l0p52S7KPvy7qwWNMrE4IsCN8ODbfcCsfJu7hEXJmItbkbohIVSqO5neukhn5nu+x8kyCe9Q5u1Q6g==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.2.4.tgz", + "integrity": "sha512-dY8Vj3c4oIirNNNzWkJvoRMzjlU8Nw3PJ/IwhdWjiQhj5/oqOzJwJQSMeOKdOGIhArAifr0hSXdy1+tHGEOOdQ==", "requires": { - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "tslib": "^1.9.3" } }, "@sentry/minimal": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.2.3.tgz", - "integrity": "sha512-Gpn9x4NQAG7E94EK1+hAz9GUcYrffTuqJ/XgqvHYk0jsHZ6RfsXYrmBac0ZwUxOivMf2t0n5opK0v5rhMDfF2w==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.2.4.tgz", + "integrity": "sha512-KN+Abbz5CCAceSMvwymSG8GIVPaz4Y/xuY7R7dA8IlzncHaWRQ/Ss0PXjYUWL4YoTlTK6id1AW0i3JMICHMVgw==", "requires": { - "@sentry/hub": "6.2.3", - "@sentry/types": "6.2.3", + "@sentry/hub": "6.2.4", + "@sentry/types": "6.2.4", "tslib": "^1.9.3" } }, "@sentry/react": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.2.3.tgz", - "integrity": "sha512-T2mBD9ZFxzLQ3Kc5cey7A5fBA+qN67NdmRw9W1Grk6cEoJIrQYg3LnFbM5YnBBK86ciXQlgz7ZsF7rbjRcmWMQ==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.2.4.tgz", + "integrity": "sha512-0TqM51HwnAUoDSYyK38Bq/m6xLqWHsOL98Uu4HoMMmx6VXW1xf1UDxhjmIQFfjWfYT5tlld0CoDRfTJJlc82Ow==", "requires": { - "@sentry/browser": "6.2.3", - "@sentry/minimal": "6.2.3", - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/browser": "6.2.4", + "@sentry/minimal": "6.2.4", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "hoist-non-react-statics": "^3.3.2", "tslib": "^1.9.3" } }, "@sentry/tracing": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.2.3.tgz", - "integrity": "sha512-OnQZKp7qVera+Z4ly6hgybGgyf10p2VDXqwueXkMVeLD+PwlPG8a8NMpKkZ+QxwRbQbSFhRLQaib3NX34tusBQ==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.2.4.tgz", + "integrity": "sha512-FNPTd22Q487SVyGM4BXlVeeRwPr9CG0OV8bz+GRHQtpVDhL+zdkGlIJYbxZnrOcdyYNVgLCJUPDHqyv55nhU4A==", "requires": { - "@sentry/hub": "6.2.3", - "@sentry/minimal": "6.2.3", - "@sentry/types": "6.2.3", - "@sentry/utils": "6.2.3", + "@sentry/hub": "6.2.4", + "@sentry/minimal": "6.2.4", + "@sentry/types": "6.2.4", + "@sentry/utils": "6.2.4", "tslib": "^1.9.3" } }, "@sentry/types": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.2.3.tgz", - "integrity": "sha512-BpA+9FherWgYlkMD/82bGFh/gAqZNlZX5UE8vWLKyyzNyOEEz3v9ScxE8dOSWE4v5iXJR1O3jjxaTcRQxPVgCA==" + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.2.4.tgz", + "integrity": "sha512-c+vEExoj8H67NPaskTvxJBSAtDWzfFXOmlkicEZPUWbkL+Yxxlbzp1lI8K6GOks56UYMUBUU/fwQvv/34cO96g==" }, "@sentry/utils": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.2.3.tgz", - "integrity": "sha512-YnkJm97wSvck39eRpqWjIuuwbvzPilvAcMqhbUy9yK/UBQMDGUzAKCOKH40udw1DwMUCWjJ71mOCDgUorE4Fog==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.2.4.tgz", + "integrity": "sha512-lavbb3yQMUleVffmDkPH7X3dlgbXlyiFNmfER+swJ6WRxa4Yq6I8yea2s6maoqnZMhZe+yztn455DPwXIItfCA==", "requires": { - "@sentry/types": "6.2.3", + "@sentry/types": "6.2.4", "tslib": "^1.9.3" } }, @@ -27690,9 +27710,9 @@ } }, "@tanem/react-nprogress": { - "version": "3.0.59", - "resolved": "https://registry.npmjs.org/@tanem/react-nprogress/-/react-nprogress-3.0.59.tgz", - "integrity": "sha512-Y2uULtEftCF+HDXTZvRUW9xwb0lvQAJeVg9kucSsq9k/56CM3dwQGfENGNNSb7Urg21MV27io6ylet5hMcSarA==", + "version": "3.0.60", + "resolved": "https://registry.npmjs.org/@tanem/react-nprogress/-/react-nprogress-3.0.60.tgz", + "integrity": "sha512-TXtn+D9zKWqbbYct/VdC9fB9zG3IYe5/KH34IOVRjg1JPLyy9va7Cse7zBvNz0OVf2TzRtojkR9Gkd2QxqyFUw==", "requires": { "@babel/runtime": "^7.13.10", "hoist-non-react-statics": "^3.3.2", @@ -27701,9 +27721,9 @@ } }, "@tinymce/tinymce-react": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tinymce/tinymce-react/-/tinymce-react-3.11.1.tgz", - "integrity": "sha512-rmEsZpX9h1BoUlFZJuLMSMKEjl45y3mvTKz34j40UC3oYOi1k0okmDXD4ckb3ByrOl8oluefDQnyoAbaGWY6gg==", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@tinymce/tinymce-react/-/tinymce-react-3.12.2.tgz", + "integrity": "sha512-M6YQ9e+9rpxrZDOeNPmjgroEfooEKiMVuI4I3+xQtMX1hQQ/t9pGE9nUdS0faZDvqhlc8B/w12GJQNU5ekPo4g==", "requires": { "prop-types": "^15.6.2", "tinymce": "^5.7.1" @@ -27778,9 +27798,9 @@ "integrity": "sha512-Abz8bTzy8UWDeYs9pCa3D37i29EWDjNTjemdk0ei1ApYVNqulYlGUKip/jLOpogkPSsPz/GvZCYiC7MFlEk0iQ==" }, "@types/eslint": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz", - "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==", + "version": "7.2.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.8.tgz", + "integrity": "sha512-RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ==", "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -27869,9 +27889,9 @@ "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==" }, "@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -27948,9 +27968,9 @@ "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==" }, "@types/tapable": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", - "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz", + "integrity": "sha512-0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==" }, "@types/uglify-js": { "version": "3.13.0", @@ -27966,13 +27986,13 @@ "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" }, "@types/webpack": { - "version": "4.41.26", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz", - "integrity": "sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==", + "version": "4.41.27", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz", + "integrity": "sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA==", "requires": { "@types/anymatch": "*", "@types/node": "*", - "@types/tapable": "*", + "@types/tapable": "^1", "@types/uglify-js": "*", "@types/webpack-sources": "*", "source-map": "^0.6.0" @@ -28014,12 +28034,12 @@ "integrity": "sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.19.0.tgz", - "integrity": "sha512-CRQNQ0mC2Pa7VLwKFbrGVTArfdVDdefS+gTw0oC98vSI98IX5A8EVH4BzJ2FOB0YlCmm8Im36Elad/Jgtvveaw==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.20.0.tgz", + "integrity": "sha512-sw+3HO5aehYqn5w177z2D82ZQlqHCwcKSMboueo7oE4KU9QiC0SAgfS/D4z9xXvpTc8Bt41Raa9fBR8T2tIhoQ==", "requires": { - "@typescript-eslint/experimental-utils": "4.19.0", - "@typescript-eslint/scope-manager": "4.19.0", + "@typescript-eslint/experimental-utils": "4.20.0", + "@typescript-eslint/scope-manager": "4.20.0", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", "lodash": "^4.17.15", @@ -28029,50 +28049,50 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.19.0.tgz", - "integrity": "sha512-9/23F1nnyzbHKuoTqFN1iXwN3bvOm/PRIXSBR3qFAYotK/0LveEOHr5JT1WZSzcD6BESl8kPOG3OoDRKO84bHA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.20.0.tgz", + "integrity": "sha512-sQNlf6rjLq2yB5lELl3gOE7OuoA/6IVXJUJ+Vs7emrQMva14CkOwyQwD7CW+TkmOJ4Q/YGmoDLmbfFrpGmbKng==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.19.0", - "@typescript-eslint/types": "4.19.0", - "@typescript-eslint/typescript-estree": "4.19.0", + "@typescript-eslint/scope-manager": "4.20.0", + "@typescript-eslint/types": "4.20.0", + "@typescript-eslint/typescript-estree": "4.20.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.19.0.tgz", - "integrity": "sha512-/uabZjo2ZZhm66rdAu21HA8nQebl3lAIDcybUoOxoI7VbZBYavLIwtOOmykKCJy+Xq6Vw6ugkiwn8Js7D6wieA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.20.0.tgz", + "integrity": "sha512-m6vDtgL9EABdjMtKVw5rr6DdeMCH3OA1vFb0dAyuZSa3e5yw1YRzlwFnm9knma9Lz6b2GPvoNSa8vOXrqsaglA==", "requires": { - "@typescript-eslint/scope-manager": "4.19.0", - "@typescript-eslint/types": "4.19.0", - "@typescript-eslint/typescript-estree": "4.19.0", + "@typescript-eslint/scope-manager": "4.20.0", + "@typescript-eslint/types": "4.20.0", + "@typescript-eslint/typescript-estree": "4.20.0", "debug": "^4.1.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.19.0.tgz", - "integrity": "sha512-GGy4Ba/hLXwJXygkXqMzduqOMc+Na6LrJTZXJWVhRrSuZeXmu8TAnniQVKgj8uTRKe4igO2ysYzH+Np879G75g==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.20.0.tgz", + "integrity": "sha512-/zm6WR6iclD5HhGpcwl/GOYDTzrTHmvf8LLLkwKqqPKG6+KZt/CfSgPCiybshmck66M2L5fWSF/MKNuCwtKQSQ==", "requires": { - "@typescript-eslint/types": "4.19.0", - "@typescript-eslint/visitor-keys": "4.19.0" + "@typescript-eslint/types": "4.20.0", + "@typescript-eslint/visitor-keys": "4.20.0" } }, "@typescript-eslint/types": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.19.0.tgz", - "integrity": "sha512-A4iAlexVvd4IBsSTNxdvdepW0D4uR/fwxDrKUa+iEY9UWvGREu2ZyB8ylTENM1SH8F7bVC9ac9+si3LWNxcBuA==" + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.20.0.tgz", + "integrity": "sha512-cYY+1PIjei1nk49JAPnH1VEnu7OYdWRdJhYI5wiKOUMhLTG1qsx5cQxCUTuwWCmQoyriadz3Ni8HZmGSofeC+w==" }, "@typescript-eslint/typescript-estree": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.19.0.tgz", - "integrity": "sha512-3xqArJ/A62smaQYRv2ZFyTA+XxGGWmlDYrsfZG68zJeNbeqRScnhf81rUVa6QG4UgzHnXw5VnMT5cg75dQGDkA==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.20.0.tgz", + "integrity": "sha512-Knpp0reOd4ZsyoEJdW8i/sK3mtZ47Ls7ZHvD8WVABNx5Xnn7KhenMTRGegoyMTx6TiXlOVgMz9r0pDgXTEEIHA==", "requires": { - "@typescript-eslint/types": "4.19.0", - "@typescript-eslint/visitor-keys": "4.19.0", + "@typescript-eslint/types": "4.20.0", + "@typescript-eslint/visitor-keys": "4.20.0", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -28081,11 +28101,11 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.19.0.tgz", - "integrity": "sha512-aGPS6kz//j7XLSlgpzU2SeTqHPsmRYxFztj2vPuMMFJXZudpRSehE3WCV+BaxwZFvfAqMoSd86TEuM0PQ59E/A==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.20.0.tgz", + "integrity": "sha512-NXKRM3oOVQL8yNFDNCZuieRIwZ5UtjNLYtmMx2PacEAGmbaEYtGgVHUHVyZvU/0rYZcizdrWjDo+WBtRPSgq+A==", "requires": { - "@typescript-eslint/types": "4.19.0", + "@typescript-eslint/types": "4.20.0", "eslint-visitor-keys": "^2.0.0" } }, @@ -28449,9 +28469,9 @@ } }, "antd": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/antd/-/antd-4.14.1.tgz", - "integrity": "sha512-984zBd4EtsBfCC4dUmDAZfaCphjcm7+ldKBWJHPyheUZL5S3X7ZSz+Ld75XGNFj4pLjcGMi2SwGOr/4hmByNsg==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/antd/-/antd-4.15.0.tgz", + "integrity": "sha512-24HMixmQAhCyqb0ND5wX5DYRTbPactCT36mfVKowqgr77eT7XQ59Uu6aS513mbeiVhXcHrNlrlCKNZBSeEDgPg==", "requires": { "@ant-design/colors": "^6.0.0", "@ant-design/icons": "^4.6.2", @@ -29752,9 +29772,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001204", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz", - "integrity": "sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==" + "version": "1.0.30001205", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001205.tgz", + "integrity": "sha512-TL1GrS5V6LElbitPazidkBMD9sa448bQDDLrumDqaggmKFcuU2JW1wTOHJPukAcOMtEmLcmDJEzfRrf+GjM0Og==" }, "capture-exit": { "version": "2.0.0", @@ -30269,9 +30289,9 @@ "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" }, "core-js-compat": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz", - "integrity": "sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.0.tgz", + "integrity": "sha512-9yVewub2MXNYyGvuLnMHcN1k9RkvB7/ofktpeKTIaASyB88YYqGzUnu0ywMMhJrDHOMiTjSHWGzR+i7Wb9Z1kQ==", "requires": { "browserslist": "^4.16.3", "semver": "7.0.0" @@ -30285,9 +30305,9 @@ } }, "core-js-pure": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.1.tgz", - "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==" + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.10.0.tgz", + "integrity": "sha512-CC582enhrFZStO4F8lGI7QL3SYx7/AIRc+IdSi3btrQGrVsTawo5K/crmKbRrQ+MOMhNX4v+PATn0k2NN6wI7A==" }, "core-util-is": { "version": "1.0.2", @@ -30524,9 +30544,9 @@ } }, "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -30738,9 +30758,9 @@ "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" }, "d3-scale": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.3.tgz", - "integrity": "sha512-8E37oWEmEzj57bHcnjPVOBS3n4jqakOeuv1EDdQSiSrYnMCBdMd3nc4HtKk7uia8DUHcY/CGuJ42xxgtEYrX0g==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.4.tgz", + "integrity": "sha512-PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==", "requires": { "d3-array": "^2.3.0", "d3-format": "1 - 2", @@ -31364,9 +31384,9 @@ } }, "electron-to-chromium": { - "version": "1.3.699", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.699.tgz", - "integrity": "sha512-fjt43CPXdPYwD9ybmKbNeLwZBmCVdLY2J5fGZub7/eMPuiqQznOGNXv/wurnpXIlE7ScHnvG9Zi+H4/i6uMKmw==" + "version": "1.3.704", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.704.tgz", + "integrity": "sha512-6cz0jvawlUe4h5AbfQWxPzb+8LzVyswGAWiGc32EJEmfj39HTQyNPkLXirc7+L4x5I6RgRkzua8Ryu5QZqc8cA==" }, "elliptic": { "version": "6.5.4", @@ -31639,9 +31659,9 @@ } }, "eslint": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", - "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz", + "integrity": "sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==", "requires": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.0", @@ -32684,24 +32704,24 @@ } }, "firebase": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-8.3.1.tgz", - "integrity": "sha512-2BhzHQ8ZDh4BLZ9bicW8FEKFOYmu/w1sKhR5vi4X9SP+dsYNoKyFOP7Sfmk0GoENzt2+Y04GgfS5YERXLQky+w==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-8.3.2.tgz", + "integrity": "sha512-qGKASp6lXcV8NriHz/3wdltyLUjHOVkON6TQ1syGjW0sS5q/yTl9LK4O83hDLwG+UeRVRhLOaVa3jaLG4o3gnw==", "requires": { - "@firebase/analytics": "0.6.6", - "@firebase/app": "0.6.17", + "@firebase/analytics": "0.6.7", + "@firebase/app": "0.6.18", "@firebase/app-types": "0.6.1", "@firebase/auth": "0.16.4", - "@firebase/database": "0.9.6", - "@firebase/firestore": "2.2.1", - "@firebase/functions": "0.6.4", - "@firebase/installations": "0.4.22", - "@firebase/messaging": "0.7.6", - "@firebase/performance": "0.4.8", + "@firebase/database": "0.9.7", + "@firebase/firestore": "2.2.2", + "@firebase/functions": "0.6.5", + "@firebase/installations": "0.4.23", + "@firebase/messaging": "0.7.7", + "@firebase/performance": "0.4.9", "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.33", - "@firebase/storage": "0.4.5", - "@firebase/util": "0.4.0" + "@firebase/remote-config": "0.1.34", + "@firebase/storage": "0.4.6", + "@firebase/util": "0.4.1" } }, "flat-cache": { @@ -35851,12 +35871,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jsdom": { - "version": "16.5.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz", - "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==", + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.2.tgz", + "integrity": "sha512-JxNtPt9C1ut85boCbJmffaQ06NBnzkQY/MWO3YxPW8IWS38A26z+B1oBvA9LwKrytewdfymnhi4UNH3/RAgZrg==", "requires": { "abab": "^2.0.5", - "acorn": "^8.0.5", + "acorn": "^8.1.0", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", "cssstyle": "^2.3.0", @@ -35878,7 +35898,7 @@ "webidl-conversions": "^6.1.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", + "whatwg-url": "^8.5.0", "ws": "^7.4.4", "xml-name-validator": "^3.0.0" }, @@ -36117,9 +36137,9 @@ } }, "libphonenumber-js": { - "version": "1.9.14", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.14.tgz", - "integrity": "sha512-lQEHej1NQwKwmn89ixSfvj+m7Gm6AsafuxU1BMsS22VUizQPnamVslA2d5wsHHaaXOExAvlcYjUF1C7ieTzoCg==" + "version": "1.9.15", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.15.tgz", + "integrity": "sha512-gKgvXJmYX00mS+dsy7VUWAsnfKeAyEqGFmDBDor2mtHo08RkceNLQ6PUKS+6h7Tq1SK/4MP2Re8rJ3J0gHmfTA==" }, "lines-and-columns": { "version": "1.1.6", @@ -36200,11 +36220,21 @@ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -36232,6 +36262,11 @@ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=" + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -38570,12 +38605,12 @@ }, "dependencies": { "postcss": { - "version": "8.2.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz", - "integrity": "sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==", + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz", + "integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==", "requires": { "colorette": "^1.2.2", - "nanoid": "^3.1.20", + "nanoid": "^3.1.22", "source-map": "^0.6.1" } } @@ -38799,9 +38834,9 @@ }, "dependencies": { "@types/node": { - "version": "13.13.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.47.tgz", - "integrity": "sha512-R6851wTjN1YJza8ZIeX6puNBSi/ZULHVh4WVleA7q256l+cP2EtXnKbO455fTs2ytQk3dL9qkU+Wh8l/uROdKg==" + "version": "13.13.48", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz", + "integrity": "sha512-z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==" } } }, @@ -39071,9 +39106,9 @@ } }, "rc-input-number": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.0.2.tgz", - "integrity": "sha512-9AcD3/D18Oa41xZnBFvJ0fdp6AJkf/en8uKi8E69Ct+sh64qIYbWUXeh1PXhJgrCHIoNNT8OWaTebypT4/d3ZA==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-7.0.3.tgz", + "integrity": "sha512-y0nVqVANWyxQbm/vdhz1p5E1V5Y6Yd2+3MGKntSzCxrYgw0F7/COXkbRdcTECnXwiDv8ZrbYQ1pTP3u43PqE4Q==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "^2.2.5", @@ -39094,9 +39129,9 @@ } }, "rc-menu": { - "version": "8.10.6", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-8.10.6.tgz", - "integrity": "sha512-RVkd8XChwSmVOdNULbqLNnABthRZWnhqct1Q74onEXTClsXvsLADMhlIJtw/umglVSECM+14TJdIli9rl2Bzlw==", + "version": "8.10.7", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-8.10.7.tgz", + "integrity": "sha512-m/ypV7OjkkUsMdutzMUxEI8tWyi0Y1TQ5YkSDk7k2uv2aCKkHYEoDKsDAfcPeejo3HMo2z5unWE+jD+dCphraw==", "requires": { "@babel/runtime": "^7.10.1", "classnames": "2.x", @@ -39331,9 +39366,9 @@ } }, "rc-util": { - "version": "5.9.5", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.5.tgz", - "integrity": "sha512-YQFlk5j8aEOpkJV5VibcCYk8prve8s9BALiN561FoL9OfQRk41nvfD8jENIvsDsbfq9AFO7Iq7YFEENJkn9Hog==", + "version": "5.9.8", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.9.8.tgz", + "integrity": "sha512-typLSHYGf5irvGLYQshs0Ra3aze086h0FhzsAkyirMunYZ7b3Te8gKa5PVaanoHaZa9sS6qx98BxgysoRP+6Tw==", "requires": { "@babel/runtime": "^7.12.5", "react-is": "^16.12.0", @@ -39596,9 +39631,9 @@ } }, "react-i18next": { - "version": "11.8.11", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.8.11.tgz", - "integrity": "sha512-S17B952IB8T5Zs0SoGNR5zSHU5N7+X2D2OydhAtqNHT+iw9Tbt7WBNExufe9NbmpUQUUjKrCHIkl2diNTdGYtA==", + "version": "11.8.12", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.8.12.tgz", + "integrity": "sha512-M2PSVP9MzT/7yofXfCOF5gAVotinrM4BXWiguk8uFSznJsfFzTjrp3K9CBWcXitpoCBVZGZJ2AnbaWGSNkJqfw==", "requires": { "@babel/runtime": "^7.13.6", "html-parse-stringify2": "^2.0.1" @@ -39621,9 +39656,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-number-format": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.5.1.tgz", - "integrity": "sha512-c+yFS7EAMy4B4A2ROY5hQdZ+Po8FIEUMl8nxHUNwjPhDUwBz7I594fwhdYFDF4qVG4GwDpZyneXGAyiJe6sj4Q==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.5.3.tgz", + "integrity": "sha512-y7+2HtVjQI82Pome1Xxdf8RODZ6vAGwBnao4Iohl8/zhzWpkuLzvquXHXzXuHT6Xija4QddFAGitUbW3dN4sNg==", "requires": { "prop-types": "^15.7.2" } @@ -40629,9 +40664,9 @@ "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" }, "rtl-css-js": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.0.tgz", - "integrity": "sha512-Dl5xDTeN3e7scU1cWX8c9b6/Nqz3u/HgR4gePc1kWXYiQWVQbKCEyK6+Hxve9LbcJ5EieHy1J9nJCN3grTtGwg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.14.1.tgz", + "integrity": "sha512-G9N1s/6329FpJr8k9e1U/Lg0IDWThv99sb7k0IrXHjSnubxe01h52/ajsPRafJK1/2Vqrhz3VKLe3E1dx6jS9Q==", "requires": { "@babel/runtime": "^7.1.2" } @@ -42098,16 +42133,16 @@ } }, "styled-components": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.2.1.tgz", - "integrity": "sha512-sBdgLWrCFTKtmZm/9x7jkIabjFNVzCUeKfoQsM6R3saImkUnjx0QYdLwJHBjY9ifEcmjDamJDVfknWm1yxZPxQ==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.2.3.tgz", + "integrity": "sha512-BlR+KrLW3NL1yhvEB+9Nu9Dt51CuOnHoxd+Hj+rYPdtyR8X11uIW9rvhpy3Dk4dXXBsiW1u5U78f00Lf/afGoA==", "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/traverse": "^7.4.5", "@emotion/is-prop-valid": "^0.8.8", "@emotion/stylis": "^0.8.4", "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1", + "babel-plugin-styled-components": ">= 1.12.0", "css-to-react-native": "^3.0.0", "hoist-non-react-statics": "^3.0.0", "shallowequal": "^1.1.0", @@ -42257,20 +42292,25 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.9.tgz", + "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==", "requires": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", + "ajv": "^8.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.0" }, "dependencies": { "ajv": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz", - "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.0.2.tgz", + "integrity": "sha512-V0HGxJd0PiDF0ecHYIesTOqfd1gJguwQUOYfMfAWnRsWQEXfc5ifbUFhD3Wjc+O+y7VAqL+g07prq9gHQ/JOZQ==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -42821,14 +42861,14 @@ } }, "unbox-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", - "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "requires": { "function-bind": "^1.1.1", - "has-bigints": "^1.0.0", - "has-symbols": "^1.0.0", - "which-boxed-primitive": "^1.0.1" + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" } }, "uncontrollable": { @@ -43115,9 +43155,9 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz", + "integrity": "sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==", "requires": { "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0", @@ -43488,6 +43528,11 @@ "minimalistic-assert": "^1.0.0" } }, + "web-vitals": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz", + "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==" + }, "webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", diff --git a/client/package.json b/client/package.json index 6622e8562..f3cba1809 100644 --- a/client/package.json +++ b/client/package.json @@ -13,7 +13,6 @@ "@stripe/react-stripe-js": "^1.4.0", "@stripe/stripe-js": "^1.12.1", "@tanem/react-nprogress": "^3.0.57", - "@tinymce/tinymce-react": "^3.10.3", "antd": "^4.13.1", "apollo-link-logger": "^2.0.0", "axios": "^0.21.1", diff --git a/client/src/components/accounting-payables-table/accounting-payables-table.component.jsx b/client/src/components/accounting-payables-table/accounting-payables-table.component.jsx index c5702efb2..7366ccf32 100644 --- a/client/src/components/accounting-payables-table/accounting-payables-table.component.jsx +++ b/client/src/components/accounting-payables-table/accounting-payables-table.component.jsx @@ -1,4 +1,4 @@ -import { Input, Table, Checkbox } from "antd"; +import { Input, Table, Checkbox, Card, Space } from "antd"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; @@ -145,28 +145,26 @@ export default function AccountingPayablesTableComponent({ loading, bills }) { : bills; return ( -
+ + + + + } + > { - return ( -
- - -
- ); - }} dataSource={dataSource} pagination={{ position: "top", pageSize: 50 }} columns={columns} @@ -185,6 +183,6 @@ export default function AccountingPayablesTableComponent({ loading, bills }) { type: "checkbox", }} /> - + ); } diff --git a/client/src/components/accounting-payments-table/accounting-payments-table.component.jsx b/client/src/components/accounting-payments-table/accounting-payments-table.component.jsx index eb94392cd..1d2ac0bfa 100644 --- a/client/src/components/accounting-payments-table/accounting-payments-table.component.jsx +++ b/client/src/components/accounting-payments-table/accounting-payments-table.component.jsx @@ -1,4 +1,4 @@ -import { Input, Table } from "antd"; +import { Card, Input, Space, Table } from "antd"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; @@ -123,13 +123,11 @@ export default function AccountingPayablesTableComponent({ sorter: (a, b) => a.clm_total - b.clm_total, render: (text, record) => ( -
- -
+ ), }, ]; @@ -152,28 +150,26 @@ export default function AccountingPayablesTableComponent({ : payments; return ( -
+ + + + + } + >
{ - return ( -
- - -
- ); - }} dataSource={dataSource} pagination={{ position: "top", pageSize: 50 }} columns={columns} @@ -192,6 +188,6 @@ export default function AccountingPayablesTableComponent({ type: "checkbox", }} /> - + ); } diff --git a/client/src/components/accounting-receivables-table/accounting-receivables-table.component.jsx b/client/src/components/accounting-receivables-table/accounting-receivables-table.component.jsx index 0ae5ccea3..0f1b9310b 100644 --- a/client/src/components/accounting-receivables-table/accounting-receivables-table.component.jsx +++ b/client/src/components/accounting-receivables-table/accounting-receivables-table.component.jsx @@ -1,4 +1,4 @@ -import { Button, Input, Table } from "antd"; +import { Button, Card, Input, Space, Table } from "antd"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; @@ -121,7 +121,7 @@ export default function AccountingReceivablesTableComponent({ loading, jobs }) { sorter: (a, b) => a.clm_total - b.clm_total, render: (text, record) => ( -
+ -
+ ), }, ]; @@ -166,28 +166,26 @@ export default function AccountingReceivablesTableComponent({ loading, jobs }) { : jobs; return ( -
+ + + + + } + >
{ - return ( -
- - -
- ); - }} dataSource={dataSource} pagination={{ position: "top" }} columns={columns} @@ -206,6 +204,6 @@ export default function AccountingReceivablesTableComponent({ loading, jobs }) { type: "checkbox", }} /> - + ); } diff --git a/client/src/components/email-overlay/email-overlay.component.jsx b/client/src/components/email-overlay/email-overlay.component.jsx index 2f7d18192..ff229cccf 100644 --- a/client/src/components/email-overlay/email-overlay.component.jsx +++ b/client/src/components/email-overlay/email-overlay.component.jsx @@ -1,6 +1,5 @@ import { UploadOutlined } from "@ant-design/icons"; -import { Editor } from "@tinymce/tinymce-react"; -import { Button, Card, Input, Select, Upload } from "antd"; +import { Button, Card, Divider, Input, Select, Upload } from "antd"; import React from "react"; import { useTranslation } from "react-i18next"; @@ -38,29 +37,19 @@ export default function EmailOverlayComponent({ onChange={(e) => handleConfigChange("subject", e.target.value)} name="subject" /> -
- DEVELOPER NOTE: Any edits made in the editor below will not be sent or - saved due to css inlining issues. -
- {t("emails.labels.preview")} +
+ + {t("emails.labels.preview")} + + + + { + search.search = value; + history.push({ search: queryString.stringify(search) }); + }} + enterButton + /> + + } + >
{ - return ( -
- - { - search.search = value; - history.push({ search: queryString.stringify(search) }); - }} - enterButton - /> -
- ); - }} /> - + ); } diff --git a/client/src/components/print-center-item/print-center-item.component.jsx b/client/src/components/print-center-item/print-center-item.component.jsx index 89c395980..b592f8c41 100644 --- a/client/src/components/print-center-item/print-center-item.component.jsx +++ b/client/src/components/print-center-item/print-center-item.component.jsx @@ -1,5 +1,5 @@ import { MailOutlined, PrinterOutlined } from "@ant-design/icons"; -import { Spin } from "antd"; +import { Space, Spin } from "antd"; import React, { useState } from "react"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; @@ -40,22 +40,24 @@ export function PrintCenterItemComponent({ if (disabled) return
  • {item.title}
  • ; return ( -
  • - {item.title} - - { - GenerateDocument( - { - name: item.key, - variables: { id: id }, - }, - { to: context.job && context.job.ownr_ea, subject: item.subject }, - "e" - ); - }} - /> - {loading && } +
  • + + {item.title} + + { + GenerateDocument( + { + name: item.key, + variables: { id: id }, + }, + { to: context.job && context.job.ownr_ea, subject: item.subject }, + "e" + ); + }} + /> + {loading && } +
  • ); } diff --git a/client/src/components/print-center-jobs/print-center-jobs.component.jsx b/client/src/components/print-center-jobs/print-center-jobs.component.jsx index 83f04819a..2422934aa 100644 --- a/client/src/components/print-center-jobs/print-center-jobs.component.jsx +++ b/client/src/components/print-center-jobs/print-center-jobs.component.jsx @@ -1,6 +1,6 @@ -import { Col, Collapse, Row } from "antd"; -import React from "react"; -import { useTranslation } from "react-i18next"; +import { Card, Col, Input, Row, Typography } from "antd"; +import _ from "lodash"; +import React, { useState } from "react"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { selectPrintCenter } from "../../redux/modals/modals.selectors"; @@ -8,45 +8,74 @@ import { TemplateList } from "../../utils/TemplateConstants"; import Jobd3RdPartyModal from "../job-3rd-party-modal/job-3rd-party-modal.component"; import PrintCenterItem from "../print-center-item/print-center-item.component"; import PrintCenterSpeedPrint from "../print-center-speed-print/print-center-speed-print.component"; - +import { useTranslation } from "react-i18next"; const mapStateToProps = createStructuredSelector({ printCenterModal: selectPrintCenter, }); const mapDispatchToProps = (dispatch) => ({}); -const colSpan = { md: { span: 24 }, lg: { span: 12 } }; - export function PrintCenterJobsComponent({ printCenterModal }) { - const { t } = useTranslation(); + const [search, setSearch] = useState(""); const { id: jobId } = printCenterModal.context; const tempList = TemplateList("job", {}); + const { t } = useTranslation(); const JobsReportsList = Object.keys(tempList).map((key) => { return tempList[key]; }); + const filteredJobsReportsList = + search !== "" + ? JobsReportsList.filter((r) => r.title.toLowerCase().includes(search)) + : JobsReportsList; + + //Group it, create cards, and then filter out. + + const grouped = _.groupBy(filteredJobsReportsList, "group"); + console.log("grouped :>> ", grouped); + return (
    -
    + - - - -
      - {JobsReportsList.map((item) => ( - - ))} -
    -
    - -
    + + setSearch(e.target.value)} + value={search} + /> + } + > + + {Object.keys(grouped).map((key) => ( + + + + {t(`printcenter.labels.groups.${key}`)} + +
      + {grouped[key].map((item) => ( + + ))} +
    +
    + + ))} + + + diff --git a/client/src/components/print-center-modal/print-center-modal.styles.scss b/client/src/components/print-center-modal/print-center-modal.styles.scss index 0303e1da3..73ff334d9 100644 --- a/client/src/components/print-center-modal/print-center-modal.styles.scss +++ b/client/src/components/print-center-modal/print-center-modal.styles.scss @@ -1,3 +1,7 @@ -.print-center-item > * { - padding: 0em 8px; +.print-center-list { + ul { + list-style-type: none; + margin: 0; + padding: 0; + } } diff --git a/client/src/components/print-center-speed-print/print-center-speed-print.component.jsx b/client/src/components/print-center-speed-print/print-center-speed-print.component.jsx index 090faee38..e2f6eadac 100644 --- a/client/src/components/print-center-speed-print/print-center-speed-print.component.jsx +++ b/client/src/components/print-center-speed-print/print-center-speed-print.component.jsx @@ -1,4 +1,4 @@ -import { Button, List, Typography } from "antd"; +import { Button, List, PageHeader } from "antd"; import React, { useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; @@ -33,9 +33,7 @@ export function PrintCenterSpeedPrint({ bodyshop, jobId }) { return (
    - - {t("printcenter.labels.speedprint")} - + -
    - - - -
    - + +
    + + - - + + + } + /> + + + + + + ); } diff --git a/client/src/components/schedule-calendar/schedule-calendar.container.jsx b/client/src/components/schedule-calendar/schedule-calendar.container.jsx index cd5fe2a43..c34229564 100644 --- a/client/src/components/schedule-calendar/schedule-calendar.container.jsx +++ b/client/src/components/schedule-calendar/schedule-calendar.container.jsx @@ -50,7 +50,7 @@ export function ScheduleCalendarContainer({ calculateScheduleLoad }) { return ( ); } diff --git a/client/src/components/schedule-production-list/schedule-production-list.component.jsx b/client/src/components/schedule-production-list/schedule-production-list.component.jsx index 04f21b71a..f7946459a 100644 --- a/client/src/components/schedule-production-list/schedule-production-list.component.jsx +++ b/client/src/components/schedule-production-list/schedule-production-list.component.jsx @@ -1,5 +1,5 @@ import { DownOutlined } from "@ant-design/icons"; -import { Card, Popover } from "antd"; +import { Button, Card, Popover } from "antd"; import React from "react"; import { useLazyQuery } from "@apollo/client"; import { useTranslation } from "react-i18next"; @@ -63,10 +63,10 @@ export default function ScheduleProductionList() { return ( - callQuery()}> + ); } diff --git a/client/src/components/tech-job-clock-out-button/tech-job-clock-out-button.component.jsx b/client/src/components/tech-job-clock-out-button/tech-job-clock-out-button.component.jsx index 2ebbf2b14..e3d9934ec 100644 --- a/client/src/components/tech-job-clock-out-button/tech-job-clock-out-button.component.jsx +++ b/client/src/components/tech-job-clock-out-button/tech-job-clock-out-button.component.jsx @@ -30,7 +30,9 @@ export function TechClockOffButton({ const [form] = Form.useForm(); const { t } = useTranslation(); - const emps = bodyshop.employees.filter((e) => e.id === technician.id)[0]; + const emps = bodyshop.employees.filter( + (e) => e.id === technician && technician.id + )[0]; const handleFinish = async (values) => { logImEXEvent("tech_clock_out_job"); diff --git a/client/src/components/ticket-tickets-dates-selector/time-tickets-dates-selector.component.jsx b/client/src/components/ticket-tickets-dates-selector/time-tickets-dates-selector.component.jsx index 66afbda58..b7a5ac44b 100644 --- a/client/src/components/ticket-tickets-dates-selector/time-tickets-dates-selector.component.jsx +++ b/client/src/components/ticket-tickets-dates-selector/time-tickets-dates-selector.component.jsx @@ -38,6 +38,7 @@ export default function TimeTicketsDatesSelector() { start ? moment(start) : moment().startOf("week").subtract(7, "days"), end ? moment(end) : moment().endOf("week"), ]} + format="MM/DD/YYYY" ranges={DatePickerRanges} onCalendarChange={handleChange} /> diff --git a/client/src/components/time-ticket-list/time-ticket-list.component.jsx b/client/src/components/time-ticket-list/time-ticket-list.component.jsx index 7ae227d42..e3421b112 100644 --- a/client/src/components/time-ticket-list/time-ticket-list.component.jsx +++ b/client/src/components/time-ticket-list/time-ticket-list.component.jsx @@ -16,6 +16,7 @@ export default function TimeTicketList({ refetch, techConsole, jobId, + extra, }) { const [state, setState] = useState({ sortedInfo: {}, @@ -200,15 +201,18 @@ export default function TimeTicketList({ - {t("timetickets.actions.enter")} - - )) + + {jobId && + (techConsole ? null : ( + + {t("timetickets.actions.enter")} + + ))} + {extra} + } >
    { - GenerateDocument( - { - name: TemplateList().timetickets_employee.key, - variables: { id: empId, start: startDate, end: endDate }, - }, - {}, - "p" - ); - }; - return ( -
    - - {t("timetickets.labels.jobhours")} - - } - itemLayout="horizontal" - //dataSource={jobTickets} - > - {jobTickets.map((item, idx) => { - const employeeCostCenters = item.tickets - .map((i) => i.cost_center) - .filter(onlyUnique); - - return employeeCostCenters.map((costCenter) => { - const actHrs = item.tickets - .filter((ticket) => ticket.cost_center === costCenter) - .reduce((acc, val) => acc + val.actualhrs, 0); - - const prodHrs = item.tickets - .filter((ticket) => ticket.cost_center === costCenter) - .reduce((acc, val) => acc + val.productivehrs, 0); - - const clockHrs = item.tickets - .filter((ticket) => ticket.cost_center === costCenter) - .reduce((acc, val) => { - if (!!val.clockoff && !!val.clockon) - return ( - acc + - moment(val.clockoff).diff( - moment(val.clockon), - "hours", - true - ) - ); - return acc; - }, 0); - - return ( - handlePrintEmployeeTicket(item.employee.id)} - > - {t("timetickets.actions.printemployee")} - , - ]} - > - - - - - - - - - - - ); - }); - })} - - - {t("timetickets.labels.clockhours")} - - } - itemLayout="horizontal" - dataSource={shiftTickets} - renderItem={(item) => { - const clockHrs = item.tickets.reduce((acc, val) => { - if (!!val.clockoff && !!val.clockon) - return ( - acc + - moment(val.clockoff).diff(moment(val.clockon), "hours", true) - ); - return acc; - }, 0); - - return ( - handlePrintEmployeeTicket(item.employee.id)} - > - {t("timetickets.actions.printemployee")} - , - ]} - > - - - - - - ); - }} - /> -
    + + + + + + + + ); } export default connect( mapStateToProps, mapDispatchToProps )(TimeTicketsSummaryEmployees); + +const JobRelatedTicketsTable = ({ + loading, + jobTickets, + startDate, + endDate, +}) => { + const Templates = TemplateList(); + const { t } = useTranslation(); + const [state, setState] = useState({ + sortedInfo: {}, + }); + const data = useMemo(() => { + return _.flatten( + jobTickets.map((item, idx) => { + const employeeCostCenters = item.tickets + .map((i) => i.cost_center) + .filter(onlyUnique); + + return employeeCostCenters.map((costCenter) => { + const actHrs = item.tickets + .filter((ticket) => ticket.cost_center === costCenter) + .reduce((acc, val) => acc + val.actualhrs, 0); + + const prodHrs = item.tickets + .filter((ticket) => ticket.cost_center === costCenter) + .reduce((acc, val) => acc + val.productivehrs, 0); + + const clockHrs = item.tickets + .filter((ticket) => ticket.cost_center === costCenter) + .reduce((acc, val) => { + if (!!val.clockoff && !!val.clockon) + return ( + acc + + moment(val.clockoff).diff(moment(val.clockon), "hours", true) + ); + return acc; + }, 0); + + return { + id: `${item.jobKey}${costCenter}`, + item, + actHrs, + prodHrs, + clockHrs, + }; + }); + }) + ); + }, [jobTickets]); + + const columns = [ + { + title: t("bills.fields.vendorname"), + dataIndex: "empname", + key: "empname", + sorter: (a, b) => alphaSort(a.empname, b.empname), + sortOrder: + state.sortedInfo.columnKey === "empname" && state.sortedInfo.order, + render: (text, record) => + `${record.item.employee.first_name} ${record.item.employee.last_name}`, + }, + { + title: t("timetickets.fields.actualhrs"), + dataIndex: "actHrs", + key: "actHrs", + sorter: (a, b) => a.actHrs - b.actHrs, + sortOrder: + state.sortedInfo.columnKey === "actHrs" && state.sortedInfo.order, + }, + { + title: t("timetickets.fields.productivehrs"), + dataIndex: "prodHrs", + key: "prodHrs", + sorter: (a, b) => a.prodHrs - b.prodHrs, + sortOrder: + state.sortedInfo.columnKey === "prodHrs" && state.sortedInfo.order, + }, + { + title: t("timetickets.fields.efficiency"), + dataIndex: "total", + key: "total", + sorter: (a, b) => a.total - b.total, + sortOrder: + state.sortedInfo.columnKey === "total" && state.sortedInfo.order, + render: (text, record) => + record.actHrs === 0 || !record.actHrs + ? "∞" + : (record.prodHrs / record.actHrs) * 100, + }, + { + title: t("timetickets.fields.clockhours"), + dataIndex: "clockHrs", + key: "clockHrs", + sorter: (a, b) => a.clockHrs - b.clockHrs, + sortOrder: + state.sortedInfo.columnKey === "clockHrs" && state.sortedInfo.order, + render: (text, record) => record.clockHrs.toFixed(2), + }, + { + title: t("general.labels.actions"), + dataIndex: "actions", + key: "actions", + render: (text, record) => ( + + ), + }, + ]; + + const handleTableChange = (pagination, filters, sorter) => { + setState({ ...state, filteredInfo: filters, sortedInfo: sorter }); + }; + + return ( + +
    + + ); +}; + +const ShiftRelatedTicketsTable = ({ + loading, + shiftTickets, + startDate, + endDate, +}) => { + const Templates = TemplateList(); + const { t } = useTranslation(); + const [state, setState] = useState({ + sortedInfo: {}, + }); + const data = useMemo(() => { + return shiftTickets.map((item) => { + const clockHrs = item.tickets.reduce((acc, val) => { + if (!!val.clockoff && !!val.clockon) + return ( + acc + moment(val.clockoff).diff(moment(val.clockon), "hours", true) + ); + return acc; + }, 0); + + return { id: item.employee.id, item, clockHrs }; + }); + }, [shiftTickets]); + + const columns = [ + { + title: t("bills.fields.vendorname"), + dataIndex: "empname", + key: "empname", + sorter: (a, b) => alphaSort(a.empname, b.empname), + sortOrder: + state.sortedInfo.columnKey === "empname" && state.sortedInfo.order, + render: (text, record) => + `${record.item.employee.first_name} ${record.item.employee.last_name}`, + }, + + { + title: t("timetickets.fields.clockhours"), + dataIndex: "clockHrs", + key: "clockHrs", + sorter: (a, b) => a.clockHrs - b.clockHrs, + sortOrder: + state.sortedInfo.columnKey === "clockHrs" && state.sortedInfo.order, + render: (text, record) => record.clockHrs.toFixed(2), + }, + { + title: t("general.labels.actions"), + dataIndex: "actions", + key: "actions", + render: (text, record) => ( + + ), + }, + ]; + + const handleTableChange = (pagination, filters, sorter) => { + setState({ ...state, filteredInfo: filters, sortedInfo: sorter }); + }; + + return ( + +
    + + ); +}; diff --git a/client/src/components/time-tickets-summary/time-tickets-summary.component.jsx b/client/src/components/time-tickets-summary/time-tickets-summary.component.jsx deleted file mode 100644 index 766df4c39..000000000 --- a/client/src/components/time-tickets-summary/time-tickets-summary.component.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import TimeTicketsSummaryEmployees from "../time-tickets-summary-employees/time-tickets-summary-employees.component"; - -export default function TimeTicketsSummary({ - loading, - timetickets, - startDate, - endDate, -}) { - return ( -
    - -
    - ); -} diff --git a/client/src/pages/payments-all/payments-all.container.page.jsx b/client/src/pages/payments-all/payments-all.container.page.jsx index fc4a41343..e71833d3b 100644 --- a/client/src/pages/payments-all/payments-all.container.page.jsx +++ b/client/src/pages/payments-all/payments-all.container.page.jsx @@ -60,15 +60,13 @@ export function AllJobs({ bodyshop, setBreadcrumbs, setSelectedHeader }) { if (error) return ; return ( -
    - -
    +
    ); } diff --git a/client/src/pages/time-tickets/time-tickets.container.jsx b/client/src/pages/time-tickets/time-tickets.container.jsx index 19b7c0f7c..9c12460e4 100644 --- a/client/src/pages/time-tickets/time-tickets.container.jsx +++ b/client/src/pages/time-tickets/time-tickets.container.jsx @@ -1,4 +1,5 @@ import { useQuery } from "@apollo/client"; +import { Col, Row } from "antd"; import moment from "moment"; import queryString from "query-string"; import React, { useEffect } from "react"; @@ -10,7 +11,7 @@ import AlertComponent from "../../components/alert/alert.component"; import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component"; import TimeTicketsDatesSelector from "../../components/ticket-tickets-dates-selector/time-tickets-dates-selector.component"; import TimeTicketList from "../../components/time-ticket-list/time-ticket-list.component"; -import TimeTicketsSummary from "../../components/time-tickets-summary/time-tickets-summary.component"; +import TimeTicketsSummaryEmployees from "../../components/time-tickets-summary-employees/time-tickets-summary-employees.component"; import { QUERY_TIME_TICKETS_IN_RANGE } from "../../graphql/timetickets.queries"; import { setBreadcrumbs, @@ -60,20 +61,23 @@ export function TimeTicketsContainer({ return ( -
    - - - - -
    + +
    + } + /> + + + + + ); } diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 1168f070f..31f75e069 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -671,7 +671,8 @@ "notsent": "Email not sent. Error encountered while sending {{message}}" }, "labels": { - "attachments": "Attachments" + "attachments": "Attachments", + "preview": "Email Preview" }, "successes": { "sent": "Email sent successfully." @@ -999,12 +1000,12 @@ "employee_body": "Body", "employee_prep": "Prep", "employee_refinish": "Refinish", - "est_addr1": "Appraiser Address", - "est_co_nm": "Appraiser Company", - "est_ct_fn": "Appraiser First Name", - "est_ct_ln": "Appraiser Last Name", - "est_ea": "Appraiser Email", - "est_ph1": "Appraiser Phone #", + "est_addr1": "Estimator Address", + "est_co_nm": "Estimator Company", + "est_ct_fn": "Estimator First Name", + "est_ct_ln": "Estimator Last Name", + "est_ea": "Estimator Email", + "est_ph1": "Estimator Phone #", "federal_tax_payable": "Federal Tax Payable", "federal_tax_rate": "Federal Tax Rate", "ins_addr1": "Insurance Co. Address", @@ -1137,7 +1138,7 @@ }, "forms": { "admindates": "Administrative Dates", - "appraiserinfo": "Appraiser Info", + "appraiserinfo": "Estimator Info", "claiminfo": "Claim Information", "estdates": "Estimate Dates", "laborrates": "Labor Rates", @@ -1585,6 +1586,7 @@ "casl_authorization": "CASL Authorization", "coversheet_landscape": "Coversheet (Landscape)", "coversheet_portrait": "Coversheet Portrait", + "csi_invitation": "CSI Invitation", "diagnostic_authorization": "Diagnostic Authorization", "estimate": "Estimate Only", "estimate_detail": "Estimate Details", @@ -1620,6 +1622,14 @@ "worksheet_sorted_by_operation_part_type": "Worksheet by Operation & Part Type" }, "labels": { + "groups": { + "authorization": "Authorization", + "financial": "Financial", + "post": "Post-Production", + "pre": "Pre-Production", + "ro": "Repair Order", + "worksheet": "Worksheets" + }, "misc": "Miscellaneous Documents", "repairorder": "Repair Order Related", "reportcentermodal": "Report Center", @@ -1687,6 +1697,8 @@ "vendor": "Vendor" }, "templates": { + "estimator_detail": "Jobs by Estimator (Detail)", + "estimator_summary": "Jobs by Estimator (Summary)", "hours_sold_detail_closed": "Hours Sold Detail - Closed", "hours_sold_detail_closed_source": "Hours Sold Detail - Closed by Source", "hours_sold_detail_open": "Hours Sold Detail - Open", diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 53d5ea7dd..63d1e8887 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -671,7 +671,8 @@ "notsent": "Correo electrónico no enviado Se encontró un error al enviar {{message}}" }, "labels": { - "attachments": "" + "attachments": "", + "preview": "" }, "successes": { "sent": "Correo electrónico enviado con éxito." @@ -1585,6 +1586,7 @@ "casl_authorization": "", "coversheet_landscape": "", "coversheet_portrait": "", + "csi_invitation": "", "diagnostic_authorization": "", "estimate": "", "estimate_detail": "", @@ -1620,6 +1622,14 @@ "worksheet_sorted_by_operation_part_type": "" }, "labels": { + "groups": { + "authorization": "", + "financial": "", + "post": "", + "pre": "", + "ro": "", + "worksheet": "" + }, "misc": "", "repairorder": "", "reportcentermodal": "", @@ -1687,6 +1697,8 @@ "vendor": "" }, "templates": { + "estimator_detail": "", + "estimator_summary": "", "hours_sold_detail_closed": "", "hours_sold_detail_closed_source": "", "hours_sold_detail_open": "", diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index 1f21fe26d..2684ce231 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -671,7 +671,8 @@ "notsent": "Courriel non envoyé. Erreur rencontrée lors de l'envoi de {{message}}" }, "labels": { - "attachments": "" + "attachments": "", + "preview": "" }, "successes": { "sent": "E-mail envoyé avec succès." @@ -1585,6 +1586,7 @@ "casl_authorization": "", "coversheet_landscape": "", "coversheet_portrait": "", + "csi_invitation": "", "diagnostic_authorization": "", "estimate": "", "estimate_detail": "", @@ -1620,6 +1622,14 @@ "worksheet_sorted_by_operation_part_type": "" }, "labels": { + "groups": { + "authorization": "", + "financial": "", + "post": "", + "pre": "", + "ro": "", + "worksheet": "" + }, "misc": "", "repairorder": "", "reportcentermodal": "", @@ -1687,6 +1697,8 @@ "vendor": "" }, "templates": { + "estimator_detail": "", + "estimator_summary": "", "hours_sold_detail_closed": "", "hours_sold_detail_closed_source": "", "hours_sold_detail_open": "", diff --git a/client/src/utils/TemplateConstants.js b/client/src/utils/TemplateConstants.js index 6a52f1810..6ba044339 100644 --- a/client/src/utils/TemplateConstants.js +++ b/client/src/utils/TemplateConstants.js @@ -18,6 +18,7 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.casl_authorization"), key: "casl_authorization", disabled: false, + group: "authorization", }, diagnostic_authorization: { title: i18n.t("printcenter.jobs.diagnostic_authorization"), @@ -25,34 +26,7 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.diagnostic_authorization"), key: "diagnostic_authorization", disabled: false, - }, - job_notes: { - title: i18n.t("printcenter.jobs.job_notes"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.job_notes"), - key: "job_notes", - disabled: false, - }, - ro_with_description: { - title: i18n.t("printcenter.jobs.ro_with_description"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.ro_with_description"), - key: "ro_with_description", - disabled: false, - }, - window_tag: { - title: i18n.t("printcenter.jobs.window_tag"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.window_tag"), - key: "window_tag", - disabled: false, - }, - payments_by_job: { - title: i18n.t("printcenter.jobs.payments_by_job"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.payments_by_job"), - key: "payments_by_job", - disabled: false, + group: "authorization", }, appointment_reminder: { title: i18n.t("printcenter.jobs.appointment_reminder"), @@ -60,6 +34,112 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.appointment_reminder"), key: "appointment_reminder", disabled: false, + group: "pre", + }, + estimate_followup: { + title: i18n.t("printcenter.jobs.estimate_followup"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.estimate_followup"), + key: "estimate_followup", + disabled: false, + group: "pre", + }, + express_repair_checklist: { + title: i18n.t("printcenter.jobs.express_repair_checklist"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.express_repair_checklist"), + key: "express_repair_checklist", + disabled: false, + group: "pre", + }, + glass_express_checklist: { + title: i18n.t("printcenter.jobs.glass_express_checklist"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.glass_express_checklist"), + key: "glass_express_checklist", + disabled: false, + group: "pre", + }, + vehicle_check_in: { + title: i18n.t("printcenter.jobs.vehicle_check_in"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.vehicle_check_in"), + key: "vehicle_check_in", + disabled: false, + group: "pre", + }, + parts_order_history: { + title: i18n.t("printcenter.jobs.parts_order_history"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.parts_order_history"), + key: "parts_order_history", + disabled: false, + group: "ro", + }, + + job_notes: { + title: i18n.t("printcenter.jobs.job_notes"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.job_notes"), + key: "job_notes", + disabled: false, + group: "ro", + }, + ro_with_description: { + title: i18n.t("printcenter.jobs.ro_with_description"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.ro_with_description"), + key: "ro_with_description", + disabled: false, + group: "ro", + }, + window_tag: { + title: i18n.t("printcenter.jobs.window_tag"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.window_tag"), + key: "window_tag", + disabled: false, + group: "ro", + }, + supplement_request: { + title: i18n.t("printcenter.jobs.supplement_request"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.supplement_request"), + key: "supplement_request", + disabled: false, + group: "ro", + }, + estimate: { + title: i18n.t("printcenter.jobs.estimate"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.estimate"), + key: "estimate", + disabled: false, + group: "ro", + }, + parts_list: { + title: i18n.t("printcenter.jobs.parts_list"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.parts_list"), + key: "parts_list", + disabled: false, + group: "ro", + }, + coversheet_portrait: { + title: i18n.t("printcenter.jobs.coversheet_portrait"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.coversheet_portrait"), + key: "coversheet_portrait", + disabled: false, + group: "ro", + }, + coversheet_landscape: { + title: i18n.t("printcenter.jobs.coversheet_landscape"), + description: "All Jobs Notes", + subject: i18n.t("printcenter.jobs.coversheet_landscape"), + key: "coversheet_landscape", + disabled: false, + group: "ro", }, worksheet_by_line_number: { title: i18n.t("printcenter.jobs.worksheet_by_line_number"), @@ -67,6 +147,7 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.worksheet_by_line_number"), key: "worksheet_by_line_number", disabled: false, + group: "worksheet", }, worksheet_sorted_by_operation: { title: i18n.t("printcenter.jobs.worksheet_sorted_by_operation"), @@ -74,6 +155,7 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.worksheet_sorted_by_operation"), key: "worksheet_sorted_by_operation", disabled: false, + group: "worksheet", }, worksheet_sorted_by_operation_no_hours: { title: i18n.t( @@ -85,6 +167,7 @@ export const TemplateList = (type, context) => { ), key: "worksheet_sorted_by_operation_no_hours", disabled: false, + group: "worksheet", }, worksheet_sorted_by_operation_part_type: { title: i18n.t( @@ -96,13 +179,15 @@ export const TemplateList = (type, context) => { ), key: "worksheet_sorted_by_operation_part_type", disabled: false, + group: "worksheet", }, - supplement_request: { - title: i18n.t("printcenter.jobs.supplement_request"), + payments_by_job: { + title: i18n.t("printcenter.jobs.payments_by_job"), description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.supplement_request"), - key: "supplement_request", + subject: i18n.t("printcenter.jobs.payments_by_job"), + key: "payments_by_job", disabled: false, + group: "financial", }, final_invoice: { title: i18n.t("printcenter.jobs.final_invoice"), @@ -110,6 +195,7 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.final_invoice"), key: "final_invoice", disabled: false, + group: "financial", }, payment_request: { title: i18n.t("printcenter.jobs.payment_request"), @@ -117,6 +203,7 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.payment_request"), key: "payment_request", disabled: false, + group: "financial", }, invoice_total_payable: { title: i18n.t("printcenter.jobs.invoice_total_payable"), @@ -124,6 +211,7 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.invoice_total_payable"), key: "invoice_total_payable", disabled: false, + group: "financial", }, invoice_customer_payable: { title: i18n.t("printcenter.jobs.invoice_customer_payable"), @@ -131,55 +219,16 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.invoice_customer_payable"), key: "invoice_customer_payable", disabled: false, + group: "financial", }, - parts_order_history: { - title: i18n.t("printcenter.jobs.parts_order_history"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.parts_order_history"), - key: "parts_order_history", - disabled: false, - }, - glass_express_checklist: { - title: i18n.t("printcenter.jobs.glass_express_checklist"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.glass_express_checklist"), - key: "glass_express_checklist", - disabled: false, - }, - estimate: { - title: i18n.t("printcenter.jobs.estimate"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.estimate"), - key: "estimate", - disabled: false, - }, - parts_list: { - title: i18n.t("printcenter.jobs.parts_list"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.parts_list"), - key: "parts_list", - disabled: false, - }, - coversheet_portrait: { - title: i18n.t("printcenter.jobs.coversheet_portrait"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.coversheet_portrait"), - key: "coversheet_portrait", - disabled: false, - }, - coversheet_landscape: { - title: i18n.t("printcenter.jobs.coversheet_landscape"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.coversheet_landscape"), - key: "coversheet_landscape", - disabled: false, - }, + filing_coversheet_portrait: { title: i18n.t("printcenter.jobs.filing_coversheet_portrait"), description: "All Jobs Notes", subject: i18n.t("printcenter.jobs.filing_coversheet_portrait"), key: "filing_coversheet_portrait", disabled: false, + group: "post", }, qc_sheet: { title: i18n.t("printcenter.jobs.qc_sheet"), @@ -187,41 +236,25 @@ export const TemplateList = (type, context) => { subject: i18n.t("printcenter.jobs.qc_sheet"), key: "qc_sheet", disabled: false, + group: "post", }, - estimate_followup: { - title: i18n.t("printcenter.jobs.estimate_followup"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.estimate_followup"), - key: "estimate_followup", - disabled: false, - }, + vehicle_delivery_check: { title: i18n.t("printcenter.jobs.vehicle_delivery_check"), description: "All Jobs Notes", subject: i18n.t("printcenter.jobs.vehicle_delivery_check"), key: "vehicle_delivery_check", disabled: false, + group: "post", }, - express_repair_checklist: { - title: i18n.t("printcenter.jobs.express_repair_checklist"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.express_repair_checklist"), - key: "express_repair_checklist", - disabled: false, - }, + guarantee: { title: i18n.t("printcenter.jobs.guarantee"), description: "All Jobs Notes", subject: i18n.t("printcenter.jobs.guarantee"), key: "guarantee", disabled: false, - }, - vehicle_check_in: { - title: i18n.t("printcenter.jobs.vehicle_check_in"), - description: "All Jobs Notes", - subject: i18n.t("printcenter.jobs.vehicle_check_in"), - key: "vehicle_check_in", - disabled: false, + group: "post", }, } : {}), @@ -462,6 +495,22 @@ export const TemplateList = (type, context) => { //idtype: "vendor", disabled: false, }, + estimator_detail: { + title: i18n.t("reportcenter.templates.estimator_detail"), + description: "", + subject: i18n.t("reportcenter.templates.estimator_detail"), + key: "estimator_detail", + //idtype: "vendor", + disabled: false, + }, + estimator_summary: { + title: i18n.t("reportcenter.templates.estimator_summary"), + description: "", + subject: i18n.t("reportcenter.templates.estimator_summary"), + key: "estimator_summary", + //idtype: "vendor", + disabled: false, + }, } : {}), ...(!type || type === "courtesycarcontract" diff --git a/client/yarn.lock b/client/yarn.lock index 07cec907e..d6e8aa390 100644 --- a/client/yarn.lock +++ b/client/yarn.lock @@ -2178,14 +2178,6 @@ prop-types "^15.7.2" react-use "^17.2.1" -"@tinymce/tinymce-react@^3.10.3": - version "3.12.0" - resolved "https://registry.yarnpkg.com/@tinymce/tinymce-react/-/tinymce-react-3.12.0.tgz#165f197011b0fef3178f82168735e18ee28bd38a" - integrity sha512-Mi/nOsJ8CAVlcX+6YuvSvlFzJ2/n9rZ4iDrU2WX2u1wBTugHvKGca26JGEIT5wKRlfXGv49ymriWQz7w00v0NA== - dependencies: - prop-types "^15.6.2" - tinymce "^5.7.1" - "@types/anymatch@*": version "1.3.1" resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" @@ -12852,11 +12844,6 @@ tinycolor2@^1.4.1: resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== -tinymce@^5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/tinymce/-/tinymce-5.7.1.tgz#658a6fb4c7d53a8496cc00f8da33f4b8290da06d" - integrity sha512-1gY8RClc734srSlkYwY0MQzmkS1j73PuPC+nYtNtrrQVPY9VNcZ4bOiRwzTbdjPPD8GOtv6BAk8Ww/H2RiqKpA== - tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" diff --git a/package-lock.json b/package-lock.json index 8ee2eaa28..29265dc0d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "phone": "^2.4.20", "stripe": "^8.137.0", "twilio": "^3.56.0", - "xmlbuilder": "^15.1.1" + "xmlbuilder2": "^2.4.0" }, "devDependencies": { "concurrently": "^6.0.0", @@ -332,9 +332,9 @@ } }, "node_modules/@google-cloud/storage": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.8.2.tgz", - "integrity": "sha512-R4MOLHhIbsQUqfQufV9QmYfxPE3TDJD+nwVOoN8mOKOx+XoVRm1ZoXaN5vwUMCBCHsDsgpWu7y9d6YvA+POXrg==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.8.3.tgz", + "integrity": "sha512-g++NTmpmwbZZEnBhJi3y1D3YyZ2Y+1xL5blp96eeJhffginMym5tRw/AGNZblDI35U2K1FTJEYqIZ31tbEzs8w==", "optional": true, "dependencies": { "@google-cloud/common": "^3.6.0", @@ -424,6 +424,50 @@ "resolved": "https://registry.npmjs.org/@jonkemp/package-utils/-/package-utils-1.0.7.tgz", "integrity": "sha512-OoK+K1RmhtS8SlORrlH7sW0CNdrnm0BxKNcv4pQIk6y6VORsHiX91gV3dh6XD2eS7J+iCXROcu5sGuH0tjmNEQ==" }, + "node_modules/@oozcitak/dom": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.8.tgz", + "integrity": "sha512-MoOnLBNsF+ok0HjpAvxYxR4piUhRDCEWK0ot3upwOOHYudJd30j6M+LNcE8RKpwfnclAX9T66nXXzkytd29XSw==", + "dependencies": { + "@oozcitak/infra": "1.0.8", + "@oozcitak/url": "1.0.4", + "@oozcitak/util": "8.3.8" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@oozcitak/infra": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz", + "integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==", + "dependencies": { + "@oozcitak/util": "8.3.8" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@oozcitak/url": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz", + "integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==", + "dependencies": { + "@oozcitak/infra": "1.0.8", + "@oozcitak/util": "8.3.8" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@oozcitak/util": { + "version": "8.3.8", + "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz", + "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==", + "engines": { + "node": ">=8.0" + } + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -572,9 +616,9 @@ "peer": true }, "node_modules/@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.0", @@ -739,7 +783,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } @@ -1327,9 +1370,9 @@ } }, "node_modules/cross-fetch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.2.tgz", - "integrity": "sha512-+JhD65rDNqLbGmB3Gzs3HrEKC0aQnD+XA3SY6RjgkF88jV2q5cTc5+CwxlS3sdmLk98gpPt5CF9XRnPdlxZe6w==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.3.tgz", + "integrity": "sha512-2i6v88DTqVBNODyjD9U6Ycn/uSZNvyHe25cIbo2fFnAACAsaLTJsd23miRWiR5NuiGXR9wpJ9d40/9WAhjDIrw==", "dependencies": { "node-fetch": "2.6.1" } @@ -1797,9 +1840,9 @@ } }, "node_modules/eslint": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", - "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz", + "integrity": "sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==", "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", @@ -2201,9 +2244,9 @@ } }, "node_modules/firebase-admin": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.5.0.tgz", - "integrity": "sha512-OPXFOTDcAE+NORpfhq7YMEDk+vFClBtjfpkrjm2JHRxb8DpMm+K3AcusonFPU/WOH4FhiVN9JHB0+NPE20S3gQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.6.0.tgz", + "integrity": "sha512-GNrxsQsZ6alz9u+uYmX84qcixxYQnfOrByxVgEHWiCI9JSCbMOQ/1Px2A6+Coz5zzFokTgXsHnIg+Qz7hMlNZg==", "dependencies": { "@firebase/database": "^0.8.1", "@firebase/database-types": "^0.6.1", @@ -2221,9 +2264,9 @@ } }, "node_modules/firebase-admin/node_modules/@types/node": { - "version": "10.17.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.55.tgz", - "integrity": "sha512-koZJ89uLZufDvToeWO5BrC4CR4OUfHnUz2qoPs/daQH6qq3IN62QFxCTZ+bKaCE0xaoCAJYE4AXre8AbghCrhg==" + "version": "10.17.56", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.56.tgz", + "integrity": "sha512-LuAa6t1t0Bfw4CuSR0UITsm1hP17YL+u82kfHGrHUWdhlBtH7sa7jGY5z7glGaIj/WDYDkRtgGd+KCjCzxBW1w==" }, "node_modules/flat-cache": { "version": "3.0.4", @@ -2920,6 +2963,21 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "node_modules/is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-core-module": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", @@ -2977,6 +3035,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -3000,6 +3070,18 @@ "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==", "optional": true }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -3291,6 +3373,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "optional": true }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", @@ -3376,6 +3464,12 @@ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, "node_modules/logform": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", @@ -3997,9 +4091,9 @@ } }, "node_modules/protobufjs/node_modules/@types/node": { - "version": "13.13.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.47.tgz", - "integrity": "sha512-R6851wTjN1YJza8ZIeX6puNBSi/ZULHVh4WVleA7q256l+cP2EtXnKbO455fTs2ytQk3dL9qkU+Wh8l/uROdKg==", + "version": "13.13.48", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz", + "integrity": "sha512-z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==", "optional": true }, "node_modules/proxy-addr": { @@ -4349,6 +4443,14 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/remote-content/node_modules/netmask": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.1.tgz", + "integrity": "sha512-gB8eG6ubxz67c7O2gaGiyWdRUIbH61q7anjgueDqCC9kvIs/b4CTtCMaQKeJbv1/Y7FT19I4zKwYmjnjInRQsg==", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/remote-content/node_modules/pac-proxy-agent": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", @@ -4369,13 +4471,13 @@ } }, "node_modules/remote-content/node_modules/pac-resolver": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.1.0.tgz", - "integrity": "sha512-d6lf2IrZJJ7ooVHr7BfwSjRO1yKSJMaiiWYSHcrxSIUtZrCa4KKGwcztdkZ/E9LFleJfjoi1yl+XLR7AX24nbQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz", + "integrity": "sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==", "dependencies": { "degenerator": "^2.2.0", "ip": "^1.1.5", - "netmask": "^1.0.6" + "netmask": "^2.0.1" }, "engines": { "node": ">= 6" @@ -4622,9 +4724,9 @@ "integrity": "sha1-NipCxtMEBW1JOz8SvOq7LGV2ptQ=" }, "node_modules/rxjs": { - "version": "6.6.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", - "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" @@ -4940,8 +5042,7 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "node_modules/stack-trace": { "version": "0.0.10", @@ -5056,9 +5157,9 @@ } }, "node_modules/stripe": { - "version": "8.139.0", - "resolved": "https://registry.npmjs.org/stripe/-/stripe-8.139.0.tgz", - "integrity": "sha512-3Lggs0mgy8gPzIDvLGYmx5ghQuTu+nvSUBCv9Di4FekvJ5iP7nenlrOk7A4cidF1nokamKm/bCIRYxIeDv5xYQ==", + "version": "8.141.0", + "resolved": "https://registry.npmjs.org/stripe/-/stripe-8.141.0.tgz", + "integrity": "sha512-CRGmx1WYENj16L37TujJg+KscGn8LbYbXqRCPdaepr7BzHIdAFJfQhNfdFkShW5Z9rbmo6mA2fiAOf1S3FIoSw==", "dependencies": { "@types/node": ">=8.1.0", "qs": "^6.6.0" @@ -5203,13 +5304,18 @@ } }, "node_modules/table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.9.tgz", + "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==", "dev": true, "dependencies": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", + "ajv": "^8.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.0" }, @@ -5218,9 +5324,9 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz", - "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.0.2.tgz", + "integrity": "sha512-V0HGxJd0PiDF0ecHYIesTOqfd1gJguwQUOYfMfAWnRsWQEXfc5ifbUFhD3Wjc+O+y7VAqL+g07prq9gHQ/JOZQ==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -5741,12 +5847,36 @@ "node": ">=8" } }, - "node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "node_modules/xmlbuilder2": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-2.4.0.tgz", + "integrity": "sha512-KrOVUGD65xTQ7ZA+GMQGdBSpe1Ufu5ylCQSYVk6QostySDkxPmAQ0WWIu7dR3JjLfVbF22RFQX7KyrZ6VTLcQg==", + "dependencies": { + "@oozcitak/dom": "1.15.8", + "@oozcitak/infra": "1.0.8", + "@oozcitak/util": "8.3.8", + "@types/node": "14.6.2", + "js-yaml": "3.14.0" + }, "engines": { - "node": ">=8.0" + "node": ">=10.0" + } + }, + "node_modules/xmlbuilder2/node_modules/@types/node": { + "version": "14.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz", + "integrity": "sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A==" + }, + "node_modules/xmlbuilder2/node_modules/js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/xregexp": { @@ -6053,9 +6183,9 @@ "optional": true }, "@google-cloud/storage": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.8.2.tgz", - "integrity": "sha512-R4MOLHhIbsQUqfQufV9QmYfxPE3TDJD+nwVOoN8mOKOx+XoVRm1ZoXaN5vwUMCBCHsDsgpWu7y9d6YvA+POXrg==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-5.8.3.tgz", + "integrity": "sha512-g++NTmpmwbZZEnBhJi3y1D3YyZ2Y+1xL5blp96eeJhffginMym5tRw/AGNZblDI35U2K1FTJEYqIZ31tbEzs8w==", "optional": true, "requires": { "@google-cloud/common": "^3.6.0", @@ -6132,6 +6262,38 @@ "resolved": "https://registry.npmjs.org/@jonkemp/package-utils/-/package-utils-1.0.7.tgz", "integrity": "sha512-OoK+K1RmhtS8SlORrlH7sW0CNdrnm0BxKNcv4pQIk6y6VORsHiX91gV3dh6XD2eS7J+iCXROcu5sGuH0tjmNEQ==" }, + "@oozcitak/dom": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.8.tgz", + "integrity": "sha512-MoOnLBNsF+ok0HjpAvxYxR4piUhRDCEWK0ot3upwOOHYudJd30j6M+LNcE8RKpwfnclAX9T66nXXzkytd29XSw==", + "requires": { + "@oozcitak/infra": "1.0.8", + "@oozcitak/url": "1.0.4", + "@oozcitak/util": "8.3.8" + } + }, + "@oozcitak/infra": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz", + "integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==", + "requires": { + "@oozcitak/util": "8.3.8" + } + }, + "@oozcitak/url": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz", + "integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==", + "requires": { + "@oozcitak/infra": "1.0.8", + "@oozcitak/util": "8.3.8" + } + }, + "@oozcitak/util": { + "version": "8.3.8", + "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz", + "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==" + }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -6277,9 +6439,9 @@ "peer": true }, "@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -6405,7 +6567,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -6885,9 +7046,9 @@ } }, "cross-fetch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.2.tgz", - "integrity": "sha512-+JhD65rDNqLbGmB3Gzs3HrEKC0aQnD+XA3SY6RjgkF88jV2q5cTc5+CwxlS3sdmLk98gpPt5CF9XRnPdlxZe6w==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.3.tgz", + "integrity": "sha512-2i6v88DTqVBNODyjD9U6Ycn/uSZNvyHe25cIbo2fFnAACAsaLTJsd23miRWiR5NuiGXR9wpJ9d40/9WAhjDIrw==", "requires": { "node-fetch": "2.6.1" } @@ -7267,9 +7428,9 @@ } }, "eslint": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", - "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz", + "integrity": "sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -7588,9 +7749,9 @@ } }, "firebase-admin": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.5.0.tgz", - "integrity": "sha512-OPXFOTDcAE+NORpfhq7YMEDk+vFClBtjfpkrjm2JHRxb8DpMm+K3AcusonFPU/WOH4FhiVN9JHB0+NPE20S3gQ==", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.6.0.tgz", + "integrity": "sha512-GNrxsQsZ6alz9u+uYmX84qcixxYQnfOrByxVgEHWiCI9JSCbMOQ/1Px2A6+Coz5zzFokTgXsHnIg+Qz7hMlNZg==", "requires": { "@firebase/database": "^0.8.1", "@firebase/database-types": "^0.6.1", @@ -7603,9 +7764,9 @@ }, "dependencies": { "@types/node": { - "version": "10.17.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.55.tgz", - "integrity": "sha512-koZJ89uLZufDvToeWO5BrC4CR4OUfHnUz2qoPs/daQH6qq3IN62QFxCTZ+bKaCE0xaoCAJYE4AXre8AbghCrhg==" + "version": "10.17.56", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.56.tgz", + "integrity": "sha512-LuAa6t1t0Bfw4CuSR0UITsm1hP17YL+u82kfHGrHUWdhlBtH7sa7jGY5z7glGaIj/WDYDkRtgGd+KCjCzxBW1w==" } } }, @@ -8154,6 +8315,15 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-core-module": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", @@ -8190,6 +8360,12 @@ "is-extglob": "^2.1.1" } }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true + }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -8207,6 +8383,12 @@ "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==", "optional": true }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -8468,6 +8650,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "optional": true }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", @@ -8553,6 +8741,12 @@ "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, "logform": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", @@ -9052,9 +9246,9 @@ }, "dependencies": { "@types/node": { - "version": "13.13.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.47.tgz", - "integrity": "sha512-R6851wTjN1YJza8ZIeX6puNBSi/ZULHVh4WVleA7q256l+cP2EtXnKbO455fTs2ytQk3dL9qkU+Wh8l/uROdKg==", + "version": "13.13.48", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz", + "integrity": "sha512-z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==", "optional": true } } @@ -9335,6 +9529,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "netmask": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.1.tgz", + "integrity": "sha512-gB8eG6ubxz67c7O2gaGiyWdRUIbH61q7anjgueDqCC9kvIs/b4CTtCMaQKeJbv1/Y7FT19I4zKwYmjnjInRQsg==" + }, "pac-proxy-agent": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", @@ -9352,13 +9551,13 @@ } }, "pac-resolver": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.1.0.tgz", - "integrity": "sha512-d6lf2IrZJJ7ooVHr7BfwSjRO1yKSJMaiiWYSHcrxSIUtZrCa4KKGwcztdkZ/E9LFleJfjoi1yl+XLR7AX24nbQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz", + "integrity": "sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==", "requires": { "degenerator": "^2.2.0", "ip": "^1.1.5", - "netmask": "^1.0.6" + "netmask": "^2.0.1" } }, "proxy-agent": { @@ -9547,9 +9746,9 @@ "integrity": "sha1-NipCxtMEBW1JOz8SvOq7LGV2ptQ=" }, "rxjs": { - "version": "6.6.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", - "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -9804,8 +10003,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "stack-trace": { "version": "0.0.10", @@ -9884,9 +10082,9 @@ "dev": true }, "stripe": { - "version": "8.139.0", - "resolved": "https://registry.npmjs.org/stripe/-/stripe-8.139.0.tgz", - "integrity": "sha512-3Lggs0mgy8gPzIDvLGYmx5ghQuTu+nvSUBCv9Di4FekvJ5iP7nenlrOk7A4cidF1nokamKm/bCIRYxIeDv5xYQ==", + "version": "8.141.0", + "resolved": "https://registry.npmjs.org/stripe/-/stripe-8.141.0.tgz", + "integrity": "sha512-CRGmx1WYENj16L37TujJg+KscGn8LbYbXqRCPdaepr7BzHIdAFJfQhNfdFkShW5Z9rbmo6mA2fiAOf1S3FIoSw==", "requires": { "@types/node": ">=8.1.0", "qs": "^6.6.0" @@ -10011,21 +10209,26 @@ } }, "table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.9.tgz", + "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==", "dev": true, "requires": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", + "ajv": "^8.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.0" }, "dependencies": { "ajv": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz", - "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.0.2.tgz", + "integrity": "sha512-V0HGxJd0PiDF0ecHYIesTOqfd1gJguwQUOYfMfAWnRsWQEXfc5ifbUFhD3Wjc+O+y7VAqL+g07prq9gHQ/JOZQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -10443,10 +10646,33 @@ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "optional": true }, - "xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" + "xmlbuilder2": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-2.4.0.tgz", + "integrity": "sha512-KrOVUGD65xTQ7ZA+GMQGdBSpe1Ufu5ylCQSYVk6QostySDkxPmAQ0WWIu7dR3JjLfVbF22RFQX7KyrZ6VTLcQg==", + "requires": { + "@oozcitak/dom": "1.15.8", + "@oozcitak/infra": "1.0.8", + "@oozcitak/util": "8.3.8", + "@types/node": "14.6.2", + "js-yaml": "3.14.0" + }, + "dependencies": { + "@types/node": { + "version": "14.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz", + "integrity": "sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A==" + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } }, "xregexp": { "version": "2.0.0", diff --git a/package.json b/package.json index 269814541..a678254b7 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "phone": "^2.4.20", "stripe": "^8.137.0", "twilio": "^3.56.0", - "xmlbuilder": "^15.1.1" + "xmlbuilder2": "^2.4.0" }, "devDependencies": { "concurrently": "^6.0.0", diff --git a/server/accounting/qbxml/qbxml-payables.js b/server/accounting/qbxml/qbxml-payables.js index 1c2dc3d2a..1c5571403 100644 --- a/server/accounting/qbxml/qbxml-payables.js +++ b/server/accounting/qbxml/qbxml-payables.js @@ -3,7 +3,7 @@ const path = require("path"); const DineroQbFormat = require("../accounting-constants").DineroQbFormat; const queries = require("../../graphql-client/queries"); const Dinero = require("dinero.js"); -var builder = require("xmlbuilder"); +var builder = require("xmlbuilder2"); const QbXmlUtils = require("./qbxml-utils"); const moment = require("moment"); diff --git a/server/accounting/qbxml/qbxml-payments.js b/server/accounting/qbxml/qbxml-payments.js index 522fad375..9d7c8b852 100644 --- a/server/accounting/qbxml/qbxml-payments.js +++ b/server/accounting/qbxml/qbxml-payments.js @@ -3,7 +3,7 @@ const path = require("path"); const DineroQbFormat = require("../accounting-constants").DineroQbFormat; const queries = require("../../graphql-client/queries"); const Dinero = require("dinero.js"); -var builder = require("xmlbuilder"); +var builder = require("xmlbuilder2"); const moment = require("moment"); const QbXmlUtils = require("./qbxml-utils"); const QbxmlReceivables = require("./qbxml-receivables"); diff --git a/server/accounting/qbxml/qbxml-receivables.js b/server/accounting/qbxml/qbxml-receivables.js index cb1c6a6e6..fd885695b 100644 --- a/server/accounting/qbxml/qbxml-receivables.js +++ b/server/accounting/qbxml/qbxml-receivables.js @@ -4,7 +4,7 @@ const DineroQbFormat = require("../accounting-constants").DineroQbFormat; const queries = require("../../graphql-client/queries"); const Dinero = require("dinero.js"); const moment = require("moment"); -var builder = require("xmlbuilder"); +var builder = require("xmlbuilder2"); const QbXmlUtils = require("./qbxml-utils"); require("dotenv").config({ path: path.resolve( diff --git a/server/data/autohouse.js b/server/data/autohouse.js index 8a8c00553..3d4b70abf 100644 --- a/server/data/autohouse.js +++ b/server/data/autohouse.js @@ -1,9 +1,9 @@ -const GraphQLClient = require("graphql-request").GraphQLClient; const path = require("path"); const queries = require("../graphql-client/queries"); const Dinero = require("dinero.js"); const moment = require("moment"); -var builder = require("xmlbuilder"); +var builder = require("xmlbuilder2"); +const _ = require("lodash"); require("dotenv").config({ path: path.resolve( @@ -11,325 +11,386 @@ require("dotenv").config({ `.env.${process.env.NODE_ENV || "development"}` ), }); + const client = require("../graphql-client/graphql-client").client; - +const AHDineroFormat = "0.00"; const AhDateFormat = "MMDDYYYY"; - exports.default = async (req, res) => { //Get Client Dataset. const { jobs } = await client.request(queries.AUTOHOUSE_QUERY); + const erroredJobs = []; + const autoHouseObject = { - AutoHouseExport: { RepairOrder: jobs.map((j) => CreateRepairOrderTag(j)) }, - }; - - var ret = builder - .create(autoHouseObject, { - version: "1.0", - encoding: "UTF-8", - headless: false, - }) - .end({ pretty: true }); - - res.type("application/xml"); - res.send(ret); -}; - -const CreateRepairOrderTag = (job) => { - //Level 2 - const ret = { - RepairOrderInformation: { - ShopInternalName: job.bodyshop.autohouseid, - ID: job.id, - RO: job.ro_number, - Est: job.id, //We no longer use estimate id. - GUID: job.id, - TransType: StatusMapping(job.status, job.bodyshop.md_ro_statuses), - ShopName: job.bodyshop.shopname, - ShopAddress: job.bodyshop.address1, - ShopCity: job.bodyshop.city, - ShopState: job.bodyshop.state, - ShopZip: job.bodyshop.zip_post, - ShopPhone: job.bodyshop.phone, - EstimatorID: `${job.est_ct_fn} ${job.est_ct_ln}`, - EstimatorName: `${job.est_ct_fn} ${job.est_ct_ln}`, - }, - CustomerInformation: { - FirstName: null, - LastName: null, - Street: null, - City: null, - State: null, - Zip: "N6G", - Phone1: null, - Phone2: null, - Phone2Extension: null, - Phone3: null, - Phone3Extension: null, - FileComments: null, - Source: null, - Email: null, - RetWhsl: null, - Cat: null, - InsuredorClaimantFlag: null, - }, - VehicleInformation: { - Year: job.v_model_yr, - Make: job.v_make_desc, - Model: job.v_model_desc, - VIN: job.v_vin, - License: job.plate_no, - MileageIn: job.kmin, - Vehiclecolor: job.v_color, - VehicleProductionDate: null, - VehiclePaintCode: null, - VehicleTrimCode: null, - VehicleBodyStyle: null, - DriveableFlag: job.tlos_ind ? "Y" : "N", - }, - - InsuranceInformation: { - InsuranceCo: job.ins_co_nm, - CompanyName: job.ins_co_nm, - Address: job.ins_addr1, - City: job.ins_addr1, - State: job.ins_city, - Zip: job.ins_zip, - Phone: job.ins_ph1, - Fax: null, - ClaimType: null, - LossType: null, - Policy: null, - Claim: job.clm_no, - InsuredLastName: null, - InsuredFirstName: null, - ClaimantLastName: null, - ClaimantFirstName: null, - Assignment: null, - InsuranceAgentLastName: null, - InsuranceAgentFirstName: null, - InsAgentPhone: null, - InsideAdjuster: null, - OutsideAdjuster: null, - }, - Dates: { - DateofLoss: job.loss_date && moment(job.loss_date).format(AhDateFormat), - InitialCustomerContactDate: null, - FirstFollowUpDate: null, - ReferralDate: null, - EstimateAppointmentDate: null, - SecondFollowUpDate: null, - AssignedDate: null, - EstComplete: null, - CustomerAuthorizationDate: null, - InsuranceAuthorizationDate: null, - DateOpened: job.date_open && moment(job.date_open).format(AhDateFormat), - ScheduledArrivalDate: - job.scheduled_in && moment(job.scheduled_in).format(AhDateFormat), - CarinShop: job.actual_in && moment(job.actual_in).format(AhDateFormat), - InsInspDate: null, - StartDate: null, - PartsOrder: null, - TeardownHold: null, - SupplementSubmittedDate: null, - SupplementApprovedDate: null, - AssntoBody: null, - AssntoMech: null, - AssntoPaint: null, - AssntoDetail: null, - PromiseDate: - job.scheduled_completion && - moment(job.scheduled_completion).format(AhDateFormat), - InsuranceTargetOut: null, - CarComplete: - job.actual_completion && - moment(job.actual_completion).format(AhDateFormat), - DeliveryAppointmentDate: - job.scheduled_delivery && - moment(job.scheduled_delivery).format(AhDateFormat), - DateClosed: - job.date_invoiced && moment(job.date_invoiced).format(AhDateFormat), - CustomerPaidInFullDate: null, - InsurancePaidInFullDate: null, - CustPickup: - job.actual_delivery && moment(job.actual_delivery).format(AhDateFormat), - AccountPostedDate: - job.date_exported && moment(job.date_exported).format(AhDateFormat), - CSIProcessedDate: null, - ThankYouLetterSent: null, - AdditionalFollowUpDate: null, - }, - Rates: { - BodyRate: job.rate_lab, - RefinishRate: job.rate_lar, - MechanicalRate: job.rate_lam, - StructuralRate: job.rate_las, - PMRate: job.rate_mapa, - BMRate: job.rate_mash, - TaxRate: null, - StorageRateperDay: null, - DaysStored: null, - }, - EstimateTotals: { - BodyHours: null, - RefinishHours: null, - MechanicalHours: null, - StructuralHours: null, - PartsTotal: null, - PartsOEM: null, - PartsAM: null, - PartsReconditioned: null, - PartsRecycled: null, - PartsOther: null, - SubletTotal: null, - BodyLaborTotal: null, - RefinishLaborTotal: null, - MechanicalLaborTotal: null, - StructuralLaborTotal: null, - MiscellaneousChargeTotal: null, - PMTotal: null, - BMTotal: null, - MiscTotal: null, - TowingTotal: null, - StorageTotal: null, - DetailTotal: null, - SalesTaxTotal: null, - GrossTotal: null, - DeductibleTotal: null, - DepreciationTotal: null, - Discount: null, - CustomerPay: null, - InsurancePay: null, - Deposit: null, - AmountDue: null, - }, - SupplementTotals: { - BodyHours: null, - RefinishHours: null, - MechanicalHours: null, - StructuralHours: null, - PartsTotal: null, - PartsOEM: null, - PartsAM: null, - PartsReconditioned: null, - PartsRecycled: null, - PartsOther: null, - SubletTotal: null, - BodyLaborTotal: null, - RefinishLaborTotal: null, - MechanicalLaborTotal: null, - StructuralLaborTotal: null, - MiscellaneousChargeTotal: null, - PMTotal: null, - BMTotal: null, - MiscTotal: null, - TowingTotal: null, - StorageTotal: null, - DetailTotal: null, - SalesTaxTotal: null, - GrossTotal: null, - DeductibleTotal: null, - DepreciationTotal: null, - Discount: null, - CustomerPay: null, - InsurancePay: null, - Deposit: null, - AmountDue: null, - }, - RevisedTotals: { - BodyHours: "10.10", - RefinishHours: "4.70", - MechanicalHours: "2.90", - StructuralHours: null, - PartsTotal: "2630.24", - PartsTotalCost: "1655.67", - PartsOEM: "969.49", - PartsOEMCost: "761.91", - PartsAM: "1660.75", - PartsAMCost: "893.76", - PartsReconditioned: null, - PartsReconditionedCost: null, - PartsRecycled: null, - PartsRecycledCost: null, - PartsOther: null, - PartsOtherCost: null, - SubletTotal: "139.95", - SubletTotalCost: "0.00", - BodyLaborTotal: "642.46", - BodyLaborTotalCost: "0.00", - RefinishLaborTotal: "298.97", - RefinishLaborTotalCost: "0.00", - MechanicalLaborTotal: "276.69", - MechanicalLaborTotalCost: "0.00", - StructuralLaborTotal: null, - StructuralLaborTotalCost: null, - MiscellaneousChargeTotal: null, - MiscellaneousChargeTotalCost: null, - PMTotal: "159.42", - PMTotalCost: "0.00", - BMTotal: "40.30", - BMTotalCost: "36.27", - MiscTotal: "60.00", - MiscTotalCost: "9.00", - TowingTotal: null, - TowingTotalCost: null, - StorageTotal: null, - StorageTotalCost: null, - DetailTotal: null, - DetailTotalCost: null, - SalesTaxTotal: "552.24", - SalesTaxTotalCost: null, - GrossTotal: "4800.27", - DeductibleTotal: "500.00", - DepreciationTotal: "0.00", - Discount: "0", - CustomerPay: "500.00", - InsurancePay: "4300.27", - Deposit: null, - AmountDue: "4800.27", - }, - Misc: { - ProductionStatus: null, - StatusDescription: null, - Hub50Comment: null, - DateofChange: null, - BodyTechName: null, - TotalLossYN: null, - InsScreenCommentsLine1: null, - InsScreenCommentsLine2: null, - AssignmentCaller: null, - AssignmentDivision: null, - LocationofPrimaryImpact: "12", - LocationofSecondaryImpact: null, - PaintTechID: null, - PaintTechName: null, - ImportType: null, - ImportFile: null, - GSTTax: null, - RepairDelayStatusCode: null, - RepairDelaycomment: null, - AgentMktgID: null, - AgentCity: null, - Picture1: null, - Picture2: null, - ExtNoteDate: null, - RentalOrdDate: null, - RentalPUDate: null, - RentalDueDate: null, - RentalActRetDate: null, - RentalCompanyID: null, - CSIID: null, - InsGroupCode: null, - }, - - DetailLines: { - DetailLine: job.joblines.map((jl) => - GenerateDetailLines(jl, job.bodyshop.md_order_statuses) + AutoHouseExport: { + RepairOrder: jobs.map((j) => + CreateRepairOrderTag(j, (job, error) => { + erroredJobs.push({ job, error }); + }) ), }, }; - return ret; + console.log("***Number of Failed jobs***: ", erroredJobs.length); + var ret = builder + .create(autoHouseObject, { + version: "1.0", + encoding: "UTF-8", + }) + .end({ pretty: true }); + + //***TODO Change filing naming when creating the cron job. IM_ShopInternalName_DDMMYYYY_HHMMSS.xml + res.type("application/xml"); + //res.sendFile(ret); + res.send(ret); +}; + +const CreateRepairOrderTag = (job, errorCallback) => { + //Level 2 + + try { + const ret = { + RepairOrderInformation: { + ShopInternalName: job.bodyshop.autohouseid, + ID: job.id, + RO: job.ro_number, + Est: job.id, //We no longer use estimate id. + GUID: job.id, + TransType: StatusMapping(job.status, job.bodyshop.md_ro_statuses), + ShopName: job.bodyshop.shopname, + ShopAddress: job.bodyshop.address1, + ShopCity: job.bodyshop.city, + ShopState: job.bodyshop.state, + ShopZip: job.bodyshop.zip_post, + ShopPhone: job.bodyshop.phone, + EstimatorID: `${job.est_ct_fn} ${job.est_ct_ln}`, + EstimatorName: `${job.est_ct_fn} ${job.est_ct_ln}`, + }, + CustomerInformation: { + FirstName: job.ownr_fn, + LastName: job.ownr_ln, + Street: job.ownr_addr1, + City: job.ownr_city, + State: job.ownr_st, + Zip: job.ownr_zip, + Phone1: job.ownr_ph1, + Phone2: null, + Phone2Extension: null, + Phone3: null, + Phone3Extension: null, + FileComments: null, + Source: null, + Email: job.ownr_ea, + RetWhsl: null, + Cat: null, + InsuredorClaimantFlag: null, + }, + VehicleInformation: { + Year: job.v_model_yr, + Make: job.v_make_desc, + Model: job.v_model_desc, + VIN: job.v_vin, + License: job.plate_no, + MileageIn: job.kmin, + Vehiclecolor: job.v_color, + VehicleProductionDate: null, + VehiclePaintCode: null, + VehicleTrimCode: null, + VehicleBodyStyle: null, + DriveableFlag: job.tlos_ind ? "Y" : "N", + }, + + InsuranceInformation: { + InsuranceCo: job.ins_co_nm, + CompanyName: job.ins_co_nm, + Address: job.ins_addr1, + City: job.ins_addr1, + State: job.ins_city, + Zip: job.ins_zip, + Phone: job.ins_ph1, + Fax: null, + ClaimType: null, + LossType: null, + Policy: null, + Claim: job.clm_no, + InsuredLastName: null, + InsuredFirstName: null, + ClaimantLastName: null, + ClaimantFirstName: null, + Assignment: null, + InsuranceAgentLastName: null, + InsuranceAgentFirstName: null, + InsAgentPhone: null, + InsideAdjuster: null, + OutsideAdjuster: null, + }, + Dates: { + DateofLoss: job.loss_date && moment(job.loss_date).format(AhDateFormat), + InitialCustomerContactDate: null, + FirstFollowUpDate: null, + ReferralDate: null, + EstimateAppointmentDate: null, + SecondFollowUpDate: null, + AssignedDate: null, + EstComplete: null, + CustomerAuthorizationDate: null, + InsuranceAuthorizationDate: null, + DateOpened: job.date_open && moment(job.date_open).format(AhDateFormat), + ScheduledArrivalDate: + job.scheduled_in && moment(job.scheduled_in).format(AhDateFormat), + CarinShop: job.actual_in && moment(job.actual_in).format(AhDateFormat), + InsInspDate: null, + StartDate: null, + PartsOrder: null, + TeardownHold: null, + SupplementSubmittedDate: null, + SupplementApprovedDate: null, + AssntoBody: null, + AssntoMech: null, + AssntoPaint: null, + AssntoDetail: null, + PromiseDate: + job.scheduled_completion && + moment(job.scheduled_completion).format(AhDateFormat), + InsuranceTargetOut: null, + CarComplete: + job.actual_completion && + moment(job.actual_completion).format(AhDateFormat), + DeliveryAppointmentDate: + job.scheduled_delivery && + moment(job.scheduled_delivery).format(AhDateFormat), + DateClosed: + job.date_invoiced && moment(job.date_invoiced).format(AhDateFormat), + CustomerPaidInFullDate: null, + InsurancePaidInFullDate: null, + CustPickup: + job.actual_delivery && + moment(job.actual_delivery).format(AhDateFormat), + AccountPostedDate: + job.date_exported && moment(job.date_exported).format(AhDateFormat), + CSIProcessedDate: null, + ThankYouLetterSent: null, + AdditionalFollowUpDate: null, + }, + Rates: { + BodyRate: job.rate_lab, + RefinishRate: job.rate_lar, + MechanicalRate: job.rate_lam, + StructuralRate: job.rate_las, + PMRate: job.rate_mapa, + BMRate: job.rate_mash, + TaxRate: null, + StorageRateperDay: null, + DaysStored: null, + }, + EstimateTotals: { + BodyHours: null, + RefinishHours: null, + MechanicalHours: null, + StructuralHours: null, + PartsTotal: null, + PartsOEM: null, + PartsAM: null, + PartsReconditioned: null, + PartsRecycled: null, + PartsOther: null, + SubletTotal: null, + BodyLaborTotal: null, + RefinishLaborTotal: null, + MechanicalLaborTotal: null, + StructuralLaborTotal: null, + MiscellaneousChargeTotal: null, + PMTotal: null, + BMTotal: null, + MiscTotal: null, + TowingTotal: null, + StorageTotal: null, + DetailTotal: null, + SalesTaxTotal: null, + GrossTotal: null, + DeductibleTotal: null, + DepreciationTotal: null, + Discount: null, + CustomerPay: null, + InsurancePay: null, + Deposit: null, + AmountDue: null, + }, + SupplementTotals: { + BodyHours: null, + RefinishHours: null, + MechanicalHours: null, + StructuralHours: null, + PartsTotal: null, + PartsOEM: null, + PartsAM: null, + PartsReconditioned: null, + PartsRecycled: null, + PartsOther: null, + SubletTotal: null, + BodyLaborTotal: null, + RefinishLaborTotal: null, + MechanicalLaborTotal: null, + StructuralLaborTotal: null, + MiscellaneousChargeTotal: null, + PMTotal: null, + BMTotal: null, + MiscTotal: null, + TowingTotal: null, + StorageTotal: null, + DetailTotal: null, + SalesTaxTotal: null, + GrossTotal: null, + DeductibleTotal: null, + DepreciationTotal: null, + Discount: null, + CustomerPay: null, + InsurancePay: null, + Deposit: null, + AmountDue: null, + }, + RevisedTotals: { + BodyHours: job.job_totals.rates.lab.hours, + RefinishHours: job.job_totals.rates.lar.hours, + MechanicalHours: job.job_totals.rates.lam.hours, + StructuralHours: job.job_totals.rates.las.hours, + PartsTotal: Dinero(job.job_totals.parts.parts.total).toFormat( + AHDineroFormat + ), + PartsTotalCost: 0, + PartsOEM: Dinero( + job.job_totals.parts.parts.list.PAN && + job.job_totals.parts.parts.list.PAN.total + ).toFormat(AHDineroFormat), + PartsOEMCost: 0, + PartsAM: Dinero( + job.job_totals.parts.parts.list.PAA && + job.job_totals.parts.parts.list.PAA.total + ).toFormat(AHDineroFormat), + PartsAMCost: 0, + PartsReconditioned: null, + PartsReconditionedCost: null, + PartsRecycled: Dinero( + job.job_totals.parts.parts.list.PAR && + job.job_totals.parts.parts.list.PAR.total + ).toFormat(AHDineroFormat), + PartsRecycledCost: null, + PartsOther: Dinero( + job.job_totals.parts.parts.list.PAO && + job.job_totals.parts.parts.list.PAO.total + ).toFormat(AHDineroFormat), + PartsOtherCost: null, + SubletTotal: Dinero(job.job_totals.parts.sublets.total).toFormat( + AHDineroFormat + ), + SubletTotalCost: 0, + BodyLaborTotal: Dinero(job.job_totals.rates.lab.total).toFormat( + AHDineroFormat + ), + BodyLaborTotalCost: 0, + RefinishLaborTotal: Dinero(job.job_totals.rates.lar.total).toFormat( + AHDineroFormat + ), + RefinishLaborTotalCost: 0, + MechanicalLaborTotal: Dinero(job.job_totals.rates.lam.total).toFormat( + AHDineroFormat + ), + MechanicalLaborTotalCost: 0, + StructuralLaborTotal: Dinero(job.job_totals.rates.las.total).toFormat( + AHDineroFormat + ), + StructuralLaborTotalCost: null, + MiscellaneousChargeTotal: null, + MiscellaneousChargeTotalCost: null, + PMTotal: Dinero(job.job_totals.rates.mapa.total).toFormat( + AHDineroFormat + ), + PMTotalCost: 0, + BMTotal: Dinero(job.job_totals.rates.mash.total).toFormat( + AHDineroFormat + ), + BMTotalCost: 0, + MiscTotal: 0, + MiscTotalCost: 0, + TowingTotal: Dinero(job.job_totals.additional.towing).toFormat( + AHDineroFormat + ), + TowingTotalCost: null, + StorageTotal: Dinero(job.job_totals.additional.storage).toFormat( + AHDineroFormat + ), + StorageTotalCost: null, + DetailTotal: null, + DetailTotalCost: null, + SalesTaxTotal: Dinero(job.job_totals.totals.local_tax) + .add(Dinero(job.job_totals.totals.state_tax)) + .add(Dinero(job.job_totals.totals.federal_tax)) + .toFormat(AHDineroFormat), + SalesTaxTotalCost: null, + GrossTotal: Dinero(job.job_totals.totals.net_repairs).toFormat( + AHDineroFormat + ), + DeductibleTotal: job.ded_amt, + DepreciationTotal: Dinero( + job.job_totals.totals.custPayable.dep_taxes + ).toFormat(AHDineroFormat), + Discount: Dinero(job.job_totals.additional.adjustments).toFormat( + AHDineroFormat + ), + CustomerPay: Dinero(job.job_totals.totals.custPayable.total).toFormat( + AHDineroFormat + ), + InsurancePay: 0, + Deposit: 0, + AmountDue: 0, + }, + Misc: { + ProductionStatus: null, + StatusDescription: null, + Hub50Comment: null, + DateofChange: null, + BodyTechName: null, + TotalLossYN: null, + InsScreenCommentsLine1: null, + InsScreenCommentsLine2: null, + AssignmentCaller: null, + AssignmentDivision: null, + LocationofPrimaryImpact: "12", + LocationofSecondaryImpact: null, + PaintTechID: null, + PaintTechName: null, + ImportType: null, + ImportFile: null, + GSTTax: null, + RepairDelayStatusCode: null, + RepairDelaycomment: null, + AgentMktgID: null, + AgentCity: null, + Picture1: null, + Picture2: null, + ExtNoteDate: null, + RentalOrdDate: null, + RentalPUDate: null, + RentalDueDate: null, + RentalActRetDate: null, + RentalCompanyID: null, + CSIID: null, + InsGroupCode: null, + }, + + DetailLines: { + DetailLine: + job.joblines.length > 0 + ? job.joblines.map((jl) => + GenerateDetailLines(jl, job.bodyshop.md_order_statuses) + ) + : [generateNullDetailLine()], + }, + }; + return ret; + } catch (error) { + errorCallback(job, error); + } }; const StatusMapping = (status, md_ro_statuses) => { @@ -367,7 +428,7 @@ const GenerateDetailLines = (line, statuses) => { line.billlines[0] && (line.billlines[0].actual_cost * line.billlines[0].quantity).toFixed(2), Critical: null, - Description: line.desc, + Description: line.line_desc, DiscountMarkup: null, InvoiceNumber: line.billlines[0] && line.billlines[0].bill.invoice_number, IOUPart: null, @@ -377,7 +438,7 @@ const GenerateDetailLines = (line, statuses) => { OriginalCost: null, OriginalInvoiceNumber: null, PriceEach: line.billlines[0] && line.billlines[0].actual_cost, - PartNumber: line.oem_partno, + PartNumber: _.escape(line.oem_partno), ProfitPercent: null, PurchaseOrderNumber: null, Qty: line.part_qty, @@ -397,3 +458,38 @@ const GenerateDetailLines = (line, statuses) => { }; return ret; }; + +const generateNullDetailLine = () => { + return { + BackOrdered: "0", + Cost: 0, + Critical: null, + Description: "No Lines on Estimate", + DiscountMarkup: null, + InvoiceNumber: null, + IOUPart: null, + LineNumber: 0, + MarkUp: null, + OrderedOn: null, + OriginalCost: null, + OriginalInvoiceNumber: null, + PriceEach: 0, + PartNumber: 0, + ProfitPercent: null, + PurchaseOrderNumber: null, + Qty: 0, + Status: null, + SupplementNumber: null, + Type: null, + Vendor: null, + VendorPaid: null, + VendorPrice: null, + Deleted: null, + ExpectedOn: null, + ReceivedOn: null, + OrderedBy: null, + ShipVia: null, + VendorContact: null, + EstimateAmount: null, + }; +};