@zosmaai/medusa-documents-v2 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/.medusa/server/src/admin/index.js +1884 -0
  2. package/.medusa/server/src/admin/index.mjs +1881 -0
  3. package/.medusa/server/src/api/admin/documents/document-invoice-settings/invoice-template/route.js +40 -0
  4. package/.medusa/server/src/api/admin/documents/document-invoice-settings/route.js +62 -0
  5. package/.medusa/server/src/api/admin/documents/document-packing-slip-settings/route.js +62 -0
  6. package/.medusa/server/src/api/admin/documents/document-packing-slip-settings/template/route.js +40 -0
  7. package/.medusa/server/src/api/admin/documents/document-settings/document-address/route.js +47 -0
  8. package/.medusa/server/src/api/admin/documents/document-settings/india-gst/route.js +67 -0
  9. package/.medusa/server/src/api/admin/documents/document-settings/logo/route.js +67 -0
  10. package/.medusa/server/src/api/admin/documents/document-settings/route.js +36 -0
  11. package/.medusa/server/src/api/admin/documents/invoice/display-number/route.js +34 -0
  12. package/.medusa/server/src/api/admin/documents/invoice/generate/route.js +47 -0
  13. package/.medusa/server/src/api/admin/documents/invoice/route.js +112 -0
  14. package/.medusa/server/src/api/admin/documents/packing-slip/preview/route.js +47 -0
  15. package/.medusa/server/src/api/admin/documents/packing-slip/route.js +112 -0
  16. package/.medusa/server/src/links/invoice-order.js +13 -0
  17. package/.medusa/server/src/links/packing-slip-order.js +13 -0
  18. package/.medusa/server/src/modules/documents/assets/fonts/IBMPlexSans-Bold.ttf +0 -0
  19. package/.medusa/server/src/modules/documents/assets/fonts/IBMPlexSans-Regular.ttf +0 -0
  20. package/.medusa/server/src/modules/documents/assets/i18n/locales/de-AT/translation.json +26 -0
  21. package/.medusa/server/src/modules/documents/assets/i18n/locales/en/translation.json +26 -0
  22. package/.medusa/server/src/modules/documents/assets/i18n/locales/es/translation.json +26 -0
  23. package/.medusa/server/src/modules/documents/assets/i18n/locales/fr/translation.json +26 -0
  24. package/.medusa/server/src/modules/documents/assets/i18n/locales/pl/translation.json +26 -0
  25. package/.medusa/server/src/modules/documents/index.js +26 -0
  26. package/.medusa/server/src/modules/documents/loaders/i18next.js +49 -0
  27. package/.medusa/server/src/modules/documents/migrations/Migration20250228142557.js +39 -0
  28. package/.medusa/server/src/modules/documents/migrations/Migration20260810120000.js +14 -0
  29. package/.medusa/server/src/modules/documents/models/document-invoice-settings.js +29 -0
  30. package/.medusa/server/src/modules/documents/models/document-invoice.js +32 -0
  31. package/.medusa/server/src/modules/documents/models/document-packing-slip-settings.js +29 -0
  32. package/.medusa/server/src/modules/documents/models/document-packing-slip.js +32 -0
  33. package/.medusa/server/src/modules/documents/models/document-settings.js +33 -0
  34. package/.medusa/server/src/modules/documents/service.js +502 -0
  35. package/.medusa/server/src/modules/documents/services/generators/invoice-generator.js +78 -0
  36. package/.medusa/server/src/modules/documents/services/generators/packing-slip-generator.js +73 -0
  37. package/.medusa/server/src/modules/documents/services/templates/invoices/basic/basic-logo.js +55 -0
  38. package/.medusa/server/src/modules/documents/services/templates/invoices/basic/basic.js +52 -0
  39. package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/customer-info.js +69 -0
  40. package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header-for-logo.js +32 -0
  41. package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header-logo.js +29 -0
  42. package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header.js +35 -0
  43. package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/hr.js +23 -0
  44. package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/invoice-info.js +35 -0
  45. package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/table.js +97 -0
  46. package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/india-gst.js +72 -0
  47. package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/footer.js +41 -0
  48. package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/invoice-meta.js +22 -0
  49. package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/seller-info.js +42 -0
  50. package/.medusa/server/src/modules/documents/services/templates/invoices/india-gst/parts/table.js +88 -0
  51. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/basic.js +52 -0
  52. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/customer-info-small.js +69 -0
  53. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/customer-info.js +65 -0
  54. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/header-small.js +37 -0
  55. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/header.js +37 -0
  56. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/hr.js +32 -0
  57. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-items-small.js +44 -0
  58. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-items.js +44 -0
  59. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-order-info-small.js +35 -0
  60. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-order-info.js +36 -0
  61. package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/small.js +53 -0
  62. package/.medusa/server/src/modules/documents/types/api.js +14 -0
  63. package/.medusa/server/src/modules/documents/types/constants.js +17 -0
  64. package/.medusa/server/src/modules/documents/types/dto.js +14 -0
  65. package/.medusa/server/src/modules/documents/types/template-kind.js +26 -0
  66. package/.medusa/server/src/modules/documents/utils/currency.js +18 -0
  67. package/.medusa/server/src/ui-components/actions-dropdown/actions-dropdown.js +15 -0
  68. package/.medusa/server/src/ui-components/actions-dropdown/invoice/button-generate-invoice.js +75 -0
  69. package/.medusa/server/src/ui-components/actions-dropdown/packing-slip/button-generate-packing-slip.js +72 -0
  70. package/.medusa/server/src/ui-components/index.js +21 -0
  71. package/.medusa/server/src/ui-components/orders/order-table/invoice-number-from-order.js +107 -0
  72. package/.medusa/server/src/ui-components/orders/order-table/packing-slip-number.js +107 -0
  73. package/.medusa/server/src/ui-components/orders/order-table/use-columns.js +172 -0
  74. package/.medusa/server/src/ui-components/orders/order-table/use-orders.js +145 -0
  75. package/.medusa/server/src/ui-components/orders/order-table/utils/currencies.js +1077 -0
  76. package/.medusa/server/src/ui-components/orders/order-table/utils/time.js +53 -0
  77. package/.medusa/server/src/ui-components/orders/order-table.js +134 -0
  78. package/.medusa/server/src/ui-components/settings/settings-address.js +90 -0
  79. package/.medusa/server/src/ui-components/settings/settings-india-gst.js +90 -0
  80. package/.medusa/server/src/ui-components/settings/settings-invoice-display-number.js +55 -0
  81. package/.medusa/server/src/ui-components/settings/settings-invoice.js +139 -0
  82. package/.medusa/server/src/ui-components/settings/settings-logo.js +108 -0
  83. package/.medusa/server/src/ui-components/tabs/orders-tab.js +28 -0
  84. package/.medusa/server/src/ui-components/tabs/pro-tab.js +23 -0
  85. package/.medusa/server/src/ui-components/tabs/settings-tab.js +29 -0
  86. package/.medusa/server/src/ui-components/tabs/templates-tab/templates-invoice-tab.js +153 -0
  87. package/.medusa/server/src/ui-components/tabs/templates-tab/templates-packing-slip-tab.js +155 -0
  88. package/.medusa/server/src/ui-components/tabs/templates-tab/templates-tab.js +24 -0
  89. package/.medusa/server/src/ui-components/types/api.js +14 -0
  90. package/.medusa/server/src/ui-components/types/invoice.js +14 -0
  91. package/.medusa/server/src/ui-components/types/packing-slip.js +14 -0
  92. package/.medusa/server/src/ui-components/types/template-kind.js +26 -0
  93. package/.medusa/server/src/workflows/assign-invoice.js +31 -0
  94. package/.medusa/server/src/workflows/assign-packing-slip.js +31 -0
  95. package/README.md +171 -0
  96. package/package.json +103 -0
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ /*
5
+ * Copyright 2024 RSC-Labs, https://rsoftcon.com/
6
+ *
7
+ * MIT License
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+ const material_1 = require("@mui/material");
16
+ const react_1 = require("react");
17
+ const ui_1 = require("@medusajs/ui");
18
+ const material_2 = require("@mui/material");
19
+ const PackingSlipNumber = ({ orderId, packingSlipNumber, }) => {
20
+ const [data, setData] = (0, react_1.useState)(undefined);
21
+ const [error, setError] = (0, react_1.useState)(undefined);
22
+ const [isHovered, setIsHovered] = (0, react_1.useState)(false);
23
+ const [isLoading, setLoading] = (0, react_1.useState)(true);
24
+ const handleClick = async () => {
25
+ ui_1.toast.loading("Packing slip", {
26
+ description: "Preparing packing slip...",
27
+ duration: Infinity,
28
+ });
29
+ const result = new URLSearchParams({
30
+ includeBuffer: "true",
31
+ orderId: orderId,
32
+ });
33
+ fetch(`/admin/documents/packing-slip?${result.toString()}`, {
34
+ credentials: "include",
35
+ })
36
+ .then((res) => res.json())
37
+ .then((result) => {
38
+ if (result && result.buffer) {
39
+ ui_1.toast.dismiss();
40
+ openPdf(result);
41
+ }
42
+ else {
43
+ ui_1.toast.dismiss();
44
+ ui_1.toast.error("Packing slip", {
45
+ description: "Problem happened when preparing packing slip",
46
+ });
47
+ }
48
+ })
49
+ .catch((error) => {
50
+ setError(error);
51
+ console.error(error);
52
+ ui_1.toast.dismiss();
53
+ ui_1.toast.error("Packing slip", {
54
+ description: error,
55
+ });
56
+ });
57
+ };
58
+ const openPdf = (packingSlipResult) => {
59
+ if (packingSlipResult && packingSlipResult.buffer) {
60
+ const anyBuffer = packingSlipResult.buffer;
61
+ const blob = new Blob([new Uint8Array(anyBuffer.data)], {
62
+ type: "application/pdf",
63
+ });
64
+ const pdfURL = URL.createObjectURL(blob);
65
+ window.open(pdfURL, "_blank");
66
+ }
67
+ };
68
+ const result = new URLSearchParams({
69
+ orderId: orderId,
70
+ });
71
+ (0, react_1.useEffect)(() => {
72
+ setLoading(true);
73
+ }, [packingSlipNumber, orderId]);
74
+ (0, react_1.useEffect)(() => {
75
+ if (!isLoading) {
76
+ return;
77
+ }
78
+ fetch(`/admin/documents/packing-slip?${result.toString()}`, {
79
+ credentials: "include",
80
+ })
81
+ .then((res) => res.json())
82
+ .then((result) => {
83
+ setData(result);
84
+ setLoading(false);
85
+ })
86
+ .catch((error) => {
87
+ setError(error);
88
+ console.error(error);
89
+ });
90
+ }, [isLoading]);
91
+ if (isLoading) {
92
+ return (0, jsx_runtime_1.jsx)(material_1.CircularProgress, { size: 8 });
93
+ }
94
+ if (data && data.packingSlip) {
95
+ return ((0, jsx_runtime_1.jsx)(material_2.Grid, { item: true, children: (0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 hover:text-violet-60 cursor-pointer pl-2 transition-colors duration-200", onClick: () => handleClick(), style: {
96
+ cursor: "pointer",
97
+ color: isHovered ? "violet" : "grey",
98
+ textDecoration: isHovered ? "underline" : "none",
99
+ transition: "color 0.2s, text-decoration 0.2s",
100
+ }, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: `Packing slip: ${data.packingSlip.displayNumber}` }) }));
101
+ }
102
+ else {
103
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
104
+ }
105
+ };
106
+ exports.default = PackingSlipNumber;
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2luZy1zbGlwLW51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy91aS1jb21wb25lbnRzL29yZGVycy9vcmRlci10YWJsZS9wYWNraW5nLXNsaXAtbnVtYmVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7OztHQVVHO0FBRUgsNENBQWlEO0FBQ2pELGlDQUE0QztBQUM1QyxxQ0FBcUM7QUFFckMsNENBQXFDO0FBRXJDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxFQUN6QixPQUFPLEVBQ1AsaUJBQWlCLEdBSWxCLEVBQUUsRUFBRTtJQUNILE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBQSxnQkFBUSxFQUFrQixTQUFTLENBQUMsQ0FBQztJQUU3RCxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBTSxTQUFTLENBQUMsQ0FBQztJQUVuRCxNQUFNLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUVsRCxNQUFNLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUUvQyxNQUFNLFdBQVcsR0FBRyxLQUFLLElBQUksRUFBRTtRQUM3QixVQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUM1QixXQUFXLEVBQUUsMkJBQTJCO1lBQ3hDLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFvQixJQUFJLGVBQWUsQ0FBQztZQUNsRCxhQUFhLEVBQUUsTUFBTTtZQUNyQixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsaUNBQWlDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQzFELFdBQVcsRUFBRSxT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
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getDecimalDigits = getDecimalDigits;
7
+ exports.normalizeAmount = normalizeAmount;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const moment_1 = __importDefault(require("moment"));
10
+ const react_1 = require("react");
11
+ const ui_1 = require("@medusajs/ui");
12
+ const currencies_1 = require("./utils/currencies");
13
+ const material_1 = require("@mui/material");
14
+ const actions_dropdown_1 = require("../../actions-dropdown/actions-dropdown");
15
+ const invoice_number_from_order_1 = __importDefault(require("./invoice-number-from-order"));
16
+ const packing_slip_number_1 = __importDefault(require("./packing-slip-number"));
17
+ const icons_1 = require("@medusajs/icons");
18
+ /**
19
+ * Checks the list of currencies and returns the divider/multiplier
20
+ * that should be used to calculate the persited and display amount.
21
+ * @param currency
22
+ * @return {number}
23
+ */
24
+ function getDecimalDigits(currency) {
25
+ const divisionDigits = currencies_1.currencies[currency.toUpperCase()].decimal_digits;
26
+ return Math.pow(10, divisionDigits);
27
+ }
28
+ function normalizeAmount(currency, amount) {
29
+ const divisor = getDecimalDigits(currency);
30
+ return Math.floor(amount) / divisor;
31
+ }
32
+ function formatAmountWithSymbol({ amount, currency, digits, }) {
33
+ let locale = "en-US";
34
+ // We need this to display 'Kr' instead of 'DKK'
35
+ if (currency.toLowerCase() === "dkk") {
36
+ locale = "da-DK";
37
+ }
38
+ const taxRate = 0;
39
+ return new Intl.NumberFormat(locale, {
40
+ style: "currency",
41
+ currency,
42
+ minimumFractionDigits: digits,
43
+ }).format(amount * (1 + taxRate / 100));
44
+ }
45
+ const useOrderTableColumns = () => {
46
+ const [documentNumbers, setDocumentNumbers] = (0, react_1.useState)({});
47
+ const decideStatus = (status) => {
48
+ switch (status) {
49
+ case "captured":
50
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "green", children: "Paid" }));
51
+ case "awaiting":
52
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "grey", children: "Awaiting" }));
53
+ case "requires_action":
54
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "red", children: "Requires action" }));
55
+ case "canceled":
56
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "orange", children: "Canceled" }));
57
+ default:
58
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "purple", children: "N/A" }));
59
+ }
60
+ };
61
+ const decideFullfillmentStatus = (status) => {
62
+ switch (status) {
63
+ case "not_fulfilled":
64
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "grey", children: "Not fulfilled" }));
65
+ case "partially_fulfilled":
66
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "blue", children: "Partially fulfilled" }));
67
+ case "fulfilled":
68
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "green", children: "Fulfilled" }));
69
+ case "partially_shipped":
70
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "blue", children: "Partially shipped" }));
71
+ case "shipped":
72
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "green", children: "Shipped" }));
73
+ case "partially_returned":
74
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "blue", children: "Partially returned" }));
75
+ case "returned":
76
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "green", children: "Returned" }));
77
+ case "canceled":
78
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "red", children: "Canceled" }));
79
+ case "requires_action":
80
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "purple", children: "Requires action" }));
81
+ default:
82
+ return ((0, jsx_runtime_1.jsx)(ui_1.StatusBadge, { color: "grey", children: "N/A" }));
83
+ }
84
+ };
85
+ const updateInvoiceNumber = (orderId, invoiceNumber) => {
86
+ setDocumentNumbers((prev) => ({
87
+ ...prev,
88
+ [orderId]: {
89
+ ...prev[orderId],
90
+ invoiceNumber,
91
+ },
92
+ }));
93
+ };
94
+ const updatePackingSlipNumber = (orderId, packingSlipNumber) => {
95
+ setDocumentNumbers((prev) => ({
96
+ ...prev,
97
+ [orderId]: {
98
+ ...prev[orderId],
99
+ packingSlipNumber,
100
+ },
101
+ }));
102
+ };
103
+ const columns = (0, react_1.useMemo)(() => [
104
+ {
105
+ Header: (0, jsx_runtime_1.jsx)("div", { className: "pl-2", children: "Order" }),
106
+ accessor: "display_id",
107
+ Cell: ({ cell: { value } }) => ((0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 group-hover:text-violet-60 pl-2", children: `#${value}` })),
108
+ },
109
+ {
110
+ Header: ("Date added"),
111
+ accessor: "created_at",
112
+ Cell: ({ cell: { value } }) => {
113
+ return ((0, jsx_runtime_1.jsx)(ui_1.TooltipProvider, { children: (0, jsx_runtime_1.jsx)(ui_1.Tooltip, { content: (0, jsx_runtime_1.jsx)(ui_1.Text, { children: (0, moment_1.default)(value).format("DD MMM YYYY hh:mm a") }), children: (0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 group-hover:text-violet-60 min-w-[40px]", children: (0, moment_1.default)(value).format("DD MMM YYYY") }) }) }));
114
+ }
115
+ },
116
+ {
117
+ Header: ("Customer"),
118
+ accessor: "customer",
119
+ Cell: ({ row, cell: { value } }) => {
120
+ const customer = {
121
+ first_name: value?.first_name ||
122
+ row.original.shipping_address?.first_name,
123
+ last_name: value?.last_name || row.original.shipping_address?.last_name,
124
+ email: row.original.email,
125
+ };
126
+ return ((0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 group-hover:text-violet-60 min-w-[100px]", children: `${(customer.first_name || customer.last_name)
127
+ ? `${customer.first_name} ${customer.last_name}`
128
+ : (customer.email
129
+ ? customer.email
130
+ : "-")}` }));
131
+ },
132
+ },
133
+ {
134
+ Header: ("Fulfillment"),
135
+ accessor: "fulfillment_status",
136
+ Cell: ({ cell: { value } }) => decideFullfillmentStatus(value),
137
+ },
138
+ {
139
+ Header: ("Payment status"),
140
+ accessor: "payment_status",
141
+ Cell: ({ cell: { value } }) => decideStatus(value),
142
+ },
143
+ {
144
+ Header: () => ((0, jsx_runtime_1.jsx)("div", { className: "text-right", children: ("Total") })),
145
+ accessor: "total",
146
+ Cell: ({ row, cell: { value } }) => ((0, jsx_runtime_1.jsx)("div", { className: "text-grey-90 group-hover:text-violet-60 text-right", children: formatAmountWithSymbol({
147
+ amount: value,
148
+ currency: row.original.currency_code,
149
+ }) })),
150
+ },
151
+ {
152
+ Header: ("Documents"),
153
+ id: "documents",
154
+ Cell: ({ row }) => {
155
+ const orderId = row.original.id;
156
+ const currentDocumentNumbers = documentNumbers[orderId] || undefined;
157
+ return ((0, jsx_runtime_1.jsx)("p", { className: "text-grey-90 group-hover:text-violet-60 pl-2", children: (0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, justifyContent: 'flex-start', direction: 'column', spacing: 1, children: [(0, jsx_runtime_1.jsx)(invoice_number_from_order_1.default, { orderId: orderId, invoiceNumber: currentDocumentNumbers ? currentDocumentNumbers.invoiceNumber : undefined }), (0, jsx_runtime_1.jsx)(packing_slip_number_1.default, { orderId: orderId, packingSlipNumber: currentDocumentNumbers ? currentDocumentNumbers.packingSlipNumber : undefined })] }) }));
158
+ },
159
+ },
160
+ {
161
+ Header: () => ((0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, justifyContent: "flex-end", alignItems: "flex-end", spacing: 1, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(ui_1.TooltipProvider, { children: (0, jsx_runtime_1.jsx)(ui_1.Tooltip, { content: (0, jsx_runtime_1.jsxs)(material_1.Grid, { item: true, children: [(0, jsx_runtime_1.jsx)(ui_1.Text, { size: "small", children: "We do not store documents. " }), (0, jsx_runtime_1.jsx)(material_1.Link, { fontSize: 12, href: 'https://github.com/RSC-Labs/medusa-documents?tab=readme-ov-file#what-means-we-do-not-store-documents', children: "Learn more what it means." })] }), children: (0, jsx_runtime_1.jsx)(icons_1.InformationCircle, {}) }) }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: "Actions" })] })),
162
+ id: "actions",
163
+ Cell: ({ row }) => {
164
+ return ((0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, justifyContent: 'flex-end', children: (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, children: (0, jsx_runtime_1.jsx)(actions_dropdown_1.ActionsDropdown, { order: row.original, updateInvoiceNumber: updateInvoiceNumber, updatePackingSlipNumber: updatePackingSlipNumber }) }) }));
165
+ }
166
+ },
167
+ ], [documentNumbers] // Add documentNumbers as a dependency to ensure it re-renders
168
+ );
169
+ return [columns, documentNumbers];
170
+ };
171
+ exports.default = useOrderTableColumns;
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWNvbHVtbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdWktY29tcG9uZW50cy9vcmRlcnMvb3JkZXItdGFibGUvdXNlLWNvbHVtbnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBaUJBLDRDQUdDO0FBRUQsMENBR0M7O0FBekJELG9EQUE0QjtBQUM1QixpQ0FBMEM7QUFFMUMscUNBQTJFO0FBQzNFLG1EQUFnRDtBQUNoRCw0Q0FBMkM7QUFDM0MsOEVBQTBFO0FBQzFFLDRGQUFpRTtBQUNqRSxnRkFBc0Q7QUFDdEQsMkNBQW9EO0FBRXBEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDL0MsTUFBTSxjQUFjLEdBQUcsdUJBQVUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUE7SUFDeEUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLFFBQWdCLEVBQUUsTUFBYztJQUM5RCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMxQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFBO0FBQ3JDLENBQUM7QUFRRCxTQUFTLHNCQUFzQixDQUFDLEVBQzlCLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxHQUNXO0lBQ2pCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQTtJQUVwQixnREFBZ0Q7SUFDaEQsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDckMsTUFBTSxHQUFHLE9BQU8sQ0FBQTtJQUNsQixDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBRWxCLE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1B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
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useOrderFilters = void 0;
4
+ const react_1 = require("react");
5
+ const time_1 = require("./utils/time");
6
+ const formatDateFilter = (filter) => {
7
+ if (filter === null) {
8
+ return filter;
9
+ }
10
+ const dateFormatted = Object.entries(filter).reduce((acc, [key, value]) => {
11
+ if (value.includes("|")) {
12
+ acc[key] = (0, time_1.relativeDateFormatToTimestamp)(value);
13
+ }
14
+ else {
15
+ acc[key] = value;
16
+ }
17
+ return acc;
18
+ }, {});
19
+ return dateFormatted;
20
+ };
21
+ const reducer = (state, action) => {
22
+ switch (action.type) {
23
+ case "setFilters": {
24
+ return {
25
+ ...state,
26
+ region: action.payload.region,
27
+ salesChannel: action.payload.salesChannel,
28
+ fulfillment: action.payload.fulfillment,
29
+ payment: action.payload.payment,
30
+ status: action.payload.status,
31
+ date: action.payload.date,
32
+ query: action?.payload?.query,
33
+ };
34
+ }
35
+ case "setQuery": {
36
+ return {
37
+ ...state,
38
+ offset: 0, // reset offset when query changes
39
+ query: action.payload,
40
+ };
41
+ }
42
+ case "setDate": {
43
+ const newDateFilters = state.date;
44
+ return {
45
+ ...state,
46
+ date: newDateFilters,
47
+ };
48
+ }
49
+ case "setOffset": {
50
+ return {
51
+ ...state,
52
+ offset: action.payload,
53
+ };
54
+ }
55
+ case "reset": {
56
+ return action.payload;
57
+ }
58
+ default: {
59
+ return state;
60
+ }
61
+ }
62
+ };
63
+ const useOrderFilters = (defaultFilters = null) => {
64
+ const initial = (0, react_1.useMemo)(() => parseQueryString(defaultFilters), [defaultFilters]);
65
+ const [state, dispatch] = (0, react_1.useReducer)(reducer, initial);
66
+ const paginate = (direction) => {
67
+ if (direction > 0) {
68
+ const nextOffset = state.offset + state.limit;
69
+ dispatch({ type: "setOffset", payload: nextOffset });
70
+ }
71
+ else {
72
+ const nextOffset = Math.max(state.offset - state.limit, 0);
73
+ dispatch({ type: "setOffset", payload: nextOffset });
74
+ }
75
+ };
76
+ const getQueryObject = () => {
77
+ const toQuery = { ...state.additionalFilters };
78
+ for (const [key, value] of Object.entries(state)) {
79
+ if (key === "query") {
80
+ if (value && typeof value === "string") {
81
+ toQuery["q"] = value;
82
+ }
83
+ }
84
+ else if (key === "offset" || key === "limit") {
85
+ toQuery[key] = value;
86
+ }
87
+ else if (value.open) {
88
+ if (key === "date") {
89
+ toQuery[stateFilterMap[key]] = formatDateFilter(value.filter);
90
+ }
91
+ else {
92
+ toQuery[stateFilterMap[key]] = value.filter;
93
+ }
94
+ }
95
+ }
96
+ return toQuery;
97
+ };
98
+ const queryObject = (0, react_1.useMemo)(() => getQueryObject(), [state]);
99
+ return {
100
+ queryObject,
101
+ paginate,
102
+ };
103
+ };
104
+ exports.useOrderFilters = useOrderFilters;
105
+ const stateFilterMap = {
106
+ region: "region_id",
107
+ salesChannel: "sales_channel_id",
108
+ status: "status",
109
+ fulfillment: "fulfillment_status",
110
+ payment: "payment_status",
111
+ date: "created_at",
112
+ };
113
+ const parseQueryString = (additionals = null) => {
114
+ const defaultVal = {
115
+ status: {
116
+ open: false,
117
+ filter: null,
118
+ },
119
+ fulfillment: {
120
+ open: false,
121
+ filter: null,
122
+ },
123
+ region: {
124
+ open: false,
125
+ filter: null,
126
+ },
127
+ salesChannel: {
128
+ open: false,
129
+ filter: null,
130
+ },
131
+ payment: {
132
+ open: false,
133
+ filter: null,
134
+ },
135
+ date: {
136
+ open: false,
137
+ filter: null,
138
+ },
139
+ offset: 0,
140
+ limit: 15,
141
+ additionalFilters: additionals,
142
+ };
143
+ return defaultVal;
144
+ };
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLW9yZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy91aS1jb21wb25lbnRzL29yZGVycy9vcmRlci10YWJsZS91c2Utb3JkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUEyQztBQUMzQyx1Q0FBNEQ7QUFpRDVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUF1QixFQUFFLEVBQUU7SUFDbkQsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUN4RSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBQSxvQ0FBNkIsRUFBQyxLQUFLLENBQUMsQ0FBQTtRQUNqRCxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7UUFDbEIsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBRU4sT0FBTyxhQUFhLENBQUE7QUFDdEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FDZCxLQUF1QixFQUN2QixNQUF5QixFQUNQLEVBQUU7SUFDcEIsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU07Z0JBQzdCLFlBQVksRUFBRSxNQUFNLENBQUMs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