consumefrominventory
false
diff --git a/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx b/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
index d8fb121d0..e9403a0f1 100644
--- a/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
+++ b/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
@@ -7,9 +7,11 @@ import "./bill-inventory-table.styles.scss";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
+import { selectBillEnterModal } from "../../redux/modals/modals.selectors";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
+ billEnterModal: selectBillEnterModal,
});
const mapDispatchToProps = (dispatch) => ({
//setUserLanguage: language => dispatch(setUserLanguage(language))
@@ -17,6 +19,7 @@ const mapDispatchToProps = (dispatch) => ({
export default connect(mapStateToProps, mapDispatchToProps)(BillInventoryTable);
export function BillInventoryTable({
+ billEnterModal,
bodyshop,
form,
billEdit,
@@ -28,11 +31,18 @@ export function BillInventoryTable({
useEffect(() => {
if (inventoryData) {
form.setFieldsValue({
- inventory: inventoryData.inventory,
+ inventory: billEnterModal.context.consumeinventoryid
+ ? inventoryData.inventory.map((i) => {
+ if (i.id === billEnterModal.context.consumeinventoryid)
+ i.consumefrominventory = true;
+ return i;
+ })
+ : inventoryData.inventory,
});
}
- }, [inventoryData, form]);
+ }, [inventoryData, form, billEnterModal.context.consumeinventoryid]);
+ console.log(form.getFieldsValue());
return (
prev.vendorid !== cur.vendorid}
diff --git a/client/src/components/inventory-bill-ro/inventory-bill-ro.component.jsx b/client/src/components/inventory-bill-ro/inventory-bill-ro.component.jsx
new file mode 100644
index 000000000..f83811ed7
--- /dev/null
+++ b/client/src/components/inventory-bill-ro/inventory-bill-ro.component.jsx
@@ -0,0 +1,65 @@
+import { Button } from "antd";
+import React from "react";
+import { connect } from "react-redux";
+import { createStructuredSelector } from "reselect";
+import { setModalContext } from "../../redux/modals/modals.actions";
+import { selectBodyshop } from "../../redux/user/user.selectors";
+import moment from "moment";
+import { useTranslation } from "react-i18next";
+const mapStateToProps = createStructuredSelector({
+ bodyshop: selectBodyshop,
+});
+const mapDispatchToProps = (dispatch) => ({
+ setBillEnterContext: (context) =>
+ dispatch(setModalContext({ context: context, modal: "billEnter" })),
+});
+export default connect(mapStateToProps, mapDispatchToProps)(InventoryBillRo);
+export function InventoryBillRo({
+ bodyshop,
+ setBillEnterContext,
+ inventoryline,
+}) {
+ const { t } = useTranslation();
+ return (
+
+ );
+}
diff --git a/client/src/components/inventory-list/inventory-list.component.jsx b/client/src/components/inventory-list/inventory-list.component.jsx
index 58210eb94..95dcdea13 100644
--- a/client/src/components/inventory-list/inventory-list.component.jsx
+++ b/client/src/components/inventory-list/inventory-list.component.jsx
@@ -4,10 +4,11 @@ import queryString from "query-string";
import React from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
-import { useHistory, useLocation } from "react-router-dom";
+import { Link, useHistory, useLocation } from "react-router-dom";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
import CurrencyFormatter from "../../utils/CurrencyFormatter";
+import InventoryBillRo from "../inventory-bill-ro/inventory-bill-ro.component";
const mapStateToProps = createStructuredSelector({
//currentUser: selectCurrentUser
bodyshop: selectBodyshop,
@@ -75,7 +76,14 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) {
key: "consumedbyjob",
ellipsis: true,
- render: (text, record) => record.bill?.job?.ro_number,
+ render: (text, record) =>
+ record.bill?.job?.ro_number ? (
+
+ {record.bill?.job?.ro_number}
+
+ ) : (
+
+ ),
},
];
diff --git a/client/src/graphql/inventory.queries.js b/client/src/graphql/inventory.queries.js
index 51b713e92..51efcd3b8 100644
--- a/client/src/graphql/inventory.queries.js
+++ b/client/src/graphql/inventory.queries.js
@@ -42,7 +42,10 @@ export const UPDATE_INVENTORY_LINES = gql`
export const QUERY_OUTSTANDING_INVENTORY = gql`
query QUERY_OUTSTANDING_INVENTORY {
- inventory(where: { consumedbybillid: { _is_null: true } }) {
+ inventory(
+ where: { consumedbybillid: { _is_null: true } }
+ order_by: { line_desc: asc }
+ ) {
id
actual_cost
actual_price
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index c55a48010..c40bfe2be 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -1076,6 +1076,7 @@
"inventory": {
"actions": {
"addtoinventory": "Add to Inventory",
+ "addtoro": "Add to RO",
"consumefrominventory": "Consume from Inventory?"
},
"errors": {
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index ca89fc4d9..2793b4bf1 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -1076,6 +1076,7 @@
"inventory": {
"actions": {
"addtoinventory": "",
+ "addtoro": "",
"consumefrominventory": ""
},
"errors": {
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index bd63176f0..b7011de21 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -1076,6 +1076,7 @@
"inventory": {
"actions": {
"addtoinventory": "",
+ "addtoro": "",
"consumefrominventory": ""
},
"errors": {
From a1472cd9ff59e622e01b3b48698b44136bfb587b Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Tue, 7 Jun 2022 12:39:59 -0700
Subject: [PATCH 26/41] IO-1926 Add export log to mark as exported.
---
.../bill-mark-exported-button.component.jsx | 31 +++++++++++++++----
.../jobs-admin-mark-reexport.component.jsx | 29 +++++++++++++++--
...yable-mark-selected-exported.component.jsx | 27 ++++++++++++----
3 files changed, 73 insertions(+), 14 deletions(-)
diff --git a/client/src/components/bill-mark-exported-button/bill-mark-exported-button.component.jsx b/client/src/components/bill-mark-exported-button/bill-mark-exported-button.component.jsx
index d81244098..80fa1ae44 100644
--- a/client/src/components/bill-mark-exported-button/bill-mark-exported-button.component.jsx
+++ b/client/src/components/bill-mark-exported-button/bill-mark-exported-button.component.jsx
@@ -9,11 +9,14 @@ import { createStructuredSelector } from "reselect";
import {
selectAuthLevel,
selectBodyshop,
+ selectCurrentUser,
} from "../../redux/user/user.selectors";
import { HasRbacAccess } from "../rbac-wrapper/rbac-wrapper.component";
+import { INSERT_EXPORT_LOG } from "../../graphql/accounting.queries";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
authLevel: selectAuthLevel,
+ currentUser: selectCurrentUser,
});
const mapDispatchToProps = (dispatch) => ({
//setUserLanguage: language => dispatch(setUserLanguage(language))
@@ -24,9 +27,15 @@ export default connect(
mapDispatchToProps
)(BillMarkExportedButton);
-export function BillMarkExportedButton({ bodyshop, authLevel, bill }) {
+export function BillMarkExportedButton({
+ currentUser,
+ bodyshop,
+ authLevel,
+ bill,
+}) {
const { t } = useTranslation();
const [loading, setLoading] = useState(false);
+ const [insertExportLog] = useMutation(INSERT_EXPORT_LOG);
const [updateBill] = useMutation(gql`
mutation UPDATE_BILL($billId: uuid!) {
@@ -46,6 +55,20 @@ export function BillMarkExportedButton({ bodyshop, authLevel, bill }) {
variables: { billId: bill.id },
});
+ await insertExportLog({
+ variables: {
+ logs: [
+ {
+ bodyshopid: bodyshop.id,
+ billid: bill.id,
+ successful: true,
+ message: t("general.labels.markedexported"),
+ useremail: currentUser.email,
+ },
+ ],
+ },
+ });
+
if (!result.errors) {
notification["success"]({
message: t("bills.successes.markexported"),
@@ -69,11 +92,7 @@ export function BillMarkExportedButton({ bodyshop, authLevel, bill }) {
if (hasAccess)
return (
-
{t("emails.labels.preview")}
- {t("emails.labels.pdfcopywillbeattached")}
+ {bodyshop.attach_pdf_to_email && (
+ {t("emails.labels.pdfcopywillbeattached")}
+ )}
{() => {
diff --git a/client/src/utils/RenderTemplate.js b/client/src/utils/RenderTemplate.js
index 2caa4556e..e9bc47f8f 100644
--- a/client/src/utils/RenderTemplate.js
+++ b/client/src/utils/RenderTemplate.js
@@ -80,8 +80,30 @@ export default async function RenderTemplate(
} else {
let pdf;
if (bodyshop.attach_pdf_to_email) {
- const pdfRequest = _.cloneDeep(reportRequest);
- pdfRequest.template.recipe = "chrome-pdf";
+ const pdfRequest = _.cloneDeep(reportRequest); //Updates to spread in the header details.
+ pdfRequest.template = {
+ ...pdfRequest.template,
+ ...{
+ recipe: "chrome-pdf",
+ ...(!ignoreCustomMargins && {
+ chrome: {
+ marginTop:
+ bodyshop.logo_img_path &&
+ bodyshop.logo_img_path.headerMargin &&
+ bodyshop.logo_img_path.headerMargin > 36
+ ? bodyshop.logo_img_path.headerMargin
+ : "36px",
+ marginBottom:
+ bodyshop.logo_img_path &&
+ bodyshop.logo_img_path.footerMargin &&
+ bodyshop.logo_img_path.footerMargin > 50
+ ? bodyshop.logo_img_path.footerMargin
+ : "50px",
+ },
+ }),
+ },
+ };
+ console.log("PDFREQ", pdfRequest);
const pdfRender = await jsreport.renderAsync(pdfRequest);
pdf = pdfRender.toDataURI();
}
From fde0681a93f052b7c8d79f6c8e16fa70b2acd886 Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Wed, 8 Jun 2022 13:24:43 -0700
Subject: [PATCH 29/41] Server Side CORS Updates.
---
client/src/utils/CleanAxios.js | 2 ++
server.js | 3 ++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/client/src/utils/CleanAxios.js b/client/src/utils/CleanAxios.js
index 19b71e969..0ddc62be6 100644
--- a/client/src/utils/CleanAxios.js
+++ b/client/src/utils/CleanAxios.js
@@ -6,6 +6,8 @@ if (process.env.NODE_ENV === "production") {
process.env.REACT_APP_AXIOS_BASE_API_URL || "https://api.imex.online/";
}
+axios.defaults.withCredentials = true;
+
export const axiosAuthInterceptorId = axios.interceptors.request.use(
async (config) => {
if (!config.headers.Authorization) {
diff --git a/server.js b/server.js
index 952d1cc67..d3b809531 100644
--- a/server.js
+++ b/server.js
@@ -36,6 +36,7 @@ const io = new Server(server, {
"https://www.imex.online",
],
methods: ["GET", "POST"],
+ credentials: true,
},
});
exports.io = io;
@@ -48,7 +49,7 @@ app.use(bodyParser.json({ limit: "50mb" }));
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true }));
//app.use(enforce.HTTPS({ trustProtoHeader: true }));
app.use(
- cors()
+ cors({ credentials: true })
// cors({
// credentials: true,
// origin: [
From 82db7a1f14163bed8ac1e8d2184d531de2eb3685 Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Wed, 8 Jun 2022 17:45:30 -0700
Subject: [PATCH 30/41] IO-1914 Add manual and edit lines of inventory.
---
.../bill-inventory-table.component.jsx | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx b/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
index e9403a0f1..9b2222397 100644
--- a/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
+++ b/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
@@ -74,6 +74,7 @@ export function BillInventoryTable({
| {t("billlines.fields.quantity")} |
{t("billlines.fields.actual_price")} |
{t("billlines.fields.actual_cost")} |
+ {t("inventory.fields.comment")} |
{t("inventory.actions.consumefrominventory")} |
@@ -136,6 +137,16 @@ export function BillInventoryTable({
+
+
+
+
+ |
Date: Wed, 8 Jun 2022 17:45:58 -0700
Subject: [PATCH 31/41] IO-1914 Add manual inventory and edit.
---
bodyshop_translations.babel | 194 ++++++++++++++++++
.../inventory-line-delete.component.jsx | 67 ++++++
.../inventory-list.component.jsx | 79 ++++++-
.../inventory-list.container.jsx | 17 +-
.../inventory-upsert-modal.component.jsx | 68 ++++++
.../inventory-upsert-modal.container.jsx | 126 ++++++++++++
.../components/rbac-wrapper/rbac-defaults.js | 1 +
.../shop-info/shop-info.rbac.component.jsx | 63 ++++--
client/src/graphql/inventory.queries.js | 66 ++++++
client/src/pages/inventory/inventory.page.jsx | 2 +
client/src/redux/modals/modals.reducer.js | 1 +
client/src/redux/modals/modals.selectors.js | 4 +
client/src/translations/en_us/common.json | 15 +-
client/src/translations/es/common.json | 15 +-
client/src/translations/fr/common.json | 15 +-
hasura/metadata/tables.yaml | 21 ++
.../down.sql | 4 +
.../up.sql | 2 +
.../down.sql | 4 +
.../up.sql | 2 +
.../down.sql | 4 +
.../up.sql | 2 +
.../down.sql | 1 +
.../up.sql | 1 +
24 files changed, 738 insertions(+), 36 deletions(-)
create mode 100644 client/src/components/inventory-line-delete/inventory-line-delete.component.jsx
create mode 100644 client/src/components/inventory-upsert-modal/inventory-upsert-modal.component.jsx
create mode 100644 client/src/components/inventory-upsert-modal/inventory-upsert-modal.container.jsx
create mode 100644 hasura/migrations/1654731244827_alter_table_public_inventory_add_column_manualinvoicenumber/down.sql
create mode 100644 hasura/migrations/1654731244827_alter_table_public_inventory_add_column_manualinvoicenumber/up.sql
create mode 100644 hasura/migrations/1654731253232_alter_table_public_inventory_add_column_comment/down.sql
create mode 100644 hasura/migrations/1654731253232_alter_table_public_inventory_add_column_comment/up.sql
create mode 100644 hasura/migrations/1654731265455_alter_table_public_inventory_add_column_manualvendor/down.sql
create mode 100644 hasura/migrations/1654731265455_alter_table_public_inventory_add_column_manualvendor/up.sql
create mode 100644 hasura/migrations/1654733904736_alter_table_public_inventory_alter_column_quantity/down.sql
create mode 100644 hasura/migrations/1654733904736_alter_table_public_inventory_alter_column_quantity/up.sql
diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel
index 2bf1b9018..d6fc28db9 100644
--- a/bodyshop_translations.babel
+++ b/bodyshop_translations.babel
@@ -5736,6 +5736,27 @@
inventory
+
+ delete
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
list
false
@@ -17371,6 +17392,48 @@
+
+ edit
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
+
+ new
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
@@ -17399,6 +17462,74 @@
+
+ fields
+
+
+ comment
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
+
+ manualinvoicenumber
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
+
+ manualvendor
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
+
+
labels
@@ -17423,6 +17554,27 @@
+
+ deleteconfirm
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
frombillinvoicenumber
false
@@ -17533,6 +17685,27 @@
successes
+
+ deleted
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
inserted
false
@@ -17554,6 +17727,27 @@
+
+ updated
+ false
+
+
+
+
+
+ en-US
+ false
+
+
+ es-MX
+ false
+
+
+ fr-CA
+ false
+
+
+
diff --git a/client/src/components/inventory-line-delete/inventory-line-delete.component.jsx b/client/src/components/inventory-line-delete/inventory-line-delete.component.jsx
new file mode 100644
index 000000000..d31be9384
--- /dev/null
+++ b/client/src/components/inventory-line-delete/inventory-line-delete.component.jsx
@@ -0,0 +1,67 @@
+import { DeleteFilled } from "@ant-design/icons";
+import { useMutation } from "@apollo/client";
+import { Button, notification, Popconfirm } from "antd";
+import React, { useState } from "react";
+import { useTranslation } from "react-i18next";
+import { DELETE_INVENTORY_LINE } from "../../graphql/inventory.queries";
+import RbacWrapper from "../rbac-wrapper/rbac-wrapper.component";
+
+export default function InventoryLineDelete({
+ inventoryline,
+ disabled,
+ refetch,
+}) {
+ const [loading, setLoading] = useState(false);
+ const { t } = useTranslation();
+ const [deleteInventoryLine] = useMutation(DELETE_INVENTORY_LINE);
+
+ const handleDelete = async () => {
+ setLoading(true);
+ const result = await deleteInventoryLine({
+ variables: { lineId: inventoryline.id },
+ // update(cache, { errors }) {
+ // cache.modify({
+ // fields: {
+ // inventory(existingInventory, { readField }) {
+ // console.log(existingInventory);
+ // return existingInventory.filter(
+ // (invRef) => inventoryline.id !== readField("id", invRef)
+ // );
+ // },
+ // },
+ // });
+ // },
+ });
+
+ if (!!!result.errors) {
+ notification["success"]({ message: t("inventory.successes.deleted") });
+ } else {
+ //Check if it's an fkey violation.
+
+ notification["error"]({
+ message: t("bills.errors.deleting", {
+ error: JSON.stringify(result.errors),
+ }),
+ });
+ }
+ if (refetch) refetch();
+ setLoading(false);
+ };
+
+ return (
+ >}>
+
+
+
+
+
+
+ );
+}
diff --git a/client/src/components/inventory-list/inventory-list.component.jsx b/client/src/components/inventory-list/inventory-list.component.jsx
index 95dcdea13..9baa66de0 100644
--- a/client/src/components/inventory-list/inventory-list.component.jsx
+++ b/client/src/components/inventory-list/inventory-list.component.jsx
@@ -1,4 +1,4 @@
-import { SyncOutlined } from "@ant-design/icons";
+import { EditFilled, SyncOutlined, FileAddFilled } from "@ant-design/icons";
import { Button, Card, Input, Space, Table, Typography } from "antd";
import queryString from "query-string";
import React from "react";
@@ -6,18 +6,28 @@ import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { Link, useHistory, useLocation } from "react-router-dom";
import { createStructuredSelector } from "reselect";
+import { setModalContext } from "../../redux/modals/modals.actions";
import { selectBodyshop } from "../../redux/user/user.selectors";
import CurrencyFormatter from "../../utils/CurrencyFormatter";
import InventoryBillRo from "../inventory-bill-ro/inventory-bill-ro.component";
+import InventoryLineDelete from "../inventory-line-delete/inventory-line-delete.component";
const mapStateToProps = createStructuredSelector({
//currentUser: selectCurrentUser
bodyshop: selectBodyshop,
});
const mapDispatchToProps = (dispatch) => ({
- //setUserLanguage: language => dispatch(setUserLanguage(language))
+ setInventoryUpsertContext: (context) =>
+ dispatch(setModalContext({ context: context, modal: "inventoryUpsert" })),
});
-export function JobsList({ bodyshop, refetch, loading, jobs, total }) {
+export function JobsList({
+ bodyshop,
+ refetch,
+ loading,
+ jobs,
+ total,
+ setInventoryUpsertContext,
+}) {
const search = queryString.parse(useLocation().search);
const { page, sortcolumn, sortorder } = search;
const history = useHistory();
@@ -31,6 +41,15 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) {
sorter: true, //(a, b) => alphaSort(a.line_desc, b.line_desc),
sortOrder: sortcolumn === "line_desc" && sortorder,
+ render: (text, record) =>
+ record.billline?.bill?.job ? (
+
+ {text}
+ {`(${record.billline?.bill?.job?.v_model_yr} ${record.billline?.bill?.job?.v_make_desc} ${record.billline?.bill?.job?.v_model_desc})`}
+
+ ) : (
+ text
+ ),
},
{
title: t("inventory.labels.frombillinvoicenumber"),
@@ -40,7 +59,12 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) {
//sorter: true, // (a, b) => alphaSort(a.ownr_ln, b.ownr_ln),
//sortOrder: sortcolumn === "ownr_ln" && sortorder,
- render: (text, record) => record.billline?.bill?.invoice_number,
+ render: (text, record) =>
+ (
+ (record.billline?.bill?.invoice_number || "") +
+ " " +
+ (record.manualinvoicenumber || "")
+ ).trim(),
},
{
title: t("inventory.labels.fromvendor"),
@@ -50,7 +74,12 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) {
//sorter: true, // (a, b) => alphaSort(a.ownr_ln, b.ownr_ln),
//sortOrder: sortcolumn === "ownr_ln" && sortorder,
- render: (text, record) => record.billline?.bill?.vendor?.name,
+ render: (text, record) =>
+ (
+ (record.billline?.bill?.vendor?.name || "") +
+ " " +
+ (record.manualvendor || "")
+ ).trim(),
},
{
title: t("billlines.fields.actual_price"),
@@ -70,6 +99,11 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) {
{record.actual_cost}
),
},
+ {
+ title: t("inventory.fields.comment"),
+ dataIndex: "comment",
+ key: "comment",
+ },
{
title: t("inventory.labels.consumedbyjob"),
dataIndex: "consumedbyjob",
@@ -85,6 +119,30 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) {
),
},
+ {
+ title: t("general.labels.actions"),
+ dataIndex: "actions",
+ key: "actions",
+
+ ellipsis: true,
+ render: (text, record) => (
+
+ {
+ setInventoryUpsertContext({
+ actions: { refetch: refetch },
+ context: {
+ existingInventory: record,
+ },
+ });
+ }}
+ >
+
+
+
+
+ ),
+ },
];
const handleTableChange = (pagination, filters, sorter) => {
@@ -113,7 +171,16 @@ export function JobsList({ bodyshop, refetch, loading, jobs, total }) {
>
)}
-
+ {
+ setInventoryUpsertContext({
+ actions: { refetch: refetch },
+ context: {},
+ });
+ }}
+ >
+
+
{
if (search.showall) delete search.showall;
diff --git a/client/src/components/inventory-list/inventory-list.container.jsx b/client/src/components/inventory-list/inventory-list.container.jsx
index 568b3162a..bb265060f 100644
--- a/client/src/components/inventory-list/inventory-list.container.jsx
+++ b/client/src/components/inventory-list/inventory-list.container.jsx
@@ -11,7 +11,6 @@ import {
} from "../../redux/application/application.actions";
import AlertComponent from "../alert/alert.component";
import InventoryListPaginated from "./inventory-list.component";
-import RbacWrapper from "../rbac-wrapper/rbac-wrapper.component";
const mapStateToProps = createStructuredSelector({
//bodyshop: selectBodyshop,
@@ -52,15 +51,13 @@ export function InventoryList({ setBreadcrumbs, setSelectedHeader }) {
if (error) return ;
return (
-
-
-
+
);
}
diff --git a/client/src/components/inventory-upsert-modal/inventory-upsert-modal.component.jsx b/client/src/components/inventory-upsert-modal/inventory-upsert-modal.component.jsx
new file mode 100644
index 000000000..7d5d28ebb
--- /dev/null
+++ b/client/src/components/inventory-upsert-modal/inventory-upsert-modal.component.jsx
@@ -0,0 +1,68 @@
+import { Form, Input, Space } from "antd";
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { connect } from "react-redux";
+import { createStructuredSelector } from "reselect";
+import { selectInventoryUpsert } from "../../redux/modals/modals.selectors";
+import FormItemCurrency from "../form-items-formatted/currency-form-item.component";
+const mapStateToProps = createStructuredSelector({
+ inventoryUpsertModal: selectInventoryUpsert,
+});
+const mapDispatchToProps = (dispatch) => ({
+ //setUserLanguage: language => dispatch(setUserLanguage(language))
+});
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(NoteUpsertModalComponent);
+
+export function NoteUpsertModalComponent({ form, inventoryUpsertModal }) {
+ const { t } = useTranslation();
+ const { existingInventory } = inventoryUpsertModal.context;
+
+ return (
+
+
+
+
+
+
+
+
+ {!existingInventory && (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )}
+
+ );
+}
diff --git a/client/src/components/inventory-upsert-modal/inventory-upsert-modal.container.jsx b/client/src/components/inventory-upsert-modal/inventory-upsert-modal.container.jsx
new file mode 100644
index 000000000..715131b02
--- /dev/null
+++ b/client/src/components/inventory-upsert-modal/inventory-upsert-modal.container.jsx
@@ -0,0 +1,126 @@
+import { useMutation } from "@apollo/client";
+import { Form, Modal, notification } from "antd";
+import React, { useEffect } from "react";
+import { useTranslation } from "react-i18next";
+import { connect } from "react-redux";
+import { createStructuredSelector } from "reselect";
+import { logImEXEvent } from "../../firebase/firebase.utils";
+import {
+ INSERT_INVENTORY_LINE,
+ UPDATE_INVENTORY_LINE,
+} from "../../graphql/inventory.queries";
+import { toggleModalVisible } from "../../redux/modals/modals.actions";
+import { selectInventoryUpsert } from "../../redux/modals/modals.selectors";
+import {
+ selectBodyshop,
+ selectCurrentUser,
+} from "../../redux/user/user.selectors";
+import InventoryUpsertModal from "./inventory-upsert-modal.component";
+
+const mapStateToProps = createStructuredSelector({
+ bodyshop: selectBodyshop,
+ currentUser: selectCurrentUser,
+ inventoryUpsertModal: selectInventoryUpsert,
+});
+const mapDispatchToProps = (dispatch) => ({
+ toggleModalVisible: () => dispatch(toggleModalVisible("inventoryUpsert")),
+});
+
+export function InventoryUpsertModalContainer({
+ currentUser,
+ bodyshop,
+ inventoryUpsertModal,
+ toggleModalVisible,
+}) {
+ const { t } = useTranslation();
+ const [insertInventory] = useMutation(INSERT_INVENTORY_LINE);
+ const [updateInventoryLine] = useMutation(UPDATE_INVENTORY_LINE);
+
+ const { visible, context, actions } = inventoryUpsertModal;
+ const { existingInventory } = context;
+ const { refetch } = actions;
+
+ const [form] = Form.useForm();
+
+ useEffect(() => {
+ //Required to prevent infinite looping.
+ if (existingInventory && visible) {
+ form.setFieldsValue(existingInventory);
+ } else if (!existingInventory && visible) {
+ form.resetFields();
+ }
+ }, [existingInventory, form, visible]);
+
+ const handleFinish = async (formValues) => {
+ const values = formValues;
+
+ if (existingInventory) {
+ logImEXEvent("inventory_update");
+
+ updateInventoryLine({
+ variables: {
+ inventoryId: existingInventory.id,
+ inventoryItem: values,
+ },
+ }).then((r) => {
+ notification["success"]({
+ message: t("inventory.successes.updated"),
+ });
+ });
+ // if (refetch) refetch();
+ toggleModalVisible();
+ } else {
+ logImEXEvent("inventory_insert");
+
+ await insertInventory({
+ variables: {
+ inventoryItem: { shopid: bodyshop.id, ...values },
+ },
+ update(cache, { data }) {
+ cache.modify({
+ fields: {
+ inventory(existingInv) {
+ return [...existingInv, data.insert_inventory_one];
+ },
+ },
+ });
+ },
+ });
+
+ if (refetch) refetch();
+ form.resetFields();
+ toggleModalVisible();
+ notification["success"]({
+ message: t("inventory.successes.inserted"),
+ });
+ }
+ };
+
+ return (
+ {
+ form.submit();
+ }}
+ onCancel={() => {
+ toggleModalVisible();
+ }}
+ destroyOnClose
+ >
+
+
+ );
+}
+
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(InventoryUpsertModalContainer);
diff --git a/client/src/components/rbac-wrapper/rbac-defaults.js b/client/src/components/rbac-wrapper/rbac-defaults.js
index 2f83443ac..1c2a779c4 100644
--- a/client/src/components/rbac-wrapper/rbac-defaults.js
+++ b/client/src/components/rbac-wrapper/rbac-defaults.js
@@ -68,5 +68,6 @@ const ret = {
"users:editaccess": 4,
"inventory:list": 1,
+ "inventory:delete": 2,
};
export default ret;
diff --git a/client/src/components/shop-info/shop-info.rbac.component.jsx b/client/src/components/shop-info/shop-info.rbac.component.jsx
index 4c425ff69..291369255 100644
--- a/client/src/components/shop-info/shop-info.rbac.component.jsx
+++ b/client/src/components/shop-info/shop-info.rbac.component.jsx
@@ -3,9 +3,28 @@ import React from "react";
import { useTranslation } from "react-i18next";
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
import RbacWrapper from "../rbac-wrapper/rbac-wrapper.component";
-export default function ShopInfoRbacComponent({ form }) {
- const { t } = useTranslation();
+import { useTreatments } from "@splitsoftware/splitio-react";
+import { connect } from "react-redux";
+import { createStructuredSelector } from "reselect";
+import { selectBodyshop } from "../../redux/user/user.selectors";
+const mapStateToProps = createStructuredSelector({
+ bodyshop: selectBodyshop,
+});
+const mapDispatchToProps = (dispatch) => ({
+ //setUserLanguage: language => dispatch(setUserLanguage(language))
+});
+export default connect(
+ mapStateToProps,
+ mapDispatchToProps
+)(ShopInfoRbacComponent);
+export function ShopInfoRbacComponent({ form, bodyshop }) {
+ const { t } = useTranslation();
+ const { Simple_Inventory } = useTreatments(
+ ["Simple_Inventory"],
+ {},
+ bodyshop && bodyshop.imexshopid
+ );
return (
@@ -633,18 +652,34 @@ export default function ShopInfoRbacComponent({ form }) {
>
-
-
-
+ {Simple_Inventory.treatment === "on" && (
+ <>
+
+
+
+
+
+
+ >
+ )}
);
diff --git a/client/src/graphql/inventory.queries.js b/client/src/graphql/inventory.queries.js
index 51efcd3b8..1bf9d5928 100644
--- a/client/src/graphql/inventory.queries.js
+++ b/client/src/graphql/inventory.queries.js
@@ -52,6 +52,10 @@ export const QUERY_OUTSTANDING_INVENTORY = gql`
quantity
billlineid
line_desc
+ comment
+ manualinvoicenumber
+ manualvendor
+ consumedbybillid
billline {
bill {
invoice_number
@@ -83,6 +87,10 @@ export const QUERY_INVENTORY_PAGINATED = gql`
line_desc
actual_price
actual_cost
+ comment
+ manualinvoicenumber
+ manualvendor
+ consumedbybillid
bill {
id
invoice_number
@@ -96,6 +104,12 @@ export const QUERY_INVENTORY_PAGINATED = gql`
bill {
id
invoice_number
+ job {
+ id
+ v_make_desc
+ v_model_desc
+ v_model_yr
+ }
vendor {
id
name
@@ -113,3 +127,55 @@ export const QUERY_INVENTORY_PAGINATED = gql`
}
}
`;
+
+export const DELETE_INVENTORY_LINE = gql`
+ mutation DELETE_INVENTORY_LINE($lineId: uuid!) {
+ delete_inventory_by_pk(id: $lineId) {
+ id
+ }
+ }
+`;
+
+export const INSERT_INVENTORY_LINE = gql`
+ mutation INSERT_INVENTORY_LINE($inventoryItem: inventory_insert_input!) {
+ insert_inventory_one(object: $inventoryItem) {
+ id
+ line_desc
+ consumedbybillid
+ billlineid
+ actual_price
+ actual_cost
+ comment
+ manualinvoicenumber
+ manualvendor
+ bill {
+ invoice_number
+ }
+ }
+ }
+`;
+
+export const UPDATE_INVENTORY_LINE = gql`
+ mutation UPDATE_INVENTORY_LINE(
+ $inventoryId: uuid!
+ $inventoryItem: inventory_set_input!
+ ) {
+ update_inventory_by_pk(
+ pk_columns: { id: $inventoryId }
+ _set: $inventoryItem
+ ) {
+ id
+ line_desc
+ consumedbybillid
+ billlineid
+ actual_price
+ actual_cost
+ comment
+ manualinvoicenumber
+ manualvendor
+ bill {
+ invoice_number
+ }
+ }
+ }
+`;
diff --git a/client/src/pages/inventory/inventory.page.jsx b/client/src/pages/inventory/inventory.page.jsx
index 26cc2f2dc..f7c4eca31 100644
--- a/client/src/pages/inventory/inventory.page.jsx
+++ b/client/src/pages/inventory/inventory.page.jsx
@@ -7,6 +7,7 @@ import {
setSelectedHeader,
} from "../../redux/application/application.actions";
import InventoryList from "../../components/inventory-list/inventory-list.container";
+import InventoryUpsertModalContainer from "../../components/inventory-upsert-modal/inventory-upsert-modal.container";
const mapDispatchToProps = (dispatch) => ({
setBreadcrumbs: (breadcrumbs) => dispatch(setBreadcrumbs(breadcrumbs)),
@@ -24,6 +25,7 @@ export function InventoryPage({ setBreadcrumbs, setSelectedHeader }) {
return (
+
);
diff --git a/client/src/redux/modals/modals.reducer.js b/client/src/redux/modals/modals.reducer.js
index a2fde0c7e..72859b08f 100644
--- a/client/src/redux/modals/modals.reducer.js
+++ b/client/src/redux/modals/modals.reducer.js
@@ -23,6 +23,7 @@ const INITIAL_STATE = {
reportCenter: { ...baseModal },
partsReceive: { ...baseModal },
contractFinder: { ...baseModal },
+ inventoryUpsert: { ...baseModal },
ca_bc_eftTableConvert: { ...baseModal },
};
diff --git a/client/src/redux/modals/modals.selectors.js b/client/src/redux/modals/modals.selectors.js
index 410aebd3b..82d4f706d 100644
--- a/client/src/redux/modals/modals.selectors.js
+++ b/client/src/redux/modals/modals.selectors.js
@@ -70,6 +70,10 @@ export const selectContractFinder = createSelector(
[selectModals],
(modals) => modals.contractFinder
);
+export const selectInventoryUpsert = createSelector(
+ [selectModals],
+ (modals) => modals.inventoryUpsert
+);
export const selectCaBcEtfTableConvert = createSelector(
[selectModals],
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index 94299f2e5..c11263fe2 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -355,6 +355,7 @@
"page": "Employees -> List"
},
"inventory": {
+ "delete": "Inventory -> Delete",
"list": "Inventory -> List"
},
"jobs": {
@@ -1079,13 +1080,21 @@
"actions": {
"addtoinventory": "Add to Inventory",
"addtoro": "Add to RO",
- "consumefrominventory": "Consume from Inventory?"
+ "consumefrominventory": "Consume from Inventory?",
+ "edit": "Edit Inventory LIne",
+ "new": "New Inventory Line"
},
"errors": {
"inserting": "Error inserting inventory item. {{error}}"
},
+ "fields": {
+ "comment": "Comment",
+ "manualinvoicenumber": "Invoice Number",
+ "manualvendor": "Vendor"
+ },
"labels": {
"consumedbyjob": "Consumed by Job",
+ "deleteconfirm": "Are you sure you want to delete this from inventory? The associated bill will not be modified or deleted. ",
"frombillinvoicenumber": "Original Bill Invoice Number",
"fromvendor": "Original Bill Vendor",
"inventory": "Inventory",
@@ -1093,7 +1102,9 @@
"showavailable": "Show Only Available Inventory"
},
"successes": {
- "inserted": "Added line to inventory."
+ "deleted": "Inventory lined deleted.",
+ "inserted": "Added line to inventory.",
+ "updated": "Inventory line updated."
}
},
"joblines": {
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index afefc5c9b..25d8103dd 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -355,6 +355,7 @@
"page": ""
},
"inventory": {
+ "delete": "",
"list": ""
},
"jobs": {
@@ -1079,13 +1080,21 @@
"actions": {
"addtoinventory": "",
"addtoro": "",
- "consumefrominventory": ""
+ "consumefrominventory": "",
+ "edit": "",
+ "new": ""
},
"errors": {
"inserting": ""
},
+ "fields": {
+ "comment": "",
+ "manualinvoicenumber": "",
+ "manualvendor": ""
+ },
"labels": {
"consumedbyjob": "",
+ "deleteconfirm": "",
"frombillinvoicenumber": "",
"fromvendor": "",
"inventory": "",
@@ -1093,7 +1102,9 @@
"showavailable": ""
},
"successes": {
- "inserted": ""
+ "deleted": "",
+ "inserted": "",
+ "updated": ""
}
},
"joblines": {
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index ccc887091..b0b95f0ba 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -355,6 +355,7 @@
"page": ""
},
"inventory": {
+ "delete": "",
"list": ""
},
"jobs": {
@@ -1079,13 +1080,21 @@
"actions": {
"addtoinventory": "",
"addtoro": "",
- "consumefrominventory": ""
+ "consumefrominventory": "",
+ "edit": "",
+ "new": ""
},
"errors": {
"inserting": ""
},
+ "fields": {
+ "comment": "",
+ "manualinvoicenumber": "",
+ "manualvendor": ""
+ },
"labels": {
"consumedbyjob": "",
+ "deleteconfirm": "",
"frombillinvoicenumber": "",
"fromvendor": "",
"inventory": "",
@@ -1093,7 +1102,9 @@
"showavailable": ""
},
"successes": {
- "inserted": ""
+ "deleted": "",
+ "inserted": "",
+ "updated": ""
}
},
"joblines": {
diff --git a/hasura/metadata/tables.yaml b/hasura/metadata/tables.yaml
index cb631341f..d41498645 100644
--- a/hasura/metadata/tables.yaml
+++ b/hasura/metadata/tables.yaml
@@ -2166,11 +2166,14 @@
- actual_cost
- actual_price
- billlineid
+ - comment
- consumedbybillid
- created_at
- id
- joblineid
- line_desc
+ - manualinvoicenumber
+ - manualvendor
- quantity
- shopid
- updated_at
@@ -2182,11 +2185,14 @@
- actual_cost
- actual_price
- billlineid
+ - comment
- consumedbybillid
- created_at
- id
- joblineid
- line_desc
+ - manualinvoicenumber
+ - manualvendor
- quantity
- shopid
- updated_at
@@ -2207,11 +2213,14 @@
- actual_cost
- actual_price
- billlineid
+ - comment
- consumedbybillid
- created_at
- id
- joblineid
- line_desc
+ - manualinvoicenumber
+ - manualvendor
- quantity
- shopid
- updated_at
@@ -2225,6 +2234,18 @@
- active:
_eq: true
check: null
+ delete_permissions:
+ - role: user
+ permission:
+ filter:
+ bodyshop:
+ associations:
+ _and:
+ - user:
+ authid:
+ _eq: X-Hasura-User-Id
+ - active:
+ _eq: true
- table:
schema: public
name: ioevents
diff --git a/hasura/migrations/1654731244827_alter_table_public_inventory_add_column_manualinvoicenumber/down.sql b/hasura/migrations/1654731244827_alter_table_public_inventory_add_column_manualinvoicenumber/down.sql
new file mode 100644
index 000000000..876d914dd
--- /dev/null
+++ b/hasura/migrations/1654731244827_alter_table_public_inventory_add_column_manualinvoicenumber/down.sql
@@ -0,0 +1,4 @@
+-- Could not auto-generate a down migration.
+-- Please write an appropriate down migration for the SQL below:
+-- alter table "public"."inventory" add column "manualinvoicenumber" text
+-- null;
diff --git a/hasura/migrations/1654731244827_alter_table_public_inventory_add_column_manualinvoicenumber/up.sql b/hasura/migrations/1654731244827_alter_table_public_inventory_add_column_manualinvoicenumber/up.sql
new file mode 100644
index 000000000..4f00baf8c
--- /dev/null
+++ b/hasura/migrations/1654731244827_alter_table_public_inventory_add_column_manualinvoicenumber/up.sql
@@ -0,0 +1,2 @@
+alter table "public"."inventory" add column "manualinvoicenumber" text
+ null;
diff --git a/hasura/migrations/1654731253232_alter_table_public_inventory_add_column_comment/down.sql b/hasura/migrations/1654731253232_alter_table_public_inventory_add_column_comment/down.sql
new file mode 100644
index 000000000..8c1ef5a86
--- /dev/null
+++ b/hasura/migrations/1654731253232_alter_table_public_inventory_add_column_comment/down.sql
@@ -0,0 +1,4 @@
+-- Could not auto-generate a down migration.
+-- Please write an appropriate down migration for the SQL below:
+-- alter table "public"."inventory" add column "comment" text
+-- null;
diff --git a/hasura/migrations/1654731253232_alter_table_public_inventory_add_column_comment/up.sql b/hasura/migrations/1654731253232_alter_table_public_inventory_add_column_comment/up.sql
new file mode 100644
index 000000000..9d6de6e5d
--- /dev/null
+++ b/hasura/migrations/1654731253232_alter_table_public_inventory_add_column_comment/up.sql
@@ -0,0 +1,2 @@
+alter table "public"."inventory" add column "comment" text
+ null;
diff --git a/hasura/migrations/1654731265455_alter_table_public_inventory_add_column_manualvendor/down.sql b/hasura/migrations/1654731265455_alter_table_public_inventory_add_column_manualvendor/down.sql
new file mode 100644
index 000000000..e89c2f198
--- /dev/null
+++ b/hasura/migrations/1654731265455_alter_table_public_inventory_add_column_manualvendor/down.sql
@@ -0,0 +1,4 @@
+-- Could not auto-generate a down migration.
+-- Please write an appropriate down migration for the SQL below:
+-- alter table "public"."inventory" add column "manualvendor" text
+-- null;
diff --git a/hasura/migrations/1654731265455_alter_table_public_inventory_add_column_manualvendor/up.sql b/hasura/migrations/1654731265455_alter_table_public_inventory_add_column_manualvendor/up.sql
new file mode 100644
index 000000000..3d8e9c871
--- /dev/null
+++ b/hasura/migrations/1654731265455_alter_table_public_inventory_add_column_manualvendor/up.sql
@@ -0,0 +1,2 @@
+alter table "public"."inventory" add column "manualvendor" text
+ null;
diff --git a/hasura/migrations/1654733904736_alter_table_public_inventory_alter_column_quantity/down.sql b/hasura/migrations/1654733904736_alter_table_public_inventory_alter_column_quantity/down.sql
new file mode 100644
index 000000000..a75b52e85
--- /dev/null
+++ b/hasura/migrations/1654733904736_alter_table_public_inventory_alter_column_quantity/down.sql
@@ -0,0 +1 @@
+ALTER TABLE "public"."inventory" ALTER COLUMN "quantity" drop default;
diff --git a/hasura/migrations/1654733904736_alter_table_public_inventory_alter_column_quantity/up.sql b/hasura/migrations/1654733904736_alter_table_public_inventory_alter_column_quantity/up.sql
new file mode 100644
index 000000000..66e3ac26d
--- /dev/null
+++ b/hasura/migrations/1654733904736_alter_table_public_inventory_alter_column_quantity/up.sql
@@ -0,0 +1 @@
+alter table "public"."inventory" alter column "quantity" set default '1';
From 447298c07d4df0eff61b990b42840f4602ed74fb Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Thu, 9 Jun 2022 09:55:48 -0700
Subject: [PATCH 32/41] Revert "Server Side CORS Updates."
This reverts commit fde0681a93f052b7c8d79f6c8e16fa70b2acd886.
---
client/src/utils/CleanAxios.js | 2 --
server.js | 3 +--
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/client/src/utils/CleanAxios.js b/client/src/utils/CleanAxios.js
index 0ddc62be6..19b71e969 100644
--- a/client/src/utils/CleanAxios.js
+++ b/client/src/utils/CleanAxios.js
@@ -6,8 +6,6 @@ if (process.env.NODE_ENV === "production") {
process.env.REACT_APP_AXIOS_BASE_API_URL || "https://api.imex.online/";
}
-axios.defaults.withCredentials = true;
-
export const axiosAuthInterceptorId = axios.interceptors.request.use(
async (config) => {
if (!config.headers.Authorization) {
diff --git a/server.js b/server.js
index d3b809531..952d1cc67 100644
--- a/server.js
+++ b/server.js
@@ -36,7 +36,6 @@ const io = new Server(server, {
"https://www.imex.online",
],
methods: ["GET", "POST"],
- credentials: true,
},
});
exports.io = io;
@@ -49,7 +48,7 @@ app.use(bodyParser.json({ limit: "50mb" }));
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true }));
//app.use(enforce.HTTPS({ trustProtoHeader: true }));
app.use(
- cors({ credentials: true })
+ cors()
// cors({
// credentials: true,
// origin: [
From fa1dbc261105cda2edfdf2118611df7a2021ca06 Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Thu, 9 Jun 2022 10:24:03 -0700
Subject: [PATCH 33/41] Add back cookie support for CORS and WS.
---
client/src/pages/dms/dms.container.jsx | 1 +
server.js | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/client/src/pages/dms/dms.container.jsx b/client/src/pages/dms/dms.container.jsx
index 9d957c7b9..a2e98f5f4 100644
--- a/client/src/pages/dms/dms.container.jsx
+++ b/client/src/pages/dms/dms.container.jsx
@@ -48,6 +48,7 @@ export const socket = SocketIO(
: window.location.origin,
{
path: "/ws",
+ withCredentials: true,
auth: async (callback) => {
const token = auth.currentUser && (await auth.currentUser.getIdToken());
callback({ token });
diff --git a/server.js b/server.js
index 952d1cc67..d3b809531 100644
--- a/server.js
+++ b/server.js
@@ -36,6 +36,7 @@ const io = new Server(server, {
"https://www.imex.online",
],
methods: ["GET", "POST"],
+ credentials: true,
},
});
exports.io = io;
@@ -48,7 +49,7 @@ app.use(bodyParser.json({ limit: "50mb" }));
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true }));
//app.use(enforce.HTTPS({ trustProtoHeader: true }));
app.use(
- cors()
+ cors({ credentials: true })
// cors({
// credentials: true,
// origin: [
From 92fb519642fe88729de13d3919c5ea50fed388e0 Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Thu, 9 Jun 2022 10:46:05 -0700
Subject: [PATCH 34/41] Additional cookie changes.
---
server.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/server.js b/server.js
index d3b809531..29f9b90a5 100644
--- a/server.js
+++ b/server.js
@@ -37,6 +37,7 @@ const io = new Server(server, {
],
methods: ["GET", "POST"],
credentials: true,
+ exposedHeaders: ["set-cookie"],
},
});
exports.io = io;
@@ -49,7 +50,7 @@ app.use(bodyParser.json({ limit: "50mb" }));
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true }));
//app.use(enforce.HTTPS({ trustProtoHeader: true }));
app.use(
- cors({ credentials: true })
+ cors({ credentials: true, exposedHeaders: ["set-cookie"] })
// cors({
// credentials: true,
// origin: [
From c01f402f92736338bc40aeda25a441ccfd31aa65 Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Thu, 9 Jun 2022 11:51:01 -0700
Subject: [PATCH 35/41] Resolved issues for job search select & updated
packages.
---
client/package.json | 36 +-
.../bill-inventory-table.component.jsx | 1 -
.../inventory-bill-ro.component.jsx | 2 +-
.../job-search-select.component.jsx | 57 +-
client/yarn.lock | 535 +++++++++---------
5 files changed, 305 insertions(+), 326 deletions(-)
diff --git a/client/package.json b/client/package.json
index 75a510373..6efc2288f 100644
--- a/client/package.json
+++ b/client/package.json
@@ -4,17 +4,17 @@
"private": true,
"proxy": "http://localhost:4000",
"dependencies": {
- "@apollo/client": "^3.6.2",
+ "@apollo/client": "^3.6.6",
"@asseinfo/react-kanban": "^2.2.0",
"@craco/craco": "^6.4.3",
"@fingerprintjs/fingerprintjs": "^3.3.3",
- "@sentry/react": "^6.19.7",
- "@sentry/tracing": "^6.19.7",
+ "@sentry/react": "^7.1.1",
+ "@sentry/tracing": "^7.1.1",
"@splitsoftware/splitio-react": "^1.4.1",
- "@stripe/react-stripe-js": "^1.8.0",
- "@stripe/stripe-js": "^1.29.0",
- "@tanem/react-nprogress": "^5.0.0",
- "antd": "^4.20.5",
+ "@stripe/react-stripe-js": "^1.8.1",
+ "@stripe/stripe-js": "^1.31.0",
+ "@tanem/react-nprogress": "^5.0.1",
+ "antd": "^4.21.0",
"apollo-link-logger": "^2.0.0",
"axios": "^0.27.2",
"craco-less": "^1.20.0",
@@ -23,19 +23,19 @@
"enquire-js": "^0.2.1",
"env-cmd": "^10.1.0",
"exifr": "^7.1.3",
- "firebase": "^9.8.1",
+ "firebase": "^9.8.2",
"graphql": "^16.5.0",
- "i18next": "^21.8.2",
+ "i18next": "^21.8.9",
"i18next-browser-languagedetector": "^6.1.4",
- "jsoneditor": "^9.7.4",
+ "jsoneditor": "^9.8.0",
"jsreport-browser-client-dist": "^1.3.0",
- "libphonenumber-js": "^1.9.53",
+ "libphonenumber-js": "^1.10.6",
"logrocket": "^3.0.0",
"markerjs2": "^2.21.4",
"moment-business-days": "^1.2.0",
"moment-timezone": "^0.5.34",
"normalize-url": "^7.0.3",
- "phone": "^3.1.17",
+ "phone": "^3.1.20",
"preval.macro": "^5.0.0",
"prop-types": "^15.8.1",
"query-string": "^7.1.1",
@@ -46,11 +46,11 @@
"react-color": "^2.19.3",
"react-cookie": "^4.1.1",
"react-dom": "^17.0.2",
- "react-drag-listview": "^0.2.0",
+ "react-drag-listview": "^0.2.1",
"react-grid-gallery": "^0.5.5",
"react-grid-layout": "^1.3.4",
- "react-i18next": "^11.16.9",
- "react-icons": "^4.3.1",
+ "react-i18next": "^11.17.0",
+ "react-icons": "^4.4.0",
"react-number-format": "^4.9.3",
"react-redux": "^7.2.8",
"react-resizable": "^3.0.4",
@@ -59,14 +59,14 @@
"react-sticky": "^6.0.3",
"react-sublime-video": "^0.2.5",
"react-virtualized": "^9.22.3",
- "recharts": "^2.1.9",
+ "recharts": "^2.1.10",
"redux": "^4.2.0",
"redux-persist": "^6.0.0",
"redux-saga": "^1.1.3",
"redux-state-sync": "^3.1.2",
- "reselect": "^4.1.5",
+ "reselect": "^4.1.6",
"sass": "^1.51.0",
- "socket.io-client": "^4.5.0",
+ "socket.io-client": "^4.5.1",
"styled-components": "^5.3.5",
"subscriptions-transport-ws": "^0.11.0",
"web-vitals": "^2.1.4",
diff --git a/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx b/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
index 9b2222397..3f8fac369 100644
--- a/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
+++ b/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
@@ -42,7 +42,6 @@ export function BillInventoryTable({
}
}, [inventoryData, form, billEnterModal.context.consumeinventoryid]);
- console.log(form.getFieldsValue());
return (
prev.vendorid !== cur.vendorid}
diff --git a/client/src/components/inventory-bill-ro/inventory-bill-ro.component.jsx b/client/src/components/inventory-bill-ro/inventory-bill-ro.component.jsx
index f83811ed7..033192dbd 100644
--- a/client/src/components/inventory-bill-ro/inventory-bill-ro.component.jsx
+++ b/client/src/components/inventory-bill-ro/inventory-bill-ro.component.jsx
@@ -37,7 +37,7 @@ export function InventoryBillRo({
isinhouse: true,
date: moment(),
total: 0,
-
+ billlines: [{}],
// billlines: selectedLines.map((p) => {
// return {
// joblineid: p.id,
diff --git a/client/src/components/job-search-select/job-search-select.component.jsx b/client/src/components/job-search-select/job-search-select.component.jsx
index 8065a65cc..69cb83b23 100644
--- a/client/src/components/job-search-select/job-search-select.component.jsx
+++ b/client/src/components/job-search-select/job-search-select.component.jsx
@@ -1,8 +1,7 @@
-import { LoadingOutlined } from "@ant-design/icons";
import { useLazyQuery } from "@apollo/client";
-import { Empty, Select, Space, Tag } from "antd";
+import { Select, Space, Tag } from "antd";
import _ from "lodash";
-import React, { forwardRef, useEffect } from "react";
+import React, { forwardRef, useState, useEffect } from "react";
import { useTranslation } from "react-i18next";
import {
SEARCH_JOBS_BY_ID_FOR_AUTOCOMPLETE,
@@ -24,31 +23,35 @@ const JobSearchSelect = (
ref
) => {
const { t } = useTranslation();
+ const [theOptions, setTheOptions] = useState([]);
const [callSearch, { loading, error, data }] = useLazyQuery(
SEARCH_JOBS_FOR_AUTOCOMPLETE,
- {
- ...(convertedOnly || notExported
- ? {
- variables: {
- ...(convertedOnly ? { isConverted: true } : {}),
- ...(notExported ? { notExported: true } : {}),
- ...(notInvoiced ? { notInvoiced: true } : {}),
- },
- }
- : {}),
- }
+ {}
);
const [callIdSearch, { loading: idLoading, error: idError, data: idData }] =
useLazyQuery(SEARCH_JOBS_BY_ID_FOR_AUTOCOMPLETE);
const executeSearch = (v) => {
- callSearch(v);
+ if (v && v !== "") callSearch(v);
};
const debouncedExecuteSearch = _.debounce(executeSearch, 500);
const handleSearch = (value) => {
- debouncedExecuteSearch({ variables: { search: value } });
+ debouncedExecuteSearch({
+ variables: {
+ search: value,
+ ...(convertedOnly || notExported
+ ? {
+ variables: {
+ ...(convertedOnly ? { isConverted: true } : {}),
+ ...(notExported ? { notExported: true } : {}),
+ ...(notInvoiced ? { notInvoiced: true } : {}),
+ },
+ }
+ : {}),
+ },
+ });
};
useEffect(() => {
@@ -57,13 +60,17 @@ const JobSearchSelect = (
}
}, [restProps.value, callIdSearch]);
- const theOptions = _.uniqBy(
- [
- ...(idData && idData.jobs_by_pk ? [idData.jobs_by_pk] : []),
- ...(data && data.search_jobs ? data.search_jobs : []),
- ],
- "id"
- );
+ useEffect(() => {
+ setTheOptions(
+ _.uniqBy(
+ [
+ ...(idData && idData.jobs_by_pk ? [idData.jobs_by_pk] : []),
+ ...(data && data.search_jobs ? data.search_jobs : []),
+ ],
+ "id"
+ )
+ );
+ }, [data, idData]);
return (
@@ -77,7 +84,8 @@ const JobSearchSelect = (
}}
filterOption={false}
onSearch={handleSearch}
- notFoundContent={loading ? : }
+ loading={loading || idLoading}
+ //notFoundContent={loading ? : }
{...restProps}
>
{theOptions
@@ -99,7 +107,6 @@ const JobSearchSelect = (
))
: null}
- {idLoading || loading ? : null}
{error ? : null}
{idError ? (
diff --git a/client/yarn.lock b/client/yarn.lock
index aabcedf80..9d23a0a14 100644
--- a/client/yarn.lock
+++ b/client/yarn.lock
@@ -36,10 +36,10 @@
lodash "^4.17.21"
resize-observer-polyfill "^1.5.0"
-"@apollo/client@^3.6.2":
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.6.2.tgz#0418bfa6358dd117894c8af396706cfa2b186032"
- integrity sha512-DNWyl+NNU2VsfHtXwOr4rV9hnQFPkl2/dNXeouhk9q7bXCWdEh3K8YTt/frULGVKbQjtnlPmz8C+LFI/JZ2N3w==
+"@apollo/client@^3.6.6":
+ version "3.6.6"
+ resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.6.6.tgz#3fb1f5b11da9a64b51b5a86b62450bee034e7f41"
+ integrity sha512-AzNLN043wy0bDTTR9wzKYSu+I1IT2Ox3+vWckxgIt88Jfw5jHBvumf3lXE1JlgvbFCTiKS/Sa66AadQXWMVBRQ==
dependencies:
"@graphql-typed-document-node/core" "^3.1.1"
"@wry/context" "^0.6.0"
@@ -50,10 +50,9 @@
optimism "^0.16.1"
prop-types "^15.7.2"
symbol-observable "^4.0.0"
- ts-invariant "^0.10.0"
+ ts-invariant "^0.10.3"
tslib "^2.3.0"
- use-sync-external-store "^1.0.0"
- zen-observable-ts "^1.2.0"
+ zen-observable-ts "^1.2.5"
"@asseinfo/react-kanban@^2.2.0":
version "2.2.0"
@@ -1106,10 +1105,10 @@
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.17.9":
- version "7.17.9"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.9.tgz#d19fbf802d01a8cb6cf053a64e472d42c434ba72"
- integrity sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==
+"@babel/runtime@^7.18.3":
+ version "7.18.3"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4"
+ integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==
dependencies:
regenerator-runtime "^0.13.4"
@@ -1333,12 +1332,12 @@
"@firebase/util" "1.6.0"
tslib "^2.1.0"
-"@firebase/app-compat@0.1.25":
- version "0.1.25"
- resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.1.25.tgz#4ba8b9209cd956e31a3418343db4a21016d7673d"
- integrity sha512-FdCnYwIM3R+OuRE7nrAdVT5oNlvSAHQHN1ictB/gjCFs58lXMCe0DCIRDrA7zxaOFIKeWPtx35ZNXv3EdPFNpQ==
+"@firebase/app-compat@0.1.26":
+ version "0.1.26"
+ resolved "https://registry.yarnpkg.com/@firebase/app-compat/-/app-compat-0.1.26.tgz#46ca3ea0929a28b6d894f6d4fd8d49a0fe2b66ca"
+ integrity sha512-i5UTq1HZAHuhe7RNjgFSezbow4jVxc2oe3Gndsv+Hdut92f8L0AyssOtdU2iOylLlxbTijewAXXui4FAUzXubw==
dependencies:
- "@firebase/app" "0.7.24"
+ "@firebase/app" "0.7.25"
"@firebase/component" "0.5.14"
"@firebase/logger" "0.3.2"
"@firebase/util" "1.6.0"
@@ -1349,10 +1348,10 @@
resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.7.0.tgz#c9e16d1b8bed1a991840b8d2a725fb58d0b5899f"
integrity sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg==
-"@firebase/app@0.7.24":
- version "0.7.24"
- resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.7.24.tgz#bfdfcbf6145d5d1e8e3fcda7a2044a0a510bf476"
- integrity sha512-HIbAhayEykbCez1Rl6pmzAWbIx63Mc9+t3ngWKqZdkMnBNAAJvYaUdx7Krus7O9XHUKNw/gzBUETAEYt93jusA==
+"@firebase/app@0.7.25":
+ version "0.7.25"
+ resolved "https://registry.yarnpkg.com/@firebase/app/-/app-0.7.25.tgz#a5ee629d7f957579d5b25105c70316886a75cfc3"
+ integrity sha512-OemDA3NZS1oEbAPFlWHeVI8Od26ZHAXUivUWFYIsYrw+YjS7FloltwyHB06Q8LQyPJIBPubGkEuzNTHz32EDCQ==
dependencies:
"@firebase/component" "0.5.14"
"@firebase/logger" "0.3.2"
@@ -1360,17 +1359,17 @@
idb "7.0.1"
tslib "^2.1.0"
-"@firebase/auth-compat@0.2.14":
- version "0.2.14"
- resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.2.14.tgz#ea7dcc38121ce2f2cc9a687830025c8c67d356d8"
- integrity sha512-1KSNItrTQzky2d0GVCum6d7Hdj9pfNh9aGTN0uJPNk+th9XHBCy0El8Wx5yk0miiyB3h1evWAXdgnIyNs4kTEQ==
+"@firebase/auth-compat@0.2.15":
+ version "0.2.15"
+ resolved "https://registry.yarnpkg.com/@firebase/auth-compat/-/auth-compat-0.2.15.tgz#dbd04173657fdf525d9da89433b64cd3c658a1c4"
+ integrity sha512-Kl8pujKWVBJ+76h4tRsS5xI9Dvk8MVSP6eN82rnEgmCxiUsnVj5Adb/WzvS3p4/l++4mRSAEnlIVxZ2Pyaeirg==
dependencies:
- "@firebase/auth" "0.20.1"
+ "@firebase/auth" "0.20.2"
"@firebase/auth-types" "0.11.0"
"@firebase/component" "0.5.14"
"@firebase/util" "1.6.0"
node-fetch "2.6.7"
- selenium-webdriver " 4.1.1"
+ selenium-webdriver "4.1.2"
tslib "^2.1.0"
"@firebase/auth-interop-types@0.1.6":
@@ -1383,16 +1382,16 @@
resolved "https://registry.yarnpkg.com/@firebase/auth-types/-/auth-types-0.11.0.tgz#b9c73c60ca07945b3bbd7a097633e5f78fa9e886"
integrity sha512-q7Bt6cx+ySj9elQHTsKulwk3+qDezhzRBFC9zlQ1BjgMueUOnGMcvqmU0zuKlQ4RhLSH7MNAdBV2znVaoN3Vxw==
-"@firebase/auth@0.20.1":
- version "0.20.1"
- resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.20.1.tgz#a0a4cac5c73f3e496a6444d17ec4e1e63f33233c"
- integrity sha512-rffEVZOkcQbQG3zcyhgbJFrE3xIDYtaEIIio5/bMCukitIx0n8okKhb0XKXJ/LGO3zZFRwWh4tyU53t6tHB9uQ==
+"@firebase/auth@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@firebase/auth/-/auth-0.20.2.tgz#fbd080a1ae279f81615cf03960fd6b9769f615c6"
+ integrity sha512-anv2dhHXnlHSuXDuXIoCm/w/JJ+SiQ1TAKgNVYlhfq+yvx9Op8CxfTqcfBwfbIZ1gizw4PNLuk82m8KelsKl6Q==
dependencies:
"@firebase/component" "0.5.14"
"@firebase/logger" "0.3.2"
"@firebase/util" "1.6.0"
node-fetch "2.6.7"
- selenium-webdriver " 4.1.1"
+ selenium-webdriver "4.1.2"
tslib "^2.1.0"
"@firebase/component@0.5.14":
@@ -2105,14 +2104,14 @@
estree-walker "^1.0.1"
picomatch "^2.2.2"
-"@sentry/browser@6.19.7":
- version "6.19.7"
- resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-6.19.7.tgz#a40b6b72d911b5f1ed70ed3b4e7d4d4e625c0b5f"
- integrity sha512-oDbklp4O3MtAM4mtuwyZLrgO1qDVYIujzNJQzXmi9YzymJCuzMLSRDvhY83NNDCRxf0pds4DShgYeZdbSyKraA==
+"@sentry/browser@7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.1.1.tgz#2d1fe4a81e0d9679aa73c5ae69a0958e4e42b422"
+ integrity sha512-5AQvStZ+nOP/yxsBmeMZpeGLVtuOgnCNvswKd/c1CJwNw7bDmCE4TQeNKp1C3Gb7lSdBk8ViwUKn0ZpoVQ5MTw==
dependencies:
- "@sentry/core" "6.19.7"
- "@sentry/types" "6.19.7"
- "@sentry/utils" "6.19.7"
+ "@sentry/core" "7.1.1"
+ "@sentry/types" "7.1.1"
+ "@sentry/utils" "7.1.1"
tslib "^1.9.3"
"@sentry/cli@^1.74.4":
@@ -2128,69 +2127,57 @@
proxy-from-env "^1.1.0"
which "^2.0.2"
-"@sentry/core@6.19.7":
- version "6.19.7"
- resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.19.7.tgz#156aaa56dd7fad8c89c145be6ad7a4f7209f9785"
- integrity sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==
+"@sentry/core@7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.1.1.tgz#85f73f8037eec61e37549998de03a6d3d3c635b5"
+ integrity sha512-SADdAoG5u1LTJhPN5KPtn5HHmH6r0mr6h2LokuZnhj6/okrAuCIIKOb6Fh8jV7j2VuABvew8+FjJHORxi7D/3Q==
dependencies:
- "@sentry/hub" "6.19.7"
- "@sentry/minimal" "6.19.7"
- "@sentry/types" "6.19.7"
- "@sentry/utils" "6.19.7"
+ "@sentry/hub" "7.1.1"
+ "@sentry/types" "7.1.1"
+ "@sentry/utils" "7.1.1"
tslib "^1.9.3"
-"@sentry/hub@6.19.7":
- version "6.19.7"
- resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.19.7.tgz#58ad7776bbd31e9596a8ec46365b45cd8b9cfd11"
- integrity sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==
+"@sentry/hub@7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.1.1.tgz#d6aa54e7bd20a71cebd602701dd29d5d581d391a"
+ integrity sha512-ASsRVjYDIii6ZTf36JnIYKHWBQBk0P42Tgq324MpyPgaeVDg3saBcyXO5iAtWvY6Vmdi2H4JCVDoir2Zz3Me1w==
dependencies:
- "@sentry/types" "6.19.7"
- "@sentry/utils" "6.19.7"
+ "@sentry/types" "7.1.1"
+ "@sentry/utils" "7.1.1"
tslib "^1.9.3"
-"@sentry/minimal@6.19.7":
- version "6.19.7"
- resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.19.7.tgz#b3ee46d6abef9ef3dd4837ebcb6bdfd01b9aa7b4"
- integrity sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==
+"@sentry/react@^7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.1.1.tgz#13d63384d1a8c916b96ea79b74fc419ba967fb6a"
+ integrity sha512-Z7cZvXHIWxg7OhOSy4InhrRgQPRNtHsyOkIAHkgwW32JYOGTg1HdqQ5mFUxQLejhU/YqsxVjTK4CI58FATykLw==
dependencies:
- "@sentry/hub" "6.19.7"
- "@sentry/types" "6.19.7"
- tslib "^1.9.3"
-
-"@sentry/react@^6.19.7":
- version "6.19.7"
- resolved "https://registry.yarnpkg.com/@sentry/react/-/react-6.19.7.tgz#58cc2d6da20f7d3b0df40638dfbbbc86c9c85caf"
- integrity sha512-VzJeBg/v41jfxUYPkH2WYrKjWc4YiMLzDX0f4Zf6WkJ4v3IlDDSkX6DfmWekjTKBho6wiMkSNy2hJ1dHfGZ9jA==
- dependencies:
- "@sentry/browser" "6.19.7"
- "@sentry/minimal" "6.19.7"
- "@sentry/types" "6.19.7"
- "@sentry/utils" "6.19.7"
+ "@sentry/browser" "7.1.1"
+ "@sentry/types" "7.1.1"
+ "@sentry/utils" "7.1.1"
hoist-non-react-statics "^3.3.2"
tslib "^1.9.3"
-"@sentry/tracing@^6.19.7":
- version "6.19.7"
- resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.19.7.tgz#54bb99ed5705931cd33caf71da347af769f02a4c"
- integrity sha512-ol4TupNnv9Zd+bZei7B6Ygnr9N3Gp1PUrNI761QSlHtPC25xXC5ssSD3GMhBgyQrcvpuRcCFHVNNM97tN5cZiA==
+"@sentry/tracing@^7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.1.1.tgz#8996c0913803d3c4a103388c9c0dd2410cca8478"
+ integrity sha512-MJ+EPGfvPlgbJOcZRoIl6+Oi0oRE2nIi/HP2BPJSKGxXFi2Y09bcZUwfxOH8fkUa465jOGBFdCm+sXcbyExvuw==
dependencies:
- "@sentry/hub" "6.19.7"
- "@sentry/minimal" "6.19.7"
- "@sentry/types" "6.19.7"
- "@sentry/utils" "6.19.7"
+ "@sentry/hub" "7.1.1"
+ "@sentry/types" "7.1.1"
+ "@sentry/utils" "7.1.1"
tslib "^1.9.3"
-"@sentry/types@6.19.7":
- version "6.19.7"
- resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.19.7.tgz#c6b337912e588083fc2896eb012526cf7cfec7c7"
- integrity sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==
+"@sentry/types@7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.1.1.tgz#63aa68e7be36d63cc305d01af9119a4cdb186ae3"
+ integrity sha512-5N1UMd2SqvUXprcIUMyDEju3H9lJY2oWfWQBGo0lG6Amn/lGAPAYlchg+4vQCLutDQMyd8K9zPwcbKn4u6gHdw==
-"@sentry/utils@6.19.7":
- version "6.19.7"
- resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.19.7.tgz#6edd739f8185fd71afe49cbe351c1bbf5e7b7c79"
- integrity sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==
+"@sentry/utils@7.1.1":
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.1.1.tgz#7174a1439f8970510207fa7587385119397e1718"
+ integrity sha512-DPRHDf3InfyVgmxToE4Z+AATAR4OVm+wsXDLFGGyncR91CE1x4wLQKOcAJJwX3F0Hz1VHENfmx1DvyYTHOrC/A==
dependencies:
- "@sentry/types" "6.19.7"
+ "@sentry/types" "7.1.1"
tslib "^1.9.3"
"@sentry/webpack-plugin@^1.18.9":
@@ -2243,17 +2230,17 @@
shallowequal "^1.1.0"
unfetch "^4.2.0"
-"@stripe/react-stripe-js@^1.8.0":
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/@stripe/react-stripe-js/-/react-stripe-js-1.8.0.tgz#b07f1d95e75fe93ac5c33346539ec0972298957d"
- integrity sha512-WtF2mIWJKnyAaZledC48NfynFckEseCPG8tybwFgisFxHvLPKrArlLISJOi2cjIY20DkMAkSkdlEljXifJi0ZA==
+"@stripe/react-stripe-js@^1.8.1":
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/@stripe/react-stripe-js/-/react-stripe-js-1.8.1.tgz#b646e3a8775dbb0432e234c6e1d67b19c4c0462d"
+ integrity sha512-8TpHu87zWSX/PhMMIC2C0jYXKl53kdiHz7bDSfLDs2oIynbV5L9cyoCZ1NuTllrNvFtd28fOqPc4IikZYRRDew==
dependencies:
prop-types "^15.7.2"
-"@stripe/stripe-js@^1.29.0":
- version "1.29.0"
- resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-1.29.0.tgz#f41e46aee711d1eabcb3bbc77376016a250ec962"
- integrity sha512-OsUxk0VLlum8E2d6onlEdKuQcvLMs7qTrOXCnl/BGV3fAm65qr6h3e1IZ5AX4lgUlPRrzRcddSOA5DvkKKYLvg==
+"@stripe/stripe-js@^1.31.0":
+ version "1.31.0"
+ resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-1.31.0.tgz#2920bdddc3eabb5734f9ca794824e25b378533ac"
+ integrity sha512-drlXsNvd/s9S1+Ghja0aDB81N3Wr/6iRAZ7MOzKv7AtKxVdvGpOwESw3z1lHl/Wx/rvPpA7whKdB3W2CnVSArw==
"@surma/rollup-plugin-off-main-thread@^1.1.1":
version "1.4.2"
@@ -2366,12 +2353,12 @@
"@svgr/plugin-svgo" "^5.5.0"
loader-utils "^2.0.0"
-"@tanem/react-nprogress@^5.0.0":
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/@tanem/react-nprogress/-/react-nprogress-5.0.0.tgz#5da9b9f5719f40192dea7d7157fe5fa0da64061e"
- integrity sha512-ReHCykV4pRIiXsPvbIwZ7Qrxx+940W5AdPsrXeFJlxBWUa9HEMtjXxwwvCoFbnlDF1ZziNvriAvgD/rneM9v3g==
+"@tanem/react-nprogress@^5.0.1":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@tanem/react-nprogress/-/react-nprogress-5.0.1.tgz#338249e907c805e51ab9e6c712ee59130f190f93"
+ integrity sha512-Q6nVFs4EP88L8b/oVS5MJgEfF7NaWfQ5sGuNXVvxtzPn6EmfCsunG5Oj5pZdpDH0MFSRMvd9cfuL/WpW+S+bvg==
dependencies:
- "@babel/runtime" "^7.17.9"
+ "@babel/runtime" "^7.18.3"
hoist-non-react-statics "^3.3.2"
"@testing-library/cypress@^8.0.2":
@@ -2464,42 +2451,6 @@
resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803"
integrity sha512-LKVP3cgXBT9RYj+t+9FDKwS5tdI+rPBXaNSkma7hvqy35lc7mAokC2zsqWJH0LaqIt3B962nuYI77hsJoT1gow==
-"@types/d3-color@^2":
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-2.0.3.tgz#8bc4589073c80e33d126345542f588056511fe82"
- integrity sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w==
-
-"@types/d3-interpolate@^2.0.0":
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-2.0.2.tgz#78eddf7278b19e48e8652603045528d46897aba0"
- integrity sha512-lElyqlUfIPyWG/cD475vl6msPL4aMU7eJvx1//Q177L8mdXoVPFl1djIESF2FKnc0NyaHvQlJpWwKJYwAhUoCw==
- dependencies:
- "@types/d3-color" "^2"
-
-"@types/d3-path@^2":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-2.0.1.tgz#ca03dfa8b94d8add97ad0cd97e96e2006b4763cb"
- integrity sha512-6K8LaFlztlhZO7mwsZg7ClRsdLg3FJRzIIi6SZXDWmmSJc2x8dd2VkESbLXdk3p8cuvz71f36S0y8Zv2AxqvQw==
-
-"@types/d3-scale@^3.0.0":
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-3.3.2.tgz#18c94e90f4f1c6b1ee14a70f14bfca2bd1c61d06"
- integrity sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ==
- dependencies:
- "@types/d3-time" "^2"
-
-"@types/d3-shape@^2.0.0":
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-2.1.3.tgz#35d397b9e687abaa0de82343b250b9897b8cacf3"
- integrity sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ==
- dependencies:
- "@types/d3-path" "^2"
-
-"@types/d3-time@^2":
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-2.1.1.tgz#743fdc821c81f86537cbfece07093ac39b4bc342"
- integrity sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg==
-
"@types/eslint@^7.28.2":
version "7.29.0"
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.29.0.tgz#e56ddc8e542815272720bb0b4ccc2aff9c3e1c78"
@@ -3048,10 +2999,10 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
mime-types "~2.1.24"
negotiator "0.6.2"
-ace-builds@^1.4.14:
- version "1.4.14"
- resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.4.14.tgz#2c41ccbccdd09e665d3489f161a20baeb3a3c852"
- integrity sha512-NBOQlm9+7RBqRqZwimpgquaLeTJFayqb9UEPtTkpC3TkkwDnlsT/TwsCC0svjt9kEZ6G9mH5AEOHSz6Q/HrzQQ==
+ace-builds@^1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.5.3.tgz#05f81d3464a9ea19696e5e6fd0f924d37dab442f"
+ integrity sha512-WN5BKR2aTSuBmisO8jo3Fytk6sOmJGki82v/Boeic81IgYN8pFHNkXq2anDF0XkmfDWMqLbRoW9sjc/GtKzQbQ==
acorn-globals@^6.0.0:
version "6.0.0"
@@ -3210,10 +3161,10 @@ ansi-styles@^5.0.0:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
-antd@^4.20.5:
- version "4.20.5"
- resolved "https://registry.yarnpkg.com/antd/-/antd-4.20.5.tgz#ac6a35f8ed2703dc94ac4661d5d10a88912be457"
- integrity sha512-43bV1y9pXsccMBmThEPnk0FdPPl5oqEZs8wneKEtdUm6RusmAHxxWnWGgoqdVsEP2ASRDcwyhECTLu2oPw88ug==
+antd@^4.21.0:
+ version "4.21.0"
+ resolved "https://registry.yarnpkg.com/antd/-/antd-4.21.0.tgz#44e65d08528b28664d3ef00a539964c2133f3338"
+ integrity sha512-p8R5scejlWjAIF/NoJ5JF5OMjLbAlCA7u85cNwbtRQOP+14KQDXZyHMT4C5oc9nhz7xxD/Bry6HhPkUmsRuP7Q==
dependencies:
"@ant-design/colors" "^6.0.0"
"@ant-design/icons" "^4.7.0"
@@ -3225,36 +3176,36 @@ antd@^4.20.5:
lodash "^4.17.21"
memoize-one "^6.0.0"
moment "^2.29.2"
- rc-cascader "~3.5.0"
+ rc-cascader "~3.6.0"
rc-checkbox "~2.3.0"
- rc-collapse "~3.1.0"
- rc-dialog "~8.8.1"
+ rc-collapse "~3.3.0"
+ rc-dialog "~8.8.2"
rc-drawer "~4.4.2"
- rc-dropdown "~3.5.0"
+ rc-dropdown "~4.0.0"
rc-field-form "~1.26.1"
rc-image "~5.6.0"
rc-input "~0.0.1-alpha.5"
rc-input-number "~7.3.0"
- rc-mentions "~1.7.0"
- rc-menu "~9.5.5"
+ rc-mentions "~1.8.0"
+ rc-menu "~9.6.0"
rc-motion "^2.5.1"
rc-notification "~4.6.0"
- rc-pagination "~3.1.9"
- rc-picker "~2.6.4"
- rc-progress "~3.2.1"
+ rc-pagination "~3.1.16"
+ rc-picker "~2.6.8"
+ rc-progress "~3.3.2"
rc-rate "~2.9.0"
rc-resize-observer "^1.2.0"
- rc-segmented "~2.1.0 "
+ rc-segmented "~2.1.0"
rc-select "~14.1.1"
rc-slider "~10.0.0"
rc-steps "~4.1.0"
rc-switch "~3.2.0"
rc-table "~7.24.0"
- rc-tabs "~11.13.0"
+ rc-tabs "~11.16.0"
rc-textarea "~0.3.0"
rc-tooltip "~5.1.1"
- rc-tree "~5.5.0"
- rc-tree-select "~5.3.0"
+ rc-tree "~5.6.4"
+ rc-tree-select "~5.4.0"
rc-trigger "^5.2.10"
rc-upload "~4.3.0"
rc-util "^5.20.0"
@@ -6630,20 +6581,20 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
-firebase@^9.8.1:
- version "9.8.1"
- resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.8.1.tgz#502e186078d69d72ab8d4f1b5befa287e0858276"
- integrity sha512-VyM+3ijzB1Q24b9v6HzVOB0bXNy0a/maOZlmv2P8M29VXfrS/npo6zntNiOEtcjrCoItZIuWFH4oDGiYkPHxbg==
+firebase@^9.8.2:
+ version "9.8.2"
+ resolved "https://registry.yarnpkg.com/firebase/-/firebase-9.8.2.tgz#ce2b8a6d41036b323d963280c345b03f4bd4df52"
+ integrity sha512-cVPpiR18vsLuGWAAVkVhNO6mYsEgYBqawvMI2zxKo2FCtneyBgMwOyWKI8VyCmL5ze5p5QJTPjkoatM6rZkd0Q==
dependencies:
"@firebase/analytics" "0.7.9"
"@firebase/analytics-compat" "0.1.10"
- "@firebase/app" "0.7.24"
+ "@firebase/app" "0.7.25"
"@firebase/app-check" "0.5.8"
"@firebase/app-check-compat" "0.2.8"
- "@firebase/app-compat" "0.1.25"
+ "@firebase/app-compat" "0.1.26"
"@firebase/app-types" "0.7.0"
- "@firebase/auth" "0.20.1"
- "@firebase/auth-compat" "0.2.14"
+ "@firebase/auth" "0.20.2"
+ "@firebase/auth-compat" "0.2.15"
"@firebase/database" "0.13.0"
"@firebase/database-compat" "0.2.0"
"@firebase/firestore" "3.4.9"
@@ -7412,10 +7363,10 @@ i18next-browser-languagedetector@^6.1.4:
dependencies:
"@babel/runtime" "^7.14.6"
-i18next@^21.8.2:
- version "21.8.2"
- resolved "https://registry.yarnpkg.com/i18next/-/i18next-21.8.2.tgz#b2d9fd7feafc1a9929651c24a5c17ba703552bbc"
- integrity sha512-H/oQvA/OXcqurXHemlyDwdIzr9GHYg5/xBuDeFXTXJGMOJFH0ke1wgbsDjFFk2noD4cJfzicVPpUtp39Z+OzgQ==
+i18next@^21.8.9:
+ version "21.8.9"
+ resolved "https://registry.yarnpkg.com/i18next/-/i18next-21.8.9.tgz#c79edd5bba61e0a0d5b43a93d52e2d13a526de82"
+ integrity sha512-PY9a/8ADVmnju1tETeglbbVQi+nM5pcJQWm9kvKMTE3GPgHHtpDsHy5HQ/hccz2/xtW7j3vuso23JdQSH0EttA==
dependencies:
"@babel/runtime" "^7.17.2"
@@ -8721,12 +8672,12 @@ json5@^2.1.2:
dependencies:
minimist "^1.2.5"
-jsoneditor@^9.7.4:
- version "9.7.4"
- resolved "https://registry.yarnpkg.com/jsoneditor/-/jsoneditor-9.7.4.tgz#00ddbd99950f8551e0d5e5d0bb9c69584beabda4"
- integrity sha512-Ln+WdNKLwaqaA64RgI8SI5PRA5RpcVougDNF9ILVzgyj3gDY9ev4WIQcgjoEoQC3Ymml3V7scQ08sDKiNSjo9Q==
+jsoneditor@^9.8.0:
+ version "9.8.0"
+ resolved "https://registry.yarnpkg.com/jsoneditor/-/jsoneditor-9.8.0.tgz#08db81ccf6f6e9fdff8691e42c4fb62d3efdd6ad"
+ integrity sha512-q1ekwYizbSAny0/UAEOzLviVCyBS5XFGwM/EUNf9KnfB1MRSDmJDWjt4lAqMVz1TUV5O/l3J4/WzUSLQh2tZjw==
dependencies:
- ace-builds "^1.4.14"
+ ace-builds "^1.5.3"
ajv "^6.12.6"
javascript-natural-sort "^0.7.1"
jmespath "^0.16.0"
@@ -8901,10 +8852,10 @@ levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
-libphonenumber-js@^1.9.53:
- version "1.9.53"
- resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.9.53.tgz#f4f3321f8fb0ee62952c2a8df4711236d2626088"
- integrity sha512-3cuMrA2CY3TbKVC0wKye5dXYgxmVVi4g13gzotprQSguFHMqf0pIrMM2Z6ZtMsSWqvtIqi5TuQhGjMhxz0O9Mw==
+libphonenumber-js@^1.10.6:
+ version "1.10.6"
+ resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.6.tgz#a453efe9d692cc9457abb20a712dec34472a7164"
+ integrity sha512-CIjT100/SmntsUjsLVs2t3ufeN4KdNXUxhD07tH153pdbaCWuAjv0jK/gPuywR3IImB/U/MQM+x9RfhMs5XZiA==
lie@~3.3.0:
version "3.3.0"
@@ -10233,10 +10184,10 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-phone@^3.1.17:
- version "3.1.17"
- resolved "https://registry.yarnpkg.com/phone/-/phone-3.1.17.tgz#4cf6e8f3738ba35d5261979c98823005af459792"
- integrity sha512-62vV6eQGP15iGzCPS+ugaEzuvxz6qWBUlKnrAqzKtGUMT3HlLD7vpoi9NA+Ty7M3KvnKI+idddOgufqu1XAeEA==
+phone@^3.1.20:
+ version "3.1.20"
+ resolved "https://registry.yarnpkg.com/phone/-/phone-3.1.20.tgz#8b7b326c182ce70eaf7884eae3eee0cd6e7ee7b3"
+ integrity sha512-RR23OELEPPMWX3fz//ajrElna+9Y10iqBTL6W1SXHeQPnvpVd8ey2tYYcIH8lB70QL3QiTMDiSIwaINcde6SOw==
picocolors@^0.2.1:
version "0.2.1"
@@ -11332,16 +11283,16 @@ rc-align@^4.0.0:
rc-util "^5.3.0"
resize-observer-polyfill "^1.5.1"
-rc-cascader@~3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.5.0.tgz#a49b632bc2d0c8ef31b212c8ddd0bea346e64877"
- integrity sha512-rpXnWCfvk7Frh2dBzMoA0c7i0nn6aJU7L2NZo8R8pNkrT0sKgytQSpdtPWP+Pq8IkvwbEd8BU8Z8OnOljcqgZg==
+rc-cascader@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-3.6.0.tgz#7db0d373edf4c276bba4b68b7de57fad1486c908"
+ integrity sha512-p9qwt8E8ZICzPIzyfXF5y7/lbJhRowFj8YhWpdytMomHUZ568duFNwA4H5QVqdC6hg/HIV1YEawOE5jlxSpeww==
dependencies:
"@babel/runtime" "^7.12.5"
array-tree-filter "^2.1.0"
classnames "^2.3.1"
rc-select "~14.1.0"
- rc-tree "~5.5.0"
+ rc-tree "~5.6.3"
rc-util "^5.6.1"
rc-checkbox@~2.3.0:
@@ -11352,10 +11303,10 @@ rc-checkbox@~2.3.0:
"@babel/runtime" "^7.10.1"
classnames "^2.2.1"
-rc-collapse@~3.1.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.1.2.tgz#76028a811b845d03d9460ccc409c7ea8ad09db14"
- integrity sha512-HujcKq7mghk/gVKeI6EjzTbb8e19XUZpakrYazu1MblEZ3Hu3WBMSN4A3QmvbF6n1g7x6lUlZvsHZ5shABWYOQ==
+rc-collapse@~3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-3.3.0.tgz#ecde33a06ca53c6c672c6a46c701052b88723950"
+ integrity sha512-nkxjhpYAAwEVbBvZ/qoatLecD0PpRtQ5ja9G+FP1QmsWhs/4VCruhjvRdSpMn9vfluKUnePe3PEy8eeqTeuE0g==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
@@ -11363,7 +11314,7 @@ rc-collapse@~3.1.0:
rc-util "^5.2.1"
shallowequal "^1.1.0"
-rc-dialog@~8.8.0, rc-dialog@~8.8.1:
+rc-dialog@~8.8.0:
version "8.8.1"
resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-8.8.1.tgz#cd8897fbee1de0eab6d237a6abe1e4db8d09dd72"
integrity sha512-7M1WKZCjfIABKEaJVskdYvb80z+RX7I11PeSjPVfLOOaJAmIepvDEd0alBtOZvOL3fZFWlMs4JVZtp9LZgONxA==
@@ -11373,6 +11324,16 @@ rc-dialog@~8.8.0, rc-dialog@~8.8.1:
rc-motion "^2.3.0"
rc-util "^5.21.0"
+rc-dialog@~8.8.2:
+ version "8.8.2"
+ resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-8.8.2.tgz#2212c63b940cf0ca46f961803f83007966cc6582"
+ integrity sha512-n1waqBDDKqCCcPCDGycahfawF00WqgtXTXUwxrLStUpfQAo7nzkAvTq9voT78X2qN83UYvrMg1TWCuTueBp+sg==
+ dependencies:
+ "@babel/runtime" "^7.10.1"
+ classnames "^2.2.6"
+ rc-motion "^2.3.0"
+ rc-util "^5.21.0"
+
rc-drawer@~4.4.2:
version "4.4.3"
resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-4.4.3.tgz#2094937a844e55dc9644236a2d9fba79c344e321"
@@ -11382,14 +11343,14 @@ rc-drawer@~4.4.2:
classnames "^2.2.6"
rc-util "^5.7.0"
-rc-dropdown@~3.5.0:
- version "3.5.2"
- resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-3.5.2.tgz#2f1f4eeb36c07fb67cd599c0cb8e861da3de5527"
- integrity sha512-Ty4LsXjkspZuFJSRx3blCLLCDicXM5qds6F1odgEa+jcjC+OJKHQGnvE4FqtoljPaqWm4wG78pbgXH6Ddh2DkA==
+rc-dropdown@~4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/rc-dropdown/-/rc-dropdown-4.0.1.tgz#f65d9d3d89750241057db59d5a75e43cd4576b68"
+ integrity sha512-OdpXuOcme1rm45cR0Jzgfl1otzmU4vuBVb+etXM8vcaULGokAKVpKlw8p6xzspG7jGd/XxShvq+N3VNEfk/l5g==
dependencies:
- "@babel/runtime" "^7.10.1"
+ "@babel/runtime" "^7.18.3"
classnames "^2.2.6"
- rc-trigger "^5.0.4"
+ rc-trigger "^5.3.1"
rc-util "^5.17.0"
rc-field-form@~1.26.1:
@@ -11429,22 +11390,22 @@ rc-input@~0.0.1-alpha.5:
classnames "^2.2.1"
rc-util "^5.18.1"
-rc-mentions@~1.7.0:
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-1.7.1.tgz#480ad04af4460ee01b6ccd9137fcea23067aa9be"
- integrity sha512-JbCS9bTqt6BYN2vfTPythlScLuc42rIlX85n7975RnkfawXlJjskHOlR3o8EpD4asl4KuA2jKTy0dj39DtSVqg==
+rc-mentions@~1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/rc-mentions/-/rc-mentions-1.8.0.tgz#4c0c41605064303f7aedec47d4d07e0bbfcc2dc3"
+ integrity sha512-ch7yfMMvx2UXy+EvE4axm0Vp6VlVZ30WLrZtLtV/Eb1ty7rQQRzNzCwAHAMyw6tNKTMs9t9sF68AVjAzQ0rvJw==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.6"
- rc-menu "~9.5.1"
+ rc-menu "~9.6.0"
rc-textarea "^0.3.0"
rc-trigger "^5.0.4"
rc-util "^5.0.1"
-rc-menu@~9.5.1, rc-menu@~9.5.5:
- version "9.5.5"
- resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.5.5.tgz#aa2f151d4191ed089dc1a8141fe365c9b77d61a9"
- integrity sha512-wj2y2BAKwSMyWXO3RBf9sNN5V+DFWxFl45Ma6qQEHA5nwwh7p07bNgc6AAJc+L1+LAz+rWz3AU8PYyT17hMHCw==
+rc-menu@~9.6.0:
+ version "9.6.0"
+ resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-9.6.0.tgz#3263a729a81ae49cfdadee112e97d3c702922829"
+ integrity sha512-d26waws42U/rVwW/+rOE2FN9pX6wUc9bDy38vVQYoie6gE85auWIpl5oChGlnW6nE2epnTwUsgWl8ipOPgmnUA==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
@@ -11492,18 +11453,18 @@ rc-overflow@^1.0.0, rc-overflow@^1.2.0:
rc-resize-observer "^1.0.0"
rc-util "^5.5.1"
-rc-pagination@~3.1.9:
- version "3.1.14"
- resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-3.1.14.tgz#1f7d0342edb80dca0989e4ddbe937b1d4657d88d"
- integrity sha512-tcugvxrtPiVU00Uh0IwC8NIUlxa4KtA9pXcaMNJdSHeO2uQqVkHEwllsULTAWRF3zRV2ozo2weP/DRKIUrX+Zg==
+rc-pagination@~3.1.16:
+ version "3.1.16"
+ resolved "https://registry.yarnpkg.com/rc-pagination/-/rc-pagination-3.1.16.tgz#b0082108cf027eded18ed61d818d31897c343e81"
+ integrity sha512-GFcHXJ7XxeJDf9B+ndP4PRDt46maSSgYhiwofBMiIGKIlBhJ0wfu8DMCEvaWJJLpI2u4Gb6zF1dHpiqPFrosPg==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.1"
-rc-picker@~2.6.4:
- version "2.6.5"
- resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-2.6.5.tgz#a7cf8eb0723ec81e379c784c4b798b7fe076dd8c"
- integrity sha512-4pcg0PgEz4YXBfdwMuHIKaRWaADm3k3g0NtoPIgeGM+VVeOBdUowTx0YSXnT8mQEXcE9lWXX+ZX3biAzQwDM1w==
+rc-picker@~2.6.8:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/rc-picker/-/rc-picker-2.6.9.tgz#2f2f82c5340adbe3b30875a25e015c120eb88c9c"
+ integrity sha512-yH3UYXCADf7REtOAB5cwe1cyFKtB0p204RCN8JdZGG4uuSOZ1IPTkk/GJS6HOpxspZeJCLGzzajuQMDwck9dsw==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.1"
@@ -11514,10 +11475,10 @@ rc-picker@~2.6.4:
rc-util "^5.4.0"
shallowequal "^1.1.0"
-rc-progress@~3.2.1:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/rc-progress/-/rc-progress-3.2.4.tgz#4036acdae2566438545bc4df2203248babaf7549"
- integrity sha512-M9WWutRaoVkPUPIrTpRIDpX0SPSrVHzxHdCRCbeoBFrd9UFWTYNWRlHsruJM5FH1AZI+BwB4wOJUNNylg/uFSw==
+rc-progress@~3.3.2:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/rc-progress/-/rc-progress-3.3.3.tgz#eb9bffbacab1534f2542f9f6861ce772254362b1"
+ integrity sha512-MDVNVHzGanYtRy2KKraEaWeZLri2ZHWIRyaE1a9MQ2MuJ09m+Wxj5cfcaoaR6z5iRpHpA59YeUxAlpML8N4PJw==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "^2.2.6"
@@ -11572,7 +11533,7 @@ rc-scroll-anim@^2.7.6:
react-lifecycles-compat "^3.0.4"
tween-functions "1.x"
-"rc-segmented@~2.1.0 ":
+rc-segmented@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/rc-segmented/-/rc-segmented-2.1.0.tgz#0e0afe646c1a0e44a0e18785f518c42633ec8efc"
integrity sha512-hUlonro+pYoZcwrH6Vm56B2ftLfQh046hrwif/VwLIw1j3zGt52p5mREBwmeVzXnSwgnagpOpfafspzs1asjGw==
@@ -11635,15 +11596,15 @@ rc-table@~7.24.0:
rc-util "^5.14.0"
shallowequal "^1.1.0"
-rc-tabs@~11.13.0:
- version "11.13.0"
- resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-11.13.0.tgz#083eed578f8ad02dc0d462d73da487fe32e3a573"
- integrity sha512-aUw1Pq0B1a2zGX4o/m3yrQycZcCLgDp6gKwn8IAU07q148RRONsVGxi0oLVVe5SE51kOB+j0bk1RX43ZBdZNgA==
+rc-tabs@~11.16.0:
+ version "11.16.0"
+ resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-11.16.0.tgz#12447069ea1dc480c729e1e40661cfbd46ac4efe"
+ integrity sha512-CIDPv3lHaXSHTJevmFP2eHoD3Hq9psfKbOZYf6D4FYPACloNGHpz44y3RGeJgataQ7omFLrGBm3dOBMUki87tA==
dependencies:
"@babel/runtime" "^7.11.2"
classnames "2.x"
- rc-dropdown "~3.5.0"
- rc-menu "~9.5.1"
+ rc-dropdown "~4.0.0"
+ rc-menu "~9.6.0"
rc-resize-observer "^1.0.0"
rc-util "^5.5.0"
@@ -11665,27 +11626,27 @@ rc-tooltip@^5.0.1, rc-tooltip@~5.1.1:
"@babel/runtime" "^7.11.2"
rc-trigger "^5.0.0"
-rc-tree-select@~5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.3.0.tgz#6edd19d1066ad2bfa212f043c3ff701b93828026"
- integrity sha512-UN6CUBulmch+CsihnJ73+DtWijEB1hVTC8sdVxq6E0teVAkHQZUvDj+cwZShtShAKvWwXy73PZ1hIHEUrmVcKw==
+rc-tree-select@~5.4.0:
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/rc-tree-select/-/rc-tree-select-5.4.0.tgz#c94b961aca68689f5ee3a43e33881cf693d195ef"
+ integrity sha512-reRbOqC7Ic/nQocJAJeCl4n6nJUY3NoqiwRXKvhjgZJU7NGr9vIccXEsY+Lghkw5UMpPoxGsIJB0jiAvM18XYA==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
rc-select "~14.1.0"
- rc-tree "~5.5.0"
+ rc-tree "~5.6.1"
rc-util "^5.16.1"
-rc-tree@~5.5.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.5.0.tgz#ba7c8aea2ad29f40a9c7168e490300f7a50c0f22"
- integrity sha512-vpKeFsDyj7weik8UPseCTaSNAPt939qn1dQd8goSbRDajbjJEja0v/WFXyRhOiF1HLemNTfqMz4MYc9qlqyNXg==
+rc-tree@~5.6.1, rc-tree@~5.6.3, rc-tree@~5.6.4:
+ version "5.6.5"
+ resolved "https://registry.yarnpkg.com/rc-tree/-/rc-tree-5.6.5.tgz#1947337fc48f3fe20fabaafb1aed3e4ff1ce71b4"
+ integrity sha512-Bnyen46B251APyRZ9D/jYeTnSqbSEvK2AkU5B4vWkNYgUJNPrxO+VMgcDRedP/8N7YcsgdDT9hxqVvNOq7oCAQ==
dependencies:
"@babel/runtime" "^7.10.1"
classnames "2.x"
rc-motion "^2.0.1"
rc-util "^5.16.1"
- rc-virtual-list "^3.4.2"
+ rc-virtual-list "^3.4.8"
rc-trigger@^5.0.0, rc-trigger@^5.0.4, rc-trigger@^5.1.2, rc-trigger@^5.2.10:
version "5.2.10"
@@ -11698,6 +11659,17 @@ rc-trigger@^5.0.0, rc-trigger@^5.0.4, rc-trigger@^5.1.2, rc-trigger@^5.2.10:
rc-motion "^2.0.0"
rc-util "^5.5.0"
+rc-trigger@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-5.3.1.tgz#acafadf3eaf384e7f466c303bfa0f34c8137d7b8"
+ integrity sha512-5gaFbDkYSefZ14j2AdzucXzlWgU2ri5uEjkHvsf1ynRhdJbKxNOnw4PBZ9+FVULNGFiDzzlVF8RJnR9P/xrnKQ==
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ classnames "^2.2.6"
+ rc-align "^4.0.0"
+ rc-motion "^2.0.0"
+ rc-util "^5.19.2"
+
rc-tween-one@^1.2.5:
version "1.8.1"
resolved "https://registry.yarnpkg.com/rc-tween-one/-/rc-tween-one-1.8.1.tgz#5b3b464b9bf2c369efc16c816cccf57bc16ae253"
@@ -11749,6 +11721,15 @@ rc-util@^5.17.0, rc-util@^5.18.1:
react-is "^16.12.0"
shallowequal "^1.1.0"
+rc-util@^5.19.2:
+ version "5.21.5"
+ resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.21.5.tgz#6e2a5699f820ba915f43f11a4b7dfb0b0672d0fa"
+ integrity sha512-ip7HqX37Cy/RDl9MlrFp+FbcKnsWZ22sF5MS5eSpYLtg5MpC0TMqGb5ukBatoOhgjnLL+eJGR6e7YAJ/dhK09A==
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ react-is "^16.12.0"
+ shallowequal "^1.1.0"
+
rc-util@^5.20.0, rc-util@^5.20.1, rc-util@^5.21.0:
version "5.21.4"
resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.21.4.tgz#61e24ad297f679ca0796b618a3ef30eca959d904"
@@ -11767,14 +11748,14 @@ rc-virtual-list@^3.2.0:
rc-resize-observer "^1.0.0"
rc-util "^5.0.7"
-rc-virtual-list@^3.4.2:
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.4.4.tgz#be42832edecdcffc56260df131e437a2e0473bca"
- integrity sha512-Zb2h0B+ZhA/aysZNEUkQYaqx0hd8hq7WMIUegII+1KfFjh99GtHZ4ZMWB+SlpdVadskKJZzUWWzIq5N1mE6AVg==
+rc-virtual-list@^3.4.8:
+ version "3.4.8"
+ resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.4.8.tgz#c24c10c6940546b7e2a5e9809402c6716adfd26c"
+ integrity sha512-qSN+Rv4i/E7RCTvTMr1uZo7f3crJJg/5DekoCagydo9zsXrxj07zsFSxqizqW+ldGA16lwa8So/bIbV9Ofjddg==
dependencies:
classnames "^2.2.6"
rc-resize-observer "^1.0.0"
- rc-util "^5.0.7"
+ rc-util "^5.15.0"
react-app-polyfill@^2.0.0:
version "2.0.0"
@@ -11879,10 +11860,10 @@ react-dom@^17.0.2:
object-assign "^4.1.1"
scheduler "^0.20.2"
-react-drag-listview@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/react-drag-listview/-/react-drag-listview-0.2.0.tgz#b672d1d98ec98a642472c678af2cbfa7e513e277"
- integrity sha512-YHVxC71QIfakFFGA3ejpPe3fcQYomXBA5M3Z2nEBs7JScfc+dx3kq4xB8dzPHy240lI5213nemoogiL7ZCNsEg==
+react-drag-listview@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/react-drag-listview/-/react-drag-listview-0.2.1.tgz#922fa3c37ed4d84f2a349a93b01a623ac565f7dc"
+ integrity sha512-LFR/14CpmiieITCywfe2rxAg1szAqsynpqgquSgirT9cansDwJdpqAVEjzIRSEql/DRIYTvBYLvMI/HJcVeU4w==
dependencies:
babel-runtime "^6.26.0"
prop-types "^15.5.8"
@@ -11924,19 +11905,19 @@ react-grid-layout@^1.3.4:
react-draggable "^4.0.0"
react-resizable "^3.0.4"
-react-i18next@^11.16.9:
- version "11.16.9"
- resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.16.9.tgz#890cdac0c49120e075d6c520b43dbad3f91bd2df"
- integrity sha512-euXxWvcEAvsY7ZVkwx9ztCq4butqtsGHEkpkuo0RMj8Ru09IF9o2KxCyN+zyv51Nr0aBh/elaTIiR6fMb8YfVg==
+react-i18next@^11.17.0:
+ version "11.17.0"
+ resolved "https://registry.yarnpkg.com/react-i18next/-/react-i18next-11.17.0.tgz#44a0689dac7903352733e40303b743fa465eb797"
+ integrity sha512-ewq2S4bVUTRqOMAdM/XvzCn9xUPIryzeBQRghmJ8lC6VI/8Kp7z1GwoLyt8j7GB2ywhN2SjPk7LU4sHzVeu7aw==
dependencies:
"@babel/runtime" "^7.14.5"
html-escaper "^2.0.2"
html-parse-stringify "^3.0.1"
-react-icons@^4.3.1:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.3.1.tgz#2fa92aebbbc71f43d2db2ed1aed07361124e91ca"
- integrity sha512-cB10MXLTs3gVuXimblAdI71jrJx8njrJZmNMEMC+sQu5B/BIOmlsAjskdqpn81y8UBVEGuHODd7/ci5DvoSzTQ==
+react-icons@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.4.0.tgz#a13a8a20c254854e1ec9aecef28a95cdf24ef703"
+ integrity sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg==
react-images@^0.5.16:
version "0.5.19"
@@ -12265,14 +12246,11 @@ recharts-scale@^0.4.4:
dependencies:
decimal.js-light "^2.4.1"
-recharts@^2.1.9:
- version "2.1.9"
- resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.1.9.tgz#a52d411a7d822d118f7754cfc9c50db8fab46fb9"
- integrity sha512-VozH5uznUvGqD7n224FGj7cmMAenlS0HPCs+7r2HeeHiQK6un6z0CTZfWVAB860xbcr4m+BN/EGMPZmYWd34Rg==
+recharts@^2.1.10:
+ version "2.1.10"
+ resolved "https://registry.yarnpkg.com/recharts/-/recharts-2.1.10.tgz#4253f4354fcb9328a162f66d7c5c8d33ef7741db"
+ integrity sha512-me6c8m2Gs88X/nuM2gDSTDIhpSLNMbiTrlE4Cu53hjZNegT3g3xLlTrbYSAQuBCFWuWJAZXCmEuMr6AwizLyaA==
dependencies:
- "@types/d3-interpolate" "^2.0.0"
- "@types/d3-scale" "^3.0.0"
- "@types/d3-shape" "^2.0.0"
classnames "^2.2.5"
d3-interpolate "^2.0.0"
d3-scale "^3.0.0"
@@ -12477,10 +12455,10 @@ requires-port@^1.0.0:
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
-reselect@^4.1.5:
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.5.tgz#852c361247198da6756d07d9296c2b51eddb79f6"
- integrity sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==
+reselect@^4.1.6:
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.6.tgz#19ca2d3d0b35373a74dc1c98692cdaffb6602656"
+ integrity sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==
resize-observer-polyfill@^1.5.0, resize-observer-polyfill@^1.5.1:
version "1.5.1"
@@ -12828,10 +12806,10 @@ select-hose@^2.0.0:
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
-"selenium-webdriver@ 4.1.1":
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.1.1.tgz#da083177d811f36614950e809e2982570f67d02e"
- integrity sha512-Fr9e9LC6zvD6/j7NO8M1M/NVxFX67abHcxDJoP5w2KN/Xb1SyYLjMVPGgD14U2TOiKe4XKHf42OmFw9g2JgCBQ==
+selenium-webdriver@4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.1.2.tgz#d463b4335632d2ea41a9e988e435a55dc41f5314"
+ integrity sha512-e4Ap8vQvhipgBB8Ry9zBiKGkU6kHKyNnWiavGGLKkrdW81Zv7NVMtFOL/j3yX0G8QScM7XIXijKssNd4EUxSOw==
dependencies:
jszip "^3.6.0"
tmp "^0.2.1"
@@ -13088,10 +13066,10 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
-socket.io-client@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.0.tgz#3858b6183bab31c5c4eaf3efd0fa50840ebb4504"
- integrity sha512-HW61c1G7OrYGxaI79WRn17+b03iBCdvhBj4iqyXHBoL5M8w2MSO/vChsjA93knG4GYEai1/vbXWJna9dzxXtSg==
+socket.io-client@^4.5.1:
+ version "4.5.1"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.1.tgz#cab8da71976a300d3090414e28c2203a47884d84"
+ integrity sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA==
dependencies:
"@socket.io/component-emitter" "~3.1.0"
debug "~4.3.2"
@@ -13961,7 +13939,7 @@ tryer@^1.0.1:
resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
-ts-invariant@^0.10.0:
+ts-invariant@^0.10.3:
version "0.10.3"
resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c"
integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==
@@ -14335,11 +14313,6 @@ use-memo-one@^1.1.1:
resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.2.tgz#0c8203a329f76e040047a35a1197defe342fab20"
integrity sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==
-use-sync-external-store@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz#3343c3fe7f7e404db70f8c687adf5c1652d34e82"
- integrity sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==
-
use@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
@@ -15196,10 +15169,10 @@ yocto-queue@^0.1.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
-zen-observable-ts@^1.2.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.3.tgz#c2f5ccebe812faf0cfcde547e6004f65b1a6d769"
- integrity sha512-hc/TGiPkAWpByykMwDcem3SdUgA4We+0Qb36bItSuJC9xD0XVBZoFHYoadAomDSNf64CG8Ydj0Qb8Od8BUWz5g==
+zen-observable-ts@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58"
+ integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==
dependencies:
zen-observable "0.8.15"
From 0089e50a2976d1506b8764755b8e5f33dbd715e8 Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Thu, 9 Jun 2022 13:18:49 -0700
Subject: [PATCH 36/41] IO-1862 Only show remove from production when job in
production on close screen.
---
client/src/graphql/jobs.queries.js | 1 +
client/src/pages/jobs-close/jobs-close.component.jsx | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js
index eba649d29..d74f706d3 100644
--- a/client/src/graphql/jobs.queries.js
+++ b/client/src/graphql/jobs.queries.js
@@ -1829,6 +1829,7 @@ export const QUERY_JOB_CLOSE_DETAILS = gql`
ins_co_id
dms_allocation
id
+ inproduction
ded_amt
ded_status
depreciation_taxes
diff --git a/client/src/pages/jobs-close/jobs-close.component.jsx b/client/src/pages/jobs-close/jobs-close.component.jsx
index 6106a013a..ac8653788 100644
--- a/client/src/pages/jobs-close/jobs-close.component.jsx
+++ b/client/src/pages/jobs-close/jobs-close.component.jsx
@@ -250,7 +250,7 @@ export function JobsCloseComponent({ job, bodyshop, jobRO }) {
onlyFuture={!!bodyshop.cdk_dealerid}
/>
- {!jobRO && (
+ {!jobRO && job.inproduction && (
Date: Thu, 9 Jun 2022 13:35:34 -0700
Subject: [PATCH 37/41] IO-1911 Create separate query for time tickets
scoreboard.
---
.../scoreboard-timetickets.component.jsx | 4 +--
client/src/graphql/timetickets.queries.js | 34 +++++++++++++++++++
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/client/src/components/scoreboard-timetickets/scoreboard-timetickets.component.jsx b/client/src/components/scoreboard-timetickets/scoreboard-timetickets.component.jsx
index f85982359..35c8e2b8c 100644
--- a/client/src/components/scoreboard-timetickets/scoreboard-timetickets.component.jsx
+++ b/client/src/components/scoreboard-timetickets/scoreboard-timetickets.component.jsx
@@ -5,7 +5,7 @@ import moment from "moment";
import queryString from "query-string";
import React, { useMemo } from "react";
import { useLocation } from "react-router-dom";
-import { QUERY_TIME_TICKETS_IN_RANGE } from "../../graphql/timetickets.queries";
+import { QUERY_TIME_TICKETS_IN_RANGE_SB } from "../../graphql/timetickets.queries";
import AlertComponent from "../alert/alert.component";
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
import * as Utils from "../scoreboard-targets-table/scoreboard-targets-table.util";
@@ -59,7 +59,7 @@ export default function ScoreboardTimeTickets() {
};
}, []);
- const { loading, error, data } = useQuery(QUERY_TIME_TICKETS_IN_RANGE, {
+ const { loading, error, data } = useQuery(QUERY_TIME_TICKETS_IN_RANGE_SB, {
variables: {
start: startDate.format("YYYY-MM-DD"),
end: endDate.format("YYYY-MM-DD"),
diff --git a/client/src/graphql/timetickets.queries.js b/client/src/graphql/timetickets.queries.js
index 12d370560..0a8108571 100644
--- a/client/src/graphql/timetickets.queries.js
+++ b/client/src/graphql/timetickets.queries.js
@@ -26,6 +26,40 @@ export const QUERY_TICKETS_BY_JOBID = gql`
`;
export const QUERY_TIME_TICKETS_IN_RANGE = gql`
+ query QUERY_TIME_TICKETS_IN_RANGE($start: date!, $end: date!) {
+ timetickets(
+ where: { date: { _gte: $start, _lte: $end } }
+ order_by: { date: desc_nulls_first }
+ ) {
+ actualhrs
+ ciecacode
+ clockoff
+ clockon
+ cost_center
+ created_at
+ date
+ id
+ rate
+ productivehrs
+ memo
+ jobid
+ flat_rate
+ job {
+ id
+ ro_number
+ }
+ employeeid
+ employee {
+ id
+ employee_number
+ first_name
+ last_name
+ }
+ }
+ }
+`;
+
+export const QUERY_TIME_TICKETS_IN_RANGE_SB = gql`
query QUERY_TIME_TICKETS_IN_RANGE(
$start: date!
$end: date!
From f116e89c94eb770b8c5ca4c5b7b35794013fd45c Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Thu, 9 Jun 2022 13:57:16 -0700
Subject: [PATCH 38/41] IO-1926 Set export logs for manual items to be array of
1.
---
.../bill-mark-exported-button.component.jsx | 2 +-
.../jobs-admin-mark-reexport.component.jsx | 2 +-
.../payable-mark-selected-exported.component.jsx | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/client/src/components/bill-mark-exported-button/bill-mark-exported-button.component.jsx b/client/src/components/bill-mark-exported-button/bill-mark-exported-button.component.jsx
index 80fa1ae44..cd9d0b3e0 100644
--- a/client/src/components/bill-mark-exported-button/bill-mark-exported-button.component.jsx
+++ b/client/src/components/bill-mark-exported-button/bill-mark-exported-button.component.jsx
@@ -62,7 +62,7 @@ export function BillMarkExportedButton({
bodyshopid: bodyshop.id,
billid: bill.id,
successful: true,
- message: t("general.labels.markedexported"),
+ message: JSON.stringify([t("general.labels.markedexported")]),
useremail: currentUser.email,
},
],
diff --git a/client/src/components/jobs-admin-mark-reexport/jobs-admin-mark-reexport.component.jsx b/client/src/components/jobs-admin-mark-reexport/jobs-admin-mark-reexport.component.jsx
index 70dbf0a31..137c074aa 100644
--- a/client/src/components/jobs-admin-mark-reexport/jobs-admin-mark-reexport.component.jsx
+++ b/client/src/components/jobs-admin-mark-reexport/jobs-admin-mark-reexport.component.jsx
@@ -119,7 +119,7 @@ export function JobAdminMarkReexport({
bodyshopid: bodyshop.id,
jobid: job.id,
successful: true,
- message: t("general.labels.markedexported"),
+ message: JSON.stringify([t("general.labels.markedexported")]),
useremail: currentUser.email,
},
],
diff --git a/client/src/components/payable-mark-selected-exported/payable-mark-selected-exported.component.jsx b/client/src/components/payable-mark-selected-exported/payable-mark-selected-exported.component.jsx
index 8032e03a5..dcbc33e76 100644
--- a/client/src/components/payable-mark-selected-exported/payable-mark-selected-exported.component.jsx
+++ b/client/src/components/payable-mark-selected-exported/payable-mark-selected-exported.component.jsx
@@ -62,7 +62,7 @@ export function BillMarkSelectedExported({
bodyshopid: bodyshop.id,
billid: id,
successful: true,
- message: t("general.labels.markedexported"),
+ message: JSON.stringify([t("general.labels.markedexported")]),
useremail: currentUser.email,
};
}),
From 1f16abf303c52f98074878e28252bf5f530e91bf Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Thu, 9 Jun 2022 14:25:59 -0700
Subject: [PATCH 39/41] IO-1860 Scoreboard always show on bottom of button.
---
.../job-scoreboard-add-button.component.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/client/src/components/job-scoreboard-add-button/job-scoreboard-add-button.component.jsx b/client/src/components/job-scoreboard-add-button/job-scoreboard-add-button.component.jsx
index 4ab815d87..f72457ea9 100644
--- a/client/src/components/job-scoreboard-add-button/job-scoreboard-add-button.component.jsx
+++ b/client/src/components/job-scoreboard-add-button/job-scoreboard-add-button.component.jsx
@@ -169,7 +169,7 @@ export default function ScoreboardAddButton({
};
return (
-
+
Date: Fri, 10 Jun 2022 10:06:40 -0700
Subject: [PATCH 40/41] IO-1914 Resolve bill edit error.
---
.../bill-inventory-table/bill-inventory-table.component.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx b/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
index 3f8fac369..30f35aa1f 100644
--- a/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
+++ b/client/src/components/bill-inventory-table/bill-inventory-table.component.jsx
@@ -29,7 +29,7 @@ export function BillInventoryTable({
const { t } = useTranslation();
useEffect(() => {
- if (inventoryData) {
+ if (inventoryData && inventoryData.inventory) {
form.setFieldsValue({
inventory: billEnterModal.context.consumeinventoryid
? inventoryData.inventory.map((i) => {
From 2c760948c5159eae22f40e0756aeb5a8991ac1e8 Mon Sep 17 00:00:00 2001
From: Patrick Fic <>
Date: Fri, 10 Jun 2022 10:57:51 -0700
Subject: [PATCH 41/41] IO-1911 Add target to tt scoreboard.
---
.../scoreboard-timetickets.bar.component.jsx | 30 +++++++++----------
...scoreboard-timetickets.stats.component.jsx | 10 ++++++-
client/src/graphql/timetickets.queries.js | 2 +-
.../scoreboard/scoreboard.page.container.jsx | 4 +--
4 files changed, 26 insertions(+), 20 deletions(-)
diff --git a/client/src/components/scoreboard-timetickets/scoreboard-timetickets.bar.component.jsx b/client/src/components/scoreboard-timetickets/scoreboard-timetickets.bar.component.jsx
index 063638a47..fbf6da6d2 100644
--- a/client/src/components/scoreboard-timetickets/scoreboard-timetickets.bar.component.jsx
+++ b/client/src/components/scoreboard-timetickets/scoreboard-timetickets.bar.component.jsx
@@ -6,7 +6,9 @@ import {
Bar,
CartesianGrid,
ComposedChart,
+ LabelList,
Legend,
+ ReferenceLine,
ResponsiveContainer,
Tooltip,
XAxis,
@@ -48,13 +50,15 @@ export function ScoreboardTicketsBar({ data, bodyshop }) {
- {/* */}
+
{data &&
data.employees.map((e, idx) => (
+ >
+
+
))}
-
- {/* */}
diff --git a/client/src/components/scoreboard-timetickets/scoreboard-timetickets.stats.component.jsx b/client/src/components/scoreboard-timetickets/scoreboard-timetickets.stats.component.jsx
index 6d2183a54..3613ee435 100644
--- a/client/src/components/scoreboard-timetickets/scoreboard-timetickets.stats.component.jsx
+++ b/client/src/components/scoreboard-timetickets/scoreboard-timetickets.stats.component.jsx
@@ -19,7 +19,7 @@ export default connect(
export function ScoreboardTicketsStats({ data, bodyshop }) {
const { t } = useTranslation();
-
+ console.log(data);
const columns = [
{
title: t("employees.fields.employee_number"),
@@ -97,6 +97,14 @@ export function ScoreboardTicketsStats({ data, bodyshop }) {
/>
+
+
+
+
+
{t("scoreboard.labels.calendarperiod")}
diff --git a/client/src/graphql/timetickets.queries.js b/client/src/graphql/timetickets.queries.js
index 0a8108571..28df9226d 100644
--- a/client/src/graphql/timetickets.queries.js
+++ b/client/src/graphql/timetickets.queries.js
@@ -60,7 +60,7 @@ export const QUERY_TIME_TICKETS_IN_RANGE = gql`
`;
export const QUERY_TIME_TICKETS_IN_RANGE_SB = gql`
- query QUERY_TIME_TICKETS_IN_RANGE(
+ query QUERY_TIME_TICKETS_IN_RANGE_SB(
$start: date!
$end: date!
$fixedStart: date!
diff --git a/client/src/pages/scoreboard/scoreboard.page.container.jsx b/client/src/pages/scoreboard/scoreboard.page.container.jsx
index a15ad12ac..ac35b6885 100644
--- a/client/src/pages/scoreboard/scoreboard.page.container.jsx
+++ b/client/src/pages/scoreboard/scoreboard.page.container.jsx
@@ -1,4 +1,4 @@
-import Icon, { BarsOutlined } from "@ant-design/icons";
+import Icon, { FieldTimeOutlined } from "@ant-design/icons";
import { Tabs } from "antd";
import React, { useEffect } from "react";
import { useTranslation } from "react-i18next";
@@ -70,7 +70,7 @@ export function ScoreboardContainer({ setBreadcrumbs, setSelectedHeader }) {
-
+
{t("scoreboard.labels.timetickets")}
}
|