@layerfi/components 0.1.108-alpha.1 → 0.1.108
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.
- package/dist/cjs/index.cjs +243 -242
- package/dist/esm/index.mjs +506 -505
- package/dist/index.css +40 -29
- package/dist/index.d.ts +14 -5
- package/package.json +1 -1
package/dist/esm/index.mjs
CHANGED
|
@@ -5570,7 +5570,7 @@ import { useState as useState3 } from "react";
|
|
|
5570
5570
|
import { useReducer, useEffect } from "react";
|
|
5571
5571
|
|
|
5572
5572
|
// package.json
|
|
5573
|
-
var version = "0.1.108
|
|
5573
|
+
var version = "0.1.108";
|
|
5574
5574
|
|
|
5575
5575
|
// src/models/APIError.ts
|
|
5576
5576
|
var APIError = class _APIError extends Error {
|
|
@@ -8696,7 +8696,7 @@ import {
|
|
|
8696
8696
|
startOfMonth,
|
|
8697
8697
|
startOfYear
|
|
8698
8698
|
} from "date-fns";
|
|
8699
|
-
import { useState as useState2, createContext as createContext5, useContext as useContext5 } from "react";
|
|
8699
|
+
import { useState as useState2, createContext as createContext5, useContext as useContext5, useMemo as useMemo7 } from "react";
|
|
8700
8700
|
import { createStore, useStore } from "zustand";
|
|
8701
8701
|
|
|
8702
8702
|
// src/utils/switch/assertUnreachable.ts
|
|
@@ -8869,13 +8869,9 @@ var getEffectiveDateRangeForMode = (mode, { start, end }) => {
|
|
|
8869
8869
|
};
|
|
8870
8870
|
function useGlobalDateRange({ displayMode = "monthPicker" }) {
|
|
8871
8871
|
const store = useContext5(GlobalDateStoreContext);
|
|
8872
|
-
const rawStart = useStoreWithDateSelected(store, ({ start
|
|
8873
|
-
const rawEnd = useStoreWithDateSelected(store, ({ end
|
|
8874
|
-
|
|
8875
|
-
return {
|
|
8876
|
-
start,
|
|
8877
|
-
end
|
|
8878
|
-
};
|
|
8872
|
+
const rawStart = useStoreWithDateSelected(store, ({ start }) => start);
|
|
8873
|
+
const rawEnd = useStoreWithDateSelected(store, ({ end }) => end);
|
|
8874
|
+
return useMemo7(() => getEffectiveDateRangeForMode(displayMode, { start: rawStart, end: rawEnd }), [displayMode, rawEnd, rawStart]);
|
|
8879
8875
|
}
|
|
8880
8876
|
function useGlobalDateRangeActions() {
|
|
8881
8877
|
const store = useContext5(GlobalDateStoreContext);
|
|
@@ -9485,10 +9481,10 @@ var Header = forwardRef2(
|
|
|
9485
9481
|
Header.displayName = "Header";
|
|
9486
9482
|
|
|
9487
9483
|
// src/components/Onboarding/ConnectAccount.tsx
|
|
9488
|
-
import { useContext as useContext8, useMemo as
|
|
9484
|
+
import { useContext as useContext8, useMemo as useMemo12 } from "react";
|
|
9489
9485
|
|
|
9490
9486
|
// src/hooks/useBankTransactions/useAugmentedBankTransactions.tsx
|
|
9491
|
-
import { useCallback as useCallback9, useEffect as useEffect3, useMemo as
|
|
9487
|
+
import { useCallback as useCallback9, useEffect as useEffect3, useMemo as useMemo10, useRef, useState as useState6 } from "react";
|
|
9492
9488
|
|
|
9493
9489
|
// src/components/BankTransactions/constants.ts
|
|
9494
9490
|
var CategorizedCategories = [
|
|
@@ -9559,7 +9555,7 @@ import { endOfMonth as endOfMonth2, startOfMonth as startOfMonth2 } from "date-f
|
|
|
9559
9555
|
// src/hooks/useBankTransactions/useBankTransactions.ts
|
|
9560
9556
|
import useSWRInfinite from "swr/infinite";
|
|
9561
9557
|
var import_lodash4 = __toESM(require_lodash2());
|
|
9562
|
-
import { useCallback as useCallback5, useMemo as
|
|
9558
|
+
import { useCallback as useCallback5, useMemo as useMemo8 } from "react";
|
|
9563
9559
|
var BANK_TRANSACTIONS_TAG_KEY = "#bank-transactions";
|
|
9564
9560
|
function keyLoader(previousPageData, {
|
|
9565
9561
|
access_token: accessToken,
|
|
@@ -9661,7 +9657,7 @@ function useBankTransactionsInvalidator() {
|
|
|
9661
9657
|
),
|
|
9662
9658
|
[invalidate]
|
|
9663
9659
|
);
|
|
9664
|
-
const debouncedInvalidateBankTransactions =
|
|
9660
|
+
const debouncedInvalidateBankTransactions = useMemo8(
|
|
9665
9661
|
() => (0, import_lodash4.debounce)(
|
|
9666
9662
|
invalidateBankTransactions,
|
|
9667
9663
|
INVALIDATION_DEBOUNCE_OPTIONS.wait,
|
|
@@ -9751,7 +9747,7 @@ var useBankAccounts = () => {
|
|
|
9751
9747
|
// src/hooks/useProfitAndLoss/useProfitAndLossDetailLines.tsx
|
|
9752
9748
|
import useSWR7 from "swr";
|
|
9753
9749
|
var import_lodash5 = __toESM(require_lodash2());
|
|
9754
|
-
import { useCallback as useCallback6, useMemo as
|
|
9750
|
+
import { useCallback as useCallback6, useMemo as useMemo9 } from "react";
|
|
9755
9751
|
import { Schema as Schema9 } from "effect";
|
|
9756
9752
|
var LIST_PNL_DETAIL_LINES_TAG_KEY = "#list-pnl-detail-lines";
|
|
9757
9753
|
var PnlDetailLinesSWRResponse = class {
|
|
@@ -9867,7 +9863,7 @@ function usePnlDetailLinesInvalidator() {
|
|
|
9867
9863
|
() => invalidate((tags) => tags.includes(LIST_PNL_DETAIL_LINES_TAG_KEY)),
|
|
9868
9864
|
[invalidate]
|
|
9869
9865
|
);
|
|
9870
|
-
const debouncedInvalidatePnlDetailLines =
|
|
9866
|
+
const debouncedInvalidatePnlDetailLines = useMemo9(
|
|
9871
9867
|
() => (0, import_lodash5.debounce)(
|
|
9872
9868
|
invalidatePnlDetailLines,
|
|
9873
9869
|
INVALIDATION_DEBOUNCE_OPTIONS2.wait,
|
|
@@ -10093,7 +10089,7 @@ var useAugmentedBankTransactions = (params) => {
|
|
|
10093
10089
|
} = useLayerContext();
|
|
10094
10090
|
const dateFilterMode = (params == null ? void 0 : params.applyGlobalDateRange) ? "GlobalDateRange" /* GlobalDateRange */ : (params == null ? void 0 : params.monthlyView) ? "MonthlyView" /* MonthlyView */ : void 0;
|
|
10095
10091
|
const { start, end } = useGlobalDateRange({ displayMode: "monthPicker" });
|
|
10096
|
-
const globalDateRange =
|
|
10092
|
+
const globalDateRange = useMemo10(() => ({
|
|
10097
10093
|
startDate: start,
|
|
10098
10094
|
endDate: end
|
|
10099
10095
|
}), [start, end]);
|
|
@@ -10103,7 +10099,7 @@ var useAugmentedBankTransactions = (params) => {
|
|
|
10103
10099
|
};
|
|
10104
10100
|
const initialFilters = __spreadValues(__spreadValues({}, (params == null ? void 0 : params.scope) && { categorizationStatus: params == null ? void 0 : params.scope }), dateFilterMode === "MonthlyView" /* MonthlyView */ && { dateRange: defaultDateRange });
|
|
10105
10101
|
const [baseFilters, setBaseFilters] = useState6(initialFilters);
|
|
10106
|
-
const filters =
|
|
10102
|
+
const filters = useMemo10(() => __spreadValues(__spreadValues({}, baseFilters), dateFilterMode === "GlobalDateRange" /* GlobalDateRange */ && { dateRange: globalDateRange }), [dateFilterMode, baseFilters, globalDateRange]);
|
|
10107
10103
|
const display = (_a = filters == null ? void 0 : filters.categorizationStatus) != null ? _a : "categorized" /* categorized */;
|
|
10108
10104
|
const {
|
|
10109
10105
|
data: rawResponseData,
|
|
@@ -10116,19 +10112,19 @@ var useAugmentedBankTransactions = (params) => {
|
|
|
10116
10112
|
} = useBankTransactions(
|
|
10117
10113
|
bankTransactionFiltersToHookOptions(filters)
|
|
10118
10114
|
);
|
|
10119
|
-
const data =
|
|
10115
|
+
const data = useMemo10(() => {
|
|
10120
10116
|
if (rawResponseData && rawResponseData.length > 0) {
|
|
10121
10117
|
return rawResponseData == null ? void 0 : rawResponseData.map((x) => x == null ? void 0 : x.data).flat().filter((x) => !!x);
|
|
10122
10118
|
}
|
|
10123
10119
|
return void 0;
|
|
10124
10120
|
}, [rawResponseData]);
|
|
10125
|
-
const lastMetadata =
|
|
10121
|
+
const lastMetadata = useMemo10(() => {
|
|
10126
10122
|
if (rawResponseData && rawResponseData.length > 0) {
|
|
10127
10123
|
return rawResponseData[rawResponseData.length - 1].meta;
|
|
10128
10124
|
}
|
|
10129
10125
|
return void 0;
|
|
10130
10126
|
}, [rawResponseData]);
|
|
10131
|
-
const hasMore =
|
|
10127
|
+
const hasMore = useMemo10(() => {
|
|
10132
10128
|
var _a2, _b, _c, _d;
|
|
10133
10129
|
if (rawResponseData && rawResponseData.length > 0) {
|
|
10134
10130
|
const lastElement = rawResponseData[rawResponseData.length - 1];
|
|
@@ -10138,14 +10134,14 @@ var useAugmentedBankTransactions = (params) => {
|
|
|
10138
10134
|
}
|
|
10139
10135
|
return false;
|
|
10140
10136
|
}, [rawResponseData]);
|
|
10141
|
-
const accountsList =
|
|
10137
|
+
const accountsList = useMemo10(
|
|
10142
10138
|
() => data ? collectAccounts(data) : [],
|
|
10143
10139
|
[data]
|
|
10144
10140
|
);
|
|
10145
10141
|
const setFilters = useCallback9((newFilters) => {
|
|
10146
10142
|
setBaseFilters((prevFilters) => __spreadValues(__spreadValues({}, prevFilters), newFilters));
|
|
10147
10143
|
}, []);
|
|
10148
|
-
const filteredData =
|
|
10144
|
+
const filteredData = useMemo10(() => {
|
|
10149
10145
|
var _a2, _b;
|
|
10150
10146
|
let filtered = data;
|
|
10151
10147
|
if (!filtered) {
|
|
@@ -10302,14 +10298,14 @@ var useAugmentedBankTransactions = (params) => {
|
|
|
10302
10298
|
}
|
|
10303
10299
|
}, [syncTimestamps, filters]);
|
|
10304
10300
|
const { data: linkedAccounts, refetchAccounts } = useLinkedAccounts();
|
|
10305
|
-
const anyAccountSyncing =
|
|
10301
|
+
const anyAccountSyncing = useMemo10(
|
|
10306
10302
|
() => Boolean(linkedAccounts == null ? void 0 : linkedAccounts.some((item) => item.is_syncing)),
|
|
10307
10303
|
[linkedAccounts]
|
|
10308
10304
|
);
|
|
10309
10305
|
const [pollIntervalMs, setPollIntervalMs] = useState6(
|
|
10310
10306
|
INITIAL_POLL_INTERVAL_MS
|
|
10311
10307
|
);
|
|
10312
|
-
const transactionsNotSynced =
|
|
10308
|
+
const transactionsNotSynced = useMemo10(
|
|
10313
10309
|
() => isLoading === false && anyAccountSyncing && (!data || (data == null ? void 0 : data.length) === 0),
|
|
10314
10310
|
[data, anyAccountSyncing, isLoading]
|
|
10315
10311
|
);
|
|
@@ -10797,7 +10793,7 @@ import {
|
|
|
10797
10793
|
} from "react";
|
|
10798
10794
|
|
|
10799
10795
|
// src/components/Tooltip/useTooltip.ts
|
|
10800
|
-
import { useMemo as
|
|
10796
|
+
import { useMemo as useMemo11, useState as useState7, createContext as createContext8, useContext as useContext7 } from "react";
|
|
10801
10797
|
import {
|
|
10802
10798
|
useFloating,
|
|
10803
10799
|
autoUpdate,
|
|
@@ -10866,7 +10862,7 @@ var useTooltip = ({
|
|
|
10866
10862
|
},
|
|
10867
10863
|
duration: 300
|
|
10868
10864
|
});
|
|
10869
|
-
return
|
|
10865
|
+
return useMemo11(
|
|
10870
10866
|
() => __spreadValues(__spreadValues({
|
|
10871
10867
|
open,
|
|
10872
10868
|
setOpen,
|
|
@@ -12142,7 +12138,7 @@ var ConnectAccount = ({
|
|
|
12142
12138
|
const { data, isLoading } = useAugmentedBankTransactions({
|
|
12143
12139
|
scope: "review" /* review */
|
|
12144
12140
|
});
|
|
12145
|
-
const transactionsToReview =
|
|
12141
|
+
const transactionsToReview = useMemo12(
|
|
12146
12142
|
() => countTransactionsToReview({ transactions: data }),
|
|
12147
12143
|
[data, isLoading]
|
|
12148
12144
|
);
|
|
@@ -13078,7 +13074,7 @@ function LinkedAccountPill({ label, items }) {
|
|
|
13078
13074
|
}
|
|
13079
13075
|
|
|
13080
13076
|
// src/components/LinkedAccounts/UnlinkAccountConfirmationModal/UnlinkAccountConfirmationModal.tsx
|
|
13081
|
-
import { useContext as useContext10, useMemo as
|
|
13077
|
+
import { useContext as useContext10, useMemo as useMemo13 } from "react";
|
|
13082
13078
|
|
|
13083
13079
|
// src/components/ui/Modal/Modal.tsx
|
|
13084
13080
|
import { forwardRef as forwardRef7 } from "react";
|
|
@@ -13232,15 +13228,16 @@ Button2.displayName = "Button";
|
|
|
13232
13228
|
// src/components/ui/Typography/Heading.tsx
|
|
13233
13229
|
import { forwardRef as forwardRef9 } from "react";
|
|
13234
13230
|
import { Heading as ReactAriaHeading } from "react-aria-components";
|
|
13231
|
+
import classNames22 from "classnames";
|
|
13235
13232
|
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
13236
13233
|
var HEADING_CLASS_NAME = "Layer__UI__Heading";
|
|
13237
13234
|
var Heading2 = forwardRef9((_a, ref) => {
|
|
13238
|
-
var _b = _a, { align, pie, pbe, size, variant, weight } = _b, restProps = __objRest(_b, ["align", "pie", "pbe", "size", "variant", "weight"]);
|
|
13239
|
-
const dataProperties = toDataProperties({ pbe, pie, size, align, variant, weight });
|
|
13235
|
+
var _b = _a, { align, pie, pbe, size, variant, weight, ellipsis, className } = _b, restProps = __objRest(_b, ["align", "pie", "pbe", "size", "variant", "weight", "ellipsis", "className"]);
|
|
13236
|
+
const dataProperties = toDataProperties({ pbe, pie, size, align, variant, weight, ellipsis });
|
|
13240
13237
|
return /* @__PURE__ */ jsx66(
|
|
13241
13238
|
ReactAriaHeading,
|
|
13242
13239
|
__spreadProps(__spreadValues(__spreadValues({}, restProps), dataProperties), {
|
|
13243
|
-
className: HEADING_CLASS_NAME,
|
|
13240
|
+
className: classNames22(HEADING_CLASS_NAME, className),
|
|
13244
13241
|
ref
|
|
13245
13242
|
})
|
|
13246
13243
|
);
|
|
@@ -13248,13 +13245,13 @@ var Heading2 = forwardRef9((_a, ref) => {
|
|
|
13248
13245
|
Heading2.displayName = "Heading";
|
|
13249
13246
|
|
|
13250
13247
|
// src/components/ui/Modal/ModalSlots.tsx
|
|
13251
|
-
import
|
|
13248
|
+
import classNames23 from "classnames";
|
|
13252
13249
|
import { jsx as jsx67, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
13253
13250
|
var MODAL_CLOSE_BUTTON_CLASS_NAME = "Layer__ModalCloseButton";
|
|
13254
13251
|
var ModalCloseButton = ({ onClose, positionAbsolute = false }) => /* @__PURE__ */ jsx67(
|
|
13255
13252
|
"div",
|
|
13256
13253
|
{
|
|
13257
|
-
className:
|
|
13254
|
+
className: classNames23(
|
|
13258
13255
|
MODAL_CLOSE_BUTTON_CLASS_NAME,
|
|
13259
13256
|
positionAbsolute && `${MODAL_CLOSE_BUTTON_CLASS_NAME}--position-absolute`
|
|
13260
13257
|
),
|
|
@@ -13326,7 +13323,7 @@ function ModalActions({ children }) {
|
|
|
13326
13323
|
|
|
13327
13324
|
// src/components/ui/Stack/Stack.tsx
|
|
13328
13325
|
import { forwardRef as forwardRef11 } from "react";
|
|
13329
|
-
import
|
|
13326
|
+
import classNames24 from "classnames";
|
|
13330
13327
|
import { jsx as jsx68 } from "react/jsx-runtime";
|
|
13331
13328
|
var CLASS_NAME2 = "Layer__Stack";
|
|
13332
13329
|
var Stack = forwardRef11(
|
|
@@ -13381,7 +13378,7 @@ var Stack = forwardRef11(
|
|
|
13381
13378
|
__spreadProps(__spreadValues(__spreadValues({
|
|
13382
13379
|
ref
|
|
13383
13380
|
}, restProps), dataProperties), {
|
|
13384
|
-
className:
|
|
13381
|
+
className: classNames24(CLASS_NAME2, className),
|
|
13385
13382
|
children
|
|
13386
13383
|
})
|
|
13387
13384
|
);
|
|
@@ -13469,7 +13466,7 @@ import { jsx as jsx70 } from "react/jsx-runtime";
|
|
|
13469
13466
|
function UnlinkAccountConfirmationModal({ isOpen, onOpenChange, account }) {
|
|
13470
13467
|
const { unlinkAccount: unlinkAccount2 } = useContext10(LinkedAccountsContext);
|
|
13471
13468
|
const variant = account.external_account_source === "CUSTOM" ? "DELETE" : "UNLINK";
|
|
13472
|
-
const modalContent =
|
|
13469
|
+
const modalContent = useMemo13(() => {
|
|
13473
13470
|
switch (variant) {
|
|
13474
13471
|
case "DELETE":
|
|
13475
13472
|
return {
|
|
@@ -13655,7 +13652,7 @@ var LinkedAccountItemThumb = ({
|
|
|
13655
13652
|
};
|
|
13656
13653
|
|
|
13657
13654
|
// src/components/LinkedAccounts/LinkedAccountsContent.tsx
|
|
13658
|
-
import
|
|
13655
|
+
import classNames26 from "classnames";
|
|
13659
13656
|
|
|
13660
13657
|
// src/components/LinkedAccounts/ConfirmationModal/LinkedAccountsConfirmationModal.tsx
|
|
13661
13658
|
import { useState as useState15 } from "react";
|
|
@@ -13687,14 +13684,14 @@ function ConditionalList({
|
|
|
13687
13684
|
|
|
13688
13685
|
// src/components/ui/Checkbox/Checkbox.tsx
|
|
13689
13686
|
import { Check } from "lucide-react";
|
|
13690
|
-
import { useMemo as
|
|
13687
|
+
import { useMemo as useMemo14 } from "react";
|
|
13691
13688
|
import { Checkbox as ReactAriaCheckbox } from "react-aria-components";
|
|
13692
|
-
import
|
|
13689
|
+
import classNames25 from "classnames";
|
|
13693
13690
|
import { Fragment as Fragment7, jsx as jsx73, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
13694
13691
|
var CLASS_NAME3 = "Layer__Checkbox";
|
|
13695
13692
|
function Checkbox(_a) {
|
|
13696
13693
|
var _b = _a, { children, className, variant = "default", size = "md" } = _b, props = __objRest(_b, ["children", "className", "variant", "size"]);
|
|
13697
|
-
const dataProperties =
|
|
13694
|
+
const dataProperties = useMemo14(() => toDataProperties({
|
|
13698
13695
|
size,
|
|
13699
13696
|
variant,
|
|
13700
13697
|
labeled: typeof children === "string" && children.length > 0
|
|
@@ -13702,7 +13699,7 @@ function Checkbox(_a) {
|
|
|
13702
13699
|
return /* @__PURE__ */ jsx73(
|
|
13703
13700
|
ReactAriaCheckbox,
|
|
13704
13701
|
__spreadProps(__spreadValues(__spreadValues({}, dataProperties), props), {
|
|
13705
|
-
className:
|
|
13702
|
+
className: classNames25(CLASS_NAME3, className),
|
|
13706
13703
|
children: withRenderProp(children, (node) => /* @__PURE__ */ jsxs37(Fragment7, { children: [
|
|
13707
13704
|
/* @__PURE__ */ jsx73("div", { slot: "checkbox", children: /* @__PURE__ */ jsx73(Check, { size: size === "lg" ? 16 : 12 }) }),
|
|
13708
13705
|
node
|
|
@@ -14004,7 +14001,7 @@ var LinkedAccountsContent = ({
|
|
|
14004
14001
|
showBreakConnection
|
|
14005
14002
|
}) => {
|
|
14006
14003
|
const { data, addConnection } = useContext12(LinkedAccountsContext);
|
|
14007
|
-
const linkedAccountsNewAccountClassName =
|
|
14004
|
+
const linkedAccountsNewAccountClassName = classNames26(
|
|
14008
14005
|
"Layer__linked-accounts__new-account",
|
|
14009
14006
|
asWidget && "--as-widget",
|
|
14010
14007
|
showLedgerBalance && "--show-ledger-balance",
|
|
@@ -14044,7 +14041,7 @@ var LinkedAccountsContent = ({
|
|
|
14044
14041
|
};
|
|
14045
14042
|
|
|
14046
14043
|
// src/components/LinkedAccounts/OpeningBalanceModal/OpeningBalanceModal.tsx
|
|
14047
|
-
import { useContext as useContext13, useMemo as
|
|
14044
|
+
import { useContext as useContext13, useMemo as useMemo18, useState as useState18 } from "react";
|
|
14048
14045
|
|
|
14049
14046
|
// src/utils/business.ts
|
|
14050
14047
|
import { differenceInCalendarMonths, parseISO as parseISO2, startOfMonth as startOfMonth3 } from "date-fns";
|
|
@@ -14077,10 +14074,10 @@ var isDateAllowedToBrowse = (date, business) => {
|
|
|
14077
14074
|
};
|
|
14078
14075
|
|
|
14079
14076
|
// src/components/LinkedAccounts/AccountFormBox/AccountFormBox.tsx
|
|
14080
|
-
import { useMemo as
|
|
14077
|
+
import { useMemo as useMemo17 } from "react";
|
|
14081
14078
|
|
|
14082
14079
|
// src/components/Input/Input.tsx
|
|
14083
|
-
import
|
|
14080
|
+
import classNames27 from "classnames";
|
|
14084
14081
|
import { jsx as jsx78, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
14085
14082
|
var Input = (_a) => {
|
|
14086
14083
|
var _b = _a, {
|
|
@@ -14094,7 +14091,7 @@ var Input = (_a) => {
|
|
|
14094
14091
|
"errorMessage",
|
|
14095
14092
|
"leftText"
|
|
14096
14093
|
]);
|
|
14097
|
-
const baseClassName =
|
|
14094
|
+
const baseClassName = classNames27(
|
|
14098
14095
|
"Layer__input",
|
|
14099
14096
|
isInvalid ? "Layer__input--error" : "",
|
|
14100
14097
|
leftText ? "Layer__input--with-left-text" : "",
|
|
@@ -14110,7 +14107,7 @@ var Input = (_a) => {
|
|
|
14110
14107
|
};
|
|
14111
14108
|
|
|
14112
14109
|
// src/components/Input/InputGroup.tsx
|
|
14113
|
-
import
|
|
14110
|
+
import classNames28 from "classnames";
|
|
14114
14111
|
import { jsx as jsx79, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
14115
14112
|
var InputGroup = ({
|
|
14116
14113
|
label,
|
|
@@ -14119,7 +14116,7 @@ var InputGroup = ({
|
|
|
14119
14116
|
inline,
|
|
14120
14117
|
children
|
|
14121
14118
|
}) => {
|
|
14122
|
-
const baseClassName =
|
|
14119
|
+
const baseClassName = classNames28(
|
|
14123
14120
|
"Layer__input-group",
|
|
14124
14121
|
className,
|
|
14125
14122
|
inline && "Layer__input-group--inline"
|
|
@@ -14298,7 +14295,7 @@ var ChevronDownFill = (_a) => {
|
|
|
14298
14295
|
var ChevronDownFill_default = ChevronDownFill;
|
|
14299
14296
|
|
|
14300
14297
|
// src/components/Input/Select.tsx
|
|
14301
|
-
import
|
|
14298
|
+
import classNames29 from "classnames";
|
|
14302
14299
|
import { jsx as jsx83, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
14303
14300
|
var Select = ({
|
|
14304
14301
|
name,
|
|
@@ -14315,7 +14312,7 @@ var Select = ({
|
|
|
14315
14312
|
isLoading,
|
|
14316
14313
|
formatOptionLabel: formatOptionLabel2
|
|
14317
14314
|
}) => {
|
|
14318
|
-
const baseClassName =
|
|
14315
|
+
const baseClassName = classNames29(
|
|
14319
14316
|
"Layer__select",
|
|
14320
14317
|
isInvalid ? "Layer__select--error" : "",
|
|
14321
14318
|
className
|
|
@@ -14346,7 +14343,7 @@ var Select = ({
|
|
|
14346
14343
|
};
|
|
14347
14344
|
|
|
14348
14345
|
// src/components/Input/InputWithBadge.tsx
|
|
14349
|
-
import
|
|
14346
|
+
import classNames30 from "classnames";
|
|
14350
14347
|
import { jsx as jsx84, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
14351
14348
|
|
|
14352
14349
|
// src/components/Input/MultiSelect.tsx
|
|
@@ -14354,7 +14351,7 @@ import { useCallback as useCallback12 } from "react";
|
|
|
14354
14351
|
import ReactSelect2, {
|
|
14355
14352
|
components as components2
|
|
14356
14353
|
} from "react-select";
|
|
14357
|
-
import
|
|
14354
|
+
import classNames31 from "classnames";
|
|
14358
14355
|
import { jsx as jsx85, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
14359
14356
|
var MultiSelect = ({
|
|
14360
14357
|
name,
|
|
@@ -14372,7 +14369,7 @@ var MultiSelect = ({
|
|
|
14372
14369
|
inputId,
|
|
14373
14370
|
isLoading
|
|
14374
14371
|
}) => {
|
|
14375
|
-
const baseClassName =
|
|
14372
|
+
const baseClassName = classNames31(
|
|
14376
14373
|
"Layer__select",
|
|
14377
14374
|
isInvalid ? "Layer__select--error" : "",
|
|
14378
14375
|
className
|
|
@@ -14406,7 +14403,7 @@ var MultiSelect = ({
|
|
|
14406
14403
|
};
|
|
14407
14404
|
|
|
14408
14405
|
// src/components/Input/AmountInput.tsx
|
|
14409
|
-
import
|
|
14406
|
+
import classNames32 from "classnames";
|
|
14410
14407
|
import CurrencyInput from "react-currency-input-field";
|
|
14411
14408
|
import { jsx as jsx86, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
14412
14409
|
var transformCurrencyValue = (rawValue) => {
|
|
@@ -14437,7 +14434,7 @@ var AmountInput = (_a) => {
|
|
|
14437
14434
|
"badge",
|
|
14438
14435
|
"placeholder"
|
|
14439
14436
|
]);
|
|
14440
|
-
const baseClassName =
|
|
14437
|
+
const baseClassName = classNames32(
|
|
14441
14438
|
"Layer__input Layer__amount-input",
|
|
14442
14439
|
badge ? "Layer__amount-input--align-left" : "Layer__amount-input--align-right",
|
|
14443
14440
|
isInvalid ? "Layer__input--error" : "",
|
|
@@ -14475,11 +14472,11 @@ var AmountInput = (_a) => {
|
|
|
14475
14472
|
};
|
|
14476
14473
|
|
|
14477
14474
|
// src/components/DatePicker/DatePicker.tsx
|
|
14478
|
-
import { useMemo as
|
|
14475
|
+
import { useMemo as useMemo16, useRef as useRef7, useState as useState17 } from "react";
|
|
14479
14476
|
import * as RDP from "react-datepicker";
|
|
14480
14477
|
|
|
14481
14478
|
// src/hooks/useWindowSize/useWindowSize.ts
|
|
14482
|
-
import { useState as useState16, useLayoutEffect, useMemo as
|
|
14479
|
+
import { useState as useState16, useLayoutEffect, useMemo as useMemo15 } from "react";
|
|
14483
14480
|
|
|
14484
14481
|
// src/config/general.ts
|
|
14485
14482
|
var DATE_FORMAT = "LLL d, yyyy";
|
|
@@ -14507,7 +14504,7 @@ var useWindowSize = () => {
|
|
|
14507
14504
|
};
|
|
14508
14505
|
function useSizeClass() {
|
|
14509
14506
|
const [width] = useWindowSize();
|
|
14510
|
-
const sizeClass =
|
|
14507
|
+
const sizeClass = useMemo15(() => {
|
|
14511
14508
|
switch (true) {
|
|
14512
14509
|
case width <= BREAKPOINTS.MOBILE:
|
|
14513
14510
|
return "mobile";
|
|
@@ -14621,7 +14618,7 @@ var DatePickerOptions = ({
|
|
|
14621
14618
|
};
|
|
14622
14619
|
|
|
14623
14620
|
// src/components/DatePicker/DatePicker.tsx
|
|
14624
|
-
import
|
|
14621
|
+
import classNames33 from "classnames";
|
|
14625
14622
|
import { endOfDay as endOfDay2, endOfMonth as endOfMonth4, endOfYear as endOfYear3, getYear } from "date-fns";
|
|
14626
14623
|
import { Fragment as Fragment12, jsx as jsx89, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
14627
14624
|
var ReactDatePicker = RDP.default.default || RDP.default || RDP;
|
|
@@ -14723,7 +14720,7 @@ var DatePicker = (_a) => {
|
|
|
14723
14720
|
]);
|
|
14724
14721
|
const { ModeSelector } = slots != null ? slots : {};
|
|
14725
14722
|
const pickerRef = useRef7(null);
|
|
14726
|
-
const pickerMode =
|
|
14723
|
+
const pickerMode = useMemo16(() => {
|
|
14727
14724
|
var _a2;
|
|
14728
14725
|
if (!allowedModes) {
|
|
14729
14726
|
return displayMode;
|
|
@@ -14736,7 +14733,7 @@ var DatePicker = (_a) => {
|
|
|
14736
14733
|
}
|
|
14737
14734
|
return (_a2 = allowedModes[0]) != null ? _a2 : displayMode;
|
|
14738
14735
|
}, [displayMode, allowedModes]);
|
|
14739
|
-
const [firstDate, secondDate] =
|
|
14736
|
+
const [firstDate, secondDate] = useMemo16(() => {
|
|
14740
14737
|
if (selected instanceof Date) {
|
|
14741
14738
|
return [selected, null];
|
|
14742
14739
|
}
|
|
@@ -14746,21 +14743,21 @@ var DatePicker = (_a) => {
|
|
|
14746
14743
|
return [selected[0], null];
|
|
14747
14744
|
}, [selected, displayMode]);
|
|
14748
14745
|
const { isDesktop } = useSizeClass();
|
|
14749
|
-
const wrapperClassNames =
|
|
14746
|
+
const wrapperClassNames = classNames33(
|
|
14750
14747
|
"Layer__datepicker__wrapper",
|
|
14751
14748
|
displayMode === "timePicker" && "Layer__datepicker__time__wrapper",
|
|
14752
14749
|
showNavigationArrows(navigateArrows, isDesktop) && "Layer__datepicker__wrapper--arrows"
|
|
14753
14750
|
);
|
|
14754
|
-
const datePickerWrapperClassNames =
|
|
14751
|
+
const datePickerWrapperClassNames = classNames33(
|
|
14755
14752
|
"Layer__datepicker",
|
|
14756
14753
|
displayMode === "timePicker" && "Layer__datepicker__time",
|
|
14757
14754
|
wrapperClassName
|
|
14758
14755
|
);
|
|
14759
|
-
const calendarClassNames =
|
|
14756
|
+
const calendarClassNames = classNames33(
|
|
14760
14757
|
"Layer__datepicker__calendar",
|
|
14761
14758
|
calendarClassName
|
|
14762
14759
|
);
|
|
14763
|
-
const popperClassNames =
|
|
14760
|
+
const popperClassNames = classNames33(
|
|
14764
14761
|
"Layer__datepicker__popper",
|
|
14765
14762
|
displayMode === "timePicker" && "Layer__datepicker__time__popper",
|
|
14766
14763
|
popperClassName
|
|
@@ -14821,7 +14818,7 @@ var DatePicker = (_a) => {
|
|
|
14821
14818
|
break;
|
|
14822
14819
|
}
|
|
14823
14820
|
};
|
|
14824
|
-
const isTodayOrAfter =
|
|
14821
|
+
const isTodayOrAfter = useMemo16(() => {
|
|
14825
14822
|
switch (displayMode) {
|
|
14826
14823
|
case "dayPicker":
|
|
14827
14824
|
return firstDate >= endOfDay2(/* @__PURE__ */ new Date()) || maxDate && firstDate >= maxDate;
|
|
@@ -14930,7 +14927,7 @@ var DatePicker = (_a) => {
|
|
|
14930
14927
|
Button,
|
|
14931
14928
|
{
|
|
14932
14929
|
"aria-label": "Previous Date",
|
|
14933
|
-
className:
|
|
14930
|
+
className: classNames33(
|
|
14934
14931
|
"Layer__datepicker__prev-button",
|
|
14935
14932
|
isBeforeMinDate && "Layer__datepicker__button--disabled"
|
|
14936
14933
|
),
|
|
@@ -14952,7 +14949,7 @@ var DatePicker = (_a) => {
|
|
|
14952
14949
|
{
|
|
14953
14950
|
"aria-label": "Next Date",
|
|
14954
14951
|
variant: "secondary" /* secondary */,
|
|
14955
|
-
className:
|
|
14952
|
+
className: classNames33(
|
|
14956
14953
|
"Layer__datepicker__next-button",
|
|
14957
14954
|
isTodayOrAfter ? "Layer__datepicker__button--disabled" : void 0
|
|
14958
14955
|
),
|
|
@@ -15001,7 +14998,7 @@ var AccountFormBox = ({
|
|
|
15001
14998
|
errors = []
|
|
15002
14999
|
}) => {
|
|
15003
15000
|
var _a, _b, _c, _d, _e;
|
|
15004
|
-
const dataProps =
|
|
15001
|
+
const dataProps = useMemo17(() => toDataProperties({
|
|
15005
15002
|
saved: isSaved,
|
|
15006
15003
|
confirmed: value.isConfirmed
|
|
15007
15004
|
}), [isSaved, value.isConfirmed]);
|
|
@@ -15302,7 +15299,7 @@ function LinkedAccountsOpeningBalanceModalContent({
|
|
|
15302
15299
|
openingDate: (_a2 = getActivationDate(business)) != null ? _a2 : startOfYear3(/* @__PURE__ */ new Date())
|
|
15303
15300
|
};
|
|
15304
15301
|
}));
|
|
15305
|
-
const formsDataToSave =
|
|
15302
|
+
const formsDataToSave = useMemo18(
|
|
15306
15303
|
() => ignoreAlreadySaved(formsData, results),
|
|
15307
15304
|
[formsData, results]
|
|
15308
15305
|
);
|
|
@@ -15457,7 +15454,7 @@ var LinkedAccountsComponent = ({
|
|
|
15457
15454
|
|
|
15458
15455
|
// src/components/BankTransactions/BankTransactions.tsx
|
|
15459
15456
|
var import_lodash7 = __toESM(require_lodash2());
|
|
15460
|
-
import { useEffect as useEffect23, useMemo as
|
|
15457
|
+
import { useEffect as useEffect23, useMemo as useMemo40, useRef as useRef23, useState as useState47 } from "react";
|
|
15461
15458
|
|
|
15462
15459
|
// src/contexts/BankTransactionsContext/BankTransactionsContext.tsx
|
|
15463
15460
|
import { createContext as createContext9, useContext as useContext15 } from "react";
|
|
@@ -15614,7 +15611,7 @@ var File = (_a) => {
|
|
|
15614
15611
|
var File_default = File;
|
|
15615
15612
|
|
|
15616
15613
|
// src/components/BankTransactionRow/BankTransactionRow.tsx
|
|
15617
|
-
import { useEffect as useEffect14, useMemo as
|
|
15614
|
+
import { useEffect as useEffect14, useMemo as useMemo31, useRef as useRef13, useState as useState29 } from "react";
|
|
15618
15615
|
|
|
15619
15616
|
// src/icons/Scissors.tsx
|
|
15620
15617
|
import { jsx as jsx94, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
@@ -15917,7 +15914,7 @@ var MinimizeTwo = (_a) => {
|
|
|
15917
15914
|
var MinimizeTwo_default = MinimizeTwo;
|
|
15918
15915
|
|
|
15919
15916
|
// src/components/CategorySelect/CategorySelect.tsx
|
|
15920
|
-
import
|
|
15917
|
+
import classNames35 from "classnames";
|
|
15921
15918
|
import { parseISO as parseISO4, format as formatTime } from "date-fns";
|
|
15922
15919
|
|
|
15923
15920
|
// src/hooks/categories/useCategories.ts
|
|
@@ -15961,10 +15958,10 @@ function useCategories({ mode } = {}) {
|
|
|
15961
15958
|
}
|
|
15962
15959
|
|
|
15963
15960
|
// src/components/BankTransactionMobileList/BusinessCategories.tsx
|
|
15964
|
-
import { useCallback as useCallback13, useMemo as
|
|
15961
|
+
import { useCallback as useCallback13, useMemo as useMemo19, useState as useState20 } from "react";
|
|
15965
15962
|
|
|
15966
15963
|
// src/components/ActionableList/ActionableList.tsx
|
|
15967
|
-
import
|
|
15964
|
+
import classNames34 from "classnames";
|
|
15968
15965
|
import { jsx as jsx99, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
15969
15966
|
var ActionableList = ({
|
|
15970
15967
|
options: options3,
|
|
@@ -15973,12 +15970,12 @@ var ActionableList = ({
|
|
|
15973
15970
|
showDescriptions = false,
|
|
15974
15971
|
className
|
|
15975
15972
|
}) => {
|
|
15976
|
-
return /* @__PURE__ */ jsx99("ul", { className:
|
|
15973
|
+
return /* @__PURE__ */ jsx99("ul", { className: classNames34("Layer__actionable-list", className), children: options3.map((x, idx) => /* @__PURE__ */ jsxs59(
|
|
15977
15974
|
"li",
|
|
15978
15975
|
{
|
|
15979
15976
|
role: "button",
|
|
15980
15977
|
onClick: () => onClick(x),
|
|
15981
|
-
className:
|
|
15978
|
+
className: classNames34(
|
|
15982
15979
|
x.secondary && "Layer__actionable-list-item--secondary",
|
|
15983
15980
|
x.asLink && "Layer__actionable-list-item--as-link",
|
|
15984
15981
|
selectedId === x.id && "Layer__actionable-list__item--selected"
|
|
@@ -16177,7 +16174,7 @@ var BusinessCategories = ({
|
|
|
16177
16174
|
);
|
|
16178
16175
|
const [optionsToShow, setOptionsToShow] = useState20(categoryOptions);
|
|
16179
16176
|
const [selectedGroup, setSelectedGroup] = useState20();
|
|
16180
|
-
const filteredOptions =
|
|
16177
|
+
const filteredOptions = useMemo19(() => {
|
|
16181
16178
|
let options3 = optionsToShow;
|
|
16182
16179
|
if (query) {
|
|
16183
16180
|
const lower = query.toLowerCase();
|
|
@@ -16517,7 +16514,7 @@ var GroupHeading = (props) => {
|
|
|
16517
16514
|
return /* @__PURE__ */ jsx105(
|
|
16518
16515
|
components3.GroupHeading,
|
|
16519
16516
|
__spreadValues({
|
|
16520
|
-
className:
|
|
16517
|
+
className: classNames35(
|
|
16521
16518
|
props.className,
|
|
16522
16519
|
props.children === "Match" || props.children === "All categories" ? "Layer__select__group-heading--main" : ""
|
|
16523
16520
|
)
|
|
@@ -16670,7 +16667,7 @@ var CategorySelect = ({
|
|
|
16670
16667
|
"button",
|
|
16671
16668
|
{
|
|
16672
16669
|
"aria-label": "Select category",
|
|
16673
|
-
className:
|
|
16670
|
+
className: classNames35(
|
|
16674
16671
|
"Layer__category-menu__drawer-btn",
|
|
16675
16672
|
selected && "Layer__category-menu__drawer-btn--selected"
|
|
16676
16673
|
),
|
|
@@ -17071,7 +17068,7 @@ var Eye = (_a) => {
|
|
|
17071
17068
|
var Eye_default = Eye;
|
|
17072
17069
|
|
|
17073
17070
|
// src/components/FileThumb/FileThumb.tsx
|
|
17074
|
-
import
|
|
17071
|
+
import classNames36 from "classnames";
|
|
17075
17072
|
import { jsx as jsx110, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
17076
17073
|
var FileThumb = ({
|
|
17077
17074
|
url,
|
|
@@ -17090,7 +17087,7 @@ var FileThumb = ({
|
|
|
17090
17087
|
return /* @__PURE__ */ jsxs68(
|
|
17091
17088
|
"div",
|
|
17092
17089
|
{
|
|
17093
|
-
className:
|
|
17090
|
+
className: classNames36(
|
|
17094
17091
|
"Layer__file-thumb",
|
|
17095
17092
|
floatingActions && "Layer__file-thumb--floating"
|
|
17096
17093
|
),
|
|
@@ -17123,7 +17120,7 @@ var FileThumb = ({
|
|
|
17123
17120
|
enableOpen || enableDownload || onDelete ? /* @__PURE__ */ jsxs68(
|
|
17124
17121
|
"div",
|
|
17125
17122
|
{
|
|
17126
|
-
className:
|
|
17123
|
+
className: classNames36(
|
|
17127
17124
|
"Layer__file-thumb__actions",
|
|
17128
17125
|
floatingActions && "Layer__file-thumb__actions--floating"
|
|
17129
17126
|
),
|
|
@@ -17253,7 +17250,7 @@ BankTransactionReceipts.displayName = "BankTransactionReceipts";
|
|
|
17253
17250
|
import useSWR9 from "swr";
|
|
17254
17251
|
|
|
17255
17252
|
// src/providers/LegacyModeProvider/LegacyModeProvider.tsx
|
|
17256
|
-
import { createContext as createContext11, useContext as useContext17, useMemo as
|
|
17253
|
+
import { createContext as createContext11, useContext as useContext17, useMemo as useMemo20 } from "react";
|
|
17257
17254
|
import { jsx as jsx112 } from "react/jsx-runtime";
|
|
17258
17255
|
var LegacyModeContext = createContext11({
|
|
17259
17256
|
overrideMode: void 0
|
|
@@ -17265,7 +17262,7 @@ function LegacyModeProvider({
|
|
|
17265
17262
|
overrideMode,
|
|
17266
17263
|
children
|
|
17267
17264
|
}) {
|
|
17268
|
-
const memoizedValue =
|
|
17265
|
+
const memoizedValue = useMemo20(() => ({ overrideMode }), [overrideMode]);
|
|
17269
17266
|
return /* @__PURE__ */ jsx112(LegacyModeContext.Provider, { value: memoizedValue, children });
|
|
17270
17267
|
}
|
|
17271
17268
|
|
|
@@ -17385,7 +17382,7 @@ var MatchBadge = ({
|
|
|
17385
17382
|
};
|
|
17386
17383
|
|
|
17387
17384
|
// src/components/MatchForm/MatchForm.tsx
|
|
17388
|
-
import
|
|
17385
|
+
import classNames37 from "classnames";
|
|
17389
17386
|
import { parseISO as parseISO7, format as formatTime4 } from "date-fns";
|
|
17390
17387
|
import { jsx as jsx114, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
17391
17388
|
var MatchForm = ({
|
|
@@ -17422,7 +17419,7 @@ var MatchForm = ({
|
|
|
17422
17419
|
return /* @__PURE__ */ jsxs71(
|
|
17423
17420
|
"div",
|
|
17424
17421
|
{
|
|
17425
|
-
className:
|
|
17422
|
+
className: classNames37(
|
|
17426
17423
|
`${classNamePrefix}__match-row`,
|
|
17427
17424
|
suggestedMatch.id === selectedMatchId ? `${classNamePrefix}__match-row--selected` : ""
|
|
17428
17425
|
),
|
|
@@ -17477,7 +17474,7 @@ var MatchForm = ({
|
|
|
17477
17474
|
};
|
|
17478
17475
|
|
|
17479
17476
|
// src/components/MatchForm/MatchFormMobile.tsx
|
|
17480
|
-
import
|
|
17477
|
+
import classNames38 from "classnames";
|
|
17481
17478
|
import { parseISO as parseISO8, format as formatTime5 } from "date-fns";
|
|
17482
17479
|
import { jsx as jsx115, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
17483
17480
|
var MatchFormMobile = ({
|
|
@@ -17496,7 +17493,7 @@ var MatchFormMobile = ({
|
|
|
17496
17493
|
return /* @__PURE__ */ jsxs72(
|
|
17497
17494
|
"div",
|
|
17498
17495
|
{
|
|
17499
|
-
className:
|
|
17496
|
+
className: classNames38(
|
|
17500
17497
|
`${classNamePrefix}__match-item`,
|
|
17501
17498
|
match.id === selectedMatchId ? `${classNamePrefix}__match-item--selected` : ""
|
|
17502
17499
|
),
|
|
@@ -17565,10 +17562,10 @@ var MatchFormMobile = ({
|
|
|
17565
17562
|
// src/components/Toggle/Toggle.tsx
|
|
17566
17563
|
import {
|
|
17567
17564
|
useEffect as useEffect10,
|
|
17568
|
-
useMemo as
|
|
17565
|
+
useMemo as useMemo21,
|
|
17569
17566
|
useState as useState23
|
|
17570
17567
|
} from "react";
|
|
17571
|
-
import
|
|
17568
|
+
import classNames39 from "classnames";
|
|
17572
17569
|
import { jsx as jsx116, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
17573
17570
|
import { createElement } from "react";
|
|
17574
17571
|
var Toggle = ({
|
|
@@ -17581,7 +17578,7 @@ var Toggle = ({
|
|
|
17581
17578
|
const [currentWidth, setCurrentWidth] = useState23(0);
|
|
17582
17579
|
const [thumbPos, setThumbPos] = useState23({ left: 0, width: 0 });
|
|
17583
17580
|
const [initialized, setInitialized] = useState23(false);
|
|
17584
|
-
const activeOption =
|
|
17581
|
+
const activeOption = useMemo21(() => {
|
|
17585
17582
|
return selected ? selected : options3.length > 0 ? options3[0].value : void 0;
|
|
17586
17583
|
}, [selected, options3]);
|
|
17587
17584
|
const toggleRef = useElementSize((_a, _b, c) => {
|
|
@@ -17589,7 +17586,7 @@ var Toggle = ({
|
|
|
17589
17586
|
setCurrentWidth(c.width);
|
|
17590
17587
|
}
|
|
17591
17588
|
});
|
|
17592
|
-
const baseClassName =
|
|
17589
|
+
const baseClassName = classNames39(
|
|
17593
17590
|
"Layer__toggle",
|
|
17594
17591
|
`Layer__toggle--${size}`,
|
|
17595
17592
|
initialized ? "Layer__toggle--initialized" : ""
|
|
@@ -17674,7 +17671,7 @@ var ToggleOption = ({
|
|
|
17674
17671
|
style,
|
|
17675
17672
|
index
|
|
17676
17673
|
}) => {
|
|
17677
|
-
const optionClassName =
|
|
17674
|
+
const optionClassName = classNames39("Layer__toggle-option", {
|
|
17678
17675
|
"Layer__toggle-option--active": checked
|
|
17679
17676
|
});
|
|
17680
17677
|
if (disabled) {
|
|
@@ -17839,10 +17836,10 @@ var Notification = ({
|
|
|
17839
17836
|
};
|
|
17840
17837
|
|
|
17841
17838
|
// src/components/ExpandedBankTransactionRow/ExpandedBankTransactionRow.tsx
|
|
17842
|
-
import
|
|
17839
|
+
import classNames42 from "classnames";
|
|
17843
17840
|
|
|
17844
17841
|
// src/components/Textarea/Textarea.tsx
|
|
17845
|
-
import
|
|
17842
|
+
import classNames40 from "classnames";
|
|
17846
17843
|
import { jsx as jsx118, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
17847
17844
|
var Textarea = (_a) => {
|
|
17848
17845
|
var _b = _a, {
|
|
@@ -17854,7 +17851,7 @@ var Textarea = (_a) => {
|
|
|
17854
17851
|
"isInvalid",
|
|
17855
17852
|
"errorMessage"
|
|
17856
17853
|
]);
|
|
17857
|
-
const baseClassName =
|
|
17854
|
+
const baseClassName = classNames40(
|
|
17858
17855
|
"Layer__textarea",
|
|
17859
17856
|
isInvalid ? "Layer__textarea--error" : "",
|
|
17860
17857
|
className
|
|
@@ -18025,10 +18022,10 @@ var BankTransactionMemo = ({ bankTransactionId }) => {
|
|
|
18025
18022
|
};
|
|
18026
18023
|
|
|
18027
18024
|
// src/features/bankTransactions/[bankTransactionId]/customerVendor/components/BankTransactionCustomerVendorSelector.tsx
|
|
18028
|
-
import { useCallback as useCallback20, useMemo as
|
|
18025
|
+
import { useCallback as useCallback20, useMemo as useMemo25 } from "react";
|
|
18029
18026
|
|
|
18030
18027
|
// src/features/customerVendor/components/CustomerVendorSelector.tsx
|
|
18031
|
-
import { useCallback as useCallback17, useId as useId2, useMemo as
|
|
18028
|
+
import { useCallback as useCallback17, useId as useId2, useMemo as useMemo24 } from "react";
|
|
18032
18029
|
|
|
18033
18030
|
// src/features/customers/api/useListCustomers.ts
|
|
18034
18031
|
import useSWRInfinite2 from "swr/infinite";
|
|
@@ -18259,7 +18256,7 @@ import { useState as useState25, useCallback as useCallback16 } from "react";
|
|
|
18259
18256
|
|
|
18260
18257
|
// src/hooks/useDebounce/useDebounce.ts
|
|
18261
18258
|
var import_lodash6 = __toESM(require_lodash2());
|
|
18262
|
-
import { useEffect as useEffect12, useMemo as
|
|
18259
|
+
import { useEffect as useEffect12, useMemo as useMemo22, useRef as useRef9 } from "react";
|
|
18263
18260
|
var DEFAULT_WAIT = 300;
|
|
18264
18261
|
var DEFAULT_MAX_WAIT = 2 * DEFAULT_WAIT;
|
|
18265
18262
|
function useDebounce(fn) {
|
|
@@ -18267,7 +18264,7 @@ function useDebounce(fn) {
|
|
|
18267
18264
|
useEffect12(() => {
|
|
18268
18265
|
internalFnRef.current = fn;
|
|
18269
18266
|
}, [fn]);
|
|
18270
|
-
const debouncedCallback =
|
|
18267
|
+
const debouncedCallback = useMemo22(() => {
|
|
18271
18268
|
const internalFn = (...args) => {
|
|
18272
18269
|
internalFnRef.current(...args);
|
|
18273
18270
|
};
|
|
@@ -18317,8 +18314,8 @@ function useDebouncedSearchInput({
|
|
|
18317
18314
|
import Select3, {
|
|
18318
18315
|
components as components4
|
|
18319
18316
|
} from "react-select";
|
|
18320
|
-
import { useId, useMemo as
|
|
18321
|
-
import
|
|
18317
|
+
import { useId, useMemo as useMemo23, useRef as useRef10 } from "react";
|
|
18318
|
+
import classNames41 from "classnames";
|
|
18322
18319
|
|
|
18323
18320
|
// src/components/ui/Portal/Portal.tsx
|
|
18324
18321
|
var PORTAL_CLASS_NAME = "Layer__Portal";
|
|
@@ -18332,7 +18329,7 @@ var COMBO_BOX_CLASS_NAMES = {
|
|
|
18332
18329
|
VALUE_CONTAINER: "Layer__ComboBoxValueContainer",
|
|
18333
18330
|
PLACEHOLDER: "Layer__ComboBoxPlaceholder",
|
|
18334
18331
|
INDICATORS_CONTAINER: "Layer__ComboBoxIndicatorsContainer",
|
|
18335
|
-
MENU:
|
|
18332
|
+
MENU: classNames41(
|
|
18336
18333
|
PORTAL_CLASS_NAME,
|
|
18337
18334
|
"Layer__ComboBoxMenu"
|
|
18338
18335
|
),
|
|
@@ -18376,7 +18373,7 @@ function buildCustomComboBoxOption({
|
|
|
18376
18373
|
return /* @__PURE__ */ jsx120(
|
|
18377
18374
|
components4.Option,
|
|
18378
18375
|
__spreadProps(__spreadValues({}, restProps), {
|
|
18379
|
-
className:
|
|
18376
|
+
className: classNames41(
|
|
18380
18377
|
COMBO_BOX_CLASS_NAMES.OPTION,
|
|
18381
18378
|
isFocused ? `${COMBO_BOX_CLASS_NAMES.OPTION}--focused` : void 0,
|
|
18382
18379
|
effectiveIsSelected ? `${COMBO_BOX_CLASS_NAMES.OPTION}--selected` : void 0,
|
|
@@ -18517,20 +18514,20 @@ function ComboBox(_a) {
|
|
|
18517
18514
|
const internalInputId = useId();
|
|
18518
18515
|
const effectiveInputId = inputId != null ? inputId : internalInputId;
|
|
18519
18516
|
const CustomGroupHeadingRef = useRef10(buildCustomGroupHeading());
|
|
18520
|
-
const CustomComboBoxOption =
|
|
18517
|
+
const CustomComboBoxOption = useMemo23(
|
|
18521
18518
|
() => buildCustomComboBoxOption({ displayDisabledAsSelected }),
|
|
18522
18519
|
[displayDisabledAsSelected]
|
|
18523
18520
|
);
|
|
18524
18521
|
const { EmptyMessage, ErrorMessage, SelectedValue } = slots != null ? slots : {};
|
|
18525
|
-
const CustomNoOptionsMessage =
|
|
18522
|
+
const CustomNoOptionsMessage = useMemo23(
|
|
18526
18523
|
() => buildCustomNoOptionsMessage({ EmptyMessage }),
|
|
18527
18524
|
[EmptyMessage]
|
|
18528
18525
|
);
|
|
18529
|
-
const CustomPlaceholder =
|
|
18526
|
+
const CustomPlaceholder = useMemo23(
|
|
18530
18527
|
() => buildCustomPlaceholder({ placeholder }),
|
|
18531
18528
|
[placeholder]
|
|
18532
18529
|
);
|
|
18533
|
-
const CustomSingleValue =
|
|
18530
|
+
const CustomSingleValue = useMemo23(
|
|
18534
18531
|
() => buildCustomSingleValue({ SelectedValue }),
|
|
18535
18532
|
[SelectedValue]
|
|
18536
18533
|
);
|
|
@@ -18554,7 +18551,7 @@ function ComboBox(_a) {
|
|
|
18554
18551
|
className,
|
|
18555
18552
|
classNames: {
|
|
18556
18553
|
container: () => COMBO_BOX_CLASS_NAMES.CONTAINER,
|
|
18557
|
-
control: ({ isFocused, isDisabled: isDisabled2 }) =>
|
|
18554
|
+
control: ({ isFocused, isDisabled: isDisabled2 }) => classNames41(
|
|
18558
18555
|
COMBO_BOX_CLASS_NAMES.CONTROL,
|
|
18559
18556
|
isFocused && `${COMBO_BOX_CLASS_NAMES.CONTROL}--focused`,
|
|
18560
18557
|
isDisabled2 && `${COMBO_BOX_CLASS_NAMES.CONTROL}--disabled`,
|
|
@@ -18562,7 +18559,7 @@ function ComboBox(_a) {
|
|
|
18562
18559
|
),
|
|
18563
18560
|
valueContainer: () => COMBO_BOX_CLASS_NAMES.VALUE_CONTAINER,
|
|
18564
18561
|
placeholder: () => COMBO_BOX_CLASS_NAMES.PLACEHOLDER,
|
|
18565
|
-
indicatorsContainer: () =>
|
|
18562
|
+
indicatorsContainer: () => classNames41(
|
|
18566
18563
|
COMBO_BOX_CLASS_NAMES.INDICATORS_CONTAINER,
|
|
18567
18564
|
isReadOnly && `${COMBO_BOX_CLASS_NAMES.INDICATORS_CONTAINER}--readonly`
|
|
18568
18565
|
),
|
|
@@ -18650,7 +18647,7 @@ function CustomerVendorSelector({
|
|
|
18650
18647
|
isLoading: isLoadingVendors,
|
|
18651
18648
|
isError: isErrorLoadingVendors
|
|
18652
18649
|
} = useListVendors({ query: effectiveSearchQuery });
|
|
18653
|
-
const groups =
|
|
18650
|
+
const groups = useMemo24(
|
|
18654
18651
|
() => {
|
|
18655
18652
|
const customersSection = customerPages ? {
|
|
18656
18653
|
label: "Customers",
|
|
@@ -18710,7 +18707,7 @@ function CustomerVendorSelector({
|
|
|
18710
18707
|
onSelectedCustomerVendorChange
|
|
18711
18708
|
]
|
|
18712
18709
|
);
|
|
18713
|
-
const selectedCustomerVendorForComboBox =
|
|
18710
|
+
const selectedCustomerVendorForComboBox = useMemo24(
|
|
18714
18711
|
() => {
|
|
18715
18712
|
if (selectedCustomerVendor === null) {
|
|
18716
18713
|
return null;
|
|
@@ -18722,11 +18719,11 @@ function CustomerVendorSelector({
|
|
|
18722
18719
|
},
|
|
18723
18720
|
[selectedCustomerVendor]
|
|
18724
18721
|
);
|
|
18725
|
-
const EmptyMessage =
|
|
18722
|
+
const EmptyMessage = useMemo24(
|
|
18726
18723
|
() => /* @__PURE__ */ jsx121(P, { variant: "subtle", children: "No matching customer or vendor found" }),
|
|
18727
18724
|
[]
|
|
18728
18725
|
);
|
|
18729
|
-
const ErrorMessage =
|
|
18726
|
+
const ErrorMessage = useMemo24(
|
|
18730
18727
|
() => /* @__PURE__ */ jsx121(
|
|
18731
18728
|
P,
|
|
18732
18729
|
{
|
|
@@ -18987,7 +18984,7 @@ function BankTransactionCustomerVendorSelector({
|
|
|
18987
18984
|
} = bankTransaction;
|
|
18988
18985
|
const status = useEffectiveBookkeepingStatus();
|
|
18989
18986
|
const isReadOnly = status === "ACTIVE" /* ACTIVE */;
|
|
18990
|
-
const selectedCustomerVendor =
|
|
18987
|
+
const selectedCustomerVendor = useMemo25(
|
|
18991
18988
|
() => {
|
|
18992
18989
|
if (customer) {
|
|
18993
18990
|
return decodeCustomerVendor(__spreadProps(__spreadValues({}, customer), {
|
|
@@ -19054,7 +19051,7 @@ function BankTransactionCustomerVendorSelector({
|
|
|
19054
19051
|
import {
|
|
19055
19052
|
createContext as createContext12,
|
|
19056
19053
|
useContext as useContext18,
|
|
19057
|
-
useMemo as
|
|
19054
|
+
useMemo as useMemo26
|
|
19058
19055
|
} from "react";
|
|
19059
19056
|
import { jsx as jsx123 } from "react/jsx-runtime";
|
|
19060
19057
|
var BankTransactionCustomerVendorVisibilityContext = createContext12({
|
|
@@ -19067,18 +19064,18 @@ function BankTransactionCustomerVendorVisibilityProvider({
|
|
|
19067
19064
|
children,
|
|
19068
19065
|
showCustomerVendor
|
|
19069
19066
|
}) {
|
|
19070
|
-
const value =
|
|
19067
|
+
const value = useMemo26(() => ({ showCustomerVendor }), [showCustomerVendor]);
|
|
19071
19068
|
return /* @__PURE__ */ jsx123(BankTransactionCustomerVendorVisibilityContext.Provider, { value, children });
|
|
19072
19069
|
}
|
|
19073
19070
|
|
|
19074
19071
|
// src/features/bankTransactions/[bankTransactionId]/tags/components/BankTransactionTagSelector.tsx
|
|
19075
|
-
import { useCallback as useCallback24, useMemo as
|
|
19072
|
+
import { useCallback as useCallback24, useMemo as useMemo29 } from "react";
|
|
19076
19073
|
|
|
19077
19074
|
// src/features/tags/components/TagSelector.tsx
|
|
19078
19075
|
import {
|
|
19079
19076
|
useCallback as useCallback21,
|
|
19080
19077
|
useId as useId3,
|
|
19081
|
-
useMemo as
|
|
19078
|
+
useMemo as useMemo28
|
|
19082
19079
|
} from "react";
|
|
19083
19080
|
|
|
19084
19081
|
// src/features/tags/api/useTagDimensions.ts
|
|
@@ -19240,7 +19237,7 @@ var Tag = forwardRef13(
|
|
|
19240
19237
|
import { Schema as Schema16 } from "effect";
|
|
19241
19238
|
|
|
19242
19239
|
// src/features/tags/useFlattenedTagValues.ts
|
|
19243
|
-
import { useMemo as
|
|
19240
|
+
import { useMemo as useMemo27 } from "react";
|
|
19244
19241
|
function flattenDimensionsToValues(dimensions) {
|
|
19245
19242
|
return dimensions.flatMap(
|
|
19246
19243
|
({ id: dimensionId, key: dimensionLabel, definedValues }) => definedValues.map(({ id: valueId, value: valueLabel }) => makeTagValue({
|
|
@@ -19252,7 +19249,7 @@ function flattenDimensionsToValues(dimensions) {
|
|
|
19252
19249
|
);
|
|
19253
19250
|
}
|
|
19254
19251
|
function useFlattenedTagValues(dimensions) {
|
|
19255
|
-
return
|
|
19252
|
+
return useMemo27(() => {
|
|
19256
19253
|
if (dimensions === void 0) {
|
|
19257
19254
|
return [];
|
|
19258
19255
|
}
|
|
@@ -19407,7 +19404,7 @@ function TagSelector({
|
|
|
19407
19404
|
isReadOnly
|
|
19408
19405
|
}) {
|
|
19409
19406
|
const { data, isLoading, isError } = useTagDimensions();
|
|
19410
|
-
const groups =
|
|
19407
|
+
const groups = useMemo28(
|
|
19411
19408
|
() => {
|
|
19412
19409
|
var _a;
|
|
19413
19410
|
return (_a = data == null ? void 0 : data.map(({ key: dimensionLabel, definedValues }) => {
|
|
@@ -19447,7 +19444,7 @@ function TagSelector({
|
|
|
19447
19444
|
]
|
|
19448
19445
|
);
|
|
19449
19446
|
const inputId = useId3();
|
|
19450
|
-
const EmptyMessage =
|
|
19447
|
+
const EmptyMessage = useMemo28(
|
|
19451
19448
|
() => /* @__PURE__ */ jsx126(
|
|
19452
19449
|
Span,
|
|
19453
19450
|
{
|
|
@@ -19458,7 +19455,7 @@ function TagSelector({
|
|
|
19458
19455
|
),
|
|
19459
19456
|
[]
|
|
19460
19457
|
);
|
|
19461
|
-
const ErrorMessage =
|
|
19458
|
+
const ErrorMessage = useMemo28(
|
|
19462
19459
|
() => /* @__PURE__ */ jsx126(
|
|
19463
19460
|
Span,
|
|
19464
19461
|
{
|
|
@@ -19706,7 +19703,7 @@ function BankTransactionTagSelector({ bankTransaction }) {
|
|
|
19706
19703
|
id: bankTransactionId,
|
|
19707
19704
|
transaction_tags: transactionTags
|
|
19708
19705
|
} = bankTransaction;
|
|
19709
|
-
const selectedTags =
|
|
19706
|
+
const selectedTags = useMemo29(
|
|
19710
19707
|
() => transactionTags.map(({ id, key, value, _local }) => {
|
|
19711
19708
|
var _a;
|
|
19712
19709
|
return makeTag({
|
|
@@ -19748,7 +19745,7 @@ function BankTransactionTagSelector({ bankTransaction }) {
|
|
|
19748
19745
|
import {
|
|
19749
19746
|
createContext as createContext13,
|
|
19750
19747
|
useContext as useContext19,
|
|
19751
|
-
useMemo as
|
|
19748
|
+
useMemo as useMemo30
|
|
19752
19749
|
} from "react";
|
|
19753
19750
|
import { jsx as jsx128 } from "react/jsx-runtime";
|
|
19754
19751
|
var BankTransactionTagVisibilityContext = createContext13({
|
|
@@ -19761,7 +19758,7 @@ function BankTransactionTagVisibilityProvider({
|
|
|
19761
19758
|
children,
|
|
19762
19759
|
showTags
|
|
19763
19760
|
}) {
|
|
19764
|
-
const value =
|
|
19761
|
+
const value = useMemo30(() => ({ showTags }), [showTags]);
|
|
19765
19762
|
return /* @__PURE__ */ jsx128(BankTransactionTagVisibilityContext.Provider, { value, children });
|
|
19766
19763
|
}
|
|
19767
19764
|
|
|
@@ -20022,7 +20019,7 @@ var ExpandedBankTransactionRow = forwardRef15(
|
|
|
20022
20019
|
/* @__PURE__ */ jsx130(
|
|
20023
20020
|
"div",
|
|
20024
20021
|
{
|
|
20025
|
-
className:
|
|
20022
|
+
className: classNames42(
|
|
20026
20023
|
`${className}__match`,
|
|
20027
20024
|
`${className}__content-panel`,
|
|
20028
20025
|
purpose === "match" /* match */ ? `${className}__content-panel--active` : ""
|
|
@@ -20046,7 +20043,7 @@ var ExpandedBankTransactionRow = forwardRef15(
|
|
|
20046
20043
|
/* @__PURE__ */ jsx130(
|
|
20047
20044
|
"div",
|
|
20048
20045
|
{
|
|
20049
|
-
className:
|
|
20046
|
+
className: classNames42(
|
|
20050
20047
|
`${className}__splits`,
|
|
20051
20048
|
`${className}__content-panel`,
|
|
20052
20049
|
purpose === "categorize" /* categorize */ ? `${className}__content-panel--active` : ""
|
|
@@ -20229,7 +20226,7 @@ var SplitTooltipDetails = ({
|
|
|
20229
20226
|
};
|
|
20230
20227
|
|
|
20231
20228
|
// src/components/BankTransactionRow/BankTransactionRow.tsx
|
|
20232
|
-
import
|
|
20229
|
+
import classNames43 from "classnames";
|
|
20233
20230
|
import { parseISO as parseISO9, format as formatTime6 } from "date-fns";
|
|
20234
20231
|
|
|
20235
20232
|
// src/hooks/bookkeeping/periods/useBookkeepingPeriods.ts
|
|
@@ -20603,14 +20600,14 @@ var BankTransactionRow = ({
|
|
|
20603
20600
|
const { isVisible } = useDelayedVisibility({ delay: index * 20, initialVisibility: Boolean(initialLoad) });
|
|
20604
20601
|
const className = "Layer__bank-transaction-row";
|
|
20605
20602
|
const openClassName = open ? `${className}--expanded` : "";
|
|
20606
|
-
const rowClassName =
|
|
20603
|
+
const rowClassName = classNames43(
|
|
20607
20604
|
className,
|
|
20608
20605
|
bankTransaction.recently_categorized && editable && shouldHideAfterCategorize() ? "Layer__bank-transaction-row--removing" : "",
|
|
20609
20606
|
open ? openClassName : "",
|
|
20610
20607
|
initialLoad ? "initial-load" : "",
|
|
20611
20608
|
isVisible ? "show" : ""
|
|
20612
20609
|
);
|
|
20613
|
-
const showReceiptDataProperties =
|
|
20610
|
+
const showReceiptDataProperties = useMemo31(
|
|
20614
20611
|
() => toDataProperties({ "show-receipt-upload-column": showReceiptUploadColumn }),
|
|
20615
20612
|
[showReceiptUploadColumn]
|
|
20616
20613
|
);
|
|
@@ -20681,7 +20678,7 @@ var BankTransactionRow = ({
|
|
|
20681
20678
|
/* @__PURE__ */ jsx137(
|
|
20682
20679
|
"td",
|
|
20683
20680
|
{
|
|
20684
|
-
className:
|
|
20681
|
+
className: classNames43(
|
|
20685
20682
|
"Layer__table-cell",
|
|
20686
20683
|
"Layer__table-cell__category-col",
|
|
20687
20684
|
`${className}__actions-cell`,
|
|
@@ -20864,7 +20861,7 @@ var Assignment = ({ bankTransaction }) => {
|
|
|
20864
20861
|
};
|
|
20865
20862
|
|
|
20866
20863
|
// src/components/BankTransactionList/BankTransactionListItem.tsx
|
|
20867
|
-
import
|
|
20864
|
+
import classNames44 from "classnames";
|
|
20868
20865
|
import { parseISO as parseISO11, format as formatTime8 } from "date-fns";
|
|
20869
20866
|
import { jsx as jsx139, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
20870
20867
|
var BankTransactionListItem = ({
|
|
@@ -20931,7 +20928,7 @@ var BankTransactionListItem = ({
|
|
|
20931
20928
|
const categorized = isCategorized(bankTransaction);
|
|
20932
20929
|
const className = "Layer__bank-transaction-list-item";
|
|
20933
20930
|
const openClassName = open ? `${className}--expanded` : "";
|
|
20934
|
-
const rowClassName =
|
|
20931
|
+
const rowClassName = classNames44(
|
|
20935
20932
|
className,
|
|
20936
20933
|
bankTransaction.recently_categorized && editable && shouldHideAfterCategorize() ? "Layer__bank-transaction-row--removing" : "",
|
|
20937
20934
|
open ? openClassName : "",
|
|
@@ -21074,7 +21071,7 @@ var BankTransactionList = ({
|
|
|
21074
21071
|
import { useContext as useContext20, useEffect as useEffect19, useRef as useRef19, useState as useState37 } from "react";
|
|
21075
21072
|
|
|
21076
21073
|
// src/components/BankTransactionMobileList/BusinessForm.tsx
|
|
21077
|
-
import { useEffect as useEffect16, useMemo as
|
|
21074
|
+
import { useEffect as useEffect16, useMemo as useMemo32, useRef as useRef15, useState as useState31 } from "react";
|
|
21078
21075
|
|
|
21079
21076
|
// src/icons/Paperclip.tsx
|
|
21080
21077
|
import { jsx as jsx141 } from "react/jsx-runtime";
|
|
@@ -21104,7 +21101,7 @@ var Paperclip = (_a) => {
|
|
|
21104
21101
|
var Paperclip_default = Paperclip;
|
|
21105
21102
|
|
|
21106
21103
|
// src/components/BankTransactionMobileList/BusinessForm.tsx
|
|
21107
|
-
import
|
|
21104
|
+
import classNames45 from "classnames";
|
|
21108
21105
|
import { Fragment as Fragment17, jsx as jsx142, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
21109
21106
|
var BusinessForm = ({
|
|
21110
21107
|
bankTransaction,
|
|
@@ -21125,7 +21122,7 @@ var BusinessForm = ({
|
|
|
21125
21122
|
setShowRetry(true);
|
|
21126
21123
|
}
|
|
21127
21124
|
}, [bankTransaction.error]);
|
|
21128
|
-
const options3 =
|
|
21125
|
+
const options3 = useMemo32(() => {
|
|
21129
21126
|
var _a;
|
|
21130
21127
|
const options4 = ((_a = bankTransaction == null ? void 0 : bankTransaction.categorization_flow) == null ? void 0 : _a.type) === "ASK_FROM_SUGGESTIONS" /* ASK_FROM_SUGGESTIONS */ ? bankTransaction.categorization_flow.suggestions.map(
|
|
21131
21128
|
(x) => mapCategoryToOption(x)
|
|
@@ -21200,7 +21197,7 @@ var BusinessForm = ({
|
|
|
21200
21197
|
/* @__PURE__ */ jsx142(
|
|
21201
21198
|
"div",
|
|
21202
21199
|
{
|
|
21203
|
-
className:
|
|
21200
|
+
className: classNames45(
|
|
21204
21201
|
"Layer__bank-transaction-mobile-list-item__receipts",
|
|
21205
21202
|
hasReceipts(bankTransaction) ? "Layer__bank-transaction-mobile-list-item__actions--with-receipts" : void 0
|
|
21206
21203
|
),
|
|
@@ -21275,7 +21272,7 @@ var PersonalCategories = /* @__PURE__ */ ((PersonalCategories2) => {
|
|
|
21275
21272
|
})(PersonalCategories || {});
|
|
21276
21273
|
|
|
21277
21274
|
// src/components/BankTransactionMobileList/PersonalForm.tsx
|
|
21278
|
-
import
|
|
21275
|
+
import classNames46 from "classnames";
|
|
21279
21276
|
import { jsx as jsx143, jsxs as jsxs89 } from "react/jsx-runtime";
|
|
21280
21277
|
var isAlreadyAssigned = (bankTransaction) => {
|
|
21281
21278
|
if (bankTransaction.categorization_status === "MATCHED" /* MATCHED */ || (bankTransaction == null ? void 0 : bankTransaction.categorization_status) === "SPLIT" /* SPLIT */) {
|
|
@@ -21329,7 +21326,7 @@ var PersonalForm = ({
|
|
|
21329
21326
|
/* @__PURE__ */ jsx143(
|
|
21330
21327
|
"div",
|
|
21331
21328
|
{
|
|
21332
|
-
className:
|
|
21329
|
+
className: classNames46(
|
|
21333
21330
|
"Layer__bank-transaction-mobile-list-item__receipts",
|
|
21334
21331
|
hasReceipts(bankTransaction) ? "Layer__bank-transaction-mobile-list-item__actions--with-receipts" : void 0
|
|
21335
21332
|
),
|
|
@@ -21376,7 +21373,7 @@ import { useState as useState35 } from "react";
|
|
|
21376
21373
|
|
|
21377
21374
|
// src/components/BankTransactionMobileList/MatchForm.tsx
|
|
21378
21375
|
import { useRef as useRef17, useState as useState33 } from "react";
|
|
21379
|
-
import
|
|
21376
|
+
import classNames47 from "classnames";
|
|
21380
21377
|
import { jsx as jsx144, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
21381
21378
|
var MatchForm2 = ({
|
|
21382
21379
|
bankTransaction,
|
|
@@ -21438,7 +21435,7 @@ var MatchForm2 = ({
|
|
|
21438
21435
|
/* @__PURE__ */ jsx144(
|
|
21439
21436
|
"div",
|
|
21440
21437
|
{
|
|
21441
|
-
className:
|
|
21438
|
+
className: classNames47(
|
|
21442
21439
|
"Layer__bank-transaction-mobile-list-item__receipts",
|
|
21443
21440
|
hasReceipts(bankTransaction) ? "Layer__bank-transaction-mobile-list-item__actions--with-receipts" : void 0
|
|
21444
21441
|
),
|
|
@@ -21483,7 +21480,7 @@ var MatchForm2 = ({
|
|
|
21483
21480
|
|
|
21484
21481
|
// src/components/BankTransactionMobileList/SplitForm.tsx
|
|
21485
21482
|
import { useEffect as useEffect18, useRef as useRef18, useState as useState34 } from "react";
|
|
21486
|
-
import
|
|
21483
|
+
import classNames48 from "classnames";
|
|
21487
21484
|
import { Fragment as Fragment18, jsx as jsx145, jsxs as jsxs91 } from "react/jsx-runtime";
|
|
21488
21485
|
var SplitForm = ({
|
|
21489
21486
|
bankTransaction,
|
|
@@ -21656,7 +21653,7 @@ var SplitForm = ({
|
|
|
21656
21653
|
{
|
|
21657
21654
|
type: "text",
|
|
21658
21655
|
name: `split-${index}`,
|
|
21659
|
-
className:
|
|
21656
|
+
className: classNames48(
|
|
21660
21657
|
"Layer__split-amount-input",
|
|
21661
21658
|
index === 0 && "Layer__split-amount-input--first"
|
|
21662
21659
|
),
|
|
@@ -21704,7 +21701,7 @@ var SplitForm = ({
|
|
|
21704
21701
|
/* @__PURE__ */ jsx145(
|
|
21705
21702
|
"div",
|
|
21706
21703
|
{
|
|
21707
|
-
className:
|
|
21704
|
+
className: classNames48(
|
|
21708
21705
|
"Layer__bank-transaction-mobile-list-item__receipts",
|
|
21709
21706
|
hasReceipts(bankTransaction) ? "Layer__bank-transaction-mobile-list-item__actions--with-receipts" : void 0
|
|
21710
21707
|
),
|
|
@@ -21855,7 +21852,7 @@ var TransactionToOpenContext = createContext14({
|
|
|
21855
21852
|
});
|
|
21856
21853
|
|
|
21857
21854
|
// src/components/BankTransactionMobileList/BankTransactionMobileListItem.tsx
|
|
21858
|
-
import
|
|
21855
|
+
import classNames49 from "classnames";
|
|
21859
21856
|
import { parseISO as parseISO12, format as formatTime9 } from "date-fns";
|
|
21860
21857
|
import { jsx as jsx148, jsxs as jsxs93 } from "react/jsx-runtime";
|
|
21861
21858
|
var DATE_FORMAT2 = "LLL d";
|
|
@@ -21960,7 +21957,7 @@ var BankTransactionMobileListItem = ({
|
|
|
21960
21957
|
const { isVisible } = useDelayedVisibility({ delay: index * 20, initialVisibility: Boolean(initialLoad) });
|
|
21961
21958
|
const className = "Layer__bank-transaction-mobile-list-item";
|
|
21962
21959
|
const openClassName = open ? `${className}--expanded` : "";
|
|
21963
|
-
const rowClassName =
|
|
21960
|
+
const rowClassName = classNames49(
|
|
21964
21961
|
className,
|
|
21965
21962
|
removeAnim ? "Layer__bank-transaction-row--removing" : "",
|
|
21966
21963
|
open ? openClassName : "",
|
|
@@ -22093,17 +22090,17 @@ var BankTransactionMobileList = ({
|
|
|
22093
22090
|
};
|
|
22094
22091
|
|
|
22095
22092
|
// src/components/BankTransactionsTable/BankTransactionsTable.tsx
|
|
22096
|
-
import { useMemo as
|
|
22093
|
+
import { useMemo as useMemo33 } from "react";
|
|
22097
22094
|
|
|
22098
22095
|
// src/components/SkeletonLoader/SkeletonLoader.tsx
|
|
22099
|
-
import
|
|
22096
|
+
import classNames50 from "classnames";
|
|
22100
22097
|
import { jsx as jsx150 } from "react/jsx-runtime";
|
|
22101
22098
|
var SkeletonLoader = ({
|
|
22102
22099
|
height,
|
|
22103
22100
|
width,
|
|
22104
22101
|
className
|
|
22105
22102
|
}) => {
|
|
22106
|
-
const baseClassName =
|
|
22103
|
+
const baseClassName = classNames50(
|
|
22107
22104
|
"Layer__skeleton-loader Layer__anim--skeleton-loading",
|
|
22108
22105
|
className
|
|
22109
22106
|
);
|
|
@@ -22116,7 +22113,7 @@ var FallbackWithSkeletonLoader = ({
|
|
|
22116
22113
|
children,
|
|
22117
22114
|
className
|
|
22118
22115
|
}) => {
|
|
22119
|
-
const baseClassName =
|
|
22116
|
+
const baseClassName = classNames50(
|
|
22120
22117
|
"Layer__skeleton-loader Layer__anim--skeleton-loading",
|
|
22121
22118
|
className
|
|
22122
22119
|
);
|
|
@@ -22219,7 +22216,7 @@ var BankTransactionsLoader = ({
|
|
|
22219
22216
|
};
|
|
22220
22217
|
|
|
22221
22218
|
// src/components/SyncingComponent/SyncingComponent.tsx
|
|
22222
|
-
import
|
|
22219
|
+
import classNames51 from "classnames";
|
|
22223
22220
|
import { jsx as jsx153, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
22224
22221
|
var SyncingComponent = ({
|
|
22225
22222
|
title = "Syncing account data",
|
|
@@ -22241,7 +22238,7 @@ var SyncingComponent = ({
|
|
|
22241
22238
|
return /* @__PURE__ */ jsxs95(
|
|
22242
22239
|
"div",
|
|
22243
22240
|
{
|
|
22244
|
-
className:
|
|
22241
|
+
className: classNames51(
|
|
22245
22242
|
"Layer__syncing-component",
|
|
22246
22243
|
inProgress ? "Layer__syncing-component--with-border" : ""
|
|
22247
22244
|
),
|
|
@@ -22281,7 +22278,7 @@ var BankTransactionsTable = ({
|
|
|
22281
22278
|
return ((_a2 = transaction.document_ids) == null ? void 0 : _a2.length) > 0;
|
|
22282
22279
|
}
|
|
22283
22280
|
))) != null ? _a : false;
|
|
22284
|
-
const showReceiptDataProperties =
|
|
22281
|
+
const showReceiptDataProperties = useMemo33(
|
|
22285
22282
|
() => toDataProperties({ "show-receipt-upload-column": showReceiptColumn }),
|
|
22286
22283
|
[showReceiptColumn]
|
|
22287
22284
|
);
|
|
@@ -22389,10 +22386,10 @@ var ErrorBoundary = class extends Component {
|
|
|
22389
22386
|
};
|
|
22390
22387
|
|
|
22391
22388
|
// src/components/Pagination/Pagination.tsx
|
|
22392
|
-
import
|
|
22389
|
+
import classNames52 from "classnames";
|
|
22393
22390
|
|
|
22394
22391
|
// src/hooks/usePaginationRange/usePaginationRange.ts
|
|
22395
|
-
import { useMemo as
|
|
22392
|
+
import { useMemo as useMemo34 } from "react";
|
|
22396
22393
|
var Dots = /* @__PURE__ */ ((Dots2) => {
|
|
22397
22394
|
Dots2["DotsLeft"] = "DotsLeft";
|
|
22398
22395
|
Dots2["DotsRight"] = "DotsRight";
|
|
@@ -22405,7 +22402,7 @@ var usePaginationRange = ({
|
|
|
22405
22402
|
currentPage
|
|
22406
22403
|
}) => {
|
|
22407
22404
|
if (pageSize < 1) throw new Error("pageSize must be a positive integer >= 1");
|
|
22408
|
-
const paginationRange =
|
|
22405
|
+
const paginationRange = useMemo34(() => {
|
|
22409
22406
|
const totalPageCount = Math.ceil(totalCount / pageSize);
|
|
22410
22407
|
if (totalPageCount === 0) return [];
|
|
22411
22408
|
const staticRange = siblingCount * 2 + 3;
|
|
@@ -22457,7 +22454,7 @@ var Pagination = ({
|
|
|
22457
22454
|
return null;
|
|
22458
22455
|
}
|
|
22459
22456
|
const lastPage = paginationRange[paginationRange.length - 1];
|
|
22460
|
-
return /* @__PURE__ */ jsx157(VStack, { className:
|
|
22457
|
+
return /* @__PURE__ */ jsx157(VStack, { className: classNames52("Layer__pagination-container", className), fluid: true, children: /* @__PURE__ */ jsx157("nav", { "aria-label": "Pagination", className: "Layer__pagination-nav", children: /* @__PURE__ */ jsxs97("ul", { className: "Layer__pagination", role: "list", children: [
|
|
22461
22458
|
/* @__PURE__ */ jsx157("li", { children: /* @__PURE__ */ jsx157(
|
|
22462
22459
|
PaginationButton,
|
|
22463
22460
|
{
|
|
@@ -22510,7 +22507,7 @@ var Pagination = ({
|
|
|
22510
22507
|
|
|
22511
22508
|
// src/components/BankTransactions/BankTransactionsHeader.tsx
|
|
22512
22509
|
import { useCallback as useCallback39, useState as useState46 } from "react";
|
|
22513
|
-
import
|
|
22510
|
+
import classNames61 from "classnames";
|
|
22514
22511
|
import { endOfMonth as endOfMonth5, startOfMonth as startOfMonth5 } from "date-fns";
|
|
22515
22512
|
|
|
22516
22513
|
// src/components/domain/transactions/actions/TransactionsActions.tsx
|
|
@@ -22674,7 +22671,7 @@ import {
|
|
|
22674
22671
|
createContext as createContext16,
|
|
22675
22672
|
useCallback as useCallback26,
|
|
22676
22673
|
useContext as useContext22,
|
|
22677
|
-
useMemo as
|
|
22674
|
+
useMemo as useMemo35,
|
|
22678
22675
|
useState as useState38
|
|
22679
22676
|
} from "react";
|
|
22680
22677
|
import { jsxs as jsxs99 } from "react/jsx-runtime";
|
|
@@ -22735,7 +22732,7 @@ function Wizard({
|
|
|
22735
22732
|
onComplete,
|
|
22736
22733
|
onStepChange
|
|
22737
22734
|
});
|
|
22738
|
-
const contextValue =
|
|
22735
|
+
const contextValue = useMemo35(() => ({ next, previous, goToStep }), [next, previous, goToStep]);
|
|
22739
22736
|
return /* @__PURE__ */ jsxs99(WizardContext.Provider, { value: contextValue, children: [
|
|
22740
22737
|
Header5,
|
|
22741
22738
|
currentStep,
|
|
@@ -22744,7 +22741,7 @@ function Wizard({
|
|
|
22744
22741
|
}
|
|
22745
22742
|
|
|
22746
22743
|
// src/components/UploadTransactions/UploadTransactionsUploadCsvStep.tsx
|
|
22747
|
-
import { useCallback as useCallback35, useMemo as
|
|
22744
|
+
import { useCallback as useCallback35, useMemo as useMemo37, useState as useState43 } from "react";
|
|
22748
22745
|
|
|
22749
22746
|
// src/hooks/customAccounts/useCustomAccounts.ts
|
|
22750
22747
|
import useSWR13 from "swr";
|
|
@@ -22814,7 +22811,7 @@ import {
|
|
|
22814
22811
|
components as components5
|
|
22815
22812
|
} from "react-select";
|
|
22816
22813
|
import BaseCreatableSelect from "react-select/creatable";
|
|
22817
|
-
import
|
|
22814
|
+
import classNames53 from "classnames";
|
|
22818
22815
|
import { jsx as jsx161, jsxs as jsxs100 } from "react/jsx-runtime";
|
|
22819
22816
|
var CreatableSelect = ({
|
|
22820
22817
|
name,
|
|
@@ -22836,7 +22833,7 @@ var CreatableSelect = ({
|
|
|
22836
22833
|
isClearable,
|
|
22837
22834
|
createOptionPosition = "first"
|
|
22838
22835
|
}) => {
|
|
22839
|
-
const baseClassName =
|
|
22836
|
+
const baseClassName = classNames53(
|
|
22840
22837
|
"Layer__select",
|
|
22841
22838
|
isInvalid ? "Layer__select--error" : "",
|
|
22842
22839
|
className
|
|
@@ -22916,13 +22913,13 @@ import {
|
|
|
22916
22913
|
TextField as ReactAriaTextField,
|
|
22917
22914
|
FieldError as ReactAriaFieldError
|
|
22918
22915
|
} from "react-aria-components";
|
|
22919
|
-
import
|
|
22916
|
+
import classNames54 from "classnames";
|
|
22920
22917
|
import { jsx as jsx162 } from "react/jsx-runtime";
|
|
22921
22918
|
var FORM_CLASS_NAME = "Layer__UI__Form";
|
|
22922
22919
|
var Form = forwardRef17(
|
|
22923
22920
|
function Form2(_a, ref) {
|
|
22924
22921
|
var _b = _a, { children, className } = _b, restProps = __objRest(_b, ["children", "className"]);
|
|
22925
|
-
return /* @__PURE__ */ jsx162(ReactAriaForm, __spreadProps(__spreadValues({}, restProps), { className:
|
|
22922
|
+
return /* @__PURE__ */ jsx162(ReactAriaForm, __spreadProps(__spreadValues({}, restProps), { className: classNames54(FORM_CLASS_NAME, className), ref, children }));
|
|
22926
22923
|
}
|
|
22927
22924
|
);
|
|
22928
22925
|
var TEXT_FIELD_CLASS_NAME = "Layer__UI__TextField";
|
|
@@ -22930,7 +22927,7 @@ var TextField = forwardRef17(
|
|
|
22930
22927
|
function TextField2(_a, ref) {
|
|
22931
22928
|
var _b = _a, { children, inline, textarea, className } = _b, restProps = __objRest(_b, ["children", "inline", "textarea", "className"]);
|
|
22932
22929
|
const dataProperties = toDataProperties({ inline, textarea });
|
|
22933
|
-
return /* @__PURE__ */ jsx162(ReactAriaTextField, __spreadProps(__spreadValues(__spreadValues({}, restProps), dataProperties), { className:
|
|
22930
|
+
return /* @__PURE__ */ jsx162(ReactAriaTextField, __spreadProps(__spreadValues(__spreadValues({}, restProps), dataProperties), { className: classNames54(TEXT_FIELD_CLASS_NAME, className), ref, children: withRenderProp(children, (node) => node) }));
|
|
22934
22931
|
}
|
|
22935
22932
|
);
|
|
22936
22933
|
var FIELD_ERROR_CLASS_NAME = "Layer__UI__FieldError";
|
|
@@ -22988,7 +22985,7 @@ function BaseFormTextField({
|
|
|
22988
22985
|
}
|
|
22989
22986
|
|
|
22990
22987
|
// src/features/forms/components/FormBigDecimalField.tsx
|
|
22991
|
-
import { useCallback as useCallback28, useEffect as useEffect20, useMemo as
|
|
22988
|
+
import { useCallback as useCallback28, useEffect as useEffect20, useMemo as useMemo36, useState as useState39 } from "react";
|
|
22992
22989
|
|
|
22993
22990
|
// src/components/ui/Input/InputGroup.tsx
|
|
22994
22991
|
import { forwardRef as forwardRef18 } from "react";
|
|
@@ -23137,7 +23134,7 @@ function FormBigDecimalField(_a) {
|
|
|
23137
23134
|
const field = useFieldContext();
|
|
23138
23135
|
const { name, state, handleChange, handleBlur } = field;
|
|
23139
23136
|
const { value } = state;
|
|
23140
|
-
const formattingProps =
|
|
23137
|
+
const formattingProps = useMemo36(() => ({
|
|
23141
23138
|
minDecimalPlaces,
|
|
23142
23139
|
maxDecimalPlaces,
|
|
23143
23140
|
mode
|
|
@@ -23163,7 +23160,7 @@ function FormBigDecimalField(_a) {
|
|
|
23163
23160
|
handleBlur();
|
|
23164
23161
|
setInputValue(formatBigDecimalToString(clamped, formattingProps));
|
|
23165
23162
|
}, [inputValue, mode, maxValue, maxDecimalPlaces, value, handleBlur, formattingProps, handleChange]);
|
|
23166
|
-
const allowedChars =
|
|
23163
|
+
const allowedChars = useMemo36(
|
|
23167
23164
|
() => buildDecimalCharRegex({ allowNegative, allowPercent: mode === "percent", allowDollar: mode === "currency" }),
|
|
23168
23165
|
[allowNegative, mode]
|
|
23169
23166
|
);
|
|
@@ -23197,7 +23194,7 @@ function FormBigDecimalField(_a) {
|
|
|
23197
23194
|
}
|
|
23198
23195
|
|
|
23199
23196
|
// src/features/forms/components/FormCheckboxField.tsx
|
|
23200
|
-
import
|
|
23197
|
+
import classNames55 from "classnames";
|
|
23201
23198
|
import { jsx as jsx167 } from "react/jsx-runtime";
|
|
23202
23199
|
var FORM_CHECKBOX_FIELD_CLASSNAME = "Layer__FormCheckboxField";
|
|
23203
23200
|
function FormCheckboxField({
|
|
@@ -23215,7 +23212,7 @@ function FormCheckboxField({
|
|
|
23215
23212
|
const errorMessage = errors.length !== 0 ? errors[0] : void 0;
|
|
23216
23213
|
const tooltipProps = showFieldError ? { tooltip: errorMessage } : {};
|
|
23217
23214
|
const additionalAriaProps = !showLabel && { "aria-label": label };
|
|
23218
|
-
const checkboxClassNames =
|
|
23215
|
+
const checkboxClassNames = classNames55(
|
|
23219
23216
|
FORM_CHECKBOX_FIELD_CLASSNAME,
|
|
23220
23217
|
inline && `${FORM_CHECKBOX_FIELD_CLASSNAME}--inline`,
|
|
23221
23218
|
className
|
|
@@ -23243,7 +23240,7 @@ import { useState as useState40, useEffect as useEffect21, useCallback as useCal
|
|
|
23243
23240
|
|
|
23244
23241
|
// src/components/ui/Date/Date.tsx
|
|
23245
23242
|
import { forwardRef as forwardRef20 } from "react";
|
|
23246
|
-
import
|
|
23243
|
+
import classNames56 from "classnames";
|
|
23247
23244
|
import {
|
|
23248
23245
|
DateField as ReactAriaDateField,
|
|
23249
23246
|
DateSegment as ReactAriaDateSegment,
|
|
@@ -23259,7 +23256,7 @@ var DateField = forwardRef20(
|
|
|
23259
23256
|
ReactAriaDateField,
|
|
23260
23257
|
__spreadProps(__spreadValues(__spreadValues({}, dataProperties), restProps), {
|
|
23261
23258
|
isReadOnly,
|
|
23262
|
-
className:
|
|
23259
|
+
className: classNames56(DATE_FIELD_CLASS_NAME, className),
|
|
23263
23260
|
ref
|
|
23264
23261
|
})
|
|
23265
23262
|
);
|
|
@@ -23273,7 +23270,7 @@ var DateInput = forwardRef20(
|
|
|
23273
23270
|
return /* @__PURE__ */ jsx168(
|
|
23274
23271
|
ReactAriaDateInput,
|
|
23275
23272
|
__spreadProps(__spreadValues(__spreadValues({}, dataProperties), restProps), {
|
|
23276
|
-
className:
|
|
23273
|
+
className: classNames56(DATE_INPUT_CLASS_NAME),
|
|
23277
23274
|
ref
|
|
23278
23275
|
})
|
|
23279
23276
|
);
|
|
@@ -23666,7 +23663,7 @@ var CustomAccountForm = ({ initialAccountName, onCancel, onSuccess }) => {
|
|
|
23666
23663
|
// src/components/CsvUpload/CsvUpload.tsx
|
|
23667
23664
|
import { useCallback as useCallback34, useRef as useRef21, useState as useState42 } from "react";
|
|
23668
23665
|
import { useDropzone } from "react-dropzone";
|
|
23669
|
-
import
|
|
23666
|
+
import classNames57 from "classnames";
|
|
23670
23667
|
import { FileSpreadsheet } from "lucide-react";
|
|
23671
23668
|
import { jsx as jsx174, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
23672
23669
|
var VALID_EXTENSIONS = [".csv"];
|
|
@@ -23758,7 +23755,7 @@ var CsvUpload = ({ file, onFileSelected, replaceDropTarget = false }) => {
|
|
|
23758
23755
|
/* @__PURE__ */ jsxs104(
|
|
23759
23756
|
VStack,
|
|
23760
23757
|
__spreadProps(__spreadValues({
|
|
23761
|
-
className:
|
|
23758
|
+
className: classNames57(
|
|
23762
23759
|
"Layer__csv-upload",
|
|
23763
23760
|
{ "Layer__csv-upload--drag-active": isDragActive }
|
|
23764
23761
|
),
|
|
@@ -23795,7 +23792,7 @@ var CsvUpload = ({ file, onFileSelected, replaceDropTarget = false }) => {
|
|
|
23795
23792
|
};
|
|
23796
23793
|
|
|
23797
23794
|
// src/components/UploadTransactions/UploadTransactionsUploadCsvStep.tsx
|
|
23798
|
-
import
|
|
23795
|
+
import classNames59 from "classnames";
|
|
23799
23796
|
|
|
23800
23797
|
// src/components/Separator/Separator.tsx
|
|
23801
23798
|
import { jsx as jsx175 } from "react/jsx-runtime";
|
|
@@ -23842,14 +23839,14 @@ var DownloadCsvTemplateButton = ({ children, className, csvProps, fileName = "te
|
|
|
23842
23839
|
|
|
23843
23840
|
// src/components/CsvUpload/CopyTemplateHeadersButtonGroup.tsx
|
|
23844
23841
|
import { CopyIcon } from "lucide-react";
|
|
23845
|
-
import
|
|
23842
|
+
import classNames58 from "classnames";
|
|
23846
23843
|
import { jsx as jsx177 } from "react/jsx-runtime";
|
|
23847
23844
|
var copyTextToClipboard = (text) => {
|
|
23848
23845
|
navigator.clipboard.writeText(text).catch(() => {
|
|
23849
23846
|
});
|
|
23850
23847
|
};
|
|
23851
23848
|
var CopyTemplateHeadersButtonGroup = ({ headers, className }) => {
|
|
23852
|
-
return /* @__PURE__ */ jsx177(HStack, { gap: "3xs", className:
|
|
23849
|
+
return /* @__PURE__ */ jsx177(HStack, { gap: "3xs", className: classNames58("Layer__csv-upload__copy-template-headers-button-group", className), children: Object.keys(headers).map((key) => /* @__PURE__ */ jsx177(
|
|
23853
23850
|
Button,
|
|
23854
23851
|
{
|
|
23855
23852
|
onClick: () => copyTextToClipboard(headers[key]),
|
|
@@ -23968,7 +23965,7 @@ function UploadTransactionsUploadCsvStep({ selectedAccount, onSelectAccount, sel
|
|
|
23968
23965
|
} = useCustomAccounts({ userCreated: true });
|
|
23969
23966
|
const { trigger: parseCsv2, isMutating: isParsingCsv, error: parseCsvError } = useCustomAccountParseCsv();
|
|
23970
23967
|
const [hasParseCsvError, setHasParseCsvError] = useState43(false);
|
|
23971
|
-
const accountOptions =
|
|
23968
|
+
const accountOptions = useMemo37(() => {
|
|
23972
23969
|
if (!customAccounts) return [];
|
|
23973
23970
|
return customAccounts.map((account) => ({
|
|
23974
23971
|
value: account.id,
|
|
@@ -24010,7 +24007,7 @@ function UploadTransactionsUploadCsvStep({ selectedAccount, onSelectAccount, sel
|
|
|
24010
24007
|
setHasParseCsvError(true);
|
|
24011
24008
|
});
|
|
24012
24009
|
}, [selectedAccount, isCreatingNewAccount, selectedFile, parseCsv2, onParseCsv, next]);
|
|
24013
|
-
const inputClassName =
|
|
24010
|
+
const inputClassName = classNames59(
|
|
24014
24011
|
"Layer__upload-transactions__select-account-name-input",
|
|
24015
24012
|
!!customAccountsError && "Layer__upload-transactions__select-account-name-input--error"
|
|
24016
24013
|
);
|
|
@@ -24138,8 +24135,8 @@ function useCreateCustomAccountTransactions() {
|
|
|
24138
24135
|
}
|
|
24139
24136
|
|
|
24140
24137
|
// src/components/CsvUpload/ValidateCsvTable.tsx
|
|
24141
|
-
import { useMemo as
|
|
24142
|
-
import
|
|
24138
|
+
import { useMemo as useMemo38, useRef as useRef22 } from "react";
|
|
24139
|
+
import classNames60 from "classnames";
|
|
24143
24140
|
import {
|
|
24144
24141
|
useReactTable,
|
|
24145
24142
|
getCoreRowModel,
|
|
@@ -24159,7 +24156,7 @@ function ValidateCsvTable({
|
|
|
24159
24156
|
formatters: formatters2,
|
|
24160
24157
|
className
|
|
24161
24158
|
}) {
|
|
24162
|
-
const columns =
|
|
24159
|
+
const columns = useMemo38(
|
|
24163
24160
|
() => {
|
|
24164
24161
|
const columnDefs = [{
|
|
24165
24162
|
id: "row",
|
|
@@ -24182,7 +24179,7 @@ function ValidateCsvTable({
|
|
|
24182
24179
|
return /* @__PURE__ */ jsx179(
|
|
24183
24180
|
"span",
|
|
24184
24181
|
{
|
|
24185
|
-
className:
|
|
24182
|
+
className: classNames60(
|
|
24186
24183
|
"Layer__table-cell-content",
|
|
24187
24184
|
`${CSS_PREFIX}__cell-content`,
|
|
24188
24185
|
!isValid2 && `${CSS_PREFIX}__cell-content--error`
|
|
@@ -24206,7 +24203,7 @@ function ValidateCsvTable({
|
|
|
24206
24203
|
},
|
|
24207
24204
|
[headers, formatters2]
|
|
24208
24205
|
);
|
|
24209
|
-
const state =
|
|
24206
|
+
const state = useMemo38(() => ({
|
|
24210
24207
|
sorting: [{ id: "is_valid", desc: false }],
|
|
24211
24208
|
columnVisibility: {
|
|
24212
24209
|
["is_valid"]: false
|
|
@@ -24233,7 +24230,7 @@ function ValidateCsvTable({
|
|
|
24233
24230
|
(header) => /* @__PURE__ */ jsx179(
|
|
24234
24231
|
"th",
|
|
24235
24232
|
{
|
|
24236
|
-
className:
|
|
24233
|
+
className: classNames60(
|
|
24237
24234
|
"Layer__table-header",
|
|
24238
24235
|
`${CSS_PREFIX}__header-cell`,
|
|
24239
24236
|
`${CSS_PREFIX}__header-cell--${header.id}`
|
|
@@ -24247,7 +24244,7 @@ function ValidateCsvTable({
|
|
|
24247
24244
|
/* @__PURE__ */ jsx179(
|
|
24248
24245
|
"tr",
|
|
24249
24246
|
{
|
|
24250
|
-
className:
|
|
24247
|
+
className: classNames60(
|
|
24251
24248
|
"Layer__table-row",
|
|
24252
24249
|
`${CSS_PREFIX}__row`,
|
|
24253
24250
|
rows.length < MAX_NUM_ROWS && `${CSS_PREFIX}__row--bottom-border`
|
|
@@ -24269,7 +24266,7 @@ var ValidateCsvTableRow = ({
|
|
|
24269
24266
|
}) => /* @__PURE__ */ jsx179(
|
|
24270
24267
|
"tr",
|
|
24271
24268
|
{
|
|
24272
|
-
className:
|
|
24269
|
+
className: classNames60(
|
|
24273
24270
|
"Layer__table-row",
|
|
24274
24271
|
`${CSS_PREFIX}__row`,
|
|
24275
24272
|
!row.getValue("is_valid") && `${CSS_PREFIX}__row--error`
|
|
@@ -24281,7 +24278,7 @@ var ValidateCsvTableRow = ({
|
|
|
24281
24278
|
return /* @__PURE__ */ jsx179(
|
|
24282
24279
|
"td",
|
|
24283
24280
|
{
|
|
24284
|
-
className:
|
|
24281
|
+
className: classNames60(
|
|
24285
24282
|
"Layer__table-cell",
|
|
24286
24283
|
`${CSS_PREFIX}__cell`,
|
|
24287
24284
|
`${CSS_PREFIX}__cell--${cell.column.columnDef.id}`
|
|
@@ -24641,7 +24638,7 @@ var BankTransactionsHeader = ({
|
|
|
24641
24638
|
return /* @__PURE__ */ jsxs112(
|
|
24642
24639
|
Header,
|
|
24643
24640
|
{
|
|
24644
|
-
className:
|
|
24641
|
+
className: classNames61(
|
|
24645
24642
|
"Layer__bank-transactions__header",
|
|
24646
24643
|
withDatePicker && "Layer__bank-transactions__header--with-date-picker",
|
|
24647
24644
|
mobileComponent && listView ? "Layer__bank-transactions__header--mobile" : void 0
|
|
@@ -24716,7 +24713,7 @@ var BankTransactionsHeader = ({
|
|
|
24716
24713
|
};
|
|
24717
24714
|
|
|
24718
24715
|
// src/components/BankTransactions/BankTransactionsTableEmptyState.tsx
|
|
24719
|
-
import { useMemo as
|
|
24716
|
+
import { useMemo as useMemo39 } from "react";
|
|
24720
24717
|
|
|
24721
24718
|
// src/icons/Inbox.tsx
|
|
24722
24719
|
import { jsx as jsx186, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
@@ -24766,7 +24763,7 @@ function BankTransactionsTableEmptyStates({
|
|
|
24766
24763
|
isFiltered,
|
|
24767
24764
|
isLoadingWithoutData
|
|
24768
24765
|
}) {
|
|
24769
|
-
const StateComponent =
|
|
24766
|
+
const StateComponent = useMemo39(() => {
|
|
24770
24767
|
if (isError) {
|
|
24771
24768
|
return /* @__PURE__ */ jsx187(
|
|
24772
24769
|
DataState,
|
|
@@ -24811,7 +24808,7 @@ function BankTransactionsTableEmptyStates({
|
|
|
24811
24808
|
}
|
|
24812
24809
|
|
|
24813
24810
|
// src/components/BankTransactions/BankTransactions.tsx
|
|
24814
|
-
import
|
|
24811
|
+
import classNames62 from "classnames";
|
|
24815
24812
|
import { jsx as jsx188, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
24816
24813
|
var COMPONENT_NAME2 = "bank-transactions";
|
|
24817
24814
|
var BankTransactions = (_a) => {
|
|
@@ -24872,7 +24869,7 @@ var BankTransactionsContent = ({
|
|
|
24872
24869
|
dateFilterMode
|
|
24873
24870
|
} = useBankTransactionsContext();
|
|
24874
24871
|
const { data: linkedAccounts } = useLinkedAccounts();
|
|
24875
|
-
const isSyncing =
|
|
24872
|
+
const isSyncing = useMemo40(
|
|
24876
24873
|
() => Boolean(linkedAccounts == null ? void 0 : linkedAccounts.some((item) => item.is_syncing)),
|
|
24877
24874
|
[linkedAccounts]
|
|
24878
24875
|
);
|
|
@@ -24917,7 +24914,7 @@ var BankTransactionsContent = ({
|
|
|
24917
24914
|
useEffect23(() => {
|
|
24918
24915
|
setCurrentPage(1);
|
|
24919
24916
|
}, [filters]);
|
|
24920
|
-
const bankTransactions =
|
|
24917
|
+
const bankTransactions = useMemo40(() => {
|
|
24921
24918
|
if (isMonthlyViewMode) return data;
|
|
24922
24919
|
const firstPageIndex = (currentPage - 1) * pageSize;
|
|
24923
24920
|
const lastPageIndex = firstPageIndex + pageSize;
|
|
@@ -24957,7 +24954,7 @@ var BankTransactionsContent = ({
|
|
|
24957
24954
|
return /* @__PURE__ */ jsxs114(
|
|
24958
24955
|
Container,
|
|
24959
24956
|
{
|
|
24960
|
-
className:
|
|
24957
|
+
className: classNames62(
|
|
24961
24958
|
"Layer__Public",
|
|
24962
24959
|
display === "review" /* review */ ? "Layer__bank-transactions--to-review" : "Layer__bank-transactions--categorized"
|
|
24963
24960
|
),
|
|
@@ -25060,7 +25057,7 @@ import { useContext as useContext28 } from "react";
|
|
|
25060
25057
|
import { useContext as useContext26 } from "react";
|
|
25061
25058
|
|
|
25062
25059
|
// src/components/Integrations/IntegrationsQuickbooksItemThumb/IntegrationsQuickbooksItemThumb.tsx
|
|
25063
|
-
import { useCallback as useCallback40, useContext as useContext25, useMemo as
|
|
25060
|
+
import { useCallback as useCallback40, useContext as useContext25, useMemo as useMemo41, useState as useState48 } from "react";
|
|
25064
25061
|
|
|
25065
25062
|
// src/icons/QuickbooksIcon.tsx
|
|
25066
25063
|
import { jsx as jsx189, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
@@ -25102,10 +25099,10 @@ var BadgeLoader = ({ children, showLoading, variant = "default" }) => {
|
|
|
25102
25099
|
};
|
|
25103
25100
|
|
|
25104
25101
|
// src/components/Card/Card.tsx
|
|
25105
|
-
import
|
|
25102
|
+
import classNames63 from "classnames";
|
|
25106
25103
|
import { jsx as jsx191 } from "react/jsx-runtime";
|
|
25107
25104
|
var Card = ({ children, className }) => {
|
|
25108
|
-
return /* @__PURE__ */ jsx191("div", { className:
|
|
25105
|
+
return /* @__PURE__ */ jsx191("div", { className: classNames63("Layer__card", className), children });
|
|
25109
25106
|
};
|
|
25110
25107
|
|
|
25111
25108
|
// src/contexts/QuickbooksContext/QuickbooksContext.tsx
|
|
@@ -25257,7 +25254,7 @@ var IntegrationsQuickbooksItemThumb = () => {
|
|
|
25257
25254
|
setHasSynced(true);
|
|
25258
25255
|
syncFromQuickbooks2();
|
|
25259
25256
|
}, [syncFromQuickbooks2]);
|
|
25260
|
-
const menuConfig =
|
|
25257
|
+
const menuConfig = useMemo41(() => {
|
|
25261
25258
|
return [
|
|
25262
25259
|
{
|
|
25263
25260
|
name: "Unlink account",
|
|
@@ -25509,7 +25506,7 @@ var PNLComparisonContext = createContext18({
|
|
|
25509
25506
|
});
|
|
25510
25507
|
|
|
25511
25508
|
// src/hooks/useProfitAndLoss/useProfitAndLoss.tsx
|
|
25512
|
-
import { useCallback as useCallback43, useMemo as
|
|
25509
|
+
import { useCallback as useCallback43, useMemo as useMemo42, useState as useState52 } from "react";
|
|
25513
25510
|
|
|
25514
25511
|
// src/utils/profitAndLossUtils.ts
|
|
25515
25512
|
var collectSubItems = (item) => {
|
|
@@ -25626,7 +25623,7 @@ var useProfitAndLoss = ({
|
|
|
25626
25623
|
var _a;
|
|
25627
25624
|
const rangeDisplayMode = useReportModeWithFallback("ProfitAndLoss" /* ProfitAndLoss */, "monthPicker");
|
|
25628
25625
|
const { start, end } = useGlobalDateRange({ displayMode: rangeDisplayMode });
|
|
25629
|
-
const dateRange =
|
|
25626
|
+
const dateRange = useMemo42(() => ({ startDate: start, endDate: end }), [start, end]);
|
|
25630
25627
|
const [filters, setFilters] = useState52({
|
|
25631
25628
|
expenses: void 0,
|
|
25632
25629
|
revenue: void 0
|
|
@@ -25656,7 +25653,7 @@ var useProfitAndLoss = ({
|
|
|
25656
25653
|
})
|
|
25657
25654
|
}));
|
|
25658
25655
|
};
|
|
25659
|
-
const { filteredDataRevenue, filteredTotalRevenue } =
|
|
25656
|
+
const { filteredDataRevenue, filteredTotalRevenue } = useMemo42(() => {
|
|
25660
25657
|
var _a2;
|
|
25661
25658
|
if (!data) {
|
|
25662
25659
|
return { filteredDataRevenue: [], filteredTotalRevenue: void 0 };
|
|
@@ -25665,9 +25662,7 @@ var useProfitAndLoss = ({
|
|
|
25665
25662
|
const revenueTypeFilters = (_a2 = filters["revenue"]) == null ? void 0 : _a2.types;
|
|
25666
25663
|
const filtered = items.map((x) => {
|
|
25667
25664
|
if (revenueTypeFilters && revenueTypeFilters.length > 0 && !revenueTypeFilters.includes(x.type)) {
|
|
25668
|
-
return __spreadProps(__spreadValues({}, x), {
|
|
25669
|
-
hidden: true
|
|
25670
|
-
});
|
|
25665
|
+
return __spreadProps(__spreadValues({}, x), { isHidden: true });
|
|
25671
25666
|
}
|
|
25672
25667
|
return x;
|
|
25673
25668
|
});
|
|
@@ -25695,7 +25690,7 @@ var useProfitAndLoss = ({
|
|
|
25695
25690
|
const withShare = applyShare(sorted, total);
|
|
25696
25691
|
return { filteredDataRevenue: withShare, filteredTotalRevenue: total };
|
|
25697
25692
|
}, [data, filters]);
|
|
25698
|
-
const { filteredDataExpenses, filteredTotalExpenses } =
|
|
25693
|
+
const { filteredDataExpenses, filteredTotalExpenses } = useMemo42(() => {
|
|
25699
25694
|
var _a2;
|
|
25700
25695
|
if (!data) {
|
|
25701
25696
|
return { filteredDataExpenses: [], filteredTotalExpenses: void 0 };
|
|
@@ -25704,9 +25699,7 @@ var useProfitAndLoss = ({
|
|
|
25704
25699
|
const expenseTypeFilters = (_a2 = filters["expenses"]) == null ? void 0 : _a2.types;
|
|
25705
25700
|
const filtered = items.map((x) => {
|
|
25706
25701
|
if (expenseTypeFilters && expenseTypeFilters.length > 0 && !expenseTypeFilters.includes(x.type)) {
|
|
25707
|
-
return __spreadProps(__spreadValues({}, x), {
|
|
25708
|
-
hidden: true
|
|
25709
|
-
});
|
|
25702
|
+
return __spreadProps(__spreadValues({}, x), { isHidden: true });
|
|
25710
25703
|
}
|
|
25711
25704
|
return x;
|
|
25712
25705
|
});
|
|
@@ -25758,7 +25751,7 @@ var useProfitAndLoss = ({
|
|
|
25758
25751
|
};
|
|
25759
25752
|
|
|
25760
25753
|
// src/hooks/useProfitAndLossComparison/useProfitAndLossComparison.tsx
|
|
25761
|
-
import { useMemo as
|
|
25754
|
+
import { useMemo as useMemo43, useState as useState53 } from "react";
|
|
25762
25755
|
|
|
25763
25756
|
// src/hooks/useProfitAndLossComparison/utils.ts
|
|
25764
25757
|
import { getMonth, getYear as getYear2, startOfMonth as startOfMonth6, startOfYear as startOfYear4, subMonths as subMonths2, subYears as subYears2 } from "date-fns";
|
|
@@ -25918,10 +25911,10 @@ function useProfitAndLossComparison({
|
|
|
25918
25911
|
);
|
|
25919
25912
|
const rangeDisplayMode = useReportModeWithFallback("ProfitAndLoss" /* ProfitAndLoss */, "monthPicker");
|
|
25920
25913
|
const { start, end } = useGlobalDateRange({ displayMode: rangeDisplayMode });
|
|
25921
|
-
const dateRange =
|
|
25914
|
+
const dateRange = useMemo43(() => ({ startDate: start, endDate: end }), [start, end]);
|
|
25922
25915
|
const isPeriodsSelectEnabled = COMPARE_MODES_SUPPORTING_MULTI_PERIOD.includes(rangeDisplayMode);
|
|
25923
25916
|
const effectiveComparePeriods = isPeriodsSelectEnabled ? comparePeriods : 1;
|
|
25924
|
-
const compareModeActive =
|
|
25917
|
+
const compareModeActive = useMemo43(() => effectiveComparePeriods > 1 || selectedCompareOptions.length > 1 || selectedCompareOptions.length === 1 && isNotOnlyNoneTag(selectedCompareOptions), [effectiveComparePeriods, selectedCompareOptions]);
|
|
25925
25918
|
const setSelectedCompareOptions = (values) => {
|
|
25926
25919
|
const options3 = values.map(
|
|
25927
25920
|
(option) => comparisonConfig == null ? void 0 : comparisonConfig.tagComparisonOptions.find(
|
|
@@ -25994,10 +25987,10 @@ function useProfitAndLossComparison({
|
|
|
25994
25987
|
}
|
|
25995
25988
|
|
|
25996
25989
|
// src/components/ProfitAndLossChart/ProfitAndLossChart.tsx
|
|
25997
|
-
import { useCallback as useCallback45, useEffect as useEffect25, useMemo as
|
|
25990
|
+
import { useCallback as useCallback45, useEffect as useEffect25, useMemo as useMemo45, useState as useState55 } from "react";
|
|
25998
25991
|
|
|
25999
25992
|
// src/hooks/useProfitAndLoss/useProfitAndLossLTM.tsx
|
|
26000
|
-
import { useCallback as useCallback44, useMemo as
|
|
25993
|
+
import { useCallback as useCallback44, useMemo as useMemo44, useState as useState54 } from "react";
|
|
26001
25994
|
import { startOfMonth as startOfMonth7, sub } from "date-fns";
|
|
26002
25995
|
var getYearMonthKey = (y, m) => {
|
|
26003
25996
|
return `${y}-${m.toString().padStart(2, "0")}`;
|
|
@@ -26040,7 +26033,7 @@ var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
|
|
|
26040
26033
|
}) => {
|
|
26041
26034
|
var _a;
|
|
26042
26035
|
const [date, setDate] = useState54(currentDate);
|
|
26043
|
-
const { startYear, startMonth, endYear, endMonth } =
|
|
26036
|
+
const { startYear, startMonth, endYear, endMonth } = useMemo44(() => {
|
|
26044
26037
|
return buildDates({ currentDate: date });
|
|
26045
26038
|
}, [date]);
|
|
26046
26039
|
const { data, isLoading, isError, mutate } = useProfitAndLossSummaries({
|
|
@@ -26052,7 +26045,7 @@ var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
|
|
|
26052
26045
|
tagValues: (_a = tagFilter == null ? void 0 : tagFilter.values) == null ? void 0 : _a.join(","),
|
|
26053
26046
|
reportingBasis
|
|
26054
26047
|
});
|
|
26055
|
-
const augmentedData =
|
|
26048
|
+
const augmentedData = useMemo44(() => {
|
|
26056
26049
|
var _a2;
|
|
26057
26050
|
const period = buildMonthsArray(sub(date, { years: 1 }), date);
|
|
26058
26051
|
const map = /* @__PURE__ */ new Map();
|
|
@@ -26195,7 +26188,7 @@ var Indicator = ({
|
|
|
26195
26188
|
};
|
|
26196
26189
|
|
|
26197
26190
|
// src/components/ProfitAndLossChart/ProfitAndLossChart.tsx
|
|
26198
|
-
import
|
|
26191
|
+
import classNames64 from "classnames";
|
|
26199
26192
|
import {
|
|
26200
26193
|
add,
|
|
26201
26194
|
differenceInMonths,
|
|
@@ -26297,7 +26290,7 @@ var ProfitAndLossChart = ({
|
|
|
26297
26290
|
const { start, end } = useGlobalDateRange({ displayMode: rangeDisplayMode });
|
|
26298
26291
|
const { setMonth } = useGlobalDateRangeActions();
|
|
26299
26292
|
const showIndicator = rangeDisplayMode === "monthPicker";
|
|
26300
|
-
const dateRange =
|
|
26293
|
+
const dateRange = useMemo45(() => ({ startDate: start, endDate: end }), [start, end]);
|
|
26301
26294
|
const [customCursorSize, setCustomCursorSize] = useState55({
|
|
26302
26295
|
width: 0,
|
|
26303
26296
|
height: 0,
|
|
@@ -26308,7 +26301,7 @@ var ProfitAndLossChart = ({
|
|
|
26308
26301
|
start: startOfMonth8(sub2(Date.now(), { months: 11 })),
|
|
26309
26302
|
end: endOfMonth6(Date.now())
|
|
26310
26303
|
});
|
|
26311
|
-
const selectionMonth =
|
|
26304
|
+
const selectionMonth = useMemo45(
|
|
26312
26305
|
() => ({
|
|
26313
26306
|
year: dateRange.startDate.getFullYear(),
|
|
26314
26307
|
month: dateRange.startDate.getMonth()
|
|
@@ -26320,7 +26313,7 @@ var ProfitAndLossChart = ({
|
|
|
26320
26313
|
tagFilter
|
|
26321
26314
|
});
|
|
26322
26315
|
const hasLoadedData = !isLoading && data;
|
|
26323
|
-
const hasNonZeroData =
|
|
26316
|
+
const hasNonZeroData = useMemo45(() => {
|
|
26324
26317
|
return Boolean(
|
|
26325
26318
|
data == null ? void 0 : data.find(
|
|
26326
26319
|
(x) => x.income !== 0 || x.costOfGoodsSold !== 0 || x.grossProfit !== 0 || x.operatingExpenses !== 0 || x.profitBeforeTaxes !== 0 || x.taxes !== 0 || x.totalExpenses !== 0 || x.uncategorizedInflows !== 0 || x.uncategorizedOutflows !== 0
|
|
@@ -26328,11 +26321,11 @@ var ProfitAndLossChart = ({
|
|
|
26328
26321
|
);
|
|
26329
26322
|
}, [data]);
|
|
26330
26323
|
const { data: linkedAccounts } = useLinkedAccounts();
|
|
26331
|
-
const isSyncing =
|
|
26324
|
+
const isSyncing = useMemo45(
|
|
26332
26325
|
() => Boolean(linkedAccounts == null ? void 0 : linkedAccounts.some((item) => item.is_syncing)),
|
|
26333
26326
|
[linkedAccounts]
|
|
26334
26327
|
);
|
|
26335
|
-
const loadingValue =
|
|
26328
|
+
const loadingValue = useMemo45(() => getLoadingValue(data), [data]);
|
|
26336
26329
|
useEffect25(() => {
|
|
26337
26330
|
if (hasLoadedData) {
|
|
26338
26331
|
const foundCurrent = data.find(
|
|
@@ -26389,7 +26382,7 @@ var ProfitAndLossChart = ({
|
|
|
26389
26382
|
loading: (pnl == null ? void 0 : pnl.isLoading) ? loadingValue : 0,
|
|
26390
26383
|
loadingExpenses: (pnl == null ? void 0 : pnl.isLoading) ? -loadingValue : 0
|
|
26391
26384
|
}), [getMonthName, loadingValue, selectionMonth.month, selectionMonth.year]);
|
|
26392
|
-
const dataOrPlaceholderData =
|
|
26385
|
+
const dataOrPlaceholderData = useMemo45(() => {
|
|
26393
26386
|
var _a;
|
|
26394
26387
|
if (isLoading || !hasNonZeroData) {
|
|
26395
26388
|
const loadingData = [];
|
|
@@ -26616,7 +26609,7 @@ var ProfitAndLossChart = ({
|
|
|
26616
26609
|
/* @__PURE__ */ jsx204(
|
|
26617
26610
|
ResponsiveContainer,
|
|
26618
26611
|
{
|
|
26619
|
-
className:
|
|
26612
|
+
className: classNames64(
|
|
26620
26613
|
"Layer__chart-container",
|
|
26621
26614
|
!hasLoadedData && "Layer__chart-container--loading"
|
|
26622
26615
|
),
|
|
@@ -26736,7 +26729,7 @@ var ProfitAndLossChart = ({
|
|
|
26736
26729
|
isAnimationActive: barAnimActive,
|
|
26737
26730
|
animationDuration: 100,
|
|
26738
26731
|
radius: [2, 2, 0, 0],
|
|
26739
|
-
className:
|
|
26732
|
+
className: classNames64(
|
|
26740
26733
|
"Layer__profit-and-loss-chart__bar--loading",
|
|
26741
26734
|
!hasLoadedData && "Layer__profit-and-loss-chart__bar--loading-anim"
|
|
26742
26735
|
),
|
|
@@ -26752,7 +26745,7 @@ var ProfitAndLossChart = ({
|
|
|
26752
26745
|
isAnimationActive: barAnimActive,
|
|
26753
26746
|
animationDuration: 100,
|
|
26754
26747
|
radius: [2, 2, 0, 0],
|
|
26755
|
-
className:
|
|
26748
|
+
className: classNames64(
|
|
26756
26749
|
"Layer__profit-and-loss-chart__bar--loading",
|
|
26757
26750
|
!hasLoadedData && "Layer__profit-and-loss-chart__bar--loading-anim"
|
|
26758
26751
|
),
|
|
@@ -26920,7 +26913,7 @@ var ProfitAndLossChart = ({
|
|
|
26920
26913
|
};
|
|
26921
26914
|
|
|
26922
26915
|
// src/components/ProfitAndLossCompareOptions/ProfitAndLossCompareOptions.tsx
|
|
26923
|
-
import { useContext as useContext30, useMemo as
|
|
26916
|
+
import { useContext as useContext30, useMemo as useMemo46 } from "react";
|
|
26924
26917
|
import { jsx as jsx205, jsxs as jsxs125 } from "react/jsx-runtime";
|
|
26925
26918
|
var selectStyles = {
|
|
26926
26919
|
valueContainer: (styles) => {
|
|
@@ -26962,7 +26955,7 @@ var ProfitAndLossCompareOptions = () => {
|
|
|
26962
26955
|
comparisonConfig
|
|
26963
26956
|
} = useContext30(ProfitAndLoss2.ComparisonContext);
|
|
26964
26957
|
const rangeDisplayMode = useReportModeWithFallback("ProfitAndLoss" /* ProfitAndLoss */, "monthPicker");
|
|
26965
|
-
const periods =
|
|
26958
|
+
const periods = useMemo46(
|
|
26966
26959
|
() => comparePeriods !== 0 ? comparePeriods : 1,
|
|
26967
26960
|
[comparePeriods]
|
|
26968
26961
|
);
|
|
@@ -27058,7 +27051,7 @@ function DatePickerModeSelector({
|
|
|
27058
27051
|
}
|
|
27059
27052
|
|
|
27060
27053
|
// src/providers/GlobalDateStore/useGlobalDateRangePicker.ts
|
|
27061
|
-
import { useCallback as useCallback46, useMemo as
|
|
27054
|
+
import { useCallback as useCallback46, useMemo as useMemo47 } from "react";
|
|
27062
27055
|
var getAllowedDateRangePickerModes = ({
|
|
27063
27056
|
allowedDatePickerModes,
|
|
27064
27057
|
defaultDatePickerMode
|
|
@@ -27082,7 +27075,7 @@ function useGlobalDateRangePicker({ displayMode, setDisplayMode }) {
|
|
|
27082
27075
|
setDisplayMode(newMode);
|
|
27083
27076
|
}
|
|
27084
27077
|
}, [setDisplayMode]);
|
|
27085
|
-
const dateOrDateRange =
|
|
27078
|
+
const dateOrDateRange = useMemo47(() => {
|
|
27086
27079
|
if (displayMode === "monthPicker") {
|
|
27087
27080
|
return start;
|
|
27088
27081
|
}
|
|
@@ -27156,7 +27149,7 @@ var ProfitAndLossDatePicker = ({
|
|
|
27156
27149
|
import { useCallback as useCallback49, useContext as useContext33, useState as useState57 } from "react";
|
|
27157
27150
|
|
|
27158
27151
|
// src/components/ProfitAndLossDetailedCharts/DetailedChart.tsx
|
|
27159
|
-
import { useMemo as
|
|
27152
|
+
import { useMemo as useMemo48 } from "react";
|
|
27160
27153
|
|
|
27161
27154
|
// src/config/charts.ts
|
|
27162
27155
|
var DEFAULT_CHART_COLOR_TYPE = [
|
|
@@ -27250,7 +27243,7 @@ var SortArrows = (_a) => {
|
|
|
27250
27243
|
var SortArrows_default = SortArrows;
|
|
27251
27244
|
|
|
27252
27245
|
// src/components/ProfitAndLossDetailedCharts/DetailedTable.tsx
|
|
27253
|
-
import
|
|
27246
|
+
import classNames65 from "classnames";
|
|
27254
27247
|
|
|
27255
27248
|
// src/components/ui/Typography/MoneyText.tsx
|
|
27256
27249
|
import { forwardRef as forwardRef22 } from "react";
|
|
@@ -27366,7 +27359,7 @@ var DetailedTable = ({
|
|
|
27366
27359
|
}) => {
|
|
27367
27360
|
const buildColClass = (column) => {
|
|
27368
27361
|
var _a, _b, _c;
|
|
27369
|
-
return
|
|
27362
|
+
return classNames65(
|
|
27370
27363
|
"Layer__sortable-col",
|
|
27371
27364
|
sidebarScope && ((_a = filters[sidebarScope]) == null ? void 0 : _a.sortBy) === column ? `sort--${(_c = sidebarScope && ((_b = filters[sidebarScope]) == null ? void 0 : _b.sortDirection)) != null ? _c : "desc"}` : ""
|
|
27372
27365
|
);
|
|
@@ -27418,7 +27411,7 @@ var DetailedTable = ({
|
|
|
27418
27411
|
return /* @__PURE__ */ jsxs127(
|
|
27419
27412
|
"tr",
|
|
27420
27413
|
{
|
|
27421
|
-
className:
|
|
27414
|
+
className: classNames65(
|
|
27422
27415
|
"Layer__profit-and-loss-detailed-table__row",
|
|
27423
27416
|
hoveredItem && hoveredItem === item.displayName ? "active" : ""
|
|
27424
27417
|
),
|
|
@@ -27456,7 +27449,7 @@ var DetailedTable = ({
|
|
|
27456
27449
|
};
|
|
27457
27450
|
|
|
27458
27451
|
// src/components/ProfitAndLossDetailedCharts/DetailedChart.tsx
|
|
27459
|
-
import
|
|
27452
|
+
import classNames66 from "classnames";
|
|
27460
27453
|
import {
|
|
27461
27454
|
PieChart,
|
|
27462
27455
|
Pie,
|
|
@@ -27475,7 +27468,7 @@ var DetailedChart = ({
|
|
|
27475
27468
|
isLoading,
|
|
27476
27469
|
showDatePicker = true
|
|
27477
27470
|
}) => {
|
|
27478
|
-
const chartData =
|
|
27471
|
+
const chartData = useMemo48(
|
|
27479
27472
|
() => filteredData.map((x) => {
|
|
27480
27473
|
if (x.isHidden) {
|
|
27481
27474
|
return __spreadProps(__spreadValues({}, x), {
|
|
@@ -27553,7 +27546,7 @@ var DetailedChart = ({
|
|
|
27553
27546
|
return /* @__PURE__ */ jsx211(
|
|
27554
27547
|
Cell2,
|
|
27555
27548
|
{
|
|
27556
|
-
className:
|
|
27549
|
+
className: classNames66(
|
|
27557
27550
|
"Layer__profit-and-loss-detailed-charts__pie",
|
|
27558
27551
|
hoveredItem && active ? "active" : "inactive",
|
|
27559
27552
|
entry.type === "Uncategorized" && "Layer__profit-and-loss-detailed-charts__pie--border"
|
|
@@ -27822,10 +27815,10 @@ var Filters = ({
|
|
|
27822
27815
|
};
|
|
27823
27816
|
|
|
27824
27817
|
// src/components/ProfitAndLossDetailReport/ProfitAndLossDetailReport.tsx
|
|
27825
|
-
import { useContext as useContext32, useState as useState56, useMemo as
|
|
27818
|
+
import { useContext as useContext32, useState as useState56, useMemo as useMemo51, useCallback as useCallback48 } from "react";
|
|
27826
27819
|
|
|
27827
27820
|
// src/components/LedgerAccountEntryDetails/LedgerAccountEntryDetails.tsx
|
|
27828
|
-
import { useContext as useContext31, useMemo as
|
|
27821
|
+
import { useContext as useContext31, useMemo as useMemo49 } from "react";
|
|
27829
27822
|
|
|
27830
27823
|
// src/contexts/LedgerAccountsContext/LedgerAccountsContext.tsx
|
|
27831
27824
|
import { createContext as createContext20 } from "react";
|
|
@@ -27905,7 +27898,7 @@ var DateTime = ({
|
|
|
27905
27898
|
};
|
|
27906
27899
|
|
|
27907
27900
|
// src/components/DetailsList/DetailsList.tsx
|
|
27908
|
-
import
|
|
27901
|
+
import classNames67 from "classnames";
|
|
27909
27902
|
import { jsx as jsx214, jsxs as jsxs131 } from "react/jsx-runtime";
|
|
27910
27903
|
var DetailsList = ({
|
|
27911
27904
|
title,
|
|
@@ -27914,7 +27907,7 @@ var DetailsList = ({
|
|
|
27914
27907
|
titleClassName,
|
|
27915
27908
|
actions
|
|
27916
27909
|
}) => {
|
|
27917
|
-
return /* @__PURE__ */ jsxs131("div", { className:
|
|
27910
|
+
return /* @__PURE__ */ jsxs131("div", { className: classNames67("Layer__details-list", className), children: [
|
|
27918
27911
|
title && /* @__PURE__ */ jsxs131(Header, { className: titleClassName, children: [
|
|
27919
27912
|
/* @__PURE__ */ jsx214(Heading, { size: "secondary" /* secondary */, children: title }),
|
|
27920
27913
|
actions && /* @__PURE__ */ jsx214("div", { className: "Layer__details-list__actions", children: actions })
|
|
@@ -27946,11 +27939,11 @@ var DetailsListItem = ({
|
|
|
27946
27939
|
import {
|
|
27947
27940
|
forwardRef as forwardRef23
|
|
27948
27941
|
} from "react";
|
|
27949
|
-
import
|
|
27942
|
+
import classNames68 from "classnames";
|
|
27950
27943
|
import { jsx as jsx216 } from "react/jsx-runtime";
|
|
27951
27944
|
var Header4 = forwardRef23(
|
|
27952
27945
|
({ className, children, style, sticky, asHeader, rounded }, ref) => {
|
|
27953
|
-
const baseClassName =
|
|
27946
|
+
const baseClassName = classNames68(
|
|
27954
27947
|
"Layer__header",
|
|
27955
27948
|
sticky && "Layer__header--sticky",
|
|
27956
27949
|
rounded && "Layer__header--top-rounded",
|
|
@@ -27973,19 +27966,19 @@ var Header4 = forwardRef23(
|
|
|
27973
27966
|
Header4.displayName = "Header";
|
|
27974
27967
|
|
|
27975
27968
|
// src/components/Header/HeaderRow.tsx
|
|
27976
|
-
import
|
|
27969
|
+
import classNames69 from "classnames";
|
|
27977
27970
|
import { jsx as jsx217 } from "react/jsx-runtime";
|
|
27978
27971
|
var HeaderRow = ({ className, children, direction, style }) => {
|
|
27979
27972
|
const dataProps = toDataProperties({ direction });
|
|
27980
|
-
return /* @__PURE__ */ jsx217("div", __spreadProps(__spreadValues({}, dataProps), { className:
|
|
27973
|
+
return /* @__PURE__ */ jsx217("div", __spreadProps(__spreadValues({}, dataProps), { className: classNames69("Layer__header__row", className), style, children }));
|
|
27981
27974
|
};
|
|
27982
27975
|
|
|
27983
27976
|
// src/components/Header/HeaderCol.tsx
|
|
27984
|
-
import
|
|
27977
|
+
import classNames70 from "classnames";
|
|
27985
27978
|
import { jsx as jsx218 } from "react/jsx-runtime";
|
|
27986
27979
|
var HeaderCol = ({ className, children, style, noPadding = false }) => {
|
|
27987
27980
|
const dataProperties = toDataProperties({ "no-padding": noPadding });
|
|
27988
|
-
return /* @__PURE__ */ jsx218("div", __spreadProps(__spreadValues({}, dataProperties), { className:
|
|
27981
|
+
return /* @__PURE__ */ jsx218("div", __spreadProps(__spreadValues({}, dataProperties), { className: classNames70("Layer__header__col", className), style, children }));
|
|
27989
27982
|
};
|
|
27990
27983
|
|
|
27991
27984
|
// src/components/TableBody/TableBody.tsx
|
|
@@ -27995,7 +27988,7 @@ var TableBody = ({ children }) => {
|
|
|
27995
27988
|
};
|
|
27996
27989
|
|
|
27997
27990
|
// src/components/TableCell/TableCell.tsx
|
|
27998
|
-
import
|
|
27991
|
+
import classNames71 from "classnames";
|
|
27999
27992
|
import { jsx as jsx220, jsxs as jsxs133 } from "react/jsx-runtime";
|
|
28000
27993
|
var TableCell = ({
|
|
28001
27994
|
children,
|
|
@@ -28015,7 +28008,7 @@ var TableCell = ({
|
|
|
28015
28008
|
const amount = typeof children === "number" ? children : 0;
|
|
28016
28009
|
const isPositive = amount >= 0;
|
|
28017
28010
|
const amountString = centsToDollars(Math.abs(amount));
|
|
28018
|
-
const cellClassNames =
|
|
28011
|
+
const cellClassNames = classNames71(
|
|
28019
28012
|
"Layer__table-cell",
|
|
28020
28013
|
(primary || isHeaderCell) && "Layer__table-cell--primary",
|
|
28021
28014
|
isHeaderCell && "Layer__table-header",
|
|
@@ -28058,7 +28051,7 @@ var TableHead = ({ children }) => {
|
|
|
28058
28051
|
};
|
|
28059
28052
|
|
|
28060
28053
|
// src/components/TableRow/TableRow.tsx
|
|
28061
|
-
import
|
|
28054
|
+
import classNames72 from "classnames";
|
|
28062
28055
|
import { Fragment as Fragment24, jsx as jsx222, jsxs as jsxs134 } from "react/jsx-runtime";
|
|
28063
28056
|
var TableRow = ({
|
|
28064
28057
|
rowKey,
|
|
@@ -28082,7 +28075,7 @@ var TableRow = ({
|
|
|
28082
28075
|
handleExpand && handleExpand();
|
|
28083
28076
|
}
|
|
28084
28077
|
};
|
|
28085
|
-
const rowClassNames =
|
|
28078
|
+
const rowClassNames = classNames72([
|
|
28086
28079
|
"Layer__table-row",
|
|
28087
28080
|
!isHeadRow && `Layer__table-row--depth-${depth}`,
|
|
28088
28081
|
!isHeadRow && `Layer__table-row--variant-${variant}`,
|
|
@@ -28105,7 +28098,7 @@ var TableRow = ({
|
|
|
28105
28098
|
};
|
|
28106
28099
|
|
|
28107
28100
|
// src/components/Table/Table.tsx
|
|
28108
|
-
import
|
|
28101
|
+
import classNames73 from "classnames";
|
|
28109
28102
|
import { jsx as jsx223 } from "react/jsx-runtime";
|
|
28110
28103
|
var Table = ({
|
|
28111
28104
|
componentName,
|
|
@@ -28113,11 +28106,11 @@ var Table = ({
|
|
|
28113
28106
|
borderCollapse = "separate",
|
|
28114
28107
|
bottomSpacing = true
|
|
28115
28108
|
}) => {
|
|
28116
|
-
const tableWrapperClassNames =
|
|
28109
|
+
const tableWrapperClassNames = classNames73(
|
|
28117
28110
|
"Layer__table-wrapper",
|
|
28118
28111
|
bottomSpacing && "Layer__table-wrapper--bottom-spacing"
|
|
28119
28112
|
);
|
|
28120
|
-
const tableClassNames =
|
|
28113
|
+
const tableClassNames = classNames73(
|
|
28121
28114
|
"Layer__table",
|
|
28122
28115
|
componentName && `Layer__${componentName}__table`,
|
|
28123
28116
|
borderCollapse && `Layer__table__${borderCollapse}-rows`
|
|
@@ -28350,7 +28343,7 @@ var LedgerAccountEntryDetails = ({
|
|
|
28350
28343
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
|
|
28351
28344
|
const { entryData, isLoadingEntry, closeSelectedEntry, errorEntry } = useContext31(LedgerAccountsContext);
|
|
28352
28345
|
const { renderInAppLink } = useInAppLinkContext();
|
|
28353
|
-
const { totalDebit, totalCredit } =
|
|
28346
|
+
const { totalDebit, totalCredit } = useMemo49(() => {
|
|
28354
28347
|
var _a2;
|
|
28355
28348
|
let totalDebit2 = 0;
|
|
28356
28349
|
let totalCredit2 = 0;
|
|
@@ -28363,10 +28356,10 @@ var LedgerAccountEntryDetails = ({
|
|
|
28363
28356
|
});
|
|
28364
28357
|
return { totalDebit: totalDebit2, totalCredit: totalCredit2 };
|
|
28365
28358
|
}, [entryData]);
|
|
28366
|
-
const ledgerEntrySource =
|
|
28359
|
+
const ledgerEntrySource = useMemo49(() => {
|
|
28367
28360
|
return (entryData == null ? void 0 : entryData.source) ? decodeLedgerEntrySource(entryData.source) : void 0;
|
|
28368
28361
|
}, [entryData == null ? void 0 : entryData.source]);
|
|
28369
|
-
const badgeOrInAppLink =
|
|
28362
|
+
const badgeOrInAppLink = useMemo49(() => {
|
|
28370
28363
|
var _a2, _b2;
|
|
28371
28364
|
const badgeContent = (_a2 = ledgerEntrySource == null ? void 0 : ledgerEntrySource.entityName) != null ? _a2 : entryData == null ? void 0 : entryData.entry_type;
|
|
28372
28365
|
const defaultBadge = /* @__PURE__ */ jsx224(Badge, { children: badgeContent });
|
|
@@ -28506,8 +28499,8 @@ var LedgerAccountEntryDetails = ({
|
|
|
28506
28499
|
};
|
|
28507
28500
|
|
|
28508
28501
|
// src/components/VirtualizedDataTable/VirtualizedDataTable.tsx
|
|
28509
|
-
import { useRef as useRef26, useMemo as
|
|
28510
|
-
import
|
|
28502
|
+
import { useRef as useRef26, useMemo as useMemo50 } from "react";
|
|
28503
|
+
import classNames75 from "classnames";
|
|
28511
28504
|
import { useVirtualizer as useVirtualizer2 } from "@tanstack/react-virtual";
|
|
28512
28505
|
import {
|
|
28513
28506
|
useReactTable as useReactTable2,
|
|
@@ -28527,10 +28520,10 @@ import {
|
|
|
28527
28520
|
TableBody as ReactAriaTableBody,
|
|
28528
28521
|
TableHeader as ReactAriaTableHeader
|
|
28529
28522
|
} from "react-aria-components";
|
|
28530
|
-
import
|
|
28523
|
+
import classNames74 from "classnames";
|
|
28531
28524
|
import { jsx as jsx225 } from "react/jsx-runtime";
|
|
28532
28525
|
var CSS_PREFIX2 = "Layer__UI__Table";
|
|
28533
|
-
var getClassName = (component, additionalClassNames) =>
|
|
28526
|
+
var getClassName = (component, additionalClassNames) => classNames74(`${CSS_PREFIX2}-${component}`, additionalClassNames);
|
|
28534
28527
|
var Table2 = forwardRef24(
|
|
28535
28528
|
(_a, ref) => {
|
|
28536
28529
|
var _b = _a, { children, className } = _b, restProps = __objRest(_b, ["children", "className"]);
|
|
@@ -28644,7 +28637,7 @@ var VirtualizedDataTable = ({
|
|
|
28644
28637
|
}) => {
|
|
28645
28638
|
const { EmptyState: EmptyState2, ErrorState: ErrorState2 } = slots;
|
|
28646
28639
|
const containerRef = useRef26(null);
|
|
28647
|
-
const renderedTableHeight =
|
|
28640
|
+
const renderedTableHeight = useMemo50(() => {
|
|
28648
28641
|
if (!data) return height;
|
|
28649
28642
|
if (!shrinkHeightToFitRows) return height;
|
|
28650
28643
|
const actualRowCount = data.length;
|
|
@@ -28671,7 +28664,7 @@ var VirtualizedDataTable = ({
|
|
|
28671
28664
|
getSortedRowModel: getSortedRowModel2()
|
|
28672
28665
|
});
|
|
28673
28666
|
const { rows } = table2.getRowModel();
|
|
28674
|
-
const processedData =
|
|
28667
|
+
const processedData = useMemo50(() => rows.map((r) => r.original), [rows]);
|
|
28675
28668
|
const isEmptyTable = processedData.length === 0;
|
|
28676
28669
|
const hasData = processedData.length > 0;
|
|
28677
28670
|
const rowVirtualizer = useVirtualizer2({
|
|
@@ -28692,7 +28685,7 @@ var VirtualizedDataTable = ({
|
|
|
28692
28685
|
}
|
|
28693
28686
|
const virtualItems = rowVirtualizer.getVirtualItems();
|
|
28694
28687
|
const totalSize = rowVirtualizer.getTotalSize();
|
|
28695
|
-
return /* @__PURE__ */ jsx226("div", { className: `${CSS_PREFIX3}__container`, ref: containerRef, style: { height: renderedTableHeight }, "aria-label": ariaLabel, children: /* @__PURE__ */ jsxs136(Table2, { className:
|
|
28688
|
+
return /* @__PURE__ */ jsx226("div", { className: `${CSS_PREFIX3}__container`, ref: containerRef, style: { height: renderedTableHeight }, "aria-label": ariaLabel, children: /* @__PURE__ */ jsxs136(Table2, { className: classNames75(CSS_PREFIX3, `Layer__UI__Table__${componentName}`), "aria-label": ariaLabel, children: [
|
|
28696
28689
|
/* @__PURE__ */ jsx226(TableHeader, { className: `${CSS_PREFIX3}__header`, style: { height: HEADER_HEIGHT2 }, children: table2.getFlatHeaders().map(
|
|
28697
28690
|
(header) => {
|
|
28698
28691
|
var _a;
|
|
@@ -28700,7 +28693,7 @@ var VirtualizedDataTable = ({
|
|
|
28700
28693
|
Column,
|
|
28701
28694
|
{
|
|
28702
28695
|
isRowHeader: (_a = header.column.columnDef.meta) == null ? void 0 : _a.isRowHeader,
|
|
28703
|
-
className:
|
|
28696
|
+
className: classNames75(
|
|
28704
28697
|
`${CSS_PREFIX3}__header-cell`,
|
|
28705
28698
|
`Layer__UI__Table-Column__${componentName}--${header.id}`
|
|
28706
28699
|
),
|
|
@@ -28722,7 +28715,7 @@ var VirtualizedDataTable = ({
|
|
|
28722
28715
|
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx226(
|
|
28723
28716
|
Cell3,
|
|
28724
28717
|
{
|
|
28725
|
-
className:
|
|
28718
|
+
className: classNames75(
|
|
28726
28719
|
`${CSS_PREFIX3}__cell`,
|
|
28727
28720
|
`Layer__UI__Table-Cell__${componentName}--${cell.column.id}`
|
|
28728
28721
|
),
|
|
@@ -28809,7 +28802,7 @@ var ProfitAndLossDetailReport = ({
|
|
|
28809
28802
|
const { tagFilter, dateRange } = useContext32(ProfitAndLoss2.Context);
|
|
28810
28803
|
const [selectedSource, setSelectedSource] = useState56(null);
|
|
28811
28804
|
const { renderInAppLink } = useInAppLinkContext();
|
|
28812
|
-
const badgeOrInAppLink =
|
|
28805
|
+
const badgeOrInAppLink = useMemo51(() => {
|
|
28813
28806
|
var _a;
|
|
28814
28807
|
if (!selectedSource) return void 0;
|
|
28815
28808
|
const defaultBadge = /* @__PURE__ */ jsx229(Badge, { children: selectedSource.entityName });
|
|
@@ -28819,7 +28812,7 @@ var ProfitAndLossDetailReport = ({
|
|
|
28819
28812
|
const linkingMetadata = convertLedgerEntrySourceToLinkingMetadata(selectedSource);
|
|
28820
28813
|
return (_a = renderInAppLink(linkingMetadata)) != null ? _a : defaultBadge;
|
|
28821
28814
|
}, [renderInAppLink, selectedSource]);
|
|
28822
|
-
const dynamicBreadcrumbs =
|
|
28815
|
+
const dynamicBreadcrumbs = useMemo51(() => {
|
|
28823
28816
|
return breadcrumbPath || [{ name: lineItemName, display_name: lineItemName }];
|
|
28824
28817
|
}, [breadcrumbPath, lineItemName]);
|
|
28825
28818
|
const formatDateRange = (startDate, endDate) => {
|
|
@@ -28840,7 +28833,7 @@ var ProfitAndLossDetailReport = ({
|
|
|
28840
28833
|
const handleBackToList = useCallback48(() => {
|
|
28841
28834
|
setSelectedSource(null);
|
|
28842
28835
|
}, []);
|
|
28843
|
-
const rowsWithRunningBalance =
|
|
28836
|
+
const rowsWithRunningBalance = useMemo51(() => {
|
|
28844
28837
|
if (!(data == null ? void 0 : data.lines)) return { lines: [], total: 0 };
|
|
28845
28838
|
let runningBalance = 0;
|
|
28846
28839
|
const linesWithBalance = data.lines.map((line) => {
|
|
@@ -28856,7 +28849,7 @@ var ProfitAndLossDetailReport = ({
|
|
|
28856
28849
|
total: runningBalance
|
|
28857
28850
|
};
|
|
28858
28851
|
}, [data == null ? void 0 : data.lines]);
|
|
28859
|
-
const columnConfig =
|
|
28852
|
+
const columnConfig = useMemo51(() => ({
|
|
28860
28853
|
["Date" /* Date */]: {
|
|
28861
28854
|
id: "Date" /* Date */,
|
|
28862
28855
|
header: (stringOverrides == null ? void 0 : stringOverrides.dateColumnHeader) || "Date",
|
|
@@ -28887,7 +28880,15 @@ var ProfitAndLossDetailReport = ({
|
|
|
28887
28880
|
["Account" /* Account */]: {
|
|
28888
28881
|
id: "Account" /* Account */,
|
|
28889
28882
|
header: (stringOverrides == null ? void 0 : stringOverrides.accountColumnHeader) || "Account",
|
|
28890
|
-
cell: (row) =>
|
|
28883
|
+
cell: (row) => /* @__PURE__ */ jsx229(
|
|
28884
|
+
Text,
|
|
28885
|
+
{
|
|
28886
|
+
as: "span",
|
|
28887
|
+
withTooltip: "whenTruncated" /* whenTruncated */,
|
|
28888
|
+
ellipsis: true,
|
|
28889
|
+
children: row.account.name || "-"
|
|
28890
|
+
}
|
|
28891
|
+
)
|
|
28891
28892
|
},
|
|
28892
28893
|
["Description" /* Description */]: {
|
|
28893
28894
|
id: "Description" /* Description */,
|
|
@@ -29177,7 +29178,7 @@ var ProfitAndLossDownloadButton = ({
|
|
|
29177
29178
|
};
|
|
29178
29179
|
|
|
29179
29180
|
// src/components/ProfitAndLossHeader/ProfitAndLossHeader.tsx
|
|
29180
|
-
import { useMemo as
|
|
29181
|
+
import { useMemo as useMemo53 } from "react";
|
|
29181
29182
|
|
|
29182
29183
|
// src/components/SyncingBadge/SyncingBadge.tsx
|
|
29183
29184
|
import { jsx as jsx233 } from "react/jsx-runtime";
|
|
@@ -29194,13 +29195,13 @@ var SyncingBadge = () => {
|
|
|
29194
29195
|
};
|
|
29195
29196
|
|
|
29196
29197
|
// src/hooks/bookkeeping/periods/useActiveBookkeepingPeriod.ts
|
|
29197
|
-
import { useMemo as
|
|
29198
|
+
import { useMemo as useMemo52 } from "react";
|
|
29198
29199
|
function useActiveBookkeepingPeriod() {
|
|
29199
29200
|
const { date } = useGlobalDate();
|
|
29200
29201
|
const { data, isLoading } = useBookkeepingPeriods();
|
|
29201
29202
|
const currentMonth = date.getMonth() + 1;
|
|
29202
29203
|
const currentYear = date.getFullYear();
|
|
29203
|
-
const activePeriod =
|
|
29204
|
+
const activePeriod = useMemo52(
|
|
29204
29205
|
() => data == null ? void 0 : data.find((period) => currentYear === period.year && currentMonth === period.month),
|
|
29205
29206
|
[data, currentMonth, currentYear]
|
|
29206
29207
|
);
|
|
@@ -29219,7 +29220,7 @@ var ProfitAndLossHeader = ({
|
|
|
29219
29220
|
const { data: linkedAccounts } = useLinkedAccounts();
|
|
29220
29221
|
const { activePeriod } = useActiveBookkeepingPeriod();
|
|
29221
29222
|
const activePeriodStatus = activePeriod == null ? void 0 : activePeriod.status;
|
|
29222
|
-
const isSyncing =
|
|
29223
|
+
const isSyncing = useMemo53(
|
|
29223
29224
|
() => Boolean(linkedAccounts == null ? void 0 : linkedAccounts.some((item) => item.is_syncing)),
|
|
29224
29225
|
[linkedAccounts]
|
|
29225
29226
|
);
|
|
@@ -29234,7 +29235,7 @@ var ProfitAndLossHeader = ({
|
|
|
29234
29235
|
};
|
|
29235
29236
|
|
|
29236
29237
|
// src/components/ProfitAndLossReport/ProfitAndLossReport.tsx
|
|
29237
|
-
import { useCallback as useCallback50, useContext as useContext36, useMemo as
|
|
29238
|
+
import { useCallback as useCallback50, useContext as useContext36, useMemo as useMemo54, useState as useState60 } from "react";
|
|
29238
29239
|
|
|
29239
29240
|
// src/components/ProfitAndLossDetailLinesDownloadButton/ProfitAndLossDetailLinesDownloadButton.tsx
|
|
29240
29241
|
import { useContext as useContext35 } from "react";
|
|
@@ -29376,10 +29377,10 @@ function ProfitAndLossDetailLinesDownloadButton({
|
|
|
29376
29377
|
import { forwardRef as forwardRef25 } from "react";
|
|
29377
29378
|
|
|
29378
29379
|
// src/components/ViewHeader/ViewHeader.tsx
|
|
29379
|
-
import
|
|
29380
|
+
import classNames76 from "classnames";
|
|
29380
29381
|
import { jsx as jsx236, jsxs as jsxs143 } from "react/jsx-runtime";
|
|
29381
29382
|
var ViewHeader = ({ title, className, children }) => {
|
|
29382
|
-
return /* @__PURE__ */ jsx236("div", { className:
|
|
29383
|
+
return /* @__PURE__ */ jsx236("div", { className: classNames76("Layer__view-header", className), children: /* @__PURE__ */ jsxs143("div", { className: "Layer__view-header__content", children: [
|
|
29383
29384
|
title && /* @__PURE__ */ jsx236(Heading, { className: "Layer__view-header__title", children: title }),
|
|
29384
29385
|
children && /* @__PURE__ */ jsx236("div", { className: "Layer__view-header__children", children })
|
|
29385
29386
|
] }) });
|
|
@@ -29387,7 +29388,7 @@ var ViewHeader = ({ title, className, children }) => {
|
|
|
29387
29388
|
|
|
29388
29389
|
// src/components/Panel/Panel.tsx
|
|
29389
29390
|
import { useEffect as useEffect27, useState as useState59 } from "react";
|
|
29390
|
-
import
|
|
29391
|
+
import classNames77 from "classnames";
|
|
29391
29392
|
import { jsx as jsx237, jsxs as jsxs144 } from "react/jsx-runtime";
|
|
29392
29393
|
var Panel = ({
|
|
29393
29394
|
children,
|
|
@@ -29407,7 +29408,7 @@ var Panel = ({
|
|
|
29407
29408
|
setSidebarHeight((_b = parentRef == null ? void 0 : parentRef.current) == null ? void 0 : _b.offsetHeight);
|
|
29408
29409
|
}
|
|
29409
29410
|
}, [parentRef, (_a = parentRef == null ? void 0 : parentRef.current) == null ? void 0 : _a.offsetHeight, sidebarIsOpen]);
|
|
29410
|
-
const sidebarClass =
|
|
29411
|
+
const sidebarClass = classNames77(
|
|
29411
29412
|
"Layer__panel__sidebar",
|
|
29412
29413
|
defaultSidebarHeight && "Layer__panel__sidebar--default",
|
|
29413
29414
|
floating && "Layer__panel__sidebar--floating"
|
|
@@ -29415,7 +29416,7 @@ var Panel = ({
|
|
|
29415
29416
|
return /* @__PURE__ */ jsxs144(
|
|
29416
29417
|
"div",
|
|
29417
29418
|
{
|
|
29418
|
-
className:
|
|
29419
|
+
className: classNames77(
|
|
29419
29420
|
"Layer__panel",
|
|
29420
29421
|
className,
|
|
29421
29422
|
sidebarIsOpen && "Layer__panel--open"
|
|
@@ -29441,7 +29442,7 @@ var Panel = ({
|
|
|
29441
29442
|
};
|
|
29442
29443
|
|
|
29443
29444
|
// src/components/View/View.tsx
|
|
29444
|
-
import
|
|
29445
|
+
import classNames78 from "classnames";
|
|
29445
29446
|
import { jsx as jsx238, jsxs as jsxs145 } from "react/jsx-runtime";
|
|
29446
29447
|
var View = forwardRef25(
|
|
29447
29448
|
({
|
|
@@ -29458,7 +29459,7 @@ var View = forwardRef25(
|
|
|
29458
29459
|
}, ref) => {
|
|
29459
29460
|
const { theme } = useLayerContext();
|
|
29460
29461
|
const styles = parseStylesFromThemeConfig(theme);
|
|
29461
|
-
const viewClassNames =
|
|
29462
|
+
const viewClassNames = classNames78(
|
|
29462
29463
|
"Layer__view",
|
|
29463
29464
|
type === "panel" && "Layer__view--panel",
|
|
29464
29465
|
viewClassName
|
|
@@ -29469,7 +29470,7 @@ var View = forwardRef25(
|
|
|
29469
29470
|
ViewHeader,
|
|
29470
29471
|
{
|
|
29471
29472
|
title,
|
|
29472
|
-
className:
|
|
29473
|
+
className: classNames78(
|
|
29473
29474
|
headerControls ? "Layer__view-header--paddings" : void 0
|
|
29474
29475
|
),
|
|
29475
29476
|
children: header != null ? header : headerControls
|
|
@@ -29496,7 +29497,7 @@ var ProfitAndLossReport = ({
|
|
|
29496
29497
|
var _a;
|
|
29497
29498
|
const { comparisonConfig } = useContext36(ProfitAndLoss2.ComparisonContext);
|
|
29498
29499
|
const [selectedLineItem, setSelectedLineItem] = useState60(null);
|
|
29499
|
-
const breadcrumbIndexMap =
|
|
29500
|
+
const breadcrumbIndexMap = useMemo54(() => {
|
|
29500
29501
|
if (!selectedLineItem) return {};
|
|
29501
29502
|
return selectedLineItem.breadcrumbPath.reduce((acc, item, index) => {
|
|
29502
29503
|
acc[item.name] = index;
|
|
@@ -29519,6 +29520,7 @@ var ProfitAndLossReport = ({
|
|
|
29519
29520
|
const handleCloseDetailReport = useCallback50(() => {
|
|
29520
29521
|
setSelectedLineItem(null);
|
|
29521
29522
|
}, []);
|
|
29523
|
+
const useComparisonPnl = !!comparisonConfig;
|
|
29522
29524
|
return /* @__PURE__ */ jsx239(InAppLinkProvider, { renderInAppLink, children: /* @__PURE__ */ jsx239(
|
|
29523
29525
|
View,
|
|
29524
29526
|
{
|
|
@@ -29535,7 +29537,7 @@ var ProfitAndLossReport = ({
|
|
|
29535
29537
|
customDateRanges
|
|
29536
29538
|
}
|
|
29537
29539
|
),
|
|
29538
|
-
view === "desktop"
|
|
29540
|
+
view === "desktop" && useComparisonPnl && /* @__PURE__ */ jsx239(ProfitAndLoss2.CompareOptions, {})
|
|
29539
29541
|
] }) }),
|
|
29540
29542
|
/* @__PURE__ */ jsx239(HeaderCol, { children: selectedLineItem ? /* @__PURE__ */ jsx239(
|
|
29541
29543
|
ProfitAndLossDetailLinesDownloadButton,
|
|
@@ -29547,13 +29549,13 @@ var ProfitAndLossReport = ({
|
|
|
29547
29549
|
ProfitAndLoss2.DownloadButton,
|
|
29548
29550
|
{
|
|
29549
29551
|
stringOverrides: stringOverrides == null ? void 0 : stringOverrides.downloadButton,
|
|
29550
|
-
useComparisonPnl
|
|
29552
|
+
useComparisonPnl,
|
|
29551
29553
|
moneyFormat: csvMoneyFormat,
|
|
29552
29554
|
view
|
|
29553
29555
|
}
|
|
29554
29556
|
) })
|
|
29555
29557
|
] }),
|
|
29556
|
-
view !== "desktop"
|
|
29558
|
+
view !== "desktop" && useComparisonPnl && /* @__PURE__ */ jsx239(HeaderRow, { children: /* @__PURE__ */ jsx239(HeaderCol, { children: /* @__PURE__ */ jsx239(ProfitAndLoss2.CompareOptions, {}) }) })
|
|
29557
29559
|
] }),
|
|
29558
29560
|
children: selectedLineItem ? /* @__PURE__ */ jsx239(
|
|
29559
29561
|
ProfitAndLossDetailReport,
|
|
@@ -29576,10 +29578,10 @@ var ProfitAndLossReport = ({
|
|
|
29576
29578
|
};
|
|
29577
29579
|
|
|
29578
29580
|
// src/components/ProfitAndLossSummaries/ProfitAndLossSummaries.tsx
|
|
29579
|
-
import { useContext as useContext38, useMemo as
|
|
29581
|
+
import { useContext as useContext38, useMemo as useMemo57 } from "react";
|
|
29580
29582
|
|
|
29581
29583
|
// src/components/ProfitAndLossSummaries/internal/ProfitAndLossSummariesList.tsx
|
|
29582
|
-
import { useMemo as
|
|
29584
|
+
import { useMemo as useMemo55 } from "react";
|
|
29583
29585
|
import { jsx as jsx240 } from "react/jsx-runtime";
|
|
29584
29586
|
var LIST_ITEM_CLASS_NAME = "Layer__ProfitAndLossSummariesListItem";
|
|
29585
29587
|
function ProfitAndLossSummariesListItem({
|
|
@@ -29587,7 +29589,7 @@ function ProfitAndLossSummariesListItem({
|
|
|
29587
29589
|
isActive,
|
|
29588
29590
|
onClick
|
|
29589
29591
|
}) {
|
|
29590
|
-
const dataProperties =
|
|
29592
|
+
const dataProperties = useMemo55(
|
|
29591
29593
|
() => toDataProperties({ active: isActive, clickable: !!onClick }),
|
|
29592
29594
|
[isActive]
|
|
29593
29595
|
);
|
|
@@ -29598,7 +29600,7 @@ function ProfitAndLossSummariesList({
|
|
|
29598
29600
|
children,
|
|
29599
29601
|
itemCount
|
|
29600
29602
|
}) {
|
|
29601
|
-
const dataProperties =
|
|
29603
|
+
const dataProperties = useMemo55(
|
|
29602
29604
|
() => toDataProperties({ ["column-count"]: itemCount }),
|
|
29603
29605
|
[itemCount]
|
|
29604
29606
|
);
|
|
@@ -29723,7 +29725,7 @@ function ProfitAndLossSummariesSummary({
|
|
|
29723
29725
|
}
|
|
29724
29726
|
|
|
29725
29727
|
// src/views/AccountingOverview/internal/TransactionsToReview.tsx
|
|
29726
|
-
import { useContext as useContext37, useMemo as
|
|
29728
|
+
import { useContext as useContext37, useEffect as useEffect28, useMemo as useMemo56 } from "react";
|
|
29727
29729
|
import { getMonth as getMonth2, getYear as getYear3, startOfMonth as startOfMonth9 } from "date-fns";
|
|
29728
29730
|
import { jsx as jsx244, jsxs as jsxs148 } from "react/jsx-runtime";
|
|
29729
29731
|
var CLASS_NAME13 = "Layer__TransactionsToReview";
|
|
@@ -29733,24 +29735,30 @@ function TransactionsToReview({
|
|
|
29733
29735
|
tagFilter = void 0,
|
|
29734
29736
|
variants
|
|
29735
29737
|
}) {
|
|
29738
|
+
var _a;
|
|
29736
29739
|
const { size = "sm" } = variants != null ? variants : {};
|
|
29737
29740
|
const { dateRange: contextDateRange } = useContext37(ProfitAndLoss2.Context);
|
|
29738
29741
|
const dateRange = usePnlDateRange ? contextDateRange : void 0;
|
|
29739
|
-
const
|
|
29740
|
-
|
|
29742
|
+
const currentDate = useMemo56(() => dateRange ? dateRange.startDate : startOfMonth9(/* @__PURE__ */ new Date()), [dateRange]);
|
|
29743
|
+
const { data, isLoading, isError, refetch, setDate } = useProfitAndLossLTM({
|
|
29744
|
+
currentDate,
|
|
29741
29745
|
tagFilter
|
|
29742
29746
|
});
|
|
29743
|
-
const
|
|
29744
|
-
if (!data || !dateRange) return 0;
|
|
29747
|
+
const activeMonth = useMemo56(() => {
|
|
29748
|
+
if (!data || !dateRange) return void 0;
|
|
29745
29749
|
const { startDate } = dateRange;
|
|
29746
|
-
|
|
29750
|
+
return data.find(
|
|
29747
29751
|
(summary) => summary.month - 1 === getMonth2(startDate) && summary.year === getYear3(startDate)
|
|
29748
29752
|
);
|
|
29749
|
-
if (!activeMonth) return 0;
|
|
29750
|
-
return activeMonth.uncategorizedTransactions;
|
|
29751
29753
|
}, [data, dateRange]);
|
|
29752
|
-
|
|
29753
|
-
|
|
29754
|
+
useEffect28(() => {
|
|
29755
|
+
if (!activeMonth) {
|
|
29756
|
+
setDate(currentDate);
|
|
29757
|
+
}
|
|
29758
|
+
}, [activeMonth, currentDate, setDate]);
|
|
29759
|
+
const hasLoadedData = !isLoading && activeMonth;
|
|
29760
|
+
const numTransactionsToReview = (_a = activeMonth == null ? void 0 : activeMonth.uncategorizedTransactions) != null ? _a : 0;
|
|
29761
|
+
const transactionsToReviewBadge = useMemo56(() => {
|
|
29754
29762
|
if (!hasLoadedData) {
|
|
29755
29763
|
return /* @__PURE__ */ jsx244(BadgeLoader, {});
|
|
29756
29764
|
}
|
|
@@ -29828,7 +29836,7 @@ function Internal_ProfitAndLossSummaries({
|
|
|
29828
29836
|
setSidebarScope,
|
|
29829
29837
|
sidebarScope
|
|
29830
29838
|
} = useContext38(ProfitAndLoss2.Context);
|
|
29831
|
-
const { revenueChartData, expensesChartData } =
|
|
29839
|
+
const { revenueChartData, expensesChartData } = useMemo57(
|
|
29832
29840
|
() => ({
|
|
29833
29841
|
revenueChartData: toMiniChartData({ scope: "revenue", data }),
|
|
29834
29842
|
expensesChartData: toMiniChartData({ scope: "expenses", data })
|
|
@@ -29974,7 +29982,7 @@ var TableProvider = ({ children }) => {
|
|
|
29974
29982
|
};
|
|
29975
29983
|
|
|
29976
29984
|
// src/components/ProfitAndLossTable/ProfitAndLossCompareTable.tsx
|
|
29977
|
-
import { Fragment as Fragment28, useContext as useContext40, useEffect as
|
|
29985
|
+
import { Fragment as Fragment28, useContext as useContext40, useEffect as useEffect29, useMemo as useMemo58 } from "react";
|
|
29978
29986
|
|
|
29979
29987
|
// src/hooks/useTableExpandRow/useTableExpandRow.tsx
|
|
29980
29988
|
import { useContext as useContext39 } from "react";
|
|
@@ -30090,7 +30098,7 @@ var mergeComparisonLineItemsAtDepth = (lineItems) => {
|
|
|
30090
30098
|
};
|
|
30091
30099
|
|
|
30092
30100
|
// src/components/ProfitAndLossTable/ProfitAndLossCompareTable.tsx
|
|
30093
|
-
import
|
|
30101
|
+
import classNames79 from "classnames";
|
|
30094
30102
|
import { Fragment as Fragment29, jsx as jsx247, jsxs as jsxs150 } from "react/jsx-runtime";
|
|
30095
30103
|
var ProfitAndLossCompareTable = ({
|
|
30096
30104
|
stringOverrides
|
|
@@ -30105,15 +30113,15 @@ var ProfitAndLossCompareTable = ({
|
|
|
30105
30113
|
const { data: bookkeepingPeriods } = useBookkeepingPeriods();
|
|
30106
30114
|
const rangeDisplayMode = useReportModeWithFallback("ProfitAndLoss" /* ProfitAndLoss */, "monthPicker");
|
|
30107
30115
|
const { start, end } = useGlobalDateRange({ displayMode: rangeDisplayMode });
|
|
30108
|
-
const dateRange =
|
|
30109
|
-
|
|
30116
|
+
const dateRange = useMemo58(() => ({ startDate: start, endDate: end }), [start, end]);
|
|
30117
|
+
useEffect29(() => {
|
|
30110
30118
|
setIsOpen(["income", "cost_of_goods_sold", "expenses"]);
|
|
30111
30119
|
}, []);
|
|
30112
30120
|
if (isLoading || comparisonData === void 0) {
|
|
30113
30121
|
return /* @__PURE__ */ jsx247(
|
|
30114
30122
|
"div",
|
|
30115
30123
|
{
|
|
30116
|
-
className:
|
|
30124
|
+
className: classNames79("Layer__profit-and-loss-table__loader-container"),
|
|
30117
30125
|
children: /* @__PURE__ */ jsx247(Loader2, {})
|
|
30118
30126
|
}
|
|
30119
30127
|
);
|
|
@@ -30232,8 +30240,8 @@ var ProfitAndLossCompareTable = ({
|
|
|
30232
30240
|
};
|
|
30233
30241
|
|
|
30234
30242
|
// src/components/ProfitAndLossTable/ProfitAndLossTableComponent.tsx
|
|
30235
|
-
import { Fragment as Fragment30, useContext as useContext41, useEffect as
|
|
30236
|
-
import
|
|
30243
|
+
import { Fragment as Fragment30, useContext as useContext41, useEffect as useEffect30 } from "react";
|
|
30244
|
+
import classNames80 from "classnames";
|
|
30237
30245
|
import { jsx as jsx248, jsxs as jsxs151 } from "react/jsx-runtime";
|
|
30238
30246
|
var ProfitAndLossTableComponent = ({
|
|
30239
30247
|
asContainer,
|
|
@@ -30242,14 +30250,14 @@ var ProfitAndLossTableComponent = ({
|
|
|
30242
30250
|
}) => {
|
|
30243
30251
|
const { data, isLoading } = useContext41(ProfitAndLoss2.Context);
|
|
30244
30252
|
const { isOpen, setIsOpen } = useTableExpandRow();
|
|
30245
|
-
|
|
30253
|
+
useEffect30(() => {
|
|
30246
30254
|
setIsOpen(["income", "cost_of_goods_sold", "expenses", "other_activity"]);
|
|
30247
30255
|
}, []);
|
|
30248
30256
|
if (isLoading || !data) {
|
|
30249
30257
|
return /* @__PURE__ */ jsx248(
|
|
30250
30258
|
"div",
|
|
30251
30259
|
{
|
|
30252
|
-
className:
|
|
30260
|
+
className: classNames80(
|
|
30253
30261
|
"Layer__profit-and-loss-table__loader-container",
|
|
30254
30262
|
asContainer && "Layer__component-container"
|
|
30255
30263
|
),
|
|
@@ -30595,7 +30603,7 @@ var BalanceSheetExpandAllButton = ({
|
|
|
30595
30603
|
};
|
|
30596
30604
|
|
|
30597
30605
|
// src/components/BalanceSheetTable/BalanceSheetTable.tsx
|
|
30598
|
-
import { Fragment as Fragment31, useEffect as
|
|
30606
|
+
import { Fragment as Fragment31, useEffect as useEffect31 } from "react";
|
|
30599
30607
|
import { jsx as jsx253, jsxs as jsxs152 } from "react/jsx-runtime";
|
|
30600
30608
|
var BalanceSheetTable = ({
|
|
30601
30609
|
data,
|
|
@@ -30604,12 +30612,12 @@ var BalanceSheetTable = ({
|
|
|
30604
30612
|
}) => {
|
|
30605
30613
|
const { isOpen, setIsOpen, expandedAllRows } = useTableExpandRow();
|
|
30606
30614
|
const allRowKeys = [];
|
|
30607
|
-
|
|
30615
|
+
useEffect31(() => {
|
|
30608
30616
|
if (expandedAllRows) {
|
|
30609
30617
|
setIsOpen(allRowKeys, true);
|
|
30610
30618
|
}
|
|
30611
30619
|
}, [expandedAllRows]);
|
|
30612
|
-
|
|
30620
|
+
useEffect31(() => {
|
|
30613
30621
|
setIsOpen(["assets"]);
|
|
30614
30622
|
}, []);
|
|
30615
30623
|
const renderLineItem = (lineItem, depth = 0, rowKey, rowIndex) => {
|
|
@@ -31247,7 +31255,7 @@ var ChartOfAccountsContext = createContext23(
|
|
|
31247
31255
|
);
|
|
31248
31256
|
|
|
31249
31257
|
// src/hooks/useChartOfAccounts/useChartOfAccounts.tsx
|
|
31250
|
-
import { useEffect as
|
|
31258
|
+
import { useEffect as useEffect32, useState as useState63 } from "react";
|
|
31251
31259
|
|
|
31252
31260
|
// src/components/ChartOfAccountsForm/constants.ts
|
|
31253
31261
|
var LEDGER_ACCOUNT_TYPES = [
|
|
@@ -31910,12 +31918,12 @@ var useChartOfAccounts = ({ withDates, startDate: initialStartDate, endDate: ini
|
|
|
31910
31918
|
}
|
|
31911
31919
|
};
|
|
31912
31920
|
const refetch = () => mutate();
|
|
31913
|
-
|
|
31921
|
+
useEffect32(() => {
|
|
31914
31922
|
if (queryKey && (isLoading || isValidating)) {
|
|
31915
31923
|
read("CHART_OF_ACCOUNTS" /* CHART_OF_ACCOUNTS */, queryKey);
|
|
31916
31924
|
}
|
|
31917
31925
|
}, [isLoading, isValidating]);
|
|
31918
|
-
|
|
31926
|
+
useEffect32(() => {
|
|
31919
31927
|
if (queryKey && hasBeenTouched(queryKey)) {
|
|
31920
31928
|
void refetch();
|
|
31921
31929
|
}
|
|
@@ -31947,13 +31955,13 @@ import { useSWRConfig as useSWRConfig6 } from "swr";
|
|
|
31947
31955
|
import { useCallback as useCallback52 } from "react";
|
|
31948
31956
|
|
|
31949
31957
|
// src/hooks/useLedgerAccounts/useLedgerAccounts.tsx
|
|
31950
|
-
import { useEffect as
|
|
31958
|
+
import { useEffect as useEffect33, useState as useState64, useMemo as useMemo60, useCallback as useCallback54 } from "react";
|
|
31951
31959
|
import useSWR18 from "swr";
|
|
31952
31960
|
|
|
31953
31961
|
// src/features/ledger/accounts/[ledgerAccountId]/api/useListLedgerAccountLines.ts
|
|
31954
31962
|
import useSWRInfinite4 from "swr/infinite";
|
|
31955
31963
|
var import_lodash8 = __toESM(require_lodash2());
|
|
31956
|
-
import { useCallback as useCallback53, useMemo as
|
|
31964
|
+
import { useCallback as useCallback53, useMemo as useMemo59 } from "react";
|
|
31957
31965
|
var LIST_LEDGER_ACCOUNT_LINES_TAG_KEY = "#list-ledger-account-lines";
|
|
31958
31966
|
var listLedgerAccountLines = get(({
|
|
31959
31967
|
businessId,
|
|
@@ -32111,11 +32119,11 @@ var useLedgerAccounts = (showReversalEntries = false) => {
|
|
|
32111
32119
|
limit: 150
|
|
32112
32120
|
});
|
|
32113
32121
|
const shouldFetch = Boolean(selectedAccountId);
|
|
32114
|
-
const data =
|
|
32122
|
+
const data = useMemo60(() => {
|
|
32115
32123
|
if (!paginatedData || !shouldFetch) return void 0;
|
|
32116
32124
|
return paginatedData.flatMap((page) => page.data);
|
|
32117
32125
|
}, [paginatedData, shouldFetch, showReversalEntries]);
|
|
32118
|
-
const hasMore =
|
|
32126
|
+
const hasMore = useMemo60(() => {
|
|
32119
32127
|
var _a, _b;
|
|
32120
32128
|
if (!shouldFetch || !paginatedData || paginatedData.length === 0) return false;
|
|
32121
32129
|
const lastPage = paginatedData[paginatedData.length - 1];
|
|
@@ -32145,15 +32153,15 @@ var useLedgerAccounts = (showReversalEntries = false) => {
|
|
|
32145
32153
|
setSelectedEntryId(void 0);
|
|
32146
32154
|
void mutateEntryData();
|
|
32147
32155
|
};
|
|
32148
|
-
const queryKey =
|
|
32156
|
+
const queryKey = useMemo60(() => {
|
|
32149
32157
|
return businessId && selectedAccountId && (auth == null ? void 0 : auth.access_token) && `ledger-accounts-lines-${businessId}-${selectedAccountId}`;
|
|
32150
32158
|
}, [businessId, selectedAccountId, auth == null ? void 0 : auth.access_token]);
|
|
32151
|
-
|
|
32159
|
+
useEffect33(() => {
|
|
32152
32160
|
if (queryKey && shouldFetch && (paginationIsLoading || paginationIsValidating)) {
|
|
32153
32161
|
read("LEDGER_ACCOUNTS" /* LEDGER_ACCOUNTS */, queryKey);
|
|
32154
32162
|
}
|
|
32155
32163
|
}, [paginationIsLoading, paginationIsValidating, shouldFetch]);
|
|
32156
|
-
|
|
32164
|
+
useEffect33(() => {
|
|
32157
32165
|
if (queryKey && shouldFetch && hasBeenTouched(queryKey)) {
|
|
32158
32166
|
void refetch();
|
|
32159
32167
|
}
|
|
@@ -32243,13 +32251,13 @@ var ChartOfAccountsDatePicker = () => {
|
|
|
32243
32251
|
};
|
|
32244
32252
|
|
|
32245
32253
|
// src/components/ChartOfAccountsForm/ChartOfAccountsForm.tsx
|
|
32246
|
-
import { useContext as useContext44, useMemo as
|
|
32254
|
+
import { useContext as useContext44, useMemo as useMemo62 } from "react";
|
|
32247
32255
|
|
|
32248
32256
|
// src/components/ChartOfAccountsForm/useParentOptions.ts
|
|
32249
|
-
import { useMemo as
|
|
32257
|
+
import { useMemo as useMemo61 } from "react";
|
|
32250
32258
|
var useParentOptions = (data) => {
|
|
32251
32259
|
var _a;
|
|
32252
|
-
return
|
|
32260
|
+
return useMemo61(
|
|
32253
32261
|
() => flattenAccounts((data == null ? void 0 : data.accounts) || []).sort((a, b) => (a == null ? void 0 : a.name) && (b == null ? void 0 : b.name) ? a.name.localeCompare(b.name) : 0).map((x) => {
|
|
32254
32262
|
return {
|
|
32255
32263
|
label: x.name,
|
|
@@ -32276,7 +32284,7 @@ var ChartOfAccountsForm = ({
|
|
|
32276
32284
|
apiError
|
|
32277
32285
|
} = useContext44(ChartOfAccountsContext);
|
|
32278
32286
|
const parentOptions = useParentOptions(data);
|
|
32279
|
-
const entry =
|
|
32287
|
+
const entry = useMemo62(() => {
|
|
32280
32288
|
if ((form == null ? void 0 : form.action) === "edit" && form.accountId) {
|
|
32281
32289
|
return flattenAccounts((data == null ? void 0 : data.accounts) || []).find(
|
|
32282
32290
|
(x) => x.id === form.accountId
|
|
@@ -32489,7 +32497,7 @@ var ChartOfAccountsSidebar = ({
|
|
|
32489
32497
|
};
|
|
32490
32498
|
|
|
32491
32499
|
// src/components/ChartOfAccountsTable/ChartOfAccountsTable.tsx
|
|
32492
|
-
import { Fragment as Fragment35, useContext as useContext45, useEffect as
|
|
32500
|
+
import { Fragment as Fragment35, useContext as useContext45, useEffect as useEffect34, useMemo as useMemo63, useState as useState65 } from "react";
|
|
32493
32501
|
|
|
32494
32502
|
// src/icons/Edit2.tsx
|
|
32495
32503
|
import { jsx as jsx264 } from "react/jsx-runtime";
|
|
@@ -32713,8 +32721,8 @@ var ChartOfAccountsTableContent = ({
|
|
|
32713
32721
|
const { editAccount, deleteAccount } = useContext45(ChartOfAccountsContext);
|
|
32714
32722
|
const [toggledKeys, setToggledKeys] = useState65({});
|
|
32715
32723
|
const [accountToDelete, setAccountToDelete] = useState65(null);
|
|
32716
|
-
const sortedAccounts =
|
|
32717
|
-
const allRowKeys =
|
|
32724
|
+
const sortedAccounts = useMemo63(() => sortAccountsRecursive(data.accounts), [data.accounts]);
|
|
32725
|
+
const allRowKeys = useMemo63(() => {
|
|
32718
32726
|
const keys = [];
|
|
32719
32727
|
const collect = (accounts) => {
|
|
32720
32728
|
for (const account of accounts) {
|
|
@@ -32728,7 +32736,7 @@ var ChartOfAccountsTableContent = ({
|
|
|
32728
32736
|
collect(data.accounts);
|
|
32729
32737
|
return keys;
|
|
32730
32738
|
}, [data.accounts]);
|
|
32731
|
-
|
|
32739
|
+
useEffect34(() => {
|
|
32732
32740
|
if (expandAll === void 0) return;
|
|
32733
32741
|
setToggledKeys(
|
|
32734
32742
|
Object.fromEntries(
|
|
@@ -32752,10 +32760,10 @@ var ChartOfAccountsTableContent = ({
|
|
|
32752
32760
|
}
|
|
32753
32761
|
return "This account cannot be deleted because it is a required account";
|
|
32754
32762
|
};
|
|
32755
|
-
|
|
32763
|
+
useEffect34(() => {
|
|
32756
32764
|
setToggledKeys({});
|
|
32757
32765
|
}, [searchQuery]);
|
|
32758
|
-
const filteredAccounts =
|
|
32766
|
+
const filteredAccounts = useMemo63(() => {
|
|
32759
32767
|
if (!searchQuery) return sortedAccounts;
|
|
32760
32768
|
return filterAccounts(sortedAccounts, searchQuery.toLowerCase());
|
|
32761
32769
|
}, [searchQuery, sortedAccounts]);
|
|
@@ -33129,13 +33137,13 @@ var ChartOfAccountsTableWithPanel = ({
|
|
|
33129
33137
|
// src/components/LedgerAccount/LedgerAccountIndex.tsx
|
|
33130
33138
|
import {
|
|
33131
33139
|
useContext as useContext48,
|
|
33132
|
-
useMemo as
|
|
33140
|
+
useMemo as useMemo65,
|
|
33133
33141
|
useState as useState67
|
|
33134
33142
|
} from "react";
|
|
33135
33143
|
|
|
33136
33144
|
// src/components/LedgerAccount/LedgerAccountRow.tsx
|
|
33137
|
-
import { useContext as useContext47, useMemo as
|
|
33138
|
-
import
|
|
33145
|
+
import { useContext as useContext47, useMemo as useMemo64 } from "react";
|
|
33146
|
+
import classNames81 from "classnames";
|
|
33139
33147
|
import { parseISO as parseISO14, format as formatTime11 } from "date-fns";
|
|
33140
33148
|
import { jsx as jsx268, jsxs as jsxs163 } from "react/jsx-runtime";
|
|
33141
33149
|
var LedgerAccountRow = ({
|
|
@@ -33146,14 +33154,14 @@ var LedgerAccountRow = ({
|
|
|
33146
33154
|
}) => {
|
|
33147
33155
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
33148
33156
|
const { selectedEntryId, setSelectedEntryId, closeSelectedEntry } = useContext47(LedgerAccountsContext);
|
|
33149
|
-
const ledgerEntrySource =
|
|
33157
|
+
const ledgerEntrySource = useMemo64(() => {
|
|
33150
33158
|
return row.source ? decodeLedgerEntrySource(row.source) : void 0;
|
|
33151
33159
|
}, [row.source]);
|
|
33152
33160
|
if (view === "tablet") {
|
|
33153
33161
|
return /* @__PURE__ */ jsxs163(
|
|
33154
33162
|
"tr",
|
|
33155
33163
|
{
|
|
33156
|
-
className:
|
|
33164
|
+
className: classNames81(
|
|
33157
33165
|
"Layer__table-row",
|
|
33158
33166
|
row.entry_id === selectedEntryId && "Layer__table-row--active"
|
|
33159
33167
|
),
|
|
@@ -33192,7 +33200,7 @@ var LedgerAccountRow = ({
|
|
|
33192
33200
|
return /* @__PURE__ */ jsx268(
|
|
33193
33201
|
"tr",
|
|
33194
33202
|
{
|
|
33195
|
-
className:
|
|
33203
|
+
className: classNames81(
|
|
33196
33204
|
"Layer__table-row",
|
|
33197
33205
|
row.entry_id === selectedEntryId && "Layer__table-row--active"
|
|
33198
33206
|
),
|
|
@@ -33242,7 +33250,7 @@ var LedgerAccountRow = ({
|
|
|
33242
33250
|
return /* @__PURE__ */ jsxs163(
|
|
33243
33251
|
"tr",
|
|
33244
33252
|
{
|
|
33245
|
-
className:
|
|
33253
|
+
className: classNames81(
|
|
33246
33254
|
"Layer__table-row",
|
|
33247
33255
|
row.entry_id === selectedEntryId && "Layer__table-row--active"
|
|
33248
33256
|
),
|
|
@@ -33268,7 +33276,7 @@ var LedgerAccountRow = ({
|
|
|
33268
33276
|
};
|
|
33269
33277
|
|
|
33270
33278
|
// src/components/LedgerAccount/LedgerAccountIndex.tsx
|
|
33271
|
-
import
|
|
33279
|
+
import classNames82 from "classnames";
|
|
33272
33280
|
import { Fragment as Fragment38, jsx as jsx269, jsxs as jsxs164 } from "react/jsx-runtime";
|
|
33273
33281
|
var LedgerAccount = ({
|
|
33274
33282
|
containerRef,
|
|
@@ -33291,12 +33299,12 @@ var LedgerAccount = ({
|
|
|
33291
33299
|
hasMore,
|
|
33292
33300
|
fetchMore
|
|
33293
33301
|
} = useContext48(LedgerAccountsContext);
|
|
33294
|
-
const baseClassName =
|
|
33302
|
+
const baseClassName = classNames82(
|
|
33295
33303
|
"Layer__ledger-account__index",
|
|
33296
33304
|
selectedAccount && "open"
|
|
33297
33305
|
);
|
|
33298
33306
|
const nodeType = selectedAccount == null ? void 0 : selectedAccount.nodeType;
|
|
33299
|
-
const data =
|
|
33307
|
+
const data = useMemo65(() => {
|
|
33300
33308
|
var _a2;
|
|
33301
33309
|
if (!rawData) return void 0;
|
|
33302
33310
|
const firstPageIndex = (currentPage - 1) * pageSize;
|
|
@@ -33502,12 +33510,12 @@ var JournalContext = createContext24({
|
|
|
33502
33510
|
});
|
|
33503
33511
|
|
|
33504
33512
|
// src/hooks/useJournal/useJournal.tsx
|
|
33505
|
-
import { useState as useState68, useMemo as
|
|
33513
|
+
import { useState as useState68, useMemo as useMemo67, useCallback as useCallback56 } from "react";
|
|
33506
33514
|
|
|
33507
33515
|
// src/features/ledger/entries/api/useListLedgerEntries.ts
|
|
33508
33516
|
import useSWRInfinite5 from "swr/infinite";
|
|
33509
33517
|
var import_lodash9 = __toESM(require_lodash2());
|
|
33510
|
-
import { useCallback as useCallback55, useMemo as
|
|
33518
|
+
import { useCallback as useCallback55, useMemo as useMemo66 } from "react";
|
|
33511
33519
|
var LIST_LEDGER_ENTRIES_TAG_KEY = "#list-ledger-entries";
|
|
33512
33520
|
var listLedgerEntries = get(({ businessId, sort_by, sort_order, cursor, limit, show_total_count }) => {
|
|
33513
33521
|
const parameters = toDefinedSearchParameters({
|
|
@@ -33621,11 +33629,11 @@ var useJournal = () => {
|
|
|
33621
33629
|
sort_order: "DESC",
|
|
33622
33630
|
limit: 150
|
|
33623
33631
|
});
|
|
33624
|
-
const data =
|
|
33632
|
+
const data = useMemo67(() => {
|
|
33625
33633
|
if (!paginatedData) return void 0;
|
|
33626
33634
|
return paginatedData.flatMap((page) => page.data);
|
|
33627
33635
|
}, [paginatedData]);
|
|
33628
|
-
const hasMore =
|
|
33636
|
+
const hasMore = useMemo67(() => {
|
|
33629
33637
|
var _a, _b;
|
|
33630
33638
|
if (paginatedData && paginatedData.length > 0) {
|
|
33631
33639
|
const lastPage = paginatedData[paginatedData.length - 1];
|
|
@@ -33882,13 +33890,13 @@ var useJournal = () => {
|
|
|
33882
33890
|
};
|
|
33883
33891
|
|
|
33884
33892
|
// src/components/JournalTable/JournalTableWithPanel.tsx
|
|
33885
|
-
import { useContext as useContext55, useMemo as
|
|
33893
|
+
import { useContext as useContext55, useMemo as useMemo70, useState as useState70 } from "react";
|
|
33886
33894
|
|
|
33887
33895
|
// src/components/JournalSidebar/JournalSidebar.tsx
|
|
33888
33896
|
import { useContext as useContext53 } from "react";
|
|
33889
33897
|
|
|
33890
33898
|
// src/components/JournalEntryDetails/JournalEntryDetails.tsx
|
|
33891
|
-
import { useContext as useContext50, useMemo as
|
|
33899
|
+
import { useContext as useContext50, useMemo as useMemo68, useState as useState69 } from "react";
|
|
33892
33900
|
import { jsx as jsx271, jsxs as jsxs165 } from "react/jsx-runtime";
|
|
33893
33901
|
var JournalEntryDetails = () => {
|
|
33894
33902
|
var _a, _b;
|
|
@@ -33904,16 +33912,16 @@ var JournalEntryDetails = () => {
|
|
|
33904
33912
|
const { renderInAppLink } = useInAppLinkContext();
|
|
33905
33913
|
const [reverseEntryProcessing, setReverseEntryProcessing] = useState69(false);
|
|
33906
33914
|
const [reverseEntryError, setReverseEntryError] = useState69();
|
|
33907
|
-
const entry =
|
|
33915
|
+
const entry = useMemo68(() => {
|
|
33908
33916
|
if (selectedEntryId && data) {
|
|
33909
33917
|
return data.find((x) => x.id === selectedEntryId);
|
|
33910
33918
|
}
|
|
33911
33919
|
return;
|
|
33912
33920
|
}, [data, selectedEntryId]);
|
|
33913
|
-
const ledgerEntrySource =
|
|
33921
|
+
const ledgerEntrySource = useMemo68(() => {
|
|
33914
33922
|
return (entry == null ? void 0 : entry.source) ? decodeLedgerEntrySource(entry.source) : void 0;
|
|
33915
33923
|
}, [entry == null ? void 0 : entry.source]);
|
|
33916
|
-
const badgeOrInAppLink =
|
|
33924
|
+
const badgeOrInAppLink = useMemo68(() => {
|
|
33917
33925
|
var _a2, _b2;
|
|
33918
33926
|
const badgeContent = (_a2 = ledgerEntrySource == null ? void 0 : ledgerEntrySource.entityName) != null ? _a2 : entry == null ? void 0 : entry.entry_type;
|
|
33919
33927
|
const defaultBadge = /* @__PURE__ */ jsx271(Badge, { children: badgeContent });
|
|
@@ -33923,7 +33931,7 @@ var JournalEntryDetails = () => {
|
|
|
33923
33931
|
const linkingMetadata = convertLedgerEntrySourceToLinkingMetadata(ledgerEntrySource);
|
|
33924
33932
|
return (_b2 = renderInAppLink(linkingMetadata)) != null ? _b2 : defaultBadge;
|
|
33925
33933
|
}, [renderInAppLink, entry == null ? void 0 : entry.entry_type, ledgerEntrySource]);
|
|
33926
|
-
const sortedLineItems =
|
|
33934
|
+
const sortedLineItems = useMemo68(
|
|
33927
33935
|
() => {
|
|
33928
33936
|
var _a2;
|
|
33929
33937
|
return (_a2 = entry == null ? void 0 : entry.line_items) == null ? void 0 : _a2.sort(
|
|
@@ -34107,7 +34115,7 @@ var JournalEntryDetails = () => {
|
|
|
34107
34115
|
import { useContext as useContext52 } from "react";
|
|
34108
34116
|
|
|
34109
34117
|
// src/components/JournalForm/JournalFormEntryLines.tsx
|
|
34110
|
-
import { useContext as useContext51, useMemo as
|
|
34118
|
+
import { useContext as useContext51, useMemo as useMemo69 } from "react";
|
|
34111
34119
|
import { Fragment as Fragment39, jsx as jsx272, jsxs as jsxs166 } from "react/jsx-runtime";
|
|
34112
34120
|
function recursiveFlattenCategories(accounts) {
|
|
34113
34121
|
const flattenedResult = accounts.flatMap((a) => {
|
|
@@ -34129,7 +34137,7 @@ var JournalFormEntryLines = ({
|
|
|
34129
34137
|
}) => {
|
|
34130
34138
|
const { data: categories } = useCategories({ mode: "ALL" });
|
|
34131
34139
|
const { form } = useContext51(JournalContext);
|
|
34132
|
-
const { flattenedCategories, parentOptions } =
|
|
34140
|
+
const { flattenedCategories, parentOptions } = useMemo69(() => {
|
|
34133
34141
|
const flattenedCategories2 = recursiveFlattenCategories(categories != null ? categories : []);
|
|
34134
34142
|
const parentOptions2 = [...flattenedCategories2].sort((a, b) => a.display_name.localeCompare(b.display_name)).map((account) => {
|
|
34135
34143
|
switch (account.type) {
|
|
@@ -34723,7 +34731,7 @@ var JournalTableWithPanel = ({
|
|
|
34723
34731
|
hasMore,
|
|
34724
34732
|
fetchMore
|
|
34725
34733
|
} = useContext55(JournalContext);
|
|
34726
|
-
const data =
|
|
34734
|
+
const data = useMemo70(
|
|
34727
34735
|
() => {
|
|
34728
34736
|
if (!rawData) return void 0;
|
|
34729
34737
|
const firstPageIndex = (currentPage - 1) * pageSize;
|
|
@@ -34869,7 +34877,7 @@ var TasksHeader = ({
|
|
|
34869
34877
|
};
|
|
34870
34878
|
|
|
34871
34879
|
// src/components/Tasks/TasksList.tsx
|
|
34872
|
-
import { useCallback as useCallback63, useEffect as
|
|
34880
|
+
import { useCallback as useCallback63, useEffect as useEffect36, useMemo as useMemo73, useRef as useRef28 } from "react";
|
|
34873
34881
|
|
|
34874
34882
|
// src/icons/SmileIcon.tsx
|
|
34875
34883
|
import { jsx as jsx280, jsxs as jsxs171 } from "react/jsx-runtime";
|
|
@@ -34928,8 +34936,8 @@ var SmileIcon = (_a) => {
|
|
|
34928
34936
|
var SmileIcon_default = SmileIcon;
|
|
34929
34937
|
|
|
34930
34938
|
// src/components/Tasks/TasksListItem.tsx
|
|
34931
|
-
import { forwardRef as forwardRef26, useCallback as useCallback61, useEffect as
|
|
34932
|
-
import
|
|
34939
|
+
import { forwardRef as forwardRef26, useCallback as useCallback61, useEffect as useEffect35, useMemo as useMemo71, useState as useState71 } from "react";
|
|
34940
|
+
import classNames83 from "classnames";
|
|
34933
34941
|
|
|
34934
34942
|
// src/utils/bookkeeping/tasks/getBookkeepingTaskStatusIcon.tsx
|
|
34935
34943
|
import { jsx as jsx281 } from "react/jsx-runtime";
|
|
@@ -35260,20 +35268,20 @@ var TasksListItem = forwardRef26(({ task, defaultOpen, onExpandTask }, ref) => {
|
|
|
35260
35268
|
const { trigger: handleUploadDocumentsForTask } = useUploadDocumentsForTask();
|
|
35261
35269
|
const { trigger: handleDeleteUploadsOnTask } = useDeleteUploadsOnTask();
|
|
35262
35270
|
const { trigger: handleUpdateTaskUploadDescription } = useUpdateTaskUploadDescription();
|
|
35263
|
-
const taskBodyClassName =
|
|
35271
|
+
const taskBodyClassName = classNames83(
|
|
35264
35272
|
"Layer__tasks-list-item__body",
|
|
35265
35273
|
isOpen && "Layer__tasks-list-item__body--expanded",
|
|
35266
35274
|
isCompletedTask(task) && "Layer__tasks-list-item--completed"
|
|
35267
35275
|
);
|
|
35268
|
-
const taskHeadClassName =
|
|
35276
|
+
const taskHeadClassName = classNames83(
|
|
35269
35277
|
"Layer__tasks-list-item__head-info",
|
|
35270
35278
|
isCompletedTask(task) ? "Layer__tasks-list-item--completed" : "Layer__tasks-list-item--pending"
|
|
35271
35279
|
);
|
|
35272
|
-
const taskItemClassName =
|
|
35280
|
+
const taskItemClassName = classNames83(
|
|
35273
35281
|
"Layer__tasks-list-item",
|
|
35274
35282
|
isOpen && "Layer__tasks-list-item__expanded"
|
|
35275
35283
|
);
|
|
35276
|
-
|
|
35284
|
+
useEffect35(() => {
|
|
35277
35285
|
setIsOpen(defaultOpen);
|
|
35278
35286
|
}, [defaultOpen]);
|
|
35279
35287
|
const submit = () => __async(null, null, function* () {
|
|
@@ -35292,7 +35300,7 @@ var TasksListItem = forwardRef26(({ task, defaultOpen, onExpandTask }, ref) => {
|
|
|
35292
35300
|
setIsOpen(!isOpen);
|
|
35293
35301
|
onExpandTask == null ? void 0 : onExpandTask(!isOpen);
|
|
35294
35302
|
}, [isOpen, onExpandTask]);
|
|
35295
|
-
const uploadDocumentAction =
|
|
35303
|
+
const uploadDocumentAction = useMemo71(() => {
|
|
35296
35304
|
if (task.user_response_type === "UPLOAD_DOCUMENT") {
|
|
35297
35305
|
if (task.status === "TODO") {
|
|
35298
35306
|
if (!selectedFiles) {
|
|
@@ -35420,13 +35428,13 @@ var TasksListItem = forwardRef26(({ task, defaultOpen, onExpandTask }, ref) => {
|
|
|
35420
35428
|
TasksListItem.displayName = "TasksListItem";
|
|
35421
35429
|
|
|
35422
35430
|
// src/components/MobilePanel/MobilePanel.tsx
|
|
35423
|
-
import
|
|
35431
|
+
import classNames84 from "classnames";
|
|
35424
35432
|
import { createPortal } from "react-dom";
|
|
35425
35433
|
import { jsx as jsx283, jsxs as jsxs173 } from "react/jsx-runtime";
|
|
35426
35434
|
var MobilePanel = ({ header, children, open, onClose, className }) => {
|
|
35427
35435
|
const dataProperties = toDataProperties({ open });
|
|
35428
35436
|
return createPortal(
|
|
35429
|
-
/* @__PURE__ */ jsxs173("div", __spreadProps(__spreadValues({ className:
|
|
35437
|
+
/* @__PURE__ */ jsxs173("div", __spreadProps(__spreadValues({ className: classNames84("Layer__Portal Layer__mobile-panel", className) }, dataProperties), { children: [
|
|
35430
35438
|
/* @__PURE__ */ jsxs173("div", { className: "Layer__mobile-panel__header", children: [
|
|
35431
35439
|
/* @__PURE__ */ jsx283(BackButton, { onClick: onClose }),
|
|
35432
35440
|
header && /* @__PURE__ */ jsx283("div", { className: "Layer__mobile-panel__header__content", children: header })
|
|
@@ -35497,12 +35505,12 @@ var TasksListMobile = ({
|
|
|
35497
35505
|
};
|
|
35498
35506
|
|
|
35499
35507
|
// src/hooks/array/usePaginatedList.ts
|
|
35500
|
-
import { useCallback as useCallback62, useMemo as
|
|
35508
|
+
import { useCallback as useCallback62, useMemo as useMemo72, useState as useState73 } from "react";
|
|
35501
35509
|
function usePaginatedList(list, pageSize) {
|
|
35502
35510
|
const [internalPageIndex, setInternalPageIndex] = useState73(0);
|
|
35503
35511
|
const pageCount = Math.max(0, Math.ceil(list.length / pageSize));
|
|
35504
35512
|
const effectivePageIndex = Math.max(0, Math.min(internalPageIndex, pageCount - 1));
|
|
35505
|
-
const pageItems =
|
|
35513
|
+
const pageItems = useMemo72(() => {
|
|
35506
35514
|
return list.slice(
|
|
35507
35515
|
effectivePageIndex * pageSize,
|
|
35508
35516
|
(effectivePageIndex + 1) * pageSize
|
|
@@ -35565,12 +35573,12 @@ var TasksList = ({ pageSize = 8, mobile }) => {
|
|
|
35565
35573
|
};
|
|
35566
35574
|
requestAnimationFrameRef.current = requestAnimationFrame(scrollNow);
|
|
35567
35575
|
}, []);
|
|
35568
|
-
|
|
35576
|
+
useEffect36(() => {
|
|
35569
35577
|
return () => {
|
|
35570
35578
|
if (requestAnimationFrameRef.current !== null) cancelAnimationFrame(requestAnimationFrameRef.current);
|
|
35571
35579
|
};
|
|
35572
35580
|
}, []);
|
|
35573
|
-
const sortedTasks =
|
|
35581
|
+
const sortedTasks = useMemo73(() => {
|
|
35574
35582
|
var _a;
|
|
35575
35583
|
const tasksInPeriod = (_a = activePeriod == null ? void 0 : activePeriod.tasks) != null ? _a : [];
|
|
35576
35584
|
return tasksInPeriod.sort((taskA, taskB) => {
|
|
@@ -35627,7 +35635,7 @@ var TasksList = ({ pageSize = 8, mobile }) => {
|
|
|
35627
35635
|
// src/components/Tasks/TasksPending.tsx
|
|
35628
35636
|
import { Cell as Cell5, Pie as Pie3, PieChart as PieChart3 } from "recharts";
|
|
35629
35637
|
import { format as format7 } from "date-fns";
|
|
35630
|
-
import
|
|
35638
|
+
import classNames85 from "classnames";
|
|
35631
35639
|
|
|
35632
35640
|
// src/components/BookkeepingStatus/BookkeepingStatusDescription.tsx
|
|
35633
35641
|
import { jsx as jsx286 } from "react/jsx-runtime";
|
|
@@ -35658,7 +35666,7 @@ var TasksPending = () => {
|
|
|
35658
35666
|
value: incompleteTaskCount
|
|
35659
35667
|
}
|
|
35660
35668
|
];
|
|
35661
|
-
const taskStatusClassName =
|
|
35669
|
+
const taskStatusClassName = classNames85(
|
|
35662
35670
|
completedTaskCount > 0 ? "Layer__tasks-pending-bar__status--done" : "Layer__tasks-pending-bar__status--pending"
|
|
35663
35671
|
);
|
|
35664
35672
|
return /* @__PURE__ */ jsxs176("div", { className: "Layer__tasks-pending", children: [
|
|
@@ -35717,7 +35725,7 @@ var TasksPending = () => {
|
|
|
35717
35725
|
};
|
|
35718
35726
|
|
|
35719
35727
|
// src/components/Tasks/TasksMonthSelector.tsx
|
|
35720
|
-
import { useMemo as
|
|
35728
|
+
import { useMemo as useMemo74 } from "react";
|
|
35721
35729
|
import { format as format8, getMonth as getMonth3, getYear as getYear4, set } from "date-fns";
|
|
35722
35730
|
|
|
35723
35731
|
// src/components/Tasks/TaskStatusBadge.tsx
|
|
@@ -35819,7 +35827,7 @@ function useActiveYearBookkeepingPeriods() {
|
|
|
35819
35827
|
const { date } = useGlobalDate();
|
|
35820
35828
|
const { data } = useBookkeepingPeriods();
|
|
35821
35829
|
const activeYear = getYear4(date);
|
|
35822
|
-
const periodsInActiveYear =
|
|
35830
|
+
const periodsInActiveYear = useMemo74(() => {
|
|
35823
35831
|
return data == null ? void 0 : data.filter((period) => period.year === activeYear);
|
|
35824
35832
|
}, [data, activeYear]);
|
|
35825
35833
|
return { periodsInActiveYear };
|
|
@@ -35830,7 +35838,7 @@ function TasksMonthSelector() {
|
|
|
35830
35838
|
const { periodsInActiveYear } = useActiveYearBookkeepingPeriods();
|
|
35831
35839
|
const activeMonthNumber = getMonth3(date) + 1;
|
|
35832
35840
|
const activeYear = getYear4(date);
|
|
35833
|
-
const monthsData =
|
|
35841
|
+
const monthsData = useMemo74(() => {
|
|
35834
35842
|
return Array.from({ length: 12 }, (_, index) => {
|
|
35835
35843
|
var _a, _b;
|
|
35836
35844
|
const date2 = set(
|
|
@@ -35877,13 +35885,13 @@ function TasksMonthSelector() {
|
|
|
35877
35885
|
import pluralize4 from "pluralize";
|
|
35878
35886
|
|
|
35879
35887
|
// src/hooks/bookkeeping/periods/useBookkeepingYearsStatus.ts
|
|
35880
|
-
import { useMemo as
|
|
35888
|
+
import { useMemo as useMemo75 } from "react";
|
|
35881
35889
|
import { getYear as getYear5 } from "date-fns";
|
|
35882
35890
|
var useBookkeepingYearsStatus = () => {
|
|
35883
35891
|
const { business } = useLayerContext();
|
|
35884
35892
|
const activationDate = getActivationDate(business);
|
|
35885
35893
|
const { data, isLoading } = useBookkeepingPeriods();
|
|
35886
|
-
const yearStatuses =
|
|
35894
|
+
const yearStatuses = useMemo75(() => {
|
|
35887
35895
|
const startYear = getYear5(activationDate != null ? activationDate : /* @__PURE__ */ new Date());
|
|
35888
35896
|
const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
|
|
35889
35897
|
const count = currentYear - startYear + 1;
|
|
@@ -35898,7 +35906,7 @@ var useBookkeepingYearsStatus = () => {
|
|
|
35898
35906
|
};
|
|
35899
35907
|
}).filter(({ year }) => data == null ? void 0 : data.some((period) => period.year === year)).sort((a, b) => b.year - a.year);
|
|
35900
35908
|
}, [activationDate, data]);
|
|
35901
|
-
const earliestIncompletePeriod =
|
|
35909
|
+
const earliestIncompletePeriod = useMemo75(
|
|
35902
35910
|
() => [...data != null ? data : []].sort((a, b) => {
|
|
35903
35911
|
if (a.year === b.year) {
|
|
35904
35912
|
return b.month - a.month;
|
|
@@ -36041,10 +36049,10 @@ var TasksPanelNotification = ({
|
|
|
36041
36049
|
};
|
|
36042
36050
|
|
|
36043
36051
|
// src/components/Tasks/TasksYearsTabs.tsx
|
|
36044
|
-
import { useMemo as
|
|
36052
|
+
import { useMemo as useMemo76 } from "react";
|
|
36045
36053
|
|
|
36046
36054
|
// src/components/Tabs/Tabs.tsx
|
|
36047
|
-
import { useEffect as
|
|
36055
|
+
import { useEffect as useEffect37, useState as useState74 } from "react";
|
|
36048
36056
|
|
|
36049
36057
|
// src/components/Tabs/Tab.tsx
|
|
36050
36058
|
import { jsx as jsx293, jsxs as jsxs181 } from "react/jsx-runtime";
|
|
@@ -36106,7 +36114,7 @@ var Tab = ({
|
|
|
36106
36114
|
};
|
|
36107
36115
|
|
|
36108
36116
|
// src/components/Tabs/Tabs.tsx
|
|
36109
|
-
import
|
|
36117
|
+
import classNames86 from "classnames";
|
|
36110
36118
|
import { jsx as jsx294, jsxs as jsxs182 } from "react/jsx-runtime";
|
|
36111
36119
|
import { createElement as createElement2 } from "react";
|
|
36112
36120
|
var STARTING_PADDING = 12;
|
|
@@ -36115,7 +36123,7 @@ var Tabs = ({ name, options: options3, selected, onChange }) => {
|
|
|
36115
36123
|
const [thumbPos, setThumbPos] = useState74({ left: 0, width: 0 });
|
|
36116
36124
|
const [currentWidth, setCurrentWidth] = useState74(0);
|
|
36117
36125
|
const selectedValue = selected || options3[0].value;
|
|
36118
|
-
const baseClassName =
|
|
36126
|
+
const baseClassName = classNames86(
|
|
36119
36127
|
"Layer__tabs",
|
|
36120
36128
|
initialized && "Layer__tabs--initialized"
|
|
36121
36129
|
);
|
|
@@ -36148,14 +36156,14 @@ var Tabs = ({ name, options: options3, selected, onChange }) => {
|
|
|
36148
36156
|
shift2 = shift2 + STARTING_PADDING;
|
|
36149
36157
|
setThumbPos({ left: shift2, width });
|
|
36150
36158
|
};
|
|
36151
|
-
|
|
36159
|
+
useEffect37(() => {
|
|
36152
36160
|
const selectedIndex = getSelectedIndex();
|
|
36153
36161
|
updateSelectPosition(selectedIndex);
|
|
36154
36162
|
setTimeout(() => {
|
|
36155
36163
|
setInitialized(true);
|
|
36156
36164
|
}, 400);
|
|
36157
36165
|
}, []);
|
|
36158
|
-
|
|
36166
|
+
useEffect37(() => {
|
|
36159
36167
|
const selectedIndex = getSelectedIndex();
|
|
36160
36168
|
updateSelectPosition(selectedIndex);
|
|
36161
36169
|
}, [selectedValue, currentWidth]);
|
|
@@ -36203,7 +36211,7 @@ var TasksYearsTabs = () => {
|
|
|
36203
36211
|
yearNumber: Number(year)
|
|
36204
36212
|
});
|
|
36205
36213
|
};
|
|
36206
|
-
const yearsList =
|
|
36214
|
+
const yearsList = useMemo76(() => {
|
|
36207
36215
|
return yearStatuses == null ? void 0 : yearStatuses.sort((a, b) => a.year - b.year).map((y) => {
|
|
36208
36216
|
return {
|
|
36209
36217
|
value: `${y.year}`,
|
|
@@ -37706,10 +37714,10 @@ function BookkeepingProfitAndLossSummariesContainer({
|
|
|
37706
37714
|
}
|
|
37707
37715
|
|
|
37708
37716
|
// src/views/BookkeepingOverview/BookkeepingOverview.tsx
|
|
37709
|
-
import
|
|
37717
|
+
import classNames87 from "classnames";
|
|
37710
37718
|
|
|
37711
37719
|
// src/views/BookkeepingOverview/useKeepInMobileViewport.tsx
|
|
37712
|
-
import { useEffect as
|
|
37720
|
+
import { useEffect as useEffect38, useRef as useRef29 } from "react";
|
|
37713
37721
|
var TASKS_MOBILE_VIEWPORT_WIDTH = 1100;
|
|
37714
37722
|
var useKeepInMobileViewport = () => {
|
|
37715
37723
|
const upperContentRef = useRef29(null);
|
|
@@ -37717,7 +37725,7 @@ var useKeepInMobileViewport = () => {
|
|
|
37717
37725
|
const lastKnownSizeRef = useRef29(null);
|
|
37718
37726
|
const lastKnownTargetPositionRef = useRef29(null);
|
|
37719
37727
|
const upperElementInFocus = useRef29(false);
|
|
37720
|
-
|
|
37728
|
+
useEffect38(() => {
|
|
37721
37729
|
if (!upperContentRef.current || !targetElementRef.current) return;
|
|
37722
37730
|
lastKnownSizeRef.current = upperContentRef.current.getBoundingClientRect().height;
|
|
37723
37731
|
lastKnownTargetPositionRef.current = targetElementRef.current.getBoundingClientRect().top;
|
|
@@ -37866,7 +37874,7 @@ var BookkeepingOverview = ({
|
|
|
37866
37874
|
/* @__PURE__ */ jsx317(
|
|
37867
37875
|
Container,
|
|
37868
37876
|
{
|
|
37869
|
-
name:
|
|
37877
|
+
name: classNames87(
|
|
37870
37878
|
"bookkeeping-overview-profit-and-loss-chart",
|
|
37871
37879
|
pnlToggle !== "revenue" && "bookkeeping-overview-profit-and-loss-chart--hidden"
|
|
37872
37880
|
),
|
|
@@ -37883,7 +37891,7 @@ var BookkeepingOverview = ({
|
|
|
37883
37891
|
/* @__PURE__ */ jsx317(
|
|
37884
37892
|
Container,
|
|
37885
37893
|
{
|
|
37886
|
-
name:
|
|
37894
|
+
name: classNames87(
|
|
37887
37895
|
"bookkeeping-overview-profit-and-loss-chart",
|
|
37888
37896
|
pnlToggle !== "expenses" && "bookkeeping-overview-profit-and-loss-chart--hidden"
|
|
37889
37897
|
),
|
|
@@ -37905,7 +37913,7 @@ var BookkeepingOverview = ({
|
|
|
37905
37913
|
|
|
37906
37914
|
// src/views/AccountingOverview/AccountingOverview.tsx
|
|
37907
37915
|
import { useState as useState78 } from "react";
|
|
37908
|
-
import
|
|
37916
|
+
import classNames88 from "classnames";
|
|
37909
37917
|
import { jsx as jsx318, jsxs as jsxs199 } from "react/jsx-runtime";
|
|
37910
37918
|
var AccountingOverview = ({
|
|
37911
37919
|
title = "Accounting overview",
|
|
@@ -37994,7 +38002,7 @@ var AccountingOverview = ({
|
|
|
37994
38002
|
/* @__PURE__ */ jsx318(
|
|
37995
38003
|
Container,
|
|
37996
38004
|
{
|
|
37997
|
-
name:
|
|
38005
|
+
name: classNames88(
|
|
37998
38006
|
"accounting-overview-profit-and-loss-chart",
|
|
37999
38007
|
pnlToggle !== "revenue" && "accounting-overview-profit-and-loss-chart--hidden"
|
|
38000
38008
|
),
|
|
@@ -38012,7 +38020,7 @@ var AccountingOverview = ({
|
|
|
38012
38020
|
/* @__PURE__ */ jsx318(
|
|
38013
38021
|
Container,
|
|
38014
38022
|
{
|
|
38015
|
-
name:
|
|
38023
|
+
name: classNames88(
|
|
38016
38024
|
"accounting-overview-profit-and-loss-chart",
|
|
38017
38025
|
pnlToggle !== "expenses" && "accounting-overview-profit-and-loss-chart--hidden"
|
|
38018
38026
|
),
|
|
@@ -38267,7 +38275,7 @@ var ProjectProfitabilityView = ({
|
|
|
38267
38275
|
import { createContext as createContext25, useContext as useContext59 } from "react";
|
|
38268
38276
|
|
|
38269
38277
|
// src/hooks/useBills.tsx
|
|
38270
|
-
import { useMemo as
|
|
38278
|
+
import { useMemo as useMemo77, useState as useState81 } from "react";
|
|
38271
38279
|
import { endOfMonth as endOfMonth12, startOfMonth as startOfMonth15, sub as sub3 } from "date-fns";
|
|
38272
38280
|
import useSWRInfinite6 from "swr/infinite";
|
|
38273
38281
|
var PAGE_SIZE = 20;
|
|
@@ -38338,24 +38346,24 @@ var useBills = () => {
|
|
|
38338
38346
|
revalidateFirstPage: false
|
|
38339
38347
|
}
|
|
38340
38348
|
);
|
|
38341
|
-
const data =
|
|
38349
|
+
const data = useMemo77(() => {
|
|
38342
38350
|
if (rawResponseData && rawResponseData.length > 0) {
|
|
38343
38351
|
return rawResponseData == null ? void 0 : rawResponseData.map((x) => x == null ? void 0 : x.data).flat().filter((x) => !!x);
|
|
38344
38352
|
}
|
|
38345
38353
|
return void 0;
|
|
38346
38354
|
}, [rawResponseData]);
|
|
38347
|
-
const paginatedData =
|
|
38355
|
+
const paginatedData = useMemo77(() => {
|
|
38348
38356
|
const firstPageIndex = (currentPage - 1) * PAGE_SIZE;
|
|
38349
38357
|
const lastPageIndex = firstPageIndex + PAGE_SIZE;
|
|
38350
38358
|
return data == null ? void 0 : data.slice(firstPageIndex, lastPageIndex);
|
|
38351
38359
|
}, [currentPage, data]);
|
|
38352
|
-
const lastMetadata =
|
|
38360
|
+
const lastMetadata = useMemo77(() => {
|
|
38353
38361
|
if (rawResponseData && rawResponseData.length > 0) {
|
|
38354
38362
|
return rawResponseData[rawResponseData.length - 1].meta;
|
|
38355
38363
|
}
|
|
38356
38364
|
return void 0;
|
|
38357
38365
|
}, [rawResponseData]);
|
|
38358
|
-
const hasMore =
|
|
38366
|
+
const hasMore = useMemo77(() => {
|
|
38359
38367
|
var _a, _b, _c, _d;
|
|
38360
38368
|
if (rawResponseData && rawResponseData.length > 0) {
|
|
38361
38369
|
const lastElement = rawResponseData[rawResponseData.length - 1];
|
|
@@ -38400,7 +38408,7 @@ var useBills = () => {
|
|
|
38400
38408
|
};
|
|
38401
38409
|
|
|
38402
38410
|
// src/components/Bills/useBillsRecordPayment.ts
|
|
38403
|
-
import { useEffect as
|
|
38411
|
+
import { useEffect as useEffect39, useMemo as useMemo78, useState as useState82 } from "react";
|
|
38404
38412
|
import useSWRMutation27 from "swr/mutation";
|
|
38405
38413
|
function buildKey41({
|
|
38406
38414
|
access_token: accessToken,
|
|
@@ -38443,7 +38451,7 @@ var useBillsRecordPayment = ({ refetchAllBills }) => {
|
|
|
38443
38451
|
setVendor(void 0);
|
|
38444
38452
|
setBulkSelectionActive(false);
|
|
38445
38453
|
};
|
|
38446
|
-
|
|
38454
|
+
useEffect39(() => {
|
|
38447
38455
|
if (vendor && billsToPay.length === 0) {
|
|
38448
38456
|
setVendor(void 0);
|
|
38449
38457
|
}
|
|
@@ -38512,7 +38520,7 @@ var useBillsRecordPayment = ({ refetchAllBills }) => {
|
|
|
38512
38520
|
setBillsToPay([{ bill, amount: (_b = convertFromCents((_a = bill.outstanding_balance) != null ? _a : 0)) == null ? void 0 : _b.toString() }]);
|
|
38513
38521
|
setShowRecordPaymentForm(true);
|
|
38514
38522
|
};
|
|
38515
|
-
const payload =
|
|
38523
|
+
const payload = useMemo78(() => {
|
|
38516
38524
|
const filteredBillsToPay = billsToPay.filter((item) => {
|
|
38517
38525
|
var _a;
|
|
38518
38526
|
return item.amount && ((_a = item.bill) == null ? void 0 : _a.id);
|
|
@@ -38844,17 +38852,17 @@ var useBillForm = (bill) => {
|
|
|
38844
38852
|
import { formatISO as formatISO4, parseISO as parseISO18 } from "date-fns";
|
|
38845
38853
|
|
|
38846
38854
|
// src/components/Bills/BillsPaymentRecorded.tsx
|
|
38847
|
-
import { useMemo as
|
|
38855
|
+
import { useMemo as useMemo79 } from "react";
|
|
38848
38856
|
|
|
38849
38857
|
// src/components/Input/StaticValue.tsx
|
|
38850
|
-
import
|
|
38858
|
+
import classNames89 from "classnames";
|
|
38851
38859
|
import { jsx as jsx323 } from "react/jsx-runtime";
|
|
38852
38860
|
var StaticValue = (props) => {
|
|
38853
38861
|
var _a;
|
|
38854
38862
|
return /* @__PURE__ */ jsx323(
|
|
38855
38863
|
Text,
|
|
38856
38864
|
__spreadValues({
|
|
38857
|
-
className:
|
|
38865
|
+
className: classNames89(
|
|
38858
38866
|
"Layer__input--static-value",
|
|
38859
38867
|
(_a = props.className) != null ? _a : ""
|
|
38860
38868
|
)
|
|
@@ -38890,11 +38898,11 @@ var BillsPaymentRecorded = ({
|
|
|
38890
38898
|
vendor,
|
|
38891
38899
|
payRemainingBalance
|
|
38892
38900
|
} = useBillsRecordPaymentContext();
|
|
38893
|
-
const totalPaid =
|
|
38901
|
+
const totalPaid = useMemo79(
|
|
38894
38902
|
() => billsToPay.reduce((acc, record) => acc + (record.amount !== void 0 ? Number(record.amount) : 0), 0),
|
|
38895
38903
|
[billsToPay]
|
|
38896
38904
|
);
|
|
38897
|
-
const anyUnpaid =
|
|
38905
|
+
const anyUnpaid = useMemo79(
|
|
38898
38906
|
() => billsToPay.some((record) => {
|
|
38899
38907
|
var _a2;
|
|
38900
38908
|
return ((_a2 = record.bill) == null ? void 0 : _a2.status) !== "PAID";
|
|
@@ -38951,7 +38959,7 @@ var BillsPaymentRecorded = ({
|
|
|
38951
38959
|
};
|
|
38952
38960
|
|
|
38953
38961
|
// src/components/Bills/BillsRecordPayment.tsx
|
|
38954
|
-
import { useMemo as
|
|
38962
|
+
import { useMemo as useMemo80 } from "react";
|
|
38955
38963
|
import { parseISO as parseISO16, format as formatTime13 } from "date-fns";
|
|
38956
38964
|
|
|
38957
38965
|
// src/components/Bills/useUnpaidBillsByVendor.ts
|
|
@@ -39034,7 +39042,7 @@ var BillsRecordPayment = ({
|
|
|
39034
39042
|
apiError
|
|
39035
39043
|
} = useBillsRecordPaymentContext();
|
|
39036
39044
|
const { data: rawAvailableBills } = useUnpaidBillsByVendor({ vendorId: vendor == null ? void 0 : vendor.id });
|
|
39037
|
-
const availableBills =
|
|
39045
|
+
const availableBills = useMemo80(
|
|
39038
39046
|
() => rawAvailableBills == null ? void 0 : rawAvailableBills.filter((b) => !billsToPay.find((x) => {
|
|
39039
39047
|
var _a2;
|
|
39040
39048
|
return ((_a2 = x.bill) == null ? void 0 : _a2.id) === b.id;
|
|
@@ -39360,7 +39368,7 @@ var BillSummaryPaid = ({ bill }) => {
|
|
|
39360
39368
|
};
|
|
39361
39369
|
|
|
39362
39370
|
// src/components/Bills/BillSummaryUnpaid.tsx
|
|
39363
|
-
import { useMemo as
|
|
39371
|
+
import { useMemo as useMemo81 } from "react";
|
|
39364
39372
|
import { differenceInDays as differenceInDays2, parseISO as parseISO17 } from "date-fns";
|
|
39365
39373
|
import { jsx as jsx330, jsxs as jsxs206 } from "react/jsx-runtime";
|
|
39366
39374
|
function buildDifference(due_at) {
|
|
@@ -39388,7 +39396,7 @@ function buildDifference(due_at) {
|
|
|
39388
39396
|
};
|
|
39389
39397
|
}
|
|
39390
39398
|
var BillSummaryUnpaid = ({ bill }) => {
|
|
39391
|
-
const difference =
|
|
39399
|
+
const difference = useMemo81(() => buildDifference(bill.due_at), [bill.due_at]);
|
|
39392
39400
|
return /* @__PURE__ */ jsxs206("div", { className: "Layer__bill-details__summary", children: [
|
|
39393
39401
|
/* @__PURE__ */ jsxs206("div", { children: [
|
|
39394
39402
|
/* @__PURE__ */ jsx330(
|
|
@@ -39780,13 +39788,13 @@ var BillsDetails = ({
|
|
|
39780
39788
|
};
|
|
39781
39789
|
|
|
39782
39790
|
// src/components/Bills/BillsTableWithPanel.tsx
|
|
39783
|
-
import { useMemo as
|
|
39791
|
+
import { useMemo as useMemo83 } from "react";
|
|
39784
39792
|
|
|
39785
39793
|
// src/components/Bills/BillsTable.tsx
|
|
39786
39794
|
import { Fragment as Fragment54 } from "react";
|
|
39787
39795
|
|
|
39788
39796
|
// src/components/DueStatus/DueStatus.tsx
|
|
39789
|
-
import { useMemo as
|
|
39797
|
+
import { useMemo as useMemo82 } from "react";
|
|
39790
39798
|
import { parseISO as parseISO19, differenceInDays as differenceInDays3 } from "date-fns";
|
|
39791
39799
|
import { jsx as jsx333, jsxs as jsxs208 } from "react/jsx-runtime";
|
|
39792
39800
|
var dueStatusTitle = (daysDiff, paid) => {
|
|
@@ -39851,7 +39859,7 @@ var getDiff = (refDate) => {
|
|
|
39851
39859
|
return differenceInDays3(today3, d);
|
|
39852
39860
|
};
|
|
39853
39861
|
var DueStatus = ({ dueDate, paidAt, size = "md" }) => {
|
|
39854
|
-
const date =
|
|
39862
|
+
const date = useMemo82(() => {
|
|
39855
39863
|
try {
|
|
39856
39864
|
const diff = getDiff(paidAt ? paidAt : dueDate);
|
|
39857
39865
|
if (diff === null) {
|
|
@@ -39881,7 +39889,7 @@ var DueStatus = ({ dueDate, paidAt, size = "md" }) => {
|
|
|
39881
39889
|
};
|
|
39882
39890
|
|
|
39883
39891
|
// src/components/Bills/BillsTable.tsx
|
|
39884
|
-
import
|
|
39892
|
+
import classNames90 from "classnames";
|
|
39885
39893
|
|
|
39886
39894
|
// src/components/Bills/BillsTableLoader.tsx
|
|
39887
39895
|
import { jsx as jsx334 } from "react/jsx-runtime";
|
|
@@ -39943,7 +39951,7 @@ var BillsTableContent = ({
|
|
|
39943
39951
|
addBill(entry);
|
|
39944
39952
|
setShowRecordPaymentForm(true);
|
|
39945
39953
|
};
|
|
39946
|
-
const actionsColClassName =
|
|
39954
|
+
const actionsColClassName = classNames90(
|
|
39947
39955
|
"Layer__bills-table__actions-col",
|
|
39948
39956
|
status === "PAID" ? "Layer__bills-table__actions-col--narrow" : ""
|
|
39949
39957
|
);
|
|
@@ -40013,7 +40021,7 @@ var BillsTableContent = ({
|
|
|
40013
40021
|
};
|
|
40014
40022
|
|
|
40015
40023
|
// src/components/Bills/BillsList.tsx
|
|
40016
|
-
import
|
|
40024
|
+
import classNames91 from "classnames";
|
|
40017
40025
|
import { Fragment as Fragment55, jsx as jsx336, jsxs as jsxs210 } from "react/jsx-runtime";
|
|
40018
40026
|
var BillsList = ({
|
|
40019
40027
|
stringOverrides
|
|
@@ -40067,7 +40075,7 @@ var BillsListItem = ({
|
|
|
40067
40075
|
}
|
|
40068
40076
|
removeBill(bill);
|
|
40069
40077
|
};
|
|
40070
|
-
const liClassName =
|
|
40078
|
+
const liClassName = classNames91(
|
|
40071
40079
|
"Layer__bills-list-item",
|
|
40072
40080
|
showComponent ? "Layer__bills-list-item--show" : ""
|
|
40073
40081
|
);
|
|
@@ -40179,11 +40187,11 @@ var BillsTableWithPanel = ({
|
|
|
40179
40187
|
setVendor: setRecordPaymentVendor
|
|
40180
40188
|
} = useBillsRecordPaymentContext();
|
|
40181
40189
|
const { isDesktop, isMobile } = useSizeClass();
|
|
40182
|
-
const totalCount =
|
|
40190
|
+
const totalCount = useMemo83(() => {
|
|
40183
40191
|
var _a;
|
|
40184
40192
|
return (_a = rawData == null ? void 0 : rawData.length) != null ? _a : 0;
|
|
40185
40193
|
}, [rawData]);
|
|
40186
|
-
const anyBillToPaySelected =
|
|
40194
|
+
const anyBillToPaySelected = useMemo83(() => {
|
|
40187
40195
|
return billsToPay.length > 0;
|
|
40188
40196
|
}, [billsToPay]);
|
|
40189
40197
|
return /* @__PURE__ */ jsxs211(
|
|
@@ -40572,11 +40580,11 @@ var Components = ({
|
|
|
40572
40580
|
};
|
|
40573
40581
|
|
|
40574
40582
|
// src/providers/InvoiceStore/InvoiceStoreProvider.tsx
|
|
40575
|
-
import { useState as useState86, createContext as createContext27, useContext as useContext62, useMemo as
|
|
40583
|
+
import { useState as useState86, createContext as createContext27, useContext as useContext62, useMemo as useMemo87 } from "react";
|
|
40576
40584
|
import { createStore as createStore4, useStore as useStore7 } from "zustand";
|
|
40577
40585
|
|
|
40578
40586
|
// src/components/Invoices/InvoiceTable/InvoiceTable.tsx
|
|
40579
|
-
import { useCallback as useCallback70, useEffect as
|
|
40587
|
+
import { useCallback as useCallback70, useEffect as useEffect40, useMemo as useMemo86 } from "react";
|
|
40580
40588
|
|
|
40581
40589
|
// src/features/invoices/api/useListInvoices.tsx
|
|
40582
40590
|
import useSWRInfinite7 from "swr/infinite";
|
|
@@ -41149,7 +41157,7 @@ import {
|
|
|
41149
41157
|
} from "@tanstack/react-table";
|
|
41150
41158
|
|
|
41151
41159
|
// src/components/DataTable/DataTable.tsx
|
|
41152
|
-
import { useMemo as
|
|
41160
|
+
import { useMemo as useMemo84 } from "react";
|
|
41153
41161
|
import { jsx as jsx344, jsxs as jsxs215 } from "react/jsx-runtime";
|
|
41154
41162
|
var DataTable = ({
|
|
41155
41163
|
columnConfig,
|
|
@@ -41163,15 +41171,15 @@ var DataTable = ({
|
|
|
41163
41171
|
const columns = Object.values(columnConfig);
|
|
41164
41172
|
const { EmptyState: EmptyState2, ErrorState: ErrorState2 } = slots;
|
|
41165
41173
|
const isEmptyTable = (data == null ? void 0 : data.length) === 0;
|
|
41166
|
-
const renderTableBody =
|
|
41174
|
+
const renderTableBody = useMemo84(() => {
|
|
41167
41175
|
if (isError) {
|
|
41168
|
-
return /* @__PURE__ */ jsx344(Row2, { children: /* @__PURE__ */ jsx344(Cell3, { colSpan: columns.length, children: /* @__PURE__ */ jsx344(ErrorState2, {}) }) });
|
|
41176
|
+
return /* @__PURE__ */ jsx344(Row2, { className: "Layer__DataTable__EmptyState__Row", children: /* @__PURE__ */ jsx344(Cell3, { className: "Layer__DataTable__EmptyState__Cell", colSpan: columns.length, children: /* @__PURE__ */ jsx344(ErrorState2, {}) }) });
|
|
41169
41177
|
}
|
|
41170
41178
|
if (isLoading) {
|
|
41171
|
-
return /* @__PURE__ */ jsx344(Row2, { children: /* @__PURE__ */ jsx344(Cell3, { colSpan: columns.length, children: /* @__PURE__ */ jsx344(Loader2, {}) }) });
|
|
41179
|
+
return /* @__PURE__ */ jsx344(Row2, { className: "Layer__DataTable__EmptyState__Row", children: /* @__PURE__ */ jsx344(Cell3, { className: "Layer__DataTable__EmptyState__Cell", colSpan: columns.length, children: /* @__PURE__ */ jsx344(Loader2, {}) }) });
|
|
41172
41180
|
}
|
|
41173
41181
|
if (isEmptyTable) {
|
|
41174
|
-
return /* @__PURE__ */ jsx344(Row2, { children: /* @__PURE__ */ jsx344(Cell3, { colSpan: columns.length, children: /* @__PURE__ */ jsx344(EmptyState2, {}) }) });
|
|
41182
|
+
return /* @__PURE__ */ jsx344(Row2, { className: "Layer__DataTable__EmptyState__Row", children: /* @__PURE__ */ jsx344(Cell3, { className: "Layer__DataTable__EmptyState__Cell", colSpan: columns.length, children: /* @__PURE__ */ jsx344(EmptyState2, {}) }) });
|
|
41175
41183
|
}
|
|
41176
41184
|
const RowRenderer = (row) => /* @__PURE__ */ jsx344(Row2, { children: columns.map((col) => /* @__PURE__ */ jsx344(
|
|
41177
41185
|
Cell3,
|
|
@@ -41191,7 +41199,7 @@ var DataTable = ({
|
|
|
41191
41199
|
};
|
|
41192
41200
|
|
|
41193
41201
|
// src/components/DataTable/PaginatedTable.tsx
|
|
41194
|
-
import { useCallback as useCallback69, useMemo as
|
|
41202
|
+
import { useCallback as useCallback69, useMemo as useMemo85, useState as useState85 } from "react";
|
|
41195
41203
|
import { jsx as jsx345, jsxs as jsxs216 } from "react/jsx-runtime";
|
|
41196
41204
|
var EMPTY_ARRAY2 = [];
|
|
41197
41205
|
function PaginatedTable({
|
|
@@ -41225,7 +41233,7 @@ function PaginatedTable({
|
|
|
41225
41233
|
autoResetPageIndex: false
|
|
41226
41234
|
});
|
|
41227
41235
|
const { rows } = table2.getRowModel();
|
|
41228
|
-
const rowData =
|
|
41236
|
+
const rowData = useMemo85(() => rows.map((r) => r.original), [rows]);
|
|
41229
41237
|
const onPageChange = useCallback69((page) => {
|
|
41230
41238
|
table2.setPageIndex(page - 1);
|
|
41231
41239
|
}, [table2]);
|
|
@@ -41390,6 +41398,12 @@ var InvoiceStatusCell = ({ invoice, inline = false }) => {
|
|
|
41390
41398
|
] });
|
|
41391
41399
|
};
|
|
41392
41400
|
|
|
41401
|
+
// src/features/customers/util.ts
|
|
41402
|
+
function getCustomerName(customer) {
|
|
41403
|
+
var _a, _b;
|
|
41404
|
+
return (_b = (_a = customer == null ? void 0 : customer.individualName) != null ? _a : customer == null ? void 0 : customer.companyName) != null ? _b : "Unknown Customer";
|
|
41405
|
+
}
|
|
41406
|
+
|
|
41393
41407
|
// src/components/Invoices/InvoiceTable/InvoiceTable.tsx
|
|
41394
41408
|
import { jsx as jsx349, jsxs as jsxs220 } from "react/jsx-runtime";
|
|
41395
41409
|
var COMPONENT_NAME11 = "InvoiceTable";
|
|
@@ -41414,7 +41428,7 @@ var AmountCell = ({ invoice }) => {
|
|
|
41414
41428
|
case "VOIDED" /* Voided */:
|
|
41415
41429
|
case "REFUNDED" /* Refunded */:
|
|
41416
41430
|
case "SENT" /* Sent */: {
|
|
41417
|
-
return /* @__PURE__ */ jsx349(
|
|
41431
|
+
return /* @__PURE__ */ jsx349(Span, { align: "right", children: totalAmount });
|
|
41418
41432
|
}
|
|
41419
41433
|
case "PARTIALLY_PAID" /* PartiallyPaid */: {
|
|
41420
41434
|
return /* @__PURE__ */ jsxs220(VStack, { children: [
|
|
@@ -41434,10 +41448,6 @@ var AmountCell = ({ invoice }) => {
|
|
|
41434
41448
|
}
|
|
41435
41449
|
}
|
|
41436
41450
|
};
|
|
41437
|
-
var getCustomerName = (invoice) => {
|
|
41438
|
-
const { recipientName, customer } = invoice;
|
|
41439
|
-
return (customer == null ? void 0 : customer.individualName) || (customer == null ? void 0 : customer.companyName) || recipientName;
|
|
41440
|
-
};
|
|
41441
41451
|
var getColumnConfig = (onSelectInvoice) => ({
|
|
41442
41452
|
["SentAt" /* SentAt */]: {
|
|
41443
41453
|
id: "SentAt" /* SentAt */,
|
|
@@ -41447,13 +41457,13 @@ var getColumnConfig = (onSelectInvoice) => ({
|
|
|
41447
41457
|
["InvoiceNo" /* InvoiceNo */]: {
|
|
41448
41458
|
id: "InvoiceNo" /* InvoiceNo */,
|
|
41449
41459
|
header: "No.",
|
|
41450
|
-
cell: (row) => row.invoiceNumber,
|
|
41460
|
+
cell: (row) => /* @__PURE__ */ jsx349(Span, { ellipsis: true, children: row.invoiceNumber }),
|
|
41451
41461
|
isRowHeader: true
|
|
41452
41462
|
},
|
|
41453
41463
|
["Customer" /* Customer */]: {
|
|
41454
41464
|
id: "Customer" /* Customer */,
|
|
41455
41465
|
header: "Customer",
|
|
41456
|
-
cell: (row) => getCustomerName(row)
|
|
41466
|
+
cell: (row) => /* @__PURE__ */ jsx349(Span, { ellipsis: true, children: getCustomerName(row.customer) })
|
|
41457
41467
|
},
|
|
41458
41468
|
["Total" /* Total */]: {
|
|
41459
41469
|
id: "Total" /* Total */,
|
|
@@ -41505,10 +41515,10 @@ var InvoiceTable = () => {
|
|
|
41505
41515
|
const { tableFilters, setTableFilters } = useInvoiceTableFilters();
|
|
41506
41516
|
const { status: selectedInvoiceStatusOption, query } = tableFilters;
|
|
41507
41517
|
const { inputValue, searchQuery, handleInputChange } = useDebouncedSearchInput({ initialInputState: query });
|
|
41508
|
-
|
|
41518
|
+
useEffect40(() => {
|
|
41509
41519
|
setTableFilters({ query: searchQuery });
|
|
41510
41520
|
}, [searchQuery, setTableFilters]);
|
|
41511
|
-
const listInvoiceParams =
|
|
41521
|
+
const listInvoiceParams = useMemo86(
|
|
41512
41522
|
() => getListInvoiceParams(tableFilters),
|
|
41513
41523
|
[tableFilters]
|
|
41514
41524
|
);
|
|
@@ -41521,15 +41531,15 @@ var InvoiceTable = () => {
|
|
|
41521
41531
|
void setSize(size + 1);
|
|
41522
41532
|
}
|
|
41523
41533
|
}, [hasMore, setSize, size]);
|
|
41524
|
-
const paginationProps =
|
|
41534
|
+
const paginationProps = useMemo86(() => {
|
|
41525
41535
|
return {
|
|
41526
41536
|
pageSize: 10,
|
|
41527
41537
|
hasMore,
|
|
41528
41538
|
fetchMore
|
|
41529
41539
|
};
|
|
41530
41540
|
}, [fetchMore, hasMore]);
|
|
41531
|
-
const options3 =
|
|
41532
|
-
const SelectedValue =
|
|
41541
|
+
const options3 = useMemo86(() => Object.values(InvoiceStatusOptionConfig), []);
|
|
41542
|
+
const SelectedValue = useMemo86(() => {
|
|
41533
41543
|
const label = selectedInvoiceStatusOption.label;
|
|
41534
41544
|
return label ? `Status: ${label}` : "Status";
|
|
41535
41545
|
}, [selectedInvoiceStatusOption.label]);
|
|
@@ -41582,7 +41592,7 @@ var InvoiceTable = () => {
|
|
|
41582
41592
|
spacing: true
|
|
41583
41593
|
}
|
|
41584
41594
|
), [refetch]);
|
|
41585
|
-
const columnConfig =
|
|
41595
|
+
const columnConfig = useMemo86(() => getColumnConfig(toViewInvoice), [toViewInvoice]);
|
|
41586
41596
|
return /* @__PURE__ */ jsxs220(Container, { name: "InvoiceTable", children: [
|
|
41587
41597
|
/* @__PURE__ */ jsx349(
|
|
41588
41598
|
DataTableHeader,
|
|
@@ -41846,7 +41856,7 @@ function useInvoiceTableFilters() {
|
|
|
41846
41856
|
const store = useContext62(InvoiceStoreContext);
|
|
41847
41857
|
const tableFilters = useStore7(store, (state) => state.tableFilters);
|
|
41848
41858
|
const setTableFilters = useStore7(store, (state) => state.setTableFilters);
|
|
41849
|
-
return
|
|
41859
|
+
return useMemo87(() => ({ tableFilters, setTableFilters }), [tableFilters, setTableFilters]);
|
|
41850
41860
|
}
|
|
41851
41861
|
function useInvoiceNavigation() {
|
|
41852
41862
|
const store = useContext62(InvoiceStoreContext);
|
|
@@ -41894,14 +41904,14 @@ function InvoiceStoreProvider(props) {
|
|
|
41894
41904
|
}
|
|
41895
41905
|
|
|
41896
41906
|
// src/components/Invoices/InvoiceDetail/InvoiceDetail.tsx
|
|
41897
|
-
import { useCallback as useCallback91, useMemo as
|
|
41907
|
+
import { useCallback as useCallback91, useMemo as useMemo93, useRef as useRef36, useState as useState91 } from "react";
|
|
41898
41908
|
|
|
41899
41909
|
// src/components/Invoices/InvoiceForm/InvoiceForm.tsx
|
|
41900
|
-
import { forwardRef as forwardRef27, useCallback as useCallback75, useEffect as
|
|
41901
|
-
import
|
|
41910
|
+
import { forwardRef as forwardRef27, useCallback as useCallback75, useEffect as useEffect41, useImperativeHandle as useImperativeHandle4, useRef as useRef32 } from "react";
|
|
41911
|
+
import classNames93 from "classnames";
|
|
41902
41912
|
|
|
41903
41913
|
// src/components/Invoices/InvoiceForm/useInvoiceForm.ts
|
|
41904
|
-
import { useCallback as useCallback73, useMemo as
|
|
41914
|
+
import { useCallback as useCallback73, useMemo as useMemo88, useState as useState87, useRef as useRef31 } from "react";
|
|
41905
41915
|
import { useStore as useStore8, revalidateLogic } from "@tanstack/react-form";
|
|
41906
41916
|
import { Schema as Schema23 } from "effect";
|
|
41907
41917
|
|
|
@@ -42077,19 +42087,14 @@ var convertInvoiceFormToParams = (form) => {
|
|
|
42077
42087
|
unitPrice: convertBigDecimalToCents(item.unitPrice),
|
|
42078
42088
|
quantity: item.quantity
|
|
42079
42089
|
};
|
|
42080
|
-
|
|
42081
|
-
|
|
42082
|
-
|
|
42083
|
-
|
|
42084
|
-
BD5.multiply(item.amount, form.taxRate)
|
|
42085
|
-
)
|
|
42086
|
-
}
|
|
42087
|
-
]
|
|
42088
|
-
}) : baseLineItem;
|
|
42090
|
+
if (!item.isTaxable || BD5.equals(form.taxRate, BIG_DECIMAL_ZERO)) return baseLineItem;
|
|
42091
|
+
const itemTaxableSubtotal = computeTaxableSubtotal({ rawTaxableSubtotal: item.amount, discountRate: form.discountRate });
|
|
42092
|
+
const itemTaxes = computeTaxes({ taxableSubtotal: itemTaxableSubtotal, taxRate: form.taxRate });
|
|
42093
|
+
return __spreadProps(__spreadValues({}, baseLineItem), { salesTaxes: [{ amount: convertBigDecimalToCents(itemTaxes) }] });
|
|
42089
42094
|
})
|
|
42090
42095
|
}, !BD5.equals(form.discountRate, BIG_DECIMAL_ZERO) && {
|
|
42091
42096
|
additionalDiscount: convertBigDecimalToCents(
|
|
42092
|
-
|
|
42097
|
+
computeAdditionalDiscount({ subtotal: computeSubtotal(form.lineItems), discountRate: form.discountRate })
|
|
42093
42098
|
)
|
|
42094
42099
|
});
|
|
42095
42100
|
};
|
|
@@ -42119,7 +42124,7 @@ var useInvoiceForm = (props) => {
|
|
|
42119
42124
|
setSubmitError("Something went wrong. Please try again.");
|
|
42120
42125
|
}
|
|
42121
42126
|
}), [onSuccess, upsertInvoice]);
|
|
42122
|
-
const validators =
|
|
42127
|
+
const validators = useMemo88(() => ({
|
|
42123
42128
|
onDynamic: validateInvoiceForm
|
|
42124
42129
|
}), []);
|
|
42125
42130
|
const form = useAppForm({
|
|
@@ -42134,7 +42139,7 @@ var useInvoiceForm = (props) => {
|
|
|
42134
42139
|
});
|
|
42135
42140
|
const isDirty = useStore8(form.store, (state) => state.isDirty);
|
|
42136
42141
|
const isSubmitting = useStore8(form.store, (state) => state.isSubmitting);
|
|
42137
|
-
const formState =
|
|
42142
|
+
const formState = useMemo88(() => ({
|
|
42138
42143
|
isDirty,
|
|
42139
42144
|
isSubmitting
|
|
42140
42145
|
}), [isDirty, isSubmitting]);
|
|
@@ -42147,30 +42152,30 @@ var useInvoiceForm = (props) => {
|
|
|
42147
42152
|
rawTaxableSubtotal: computeRawTaxableSubtotal(lineItems)
|
|
42148
42153
|
};
|
|
42149
42154
|
});
|
|
42150
|
-
const additionalDiscount =
|
|
42155
|
+
const additionalDiscount = useMemo88(
|
|
42151
42156
|
() => computeAdditionalDiscount({ subtotal, discountRate }),
|
|
42152
42157
|
[subtotal, discountRate]
|
|
42153
42158
|
);
|
|
42154
|
-
const taxableSubtotal =
|
|
42159
|
+
const taxableSubtotal = useMemo88(
|
|
42155
42160
|
() => computeTaxableSubtotal({ rawTaxableSubtotal, discountRate }),
|
|
42156
42161
|
[rawTaxableSubtotal, discountRate]
|
|
42157
42162
|
);
|
|
42158
|
-
const taxes =
|
|
42163
|
+
const taxes = useMemo88(
|
|
42159
42164
|
() => computeTaxes({ taxableSubtotal, taxRate }),
|
|
42160
42165
|
[taxableSubtotal, taxRate]
|
|
42161
42166
|
);
|
|
42162
|
-
const grandTotal =
|
|
42167
|
+
const grandTotal = useMemo88(
|
|
42163
42168
|
() => computeGrandTotal({ subtotal, additionalDiscount, taxes }),
|
|
42164
42169
|
[subtotal, additionalDiscount, taxes]
|
|
42165
42170
|
);
|
|
42166
|
-
const totals =
|
|
42171
|
+
const totals = useMemo88(() => ({
|
|
42167
42172
|
subtotal,
|
|
42168
42173
|
additionalDiscount,
|
|
42169
42174
|
taxableSubtotal,
|
|
42170
42175
|
taxes,
|
|
42171
42176
|
grandTotal
|
|
42172
42177
|
}), [additionalDiscount, grandTotal, subtotal, taxableSubtotal, taxes]);
|
|
42173
|
-
return
|
|
42178
|
+
return useMemo88(
|
|
42174
42179
|
() => ({ form, formState, totals, submitError }),
|
|
42175
42180
|
[form, formState, totals, submitError]
|
|
42176
42181
|
);
|
|
@@ -42181,13 +42186,9 @@ import { Plus as Plus3, Trash as Trash3 } from "lucide-react";
|
|
|
42181
42186
|
import { BigDecimal as BD6 } from "effect";
|
|
42182
42187
|
|
|
42183
42188
|
// src/features/customers/components/CustomerSelector.tsx
|
|
42184
|
-
import { useCallback as useCallback74, useId as useId6, useMemo as
|
|
42185
|
-
import
|
|
42189
|
+
import { useCallback as useCallback74, useId as useId6, useMemo as useMemo89 } from "react";
|
|
42190
|
+
import classNames92 from "classnames";
|
|
42186
42191
|
import { jsx as jsx351, jsxs as jsxs221 } from "react/jsx-runtime";
|
|
42187
|
-
function getCustomerName2(customer) {
|
|
42188
|
-
var _a, _b, _c;
|
|
42189
|
-
return (_c = (_b = (_a = customer.individualName) != null ? _a : customer.companyName) != null ? _b : customer.externalId) != null ? _c : "Unknown Customer";
|
|
42190
|
-
}
|
|
42191
42192
|
var CustomerAsOption = class {
|
|
42192
42193
|
constructor(customer) {
|
|
42193
42194
|
__publicField(this, "internalCustomer");
|
|
@@ -42197,7 +42198,7 @@ var CustomerAsOption = class {
|
|
|
42197
42198
|
return this.internalCustomer;
|
|
42198
42199
|
}
|
|
42199
42200
|
get label() {
|
|
42200
|
-
return
|
|
42201
|
+
return getCustomerName(this.internalCustomer);
|
|
42201
42202
|
}
|
|
42202
42203
|
get id() {
|
|
42203
42204
|
return this.internalCustomer.id;
|
|
@@ -42214,7 +42215,7 @@ function CustomerSelector({
|
|
|
42214
42215
|
inline,
|
|
42215
42216
|
className
|
|
42216
42217
|
}) {
|
|
42217
|
-
const combinedClassName =
|
|
42218
|
+
const combinedClassName = classNames92(
|
|
42218
42219
|
"Layer__CustomerSelector",
|
|
42219
42220
|
inline && "Layer__CustomerSelector--inline",
|
|
42220
42221
|
className
|
|
@@ -42224,7 +42225,7 @@ function CustomerSelector({
|
|
|
42224
42225
|
});
|
|
42225
42226
|
const effectiveSearchQuery = searchQuery === "" ? void 0 : searchQuery;
|
|
42226
42227
|
const { data, isLoading, isError } = useListCustomers({ query: effectiveSearchQuery });
|
|
42227
|
-
const options3 =
|
|
42228
|
+
const options3 = useMemo89(
|
|
42228
42229
|
() => (data == null ? void 0 : data.flatMap(({ data: data2 }) => data2).map((customer) => new CustomerAsOption(customer))) || [],
|
|
42229
42230
|
[data]
|
|
42230
42231
|
);
|
|
@@ -42250,23 +42251,23 @@ function CustomerSelector({
|
|
|
42250
42251
|
},
|
|
42251
42252
|
[options3, handleInputChange, selectedCustomerId, onSelectedCustomerChange]
|
|
42252
42253
|
);
|
|
42253
|
-
const selectedCustomerForComboBox =
|
|
42254
|
+
const selectedCustomerForComboBox = useMemo89(
|
|
42254
42255
|
() => {
|
|
42255
42256
|
if (selectedCustomer === null) {
|
|
42256
42257
|
return null;
|
|
42257
42258
|
}
|
|
42258
42259
|
return {
|
|
42259
|
-
label:
|
|
42260
|
+
label: getCustomerName(selectedCustomer),
|
|
42260
42261
|
value: selectedCustomer.id
|
|
42261
42262
|
};
|
|
42262
42263
|
},
|
|
42263
42264
|
[selectedCustomer]
|
|
42264
42265
|
);
|
|
42265
|
-
const EmptyMessage =
|
|
42266
|
+
const EmptyMessage = useMemo89(
|
|
42266
42267
|
() => /* @__PURE__ */ jsx351(P, { variant: "subtle", children: "No matching customer" }),
|
|
42267
42268
|
[]
|
|
42268
42269
|
);
|
|
42269
|
-
const ErrorMessage =
|
|
42270
|
+
const ErrorMessage = useMemo89(
|
|
42270
42271
|
() => /* @__PURE__ */ jsx351(
|
|
42271
42272
|
P,
|
|
42272
42273
|
{
|
|
@@ -42309,7 +42310,7 @@ var INVOICE_FORM_CSS_PREFIX = "Layer__InvoiceForm";
|
|
|
42309
42310
|
var INVOICE_FORM_FIELD_CSS_PREFIX = `${INVOICE_FORM_CSS_PREFIX}__Field`;
|
|
42310
42311
|
var getDueAtChanged = (dueAt, previousDueAt) => dueAt === null && previousDueAt !== null || dueAt !== null && previousDueAt === null || dueAt !== null && previousDueAt !== null && toCalendarDate2(dueAt).compare(toCalendarDate2(previousDueAt)) !== 0;
|
|
42311
42312
|
var InvoiceFormTotalRow = ({ label, value, children }) => {
|
|
42312
|
-
const className =
|
|
42313
|
+
const className = classNames93(
|
|
42313
42314
|
`${INVOICE_FORM_CSS_PREFIX}__TotalRow`,
|
|
42314
42315
|
children && `${INVOICE_FORM_CSS_PREFIX}__TotalRow--withField`
|
|
42315
42316
|
);
|
|
@@ -42347,7 +42348,7 @@ var InvoiceForm = forwardRef27((props, ref) => {
|
|
|
42347
42348
|
useImperativeHandle4(ref, () => ({
|
|
42348
42349
|
submit: () => form.handleSubmit()
|
|
42349
42350
|
}));
|
|
42350
|
-
|
|
42351
|
+
useEffect41(() => {
|
|
42351
42352
|
onChangeFormState == null ? void 0 : onChangeFormState(formState);
|
|
42352
42353
|
}, [formState, onChangeFormState]);
|
|
42353
42354
|
return /* @__PURE__ */ jsxs222(Form, { className: INVOICE_FORM_CSS_PREFIX, onSubmit: blockNativeOnSubmit, children: [
|
|
@@ -42467,7 +42468,7 @@ var InvoiceForm = forwardRef27((props, ref) => {
|
|
|
42467
42468
|
{
|
|
42468
42469
|
gap: "xs",
|
|
42469
42470
|
align: "end",
|
|
42470
|
-
className:
|
|
42471
|
+
className: classNames93(`${INVOICE_FORM_CSS_PREFIX}__LineItem`, isReadOnly && `${INVOICE_FORM_CSS_PREFIX}__LineItem--readonly`),
|
|
42471
42472
|
children: [
|
|
42472
42473
|
/* @__PURE__ */ jsx352(form.AppField, { name: `lineItems[${index}].product`, children: (innerField) => /* @__PURE__ */ jsx352(innerField.FormTextField, { label: "Product/Service", showLabel: index === 0, isReadOnly }) }),
|
|
42473
42474
|
/* @__PURE__ */ jsx352(form.AppField, { name: `lineItems[${index}].description`, children: (innerField) => /* @__PURE__ */ jsx352(innerField.FormTextField, { label: "Description", showLabel: index === 0, isReadOnly }) }),
|
|
@@ -42566,7 +42567,7 @@ import { useCallback as useCallback79 } from "react";
|
|
|
42566
42567
|
import { AlertTriangle as AlertTriangle2 } from "lucide-react";
|
|
42567
42568
|
|
|
42568
42569
|
// src/components/Invoices/InvoicePaymentForm/useInvoicePaymentForm.ts
|
|
42569
|
-
import { useCallback as useCallback77, useMemo as
|
|
42570
|
+
import { useCallback as useCallback77, useMemo as useMemo90, useState as useState88, useRef as useRef33 } from "react";
|
|
42570
42571
|
import { revalidateLogic as revalidateLogic2 } from "@tanstack/react-form";
|
|
42571
42572
|
|
|
42572
42573
|
// src/features/invoices/api/useUpsertDedicatedInvoicePayment.tsx
|
|
@@ -42776,7 +42777,7 @@ var useInvoicePaymentForm = (props) => {
|
|
|
42776
42777
|
const onDynamic = useCallback77(({ value }) => {
|
|
42777
42778
|
return validateInvoicePaymentForm({ invoicePayment: value, invoice });
|
|
42778
42779
|
}, [invoice]);
|
|
42779
|
-
const validators =
|
|
42780
|
+
const validators = useMemo90(() => ({ onDynamic }), [onDynamic]);
|
|
42780
42781
|
const form = useAppForm({
|
|
42781
42782
|
defaultValues,
|
|
42782
42783
|
onSubmit,
|
|
@@ -42787,7 +42788,7 @@ var useInvoicePaymentForm = (props) => {
|
|
|
42787
42788
|
}),
|
|
42788
42789
|
canSubmitWhenInvalid: true
|
|
42789
42790
|
});
|
|
42790
|
-
return
|
|
42791
|
+
return useMemo90(
|
|
42791
42792
|
() => ({ form, submitError }),
|
|
42792
42793
|
[form, submitError]
|
|
42793
42794
|
);
|
|
@@ -42795,7 +42796,7 @@ var useInvoicePaymentForm = (props) => {
|
|
|
42795
42796
|
|
|
42796
42797
|
// src/components/PaymentMethod/PaymentMethodComboBox.tsx
|
|
42797
42798
|
import { useCallback as useCallback78, useId as useId7 } from "react";
|
|
42798
|
-
import
|
|
42799
|
+
import classNames94 from "classnames";
|
|
42799
42800
|
import { jsx as jsx354, jsxs as jsxs224 } from "react/jsx-runtime";
|
|
42800
42801
|
var PaymentMethodOptionConfig = {
|
|
42801
42802
|
["CASH" /* Cash */]: { label: "Cash", value: "CASH" /* Cash */ },
|
|
@@ -42806,7 +42807,7 @@ var PaymentMethodOptionConfig = {
|
|
|
42806
42807
|
};
|
|
42807
42808
|
var options2 = Object.values(PaymentMethodOptionConfig);
|
|
42808
42809
|
var PaymentMethodComboBox = ({ value, onValueChange, isReadOnly, className, inline }) => {
|
|
42809
|
-
const combinedClassName =
|
|
42810
|
+
const combinedClassName = classNames94(
|
|
42810
42811
|
"Layer__PaymentMethodComboBox",
|
|
42811
42812
|
inline && "Layer__PaymentMethodComboBox--inline",
|
|
42812
42813
|
className
|
|
@@ -42865,7 +42866,7 @@ var InvoicePaymentForm = (props) => {
|
|
|
42865
42866
|
/* @__PURE__ */ jsxs225(VStack, { className: `${INVOICE_PAYMENT_FORM_CSS_PREFIX}__Section`, gap: "sm", children: [
|
|
42866
42867
|
/* @__PURE__ */ jsxs225(HStack, { className: `${INVOICE_PAYMENT_FORM_FIELD_CSS_PREFIX}__InvoiceNo`, gap: "xs", align: "center", children: [
|
|
42867
42868
|
/* @__PURE__ */ jsx355(Span, { size: "sm", children: "Invoice" }),
|
|
42868
|
-
/* @__PURE__ */ jsxs225(Span, { size: "md", weight: "bold", children: [
|
|
42869
|
+
/* @__PURE__ */ jsxs225(Span, { size: "md", weight: "bold", ellipsis: true, children: [
|
|
42869
42870
|
"#",
|
|
42870
42871
|
invoice.invoiceNumber
|
|
42871
42872
|
] })
|
|
@@ -43312,14 +43313,14 @@ function InvoiceResetModal({ isOpen, onOpenChange, invoice, onSuccess }) {
|
|
|
43312
43313
|
}
|
|
43313
43314
|
|
|
43314
43315
|
// src/components/Invoices/Modal/InvoiceRefundModal.tsx
|
|
43315
|
-
import { useCallback as useCallback89, useMemo as
|
|
43316
|
+
import { useCallback as useCallback89, useMemo as useMemo92, useRef as useRef35 } from "react";
|
|
43316
43317
|
|
|
43317
43318
|
// src/components/Invoices/InvoiceRefundForm/InvoiceRefundForm.tsx
|
|
43318
43319
|
import { forwardRef as forwardRef28, useCallback as useCallback88, useImperativeHandle as useImperativeHandle5 } from "react";
|
|
43319
43320
|
import { AlertTriangle as AlertTriangle3 } from "lucide-react";
|
|
43320
43321
|
|
|
43321
43322
|
// src/components/Invoices/InvoiceRefundForm/useInvoiceRefundForm.ts
|
|
43322
|
-
import { useCallback as useCallback87, useMemo as
|
|
43323
|
+
import { useCallback as useCallback87, useMemo as useMemo91, useState as useState89, useRef as useRef34 } from "react";
|
|
43323
43324
|
import { revalidateLogic as revalidateLogic3 } from "@tanstack/react-form";
|
|
43324
43325
|
import { Schema as Schema32 } from "effect";
|
|
43325
43326
|
|
|
@@ -43538,7 +43539,7 @@ var useInvoiceRefundForm = ({ onSuccess, invoice }) => {
|
|
|
43538
43539
|
const onDynamic = useCallback87(({ value }) => {
|
|
43539
43540
|
return validateInvoiceRefundForm({ invoiceRefund: value, invoice });
|
|
43540
43541
|
}, [invoice]);
|
|
43541
|
-
const validators =
|
|
43542
|
+
const validators = useMemo91(() => ({ onDynamic }), [onDynamic]);
|
|
43542
43543
|
const form = useAppForm({
|
|
43543
43544
|
defaultValues,
|
|
43544
43545
|
onSubmit,
|
|
@@ -43549,7 +43550,7 @@ var useInvoiceRefundForm = ({ onSuccess, invoice }) => {
|
|
|
43549
43550
|
}),
|
|
43550
43551
|
canSubmitWhenInvalid: true
|
|
43551
43552
|
});
|
|
43552
|
-
return
|
|
43553
|
+
return useMemo91(
|
|
43553
43554
|
() => ({ form, submitError }),
|
|
43554
43555
|
[form, submitError]
|
|
43555
43556
|
);
|
|
@@ -43587,7 +43588,7 @@ var InvoiceRefundForm = forwardRef28(({ onSuccess, invoice }, ref) => {
|
|
|
43587
43588
|
/* @__PURE__ */ jsxs226(VStack, { className: `${INVOICE_REFUND_FORM_CSS_PREFIX}__Section`, gap: "sm", children: [
|
|
43588
43589
|
/* @__PURE__ */ jsxs226(HStack, { className: `${INVOICE_REFUND_FORM_FIELD_CSS_PREFIX}__InvoiceNo`, gap: "xs", align: "center", children: [
|
|
43589
43590
|
/* @__PURE__ */ jsx359(Span, { size: "sm", children: "Invoice" }),
|
|
43590
|
-
/* @__PURE__ */ jsxs226(Span, { size: "md", weight: "bold", children: [
|
|
43591
|
+
/* @__PURE__ */ jsxs226(Span, { size: "md", weight: "bold", ellipsis: true, children: [
|
|
43591
43592
|
"#",
|
|
43592
43593
|
invoice.invoiceNumber
|
|
43593
43594
|
] })
|
|
@@ -43620,7 +43621,7 @@ function InvoiceRefundModal({ isOpen, onOpenChange, invoice, onSuccess }) {
|
|
|
43620
43621
|
onSuccess(updateInvoiceWithRefund(invoice));
|
|
43621
43622
|
onOpenChange == null ? void 0 : onOpenChange(false);
|
|
43622
43623
|
}, [invoice, onOpenChange, onSuccess]);
|
|
43623
|
-
const content =
|
|
43624
|
+
const content = useMemo92(() => /* @__PURE__ */ jsx360(InvoiceRefundForm, { invoice, onSuccess: onSuccessForm, ref: formRef }), [invoice, onSuccessForm]);
|
|
43624
43625
|
return /* @__PURE__ */ jsx360(
|
|
43625
43626
|
BaseConfirmationModal,
|
|
43626
43627
|
{
|
|
@@ -43793,7 +43794,7 @@ var InvoiceDetail = () => {
|
|
|
43793
43794
|
}
|
|
43794
43795
|
}, [hasChanges, toInvoiceTable]);
|
|
43795
43796
|
return /* @__PURE__ */ jsxs228(Fragment60, { children: [
|
|
43796
|
-
/* @__PURE__ */ jsxs228(BaseDetailView, { slots: { Header: Header5, BackIcon: hasChanges ? X_default : BackArrow_default }, name: "
|
|
43797
|
+
/* @__PURE__ */ jsxs228(BaseDetailView, { slots: { Header: Header5, BackIcon: hasChanges ? X_default : BackArrow_default }, name: "InvoiceDetail", onGoBack, children: [
|
|
43797
43798
|
viewState.mode === "Update" /* Update */ && /* @__PURE__ */ jsx362(InvoiceDetailSubHeader, { invoice: viewState.invoice }),
|
|
43798
43799
|
/* @__PURE__ */ jsx362(
|
|
43799
43800
|
InvoiceForm,
|
|
@@ -43845,7 +43846,7 @@ var InvoiceDetailHeader = ({ onSubmit, formState, isReadOnly, setIsReadOnly, ope
|
|
|
43845
43846
|
const onEditInvoice = useCallback91(() => {
|
|
43846
43847
|
setIsReadOnly(false);
|
|
43847
43848
|
}, [setIsReadOnly]);
|
|
43848
|
-
const saveButton =
|
|
43849
|
+
const saveButton = useMemo93(() => /* @__PURE__ */ jsxs228(Button2, { isPending: isSubmitting, onPress: onSubmit, children: [
|
|
43849
43850
|
"Save",
|
|
43850
43851
|
/* @__PURE__ */ jsx362(Save2, { size: 14 })
|
|
43851
43852
|
] }), [isSubmitting, onSubmit]);
|
|
@@ -43859,7 +43860,7 @@ var InvoiceDetailHeader = ({ onSubmit, formState, isReadOnly, setIsReadOnly, ope
|
|
|
43859
43860
|
const headingContent = isReadOnly ? invoiceNumber ? `Invoice #${invoiceNumber}` : "View Invoice" : invoiceNumber ? `Editing Invoice #${invoiceNumber}` : "Editing Invoice";
|
|
43860
43861
|
const canMarkAsPaid = viewState.mode === "Update" /* Update */ && (viewState.invoice.status === "SENT" /* Sent */ || viewState.invoice.status === "PARTIALLY_PAID" /* PartiallyPaid */);
|
|
43861
43862
|
return /* @__PURE__ */ jsxs228(HStack, { justify: "space-between", align: "center", fluid: true, pie: "md", children: [
|
|
43862
|
-
/* @__PURE__ */ jsx362(Heading2, { children: headingContent }),
|
|
43863
|
+
/* @__PURE__ */ jsx362(Heading2, { className: "Layer__InvoiceDetail__Heading", ellipsis: true, children: headingContent }),
|
|
43863
43864
|
isReadOnly ? /* @__PURE__ */ jsxs228(HStack, { gap: "xs", children: [
|
|
43864
43865
|
canMarkAsPaid && /* @__PURE__ */ jsxs228(Button2, { onPress: openInvoicePaymentDrawer, children: [
|
|
43865
43866
|
"Mark as paid",
|
|
@@ -43881,16 +43882,16 @@ var InvoiceDetailSubHeader = ({ invoice }) => {
|
|
|
43881
43882
|
// src/components/ui/Meter/Meter.tsx
|
|
43882
43883
|
import { forwardRef as forwardRef29 } from "react";
|
|
43883
43884
|
import { Meter as ReactAriaMeter } from "react-aria-components";
|
|
43884
|
-
import
|
|
43885
|
+
import classNames95 from "classnames";
|
|
43885
43886
|
import { jsx as jsx363, jsxs as jsxs229 } from "react/jsx-runtime";
|
|
43886
43887
|
var getClassnameForSubComponent = (className, suffix) => {
|
|
43887
|
-
return
|
|
43888
|
+
return classNames95(`${METER_CLASS_NAME}__${suffix}`, className && `${className}__${suffix}`);
|
|
43888
43889
|
};
|
|
43889
43890
|
var METER_CLASS_NAME = "Layer__Meter";
|
|
43890
43891
|
var Meter = forwardRef29(
|
|
43891
43892
|
function Meter2(_a, ref) {
|
|
43892
43893
|
var _b = _a, { className, label, meterOnly } = _b, restProps = __objRest(_b, ["className", "label", "meterOnly"]);
|
|
43893
|
-
return /* @__PURE__ */ jsx363(ReactAriaMeter, __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, restProps), { className:
|
|
43894
|
+
return /* @__PURE__ */ jsx363(ReactAriaMeter, __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, restProps), { className: classNames95(METER_CLASS_NAME, className), ref }), meterOnly && { "aria-label": label }), { children: ({ percentage, valueText }) => /* @__PURE__ */ jsxs229(VStack, { gap: "3xs", fluid: true, children: [
|
|
43894
43895
|
!meterOnly && /* @__PURE__ */ jsxs229(HStack, { justify: "space-between", children: [
|
|
43895
43896
|
/* @__PURE__ */ jsx363(Label, { slot: "label", children: label }),
|
|
43896
43897
|
/* @__PURE__ */ jsx363(Span, { slot: "value", children: valueText })
|