@layerfi/components 0.1.39 → 0.1.40
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/esm/index.js +470 -317
- package/dist/esm/index.js.map +4 -4
- package/dist/index.d.ts +312 -36
- package/dist/index.js +548 -395
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4203,7 +4203,8 @@ var LinkedAccountsComponent = ({
|
|
|
4203
4203
|
elevated,
|
|
4204
4204
|
showLedgerBalance = true,
|
|
4205
4205
|
showUnlinkItem = false,
|
|
4206
|
-
showBreakConnection = false
|
|
4206
|
+
showBreakConnection = false,
|
|
4207
|
+
stringOverrides
|
|
4207
4208
|
}) => {
|
|
4208
4209
|
const { isLoading, error, isValidating, refetchAccounts } = (0, import_react49.useContext)(
|
|
4209
4210
|
LinkedAccountsContext
|
|
@@ -4214,7 +4215,7 @@ var LinkedAccountsComponent = ({
|
|
|
4214
4215
|
className: "Layer__linked-accounts__title",
|
|
4215
4216
|
size: "secondary" /* secondary */
|
|
4216
4217
|
},
|
|
4217
|
-
"Linked Accounts"
|
|
4218
|
+
stringOverrides?.title || "Linked Accounts"
|
|
4218
4219
|
)), isLoading && /* @__PURE__ */ import_react49.default.createElement("div", { className: "Layer__linked-accounts__loader-container" }, /* @__PURE__ */ import_react49.default.createElement(Loader2, null)), error && !isLoading ? /* @__PURE__ */ import_react49.default.createElement(
|
|
4219
4220
|
DataState,
|
|
4220
4221
|
{
|
|
@@ -4284,6 +4285,147 @@ var import_react72 = __toESM(require("react"));
|
|
|
4284
4285
|
// src/components/BankTransactionList/BankTransactionListItem.tsx
|
|
4285
4286
|
var import_react71 = __toESM(require("react"));
|
|
4286
4287
|
|
|
4288
|
+
// src/hooks/useProfitAndLoss/useProfitAndLossLTM.tsx
|
|
4289
|
+
var import_react51 = require("react");
|
|
4290
|
+
var import_date_fns4 = require("date-fns");
|
|
4291
|
+
var import_swr3 = __toESM(require("swr"));
|
|
4292
|
+
var buildDates = ({ currentDate }) => {
|
|
4293
|
+
return {
|
|
4294
|
+
startYear: (0, import_date_fns4.startOfMonth)(currentDate).getFullYear() - 1,
|
|
4295
|
+
startMonth: (0, import_date_fns4.startOfMonth)(currentDate).getMonth() + 1,
|
|
4296
|
+
endYear: (0, import_date_fns4.startOfMonth)(currentDate).getFullYear(),
|
|
4297
|
+
endMonth: (0, import_date_fns4.startOfMonth)(currentDate).getMonth() + 1
|
|
4298
|
+
};
|
|
4299
|
+
};
|
|
4300
|
+
var buildMonthsArray = (startDate, endDate) => {
|
|
4301
|
+
if (startDate >= endDate) {
|
|
4302
|
+
return [];
|
|
4303
|
+
}
|
|
4304
|
+
var dates = [];
|
|
4305
|
+
for (var d = startDate; d <= endDate; d.setMonth(d.getMonth() + 1)) {
|
|
4306
|
+
dates.push(new Date(d));
|
|
4307
|
+
}
|
|
4308
|
+
return dates;
|
|
4309
|
+
};
|
|
4310
|
+
var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
|
|
4311
|
+
currentDate: /* @__PURE__ */ new Date()
|
|
4312
|
+
}) => {
|
|
4313
|
+
const { businessId, auth, apiUrl, syncTimestamps, read, hasBeenTouched } = useLayerContext();
|
|
4314
|
+
const [date, setDate] = (0, import_react51.useState)(currentDate);
|
|
4315
|
+
const [loaded, setLoaded] = (0, import_react51.useState)("initial");
|
|
4316
|
+
const [data, setData] = (0, import_react51.useState)([]);
|
|
4317
|
+
const { startYear, startMonth, endYear, endMonth } = (0, import_react51.useMemo)(() => {
|
|
4318
|
+
return buildDates({ currentDate: date });
|
|
4319
|
+
}, [date, businessId, tagFilter, reportingBasis]);
|
|
4320
|
+
const {
|
|
4321
|
+
data: rawData,
|
|
4322
|
+
isLoading,
|
|
4323
|
+
isValidating,
|
|
4324
|
+
error,
|
|
4325
|
+
mutate
|
|
4326
|
+
} = (0, import_swr3.default)(
|
|
4327
|
+
businessId && Boolean(startYear) && Boolean(startMonth) && Boolean(endYear) && Boolean(endMonth) && auth?.access_token && `profit-and-loss-summaries-${businessId}-${startYear.toString()}-${startMonth.toString()}-${tagFilter?.key}-${tagFilter?.values?.join(
|
|
4328
|
+
","
|
|
4329
|
+
)}-${reportingBasis}`,
|
|
4330
|
+
Layer.getProfitAndLossSummaries(apiUrl, auth?.access_token, {
|
|
4331
|
+
params: {
|
|
4332
|
+
businessId,
|
|
4333
|
+
startYear: startYear.toString(),
|
|
4334
|
+
startMonth: startMonth.toString(),
|
|
4335
|
+
endYear: endYear.toString(),
|
|
4336
|
+
endMonth: endMonth.toString(),
|
|
4337
|
+
tagKey: tagFilter?.key,
|
|
4338
|
+
tagValues: tagFilter?.values?.join(","),
|
|
4339
|
+
reportingBasis
|
|
4340
|
+
}
|
|
4341
|
+
})
|
|
4342
|
+
);
|
|
4343
|
+
(0, import_react51.useEffect)(() => {
|
|
4344
|
+
const newData = data.slice();
|
|
4345
|
+
const newPeriod = buildMonthsArray((0, import_date_fns4.sub)(date, { years: 1 }), date);
|
|
4346
|
+
if (newData && newPeriod) {
|
|
4347
|
+
newPeriod.forEach((x) => {
|
|
4348
|
+
if (!newData?.find(
|
|
4349
|
+
(n) => x.getMonth() + 1 === n.month && x.getFullYear() === n.year
|
|
4350
|
+
)) {
|
|
4351
|
+
newData.push({
|
|
4352
|
+
year: x.getFullYear(),
|
|
4353
|
+
month: x.getMonth() + 1,
|
|
4354
|
+
income: 0,
|
|
4355
|
+
costOfGoodsSold: 0,
|
|
4356
|
+
grossProfit: 0,
|
|
4357
|
+
operatingExpenses: 0,
|
|
4358
|
+
profitBeforeTaxes: 0,
|
|
4359
|
+
taxes: 0,
|
|
4360
|
+
netProfit: 0,
|
|
4361
|
+
fullyCategorized: false,
|
|
4362
|
+
totalExpenses: 0,
|
|
4363
|
+
uncategorizedInflows: 0,
|
|
4364
|
+
uncategorizedOutflows: 0,
|
|
4365
|
+
uncategorized_transactions: 0,
|
|
4366
|
+
isLoading: true
|
|
4367
|
+
});
|
|
4368
|
+
}
|
|
4369
|
+
});
|
|
4370
|
+
}
|
|
4371
|
+
if (newData) {
|
|
4372
|
+
setData(
|
|
4373
|
+
newData.sort(
|
|
4374
|
+
(a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
|
|
4375
|
+
)
|
|
4376
|
+
);
|
|
4377
|
+
}
|
|
4378
|
+
}, [startYear, startMonth]);
|
|
4379
|
+
(0, import_react51.useEffect)(() => {
|
|
4380
|
+
const newData = rawData?.data?.months?.slice();
|
|
4381
|
+
if (data && newData) {
|
|
4382
|
+
data.forEach((x) => {
|
|
4383
|
+
if (!newData?.find((n) => x.month === n.month && x.year === n.year)) {
|
|
4384
|
+
newData.push({ ...x });
|
|
4385
|
+
}
|
|
4386
|
+
});
|
|
4387
|
+
}
|
|
4388
|
+
if (newData) {
|
|
4389
|
+
setData(
|
|
4390
|
+
newData.sort(
|
|
4391
|
+
(a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
|
|
4392
|
+
)
|
|
4393
|
+
);
|
|
4394
|
+
}
|
|
4395
|
+
}, [rawData]);
|
|
4396
|
+
(0, import_react51.useEffect)(() => {
|
|
4397
|
+
if (isLoading && loaded === "initial") {
|
|
4398
|
+
setLoaded("loading");
|
|
4399
|
+
return;
|
|
4400
|
+
}
|
|
4401
|
+
if (!isLoading && rawData) {
|
|
4402
|
+
setLoaded("complete");
|
|
4403
|
+
}
|
|
4404
|
+
}, [data, isLoading]);
|
|
4405
|
+
const pullData = (date2) => setDate(date2);
|
|
4406
|
+
(0, import_react51.useEffect)(() => {
|
|
4407
|
+
if (isLoading || isValidating) {
|
|
4408
|
+
read("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */);
|
|
4409
|
+
}
|
|
4410
|
+
}, [isLoading, isValidating]);
|
|
4411
|
+
(0, import_react51.useEffect)(() => {
|
|
4412
|
+
if (hasBeenTouched("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */)) {
|
|
4413
|
+
mutate();
|
|
4414
|
+
}
|
|
4415
|
+
}, [syncTimestamps]);
|
|
4416
|
+
const refetch = () => {
|
|
4417
|
+
mutate();
|
|
4418
|
+
};
|
|
4419
|
+
return {
|
|
4420
|
+
data,
|
|
4421
|
+
isLoading,
|
|
4422
|
+
loaded,
|
|
4423
|
+
error,
|
|
4424
|
+
pullData,
|
|
4425
|
+
refetch
|
|
4426
|
+
};
|
|
4427
|
+
};
|
|
4428
|
+
|
|
4287
4429
|
// src/icons/ChevronDownFill.tsx
|
|
4288
4430
|
var React57 = __toESM(require("react"));
|
|
4289
4431
|
var ChevronDownFill = ({ size = 18, ...props }) => /* @__PURE__ */ React57.createElement(
|
|
@@ -4443,7 +4585,7 @@ var Scissors = ({ size = 11, ...props }) => /* @__PURE__ */ React58.createElemen
|
|
|
4443
4585
|
var Scissors_default = Scissors;
|
|
4444
4586
|
|
|
4445
4587
|
// src/components/CategorySelect/CategorySelect.tsx
|
|
4446
|
-
var
|
|
4588
|
+
var import_react55 = __toESM(require("react"));
|
|
4447
4589
|
var import_react_select = __toESM(require("react-select"));
|
|
4448
4590
|
|
|
4449
4591
|
// src/icons/Check.tsx
|
|
@@ -4546,20 +4688,20 @@ var MinimizeTwo = ({ size = 18, ...props }) => /* @__PURE__ */ React61.createEle
|
|
|
4546
4688
|
var MinimizeTwo_default = MinimizeTwo;
|
|
4547
4689
|
|
|
4548
4690
|
// src/components/CategorySelect/CategorySelectDrawer.tsx
|
|
4549
|
-
var
|
|
4691
|
+
var import_react54 = __toESM(require("react"));
|
|
4550
4692
|
|
|
4551
4693
|
// src/components/BankTransactionMobileList/BusinessCategories.tsx
|
|
4552
|
-
var
|
|
4694
|
+
var import_react53 = __toESM(require("react"));
|
|
4553
4695
|
|
|
4554
4696
|
// src/components/ActionableList/ActionableList.tsx
|
|
4555
|
-
var
|
|
4697
|
+
var import_react52 = __toESM(require("react"));
|
|
4556
4698
|
var import_classnames21 = __toESM(require("classnames"));
|
|
4557
4699
|
var ActionableList = ({
|
|
4558
4700
|
options,
|
|
4559
4701
|
onClick,
|
|
4560
4702
|
selected
|
|
4561
4703
|
}) => {
|
|
4562
|
-
return /* @__PURE__ */
|
|
4704
|
+
return /* @__PURE__ */ import_react52.default.createElement("ul", { className: "Layer__actionable-list" }, options.map((x, idx) => /* @__PURE__ */ import_react52.default.createElement(
|
|
4563
4705
|
"li",
|
|
4564
4706
|
{
|
|
4565
4707
|
role: "button",
|
|
@@ -4570,15 +4712,15 @@ var ActionableList = ({
|
|
|
4570
4712
|
x.asLink && "Layer__actionable-list-item--as-link"
|
|
4571
4713
|
)
|
|
4572
4714
|
},
|
|
4573
|
-
/* @__PURE__ */
|
|
4574
|
-
!x.asLink && selected && selected.id === x.id ? /* @__PURE__ */
|
|
4715
|
+
/* @__PURE__ */ import_react52.default.createElement(Text, null, x.label),
|
|
4716
|
+
!x.asLink && selected && selected.id === x.id ? /* @__PURE__ */ import_react52.default.createElement(
|
|
4575
4717
|
Check_default,
|
|
4576
4718
|
{
|
|
4577
4719
|
size: 16,
|
|
4578
4720
|
className: "Layer__actionable-list__selected-icon"
|
|
4579
4721
|
}
|
|
4580
4722
|
) : null,
|
|
4581
|
-
x.asLink && /* @__PURE__ */
|
|
4723
|
+
x.asLink && /* @__PURE__ */ import_react52.default.createElement(
|
|
4582
4724
|
ChevronRight_default,
|
|
4583
4725
|
{
|
|
4584
4726
|
size: 16,
|
|
@@ -4645,8 +4787,8 @@ var getAssignedValue = (bankTransaction) => {
|
|
|
4645
4787
|
var BusinessCategories = ({ select }) => {
|
|
4646
4788
|
const { categories } = useLayerContext();
|
|
4647
4789
|
const categoryOptions = flattenCategories(categories);
|
|
4648
|
-
const [optionsToShow, setOptionsToShow] = (0,
|
|
4649
|
-
const [selectedGroup, setSelectedGroup] = (0,
|
|
4790
|
+
const [optionsToShow, setOptionsToShow] = (0, import_react53.useState)(categoryOptions);
|
|
4791
|
+
const [selectedGroup, setSelectedGroup] = (0, import_react53.useState)();
|
|
4650
4792
|
const onCategorySelect = (v) => {
|
|
4651
4793
|
if (v.value.type === "GROUP" && v.value.items) {
|
|
4652
4794
|
setOptionsToShow(v.value.items);
|
|
@@ -4655,14 +4797,14 @@ var BusinessCategories = ({ select }) => {
|
|
|
4655
4797
|
}
|
|
4656
4798
|
select(v);
|
|
4657
4799
|
};
|
|
4658
|
-
return /* @__PURE__ */
|
|
4800
|
+
return /* @__PURE__ */ import_react53.default.createElement("div", { className: "Layer__bank-transaction-mobile-list-item__categories_list-container" }, /* @__PURE__ */ import_react53.default.createElement(
|
|
4659
4801
|
Text,
|
|
4660
4802
|
{
|
|
4661
4803
|
weight: "bold" /* bold */,
|
|
4662
4804
|
className: "Layer__bank-transaction-mobile-list-item__categories_list-title"
|
|
4663
4805
|
},
|
|
4664
4806
|
selectedGroup ?? "Select category"
|
|
4665
|
-
), /* @__PURE__ */
|
|
4807
|
+
), /* @__PURE__ */ import_react53.default.createElement(
|
|
4666
4808
|
ActionableList,
|
|
4667
4809
|
{
|
|
4668
4810
|
options: optionsToShow,
|
|
@@ -4677,12 +4819,12 @@ var CategorySelectDrawer = ({
|
|
|
4677
4819
|
onSelect,
|
|
4678
4820
|
selected
|
|
4679
4821
|
}) => {
|
|
4680
|
-
const { setContent, close } = (0,
|
|
4822
|
+
const { setContent, close } = (0, import_react54.useContext)(DrawerContext);
|
|
4681
4823
|
const onDrawerCategorySelect = (value) => {
|
|
4682
4824
|
close();
|
|
4683
4825
|
onSelect(value);
|
|
4684
4826
|
};
|
|
4685
|
-
return /* @__PURE__ */
|
|
4827
|
+
return /* @__PURE__ */ import_react54.default.createElement(
|
|
4686
4828
|
"button",
|
|
4687
4829
|
{
|
|
4688
4830
|
"aria-label": "Select category",
|
|
@@ -4691,11 +4833,11 @@ var CategorySelectDrawer = ({
|
|
|
4691
4833
|
selected && "Layer__category-menu__drawer-btn--selected"
|
|
4692
4834
|
),
|
|
4693
4835
|
onClick: () => setContent(
|
|
4694
|
-
/* @__PURE__ */
|
|
4836
|
+
/* @__PURE__ */ import_react54.default.createElement(CategorySelectDrawerContent, { onSelect: onDrawerCategorySelect })
|
|
4695
4837
|
)
|
|
4696
4838
|
},
|
|
4697
4839
|
selected?.payload?.display_name ?? "Select...",
|
|
4698
|
-
/* @__PURE__ */
|
|
4840
|
+
/* @__PURE__ */ import_react54.default.createElement(
|
|
4699
4841
|
ChevronDown_default,
|
|
4700
4842
|
{
|
|
4701
4843
|
size: 16,
|
|
@@ -4706,7 +4848,7 @@ var CategorySelectDrawer = ({
|
|
|
4706
4848
|
};
|
|
4707
4849
|
var CategorySelectDrawerContent = ({
|
|
4708
4850
|
onSelect
|
|
4709
|
-
}) => /* @__PURE__ */
|
|
4851
|
+
}) => /* @__PURE__ */ import_react54.default.createElement(
|
|
4710
4852
|
BusinessCategories,
|
|
4711
4853
|
{
|
|
4712
4854
|
select: (option) => {
|
|
@@ -4722,7 +4864,7 @@ var CategorySelectDrawerContent = ({
|
|
|
4722
4864
|
|
|
4723
4865
|
// src/components/CategorySelect/CategorySelect.tsx
|
|
4724
4866
|
var import_classnames23 = __toESM(require("classnames"));
|
|
4725
|
-
var
|
|
4867
|
+
var import_date_fns5 = require("date-fns");
|
|
4726
4868
|
var mapCategoryToOption2 = (category) => {
|
|
4727
4869
|
return {
|
|
4728
4870
|
type: "category" /* CATEGORY */,
|
|
@@ -4749,10 +4891,10 @@ var mapSuggestedMatchToOption = (record) => {
|
|
|
4749
4891
|
};
|
|
4750
4892
|
};
|
|
4751
4893
|
var DropdownIndicator = (props) => {
|
|
4752
|
-
return /* @__PURE__ */
|
|
4894
|
+
return /* @__PURE__ */ import_react55.default.createElement(import_react_select.components.DropdownIndicator, { ...props }, /* @__PURE__ */ import_react55.default.createElement(ChevronDown_default, null));
|
|
4753
4895
|
};
|
|
4754
4896
|
var GroupHeading = (props) => {
|
|
4755
|
-
return /* @__PURE__ */
|
|
4897
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
4756
4898
|
import_react_select.components.GroupHeading,
|
|
4757
4899
|
{
|
|
4758
4900
|
className: (0, import_classnames23.default)(
|
|
@@ -4768,24 +4910,24 @@ var Option2 = (props) => {
|
|
|
4768
4910
|
return;
|
|
4769
4911
|
}
|
|
4770
4912
|
if (props.data.type === "match") {
|
|
4771
|
-
return /* @__PURE__ */
|
|
4913
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
4772
4914
|
import_react_select.components.Option,
|
|
4773
4915
|
{
|
|
4774
4916
|
...props,
|
|
4775
4917
|
className: `${props.className} Layer__select__option-content__match`
|
|
4776
4918
|
},
|
|
4777
|
-
/* @__PURE__ */
|
|
4778
|
-
/* @__PURE__ */
|
|
4919
|
+
/* @__PURE__ */ import_react55.default.createElement("div", { className: "Layer__select__option-content__match__main-row" }, /* @__PURE__ */ import_react55.default.createElement("span", { className: "Layer__select__option-content__match__date" }, props.data.payload.date && (0, import_date_fns5.format)((0, import_date_fns5.parseISO)(props.data.payload.date), DATE_FORMAT)), /* @__PURE__ */ import_react55.default.createElement("span", { className: "Layer__select__option-content__match__description" }, props.data.payload.display_name)),
|
|
4920
|
+
/* @__PURE__ */ import_react55.default.createElement("div", { className: "Layer__select__option-content__match__amount-row" }, /* @__PURE__ */ import_react55.default.createElement("span", { className: "Layer__select__option-content__match__amount" }, "$", centsToDollars(props.data.payload.amount)))
|
|
4779
4921
|
);
|
|
4780
4922
|
}
|
|
4781
|
-
return /* @__PURE__ */
|
|
4923
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
4782
4924
|
import_react_select.components.Option,
|
|
4783
4925
|
{
|
|
4784
4926
|
...props,
|
|
4785
4927
|
className: `Layer__select__option-menu-content ${props.className}`
|
|
4786
4928
|
},
|
|
4787
|
-
/* @__PURE__ */
|
|
4788
|
-
props.isSelected ? /* @__PURE__ */
|
|
4929
|
+
/* @__PURE__ */ import_react55.default.createElement("div", null, props.data.payload.display_name),
|
|
4930
|
+
props.isSelected ? /* @__PURE__ */ import_react55.default.createElement("span", { className: "Layer__select__option-menu-content-check" }, /* @__PURE__ */ import_react55.default.createElement(Check_default, { size: 16 })) : null
|
|
4789
4931
|
);
|
|
4790
4932
|
};
|
|
4791
4933
|
var allCategoriesDivider = [
|
|
@@ -4871,9 +5013,9 @@ var CategorySelect = ({
|
|
|
4871
5013
|
const selected = value ? value : !excludeMatches && matchOptions?.length === 1 && matchOptions[0].options.length === 1 ? matchOptions[0].options[0] : void 0;
|
|
4872
5014
|
const placeholder = matchOptions?.length === 1 && matchOptions[0].options.length > 1 ? `${matchOptions[0].options.length} possible matches...` : "Categorize or match...";
|
|
4873
5015
|
if (asDrawer) {
|
|
4874
|
-
return /* @__PURE__ */
|
|
5016
|
+
return /* @__PURE__ */ import_react55.default.createElement(CategorySelectDrawer, { onSelect: onChange, selected: value });
|
|
4875
5017
|
}
|
|
4876
|
-
return /* @__PURE__ */
|
|
5018
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
4877
5019
|
import_react_select.default,
|
|
4878
5020
|
{
|
|
4879
5021
|
name,
|
|
@@ -4886,7 +5028,7 @@ var CategorySelect = ({
|
|
|
4886
5028
|
isSearchable: true,
|
|
4887
5029
|
placeholder,
|
|
4888
5030
|
defaultValue: selected,
|
|
4889
|
-
formatOptionLabel: (props) => /* @__PURE__ */
|
|
5031
|
+
formatOptionLabel: (props) => /* @__PURE__ */ import_react55.default.createElement("div", { className: "Layer__select__option-label" }, props.type === "match" && /* @__PURE__ */ import_react55.default.createElement(Badge, { size: "small" /* SMALL */, icon: /* @__PURE__ */ import_react55.default.createElement(MinimizeTwo_default, { size: 11 }) }, "Match"), /* @__PURE__ */ import_react55.default.createElement("span", null, props.payload.display_name)),
|
|
4890
5032
|
value,
|
|
4891
5033
|
onChange: (newValue) => newValue && onChange(newValue),
|
|
4892
5034
|
getOptionLabel: (category) => category.payload.display_name,
|
|
@@ -5018,7 +5160,7 @@ var Trash = ({ size = 18, ...props }) => /* @__PURE__ */ React67.createElement(
|
|
|
5018
5160
|
var Trash_default = Trash;
|
|
5019
5161
|
|
|
5020
5162
|
// src/components/Input/Input.tsx
|
|
5021
|
-
var
|
|
5163
|
+
var import_react56 = __toESM(require("react"));
|
|
5022
5164
|
var import_classnames24 = __toESM(require("classnames"));
|
|
5023
5165
|
var Input = ({
|
|
5024
5166
|
className,
|
|
@@ -5033,11 +5175,11 @@ var Input = ({
|
|
|
5033
5175
|
leftText ? "Layer__input--with-left-text" : "",
|
|
5034
5176
|
className
|
|
5035
5177
|
);
|
|
5036
|
-
return /* @__PURE__ */
|
|
5178
|
+
return /* @__PURE__ */ import_react56.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react56.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react56.default.createElement("input", { ...props, className: baseClassName }), leftText && /* @__PURE__ */ import_react56.default.createElement("span", { className: "Layer__input-left-text" }, leftText)), /* @__PURE__ */ import_react56.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
|
|
5037
5179
|
};
|
|
5038
5180
|
|
|
5039
5181
|
// src/components/Input/InputGroup.tsx
|
|
5040
|
-
var
|
|
5182
|
+
var import_react57 = __toESM(require("react"));
|
|
5041
5183
|
var import_classnames25 = __toESM(require("classnames"));
|
|
5042
5184
|
var InputGroup = ({
|
|
5043
5185
|
label,
|
|
@@ -5051,7 +5193,7 @@ var InputGroup = ({
|
|
|
5051
5193
|
className,
|
|
5052
5194
|
inline && "Layer__input-group--inline"
|
|
5053
5195
|
);
|
|
5054
|
-
return /* @__PURE__ */
|
|
5196
|
+
return /* @__PURE__ */ import_react57.default.createElement("div", { className: baseClassName }, label && /* @__PURE__ */ import_react57.default.createElement(
|
|
5055
5197
|
Text,
|
|
5056
5198
|
{
|
|
5057
5199
|
as: "label",
|
|
@@ -5064,7 +5206,7 @@ var InputGroup = ({
|
|
|
5064
5206
|
};
|
|
5065
5207
|
|
|
5066
5208
|
// src/components/Input/FileInput.tsx
|
|
5067
|
-
var
|
|
5209
|
+
var import_react58 = __toESM(require("react"));
|
|
5068
5210
|
|
|
5069
5211
|
// src/icons/UploadCloud.tsx
|
|
5070
5212
|
var React70 = __toESM(require("react"));
|
|
@@ -5119,7 +5261,7 @@ var UploadCloud_default = UploadCloud;
|
|
|
5119
5261
|
|
|
5120
5262
|
// src/components/Input/FileInput.tsx
|
|
5121
5263
|
var FileInput = ({ text = "Upload", onUpload }) => {
|
|
5122
|
-
const hiddenFileInput = (0,
|
|
5264
|
+
const hiddenFileInput = (0, import_react58.useRef)(null);
|
|
5123
5265
|
const onClick = () => {
|
|
5124
5266
|
if (hiddenFileInput.current) {
|
|
5125
5267
|
hiddenFileInput.current.click();
|
|
@@ -5131,15 +5273,15 @@ var FileInput = ({ text = "Upload", onUpload }) => {
|
|
|
5131
5273
|
onUpload(fileUploaded);
|
|
5132
5274
|
}
|
|
5133
5275
|
};
|
|
5134
|
-
return /* @__PURE__ */
|
|
5276
|
+
return /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, /* @__PURE__ */ import_react58.default.createElement(
|
|
5135
5277
|
Button,
|
|
5136
5278
|
{
|
|
5137
5279
|
onClick,
|
|
5138
5280
|
variant: "secondary" /* secondary */,
|
|
5139
|
-
rightIcon: /* @__PURE__ */
|
|
5281
|
+
rightIcon: /* @__PURE__ */ import_react58.default.createElement(UploadCloud_default, null)
|
|
5140
5282
|
},
|
|
5141
5283
|
text
|
|
5142
|
-
), /* @__PURE__ */
|
|
5284
|
+
), /* @__PURE__ */ import_react58.default.createElement(
|
|
5143
5285
|
"input",
|
|
5144
5286
|
{
|
|
5145
5287
|
type: "file",
|
|
@@ -5151,11 +5293,11 @@ var FileInput = ({ text = "Upload", onUpload }) => {
|
|
|
5151
5293
|
};
|
|
5152
5294
|
|
|
5153
5295
|
// src/components/Input/Select.tsx
|
|
5154
|
-
var
|
|
5296
|
+
var import_react59 = __toESM(require("react"));
|
|
5155
5297
|
var import_react_select2 = __toESM(require("react-select"));
|
|
5156
5298
|
var import_classnames26 = __toESM(require("classnames"));
|
|
5157
5299
|
var DropdownIndicator2 = (props) => {
|
|
5158
|
-
return /* @__PURE__ */
|
|
5300
|
+
return /* @__PURE__ */ import_react59.default.createElement(import_react_select2.components.DropdownIndicator, { ...props }, /* @__PURE__ */ import_react59.default.createElement(ChevronDownFill_default, null));
|
|
5159
5301
|
};
|
|
5160
5302
|
var Select2 = ({
|
|
5161
5303
|
name,
|
|
@@ -5174,7 +5316,7 @@ var Select2 = ({
|
|
|
5174
5316
|
isInvalid ? "Layer__select--error" : "",
|
|
5175
5317
|
className
|
|
5176
5318
|
);
|
|
5177
|
-
return /* @__PURE__ */
|
|
5319
|
+
return /* @__PURE__ */ import_react59.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react59.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react59.default.createElement(
|
|
5178
5320
|
import_react_select2.default,
|
|
5179
5321
|
{
|
|
5180
5322
|
name,
|
|
@@ -5189,11 +5331,11 @@ var Select2 = ({
|
|
|
5189
5331
|
components: { DropdownIndicator: DropdownIndicator2 },
|
|
5190
5332
|
isDisabled: disabled
|
|
5191
5333
|
}
|
|
5192
|
-
)), /* @__PURE__ */
|
|
5334
|
+
)), /* @__PURE__ */ import_react59.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
|
|
5193
5335
|
};
|
|
5194
5336
|
|
|
5195
5337
|
// src/components/Input/InputWithBadge.tsx
|
|
5196
|
-
var
|
|
5338
|
+
var import_react60 = __toESM(require("react"));
|
|
5197
5339
|
var import_classnames27 = __toESM(require("classnames"));
|
|
5198
5340
|
var InputWithBadge = ({
|
|
5199
5341
|
className,
|
|
@@ -5210,15 +5352,15 @@ var InputWithBadge = ({
|
|
|
5210
5352
|
leftText ? "Layer__input--with-left-text" : "",
|
|
5211
5353
|
className
|
|
5212
5354
|
);
|
|
5213
|
-
return /* @__PURE__ */
|
|
5355
|
+
return /* @__PURE__ */ import_react60.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react60.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react60.default.createElement("div", { className: "Layer__input-with-badge" }, /* @__PURE__ */ import_react60.default.createElement("input", { ...props, className: baseClassName }), badge && /* @__PURE__ */ import_react60.default.createElement(Badge, { variant }, badge)), leftText && /* @__PURE__ */ import_react60.default.createElement("span", { className: "Layer__input-left-text" }, leftText)), /* @__PURE__ */ import_react60.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
|
|
5214
5356
|
};
|
|
5215
5357
|
|
|
5216
5358
|
// src/components/MatchForm/MatchForm.tsx
|
|
5217
|
-
var
|
|
5359
|
+
var import_react62 = __toESM(require("react"));
|
|
5218
5360
|
|
|
5219
5361
|
// src/components/BankTransactionRow/MatchBadge.tsx
|
|
5220
|
-
var
|
|
5221
|
-
var
|
|
5362
|
+
var import_react61 = __toESM(require("react"));
|
|
5363
|
+
var import_date_fns6 = require("date-fns");
|
|
5222
5364
|
var MatchBadge = ({
|
|
5223
5365
|
bankTransaction,
|
|
5224
5366
|
classNamePrefix,
|
|
@@ -5227,11 +5369,11 @@ var MatchBadge = ({
|
|
|
5227
5369
|
}) => {
|
|
5228
5370
|
if (bankTransaction.categorization_status === "MATCHED" /* MATCHED */ && bankTransaction.match) {
|
|
5229
5371
|
const { date, amount } = bankTransaction.match.bank_transaction;
|
|
5230
|
-
return /* @__PURE__ */
|
|
5372
|
+
return /* @__PURE__ */ import_react61.default.createElement(
|
|
5231
5373
|
Badge,
|
|
5232
5374
|
{
|
|
5233
|
-
icon: /* @__PURE__ */
|
|
5234
|
-
tooltip: /* @__PURE__ */
|
|
5375
|
+
icon: /* @__PURE__ */ import_react61.default.createElement(MinimizeTwo_default, { size: 11 }),
|
|
5376
|
+
tooltip: /* @__PURE__ */ import_react61.default.createElement("span", { className: `${classNamePrefix}__match-tooltip` }, /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-tooltip__date` }, (0, import_date_fns6.format)((0, import_date_fns6.parseISO)(date), dateFormat)), /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-tooltip__description` }, bankTransaction.match?.details?.description ?? ""), /* @__PURE__ */ import_react61.default.createElement("div", { className: `${classNamePrefix}__match-tooltip__amount` }, "$", centsToDollars(amount)))
|
|
5235
5377
|
},
|
|
5236
5378
|
text
|
|
5237
5379
|
);
|
|
@@ -5241,7 +5383,7 @@ var MatchBadge = ({
|
|
|
5241
5383
|
|
|
5242
5384
|
// src/components/MatchForm/MatchForm.tsx
|
|
5243
5385
|
var import_classnames28 = __toESM(require("classnames"));
|
|
5244
|
-
var
|
|
5386
|
+
var import_date_fns7 = require("date-fns");
|
|
5245
5387
|
var MatchForm = ({
|
|
5246
5388
|
classNamePrefix,
|
|
5247
5389
|
bankTransaction,
|
|
@@ -5249,13 +5391,13 @@ var MatchForm = ({
|
|
|
5249
5391
|
setSelectedMatchId,
|
|
5250
5392
|
matchFormError
|
|
5251
5393
|
}) => {
|
|
5252
|
-
return /* @__PURE__ */
|
|
5394
|
+
return /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table` }, /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__header` }, /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__date` }, "Date"), /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__desc` }, "Description"), /* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__amount` }, "Amount"), /* @__PURE__ */ import_react62.default.createElement(
|
|
5253
5395
|
"div",
|
|
5254
5396
|
{
|
|
5255
5397
|
className: `${classNamePrefix}__match-table__status ${bankTransaction.match ? "" : "no-match"}`
|
|
5256
5398
|
}
|
|
5257
5399
|
)), bankTransaction.suggested_matches?.map((match, idx) => {
|
|
5258
|
-
return /* @__PURE__ */
|
|
5400
|
+
return /* @__PURE__ */ import_react62.default.createElement(
|
|
5259
5401
|
"div",
|
|
5260
5402
|
{
|
|
5261
5403
|
key: idx,
|
|
@@ -5271,15 +5413,15 @@ var MatchForm = ({
|
|
|
5271
5413
|
setSelectedMatchId(match.id);
|
|
5272
5414
|
}
|
|
5273
5415
|
},
|
|
5274
|
-
/* @__PURE__ */
|
|
5416
|
+
/* @__PURE__ */ import_react62.default.createElement(
|
|
5275
5417
|
"div",
|
|
5276
5418
|
{
|
|
5277
5419
|
className: `Layer__nowrap ${classNamePrefix}__match-table__date`
|
|
5278
5420
|
},
|
|
5279
|
-
/* @__PURE__ */
|
|
5280
|
-
/* @__PURE__ */
|
|
5421
|
+
/* @__PURE__ */ import_react62.default.createElement("span", null, (0, import_date_fns7.format)((0, import_date_fns7.parseISO)(match.details.date), DATE_FORMAT)),
|
|
5422
|
+
/* @__PURE__ */ import_react62.default.createElement("span", { className: "amount-next-to-date" }, "$", centsToDollars(match.details.amount))
|
|
5281
5423
|
),
|
|
5282
|
-
/* @__PURE__ */
|
|
5424
|
+
/* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__desc` }, /* @__PURE__ */ import_react62.default.createElement(
|
|
5283
5425
|
Text,
|
|
5284
5426
|
{
|
|
5285
5427
|
className: `${classNamePrefix}__match-table__desc-tooltip`,
|
|
@@ -5287,7 +5429,7 @@ var MatchForm = ({
|
|
|
5287
5429
|
as: "span"
|
|
5288
5430
|
},
|
|
5289
5431
|
match.details.description
|
|
5290
|
-
), match.details.id === bankTransaction.match?.details.id && /* @__PURE__ */
|
|
5432
|
+
), match.details.id === bankTransaction.match?.details.id && /* @__PURE__ */ import_react62.default.createElement("span", { className: "match-badge" }, /* @__PURE__ */ import_react62.default.createElement(
|
|
5291
5433
|
MatchBadge,
|
|
5292
5434
|
{
|
|
5293
5435
|
classNamePrefix,
|
|
@@ -5296,13 +5438,13 @@ var MatchForm = ({
|
|
|
5296
5438
|
text: "Matched"
|
|
5297
5439
|
}
|
|
5298
5440
|
))),
|
|
5299
|
-
/* @__PURE__ */
|
|
5300
|
-
/* @__PURE__ */
|
|
5441
|
+
/* @__PURE__ */ import_react62.default.createElement("div", { className: `${classNamePrefix}__match-table__amount` }, "$", centsToDollars(match.details.amount)),
|
|
5442
|
+
/* @__PURE__ */ import_react62.default.createElement(
|
|
5301
5443
|
"div",
|
|
5302
5444
|
{
|
|
5303
5445
|
className: `${classNamePrefix}__match-table__status ${bankTransaction.match ? "" : "no-match"}`
|
|
5304
5446
|
},
|
|
5305
|
-
match.details.id === bankTransaction.match?.details.id && /* @__PURE__ */
|
|
5447
|
+
match.details.id === bankTransaction.match?.details.id && /* @__PURE__ */ import_react62.default.createElement(
|
|
5306
5448
|
MatchBadge,
|
|
5307
5449
|
{
|
|
5308
5450
|
classNamePrefix,
|
|
@@ -5313,13 +5455,13 @@ var MatchForm = ({
|
|
|
5313
5455
|
)
|
|
5314
5456
|
)
|
|
5315
5457
|
);
|
|
5316
|
-
}), matchFormError && /* @__PURE__ */
|
|
5458
|
+
}), matchFormError && /* @__PURE__ */ import_react62.default.createElement(ErrorText, null, matchFormError));
|
|
5317
5459
|
};
|
|
5318
5460
|
|
|
5319
5461
|
// src/components/MatchForm/MatchFormMobile.tsx
|
|
5320
|
-
var
|
|
5462
|
+
var import_react63 = __toESM(require("react"));
|
|
5321
5463
|
var import_classnames29 = __toESM(require("classnames"));
|
|
5322
|
-
var
|
|
5464
|
+
var import_date_fns8 = require("date-fns");
|
|
5323
5465
|
var MatchFormMobile = ({
|
|
5324
5466
|
classNamePrefix,
|
|
5325
5467
|
bankTransaction,
|
|
@@ -5327,8 +5469,8 @@ var MatchFormMobile = ({
|
|
|
5327
5469
|
setSelectedMatchId,
|
|
5328
5470
|
matchFormError
|
|
5329
5471
|
}) => {
|
|
5330
|
-
return /* @__PURE__ */
|
|
5331
|
-
return /* @__PURE__ */
|
|
5472
|
+
return /* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-list` }, bankTransaction.suggested_matches?.map((match, idx) => {
|
|
5473
|
+
return /* @__PURE__ */ import_react63.default.createElement(
|
|
5332
5474
|
"div",
|
|
5333
5475
|
{
|
|
5334
5476
|
key: idx,
|
|
@@ -5344,14 +5486,14 @@ var MatchFormMobile = ({
|
|
|
5344
5486
|
setSelectedMatchId(match.id);
|
|
5345
5487
|
}
|
|
5346
5488
|
},
|
|
5347
|
-
/* @__PURE__ */
|
|
5489
|
+
/* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-item__col-details` }, /* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-item__heading` }, /* @__PURE__ */ import_react63.default.createElement(
|
|
5348
5490
|
Text,
|
|
5349
5491
|
{
|
|
5350
5492
|
className: `${classNamePrefix}__match-item__name`,
|
|
5351
5493
|
as: "span"
|
|
5352
5494
|
},
|
|
5353
5495
|
match.details.description
|
|
5354
|
-
), /* @__PURE__ */
|
|
5496
|
+
), /* @__PURE__ */ import_react63.default.createElement(
|
|
5355
5497
|
Text,
|
|
5356
5498
|
{
|
|
5357
5499
|
className: `${classNamePrefix}__match-item__amount`,
|
|
@@ -5359,16 +5501,16 @@ var MatchFormMobile = ({
|
|
|
5359
5501
|
},
|
|
5360
5502
|
"$",
|
|
5361
5503
|
centsToDollars(match.details.amount)
|
|
5362
|
-
)), /* @__PURE__ */
|
|
5504
|
+
)), /* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-item__details` }, /* @__PURE__ */ import_react63.default.createElement(
|
|
5363
5505
|
Text,
|
|
5364
5506
|
{
|
|
5365
5507
|
className: `${classNamePrefix}__match-item__date`,
|
|
5366
5508
|
size: "sm" /* sm */,
|
|
5367
5509
|
as: "span"
|
|
5368
5510
|
},
|
|
5369
|
-
(0,
|
|
5511
|
+
(0, import_date_fns8.format)((0, import_date_fns8.parseISO)(match.details.date), MONTH_DAY_FORMAT)
|
|
5370
5512
|
))),
|
|
5371
|
-
/* @__PURE__ */
|
|
5513
|
+
/* @__PURE__ */ import_react63.default.createElement("div", { className: `${classNamePrefix}__match-item__col-status` }, selectedMatchId && selectedMatchId === match.id ? /* @__PURE__ */ import_react63.default.createElement(
|
|
5372
5514
|
Check_default,
|
|
5373
5515
|
{
|
|
5374
5516
|
size: 16,
|
|
@@ -5376,11 +5518,11 @@ var MatchFormMobile = ({
|
|
|
5376
5518
|
}
|
|
5377
5519
|
) : null)
|
|
5378
5520
|
);
|
|
5379
|
-
}), matchFormError && /* @__PURE__ */
|
|
5521
|
+
}), matchFormError && /* @__PURE__ */ import_react63.default.createElement(ErrorText, null, matchFormError));
|
|
5380
5522
|
};
|
|
5381
5523
|
|
|
5382
5524
|
// src/components/Textarea/Textarea.tsx
|
|
5383
|
-
var
|
|
5525
|
+
var import_react64 = __toESM(require("react"));
|
|
5384
5526
|
var import_classnames30 = __toESM(require("classnames"));
|
|
5385
5527
|
var Textarea = ({
|
|
5386
5528
|
className,
|
|
@@ -5393,11 +5535,11 @@ var Textarea = ({
|
|
|
5393
5535
|
isInvalid ? "Layer__textarea--error" : "",
|
|
5394
5536
|
className
|
|
5395
5537
|
);
|
|
5396
|
-
return /* @__PURE__ */
|
|
5538
|
+
return /* @__PURE__ */ import_react64.default.createElement(Tooltip, { disabled: !isInvalid || !errorMessage }, /* @__PURE__ */ import_react64.default.createElement(TooltipTrigger, { className: "Layer__input-tooltip" }, /* @__PURE__ */ import_react64.default.createElement("textarea", { ...props, className: baseClassName })), /* @__PURE__ */ import_react64.default.createElement(TooltipContent, { className: "Layer__tooltip" }, errorMessage));
|
|
5397
5539
|
};
|
|
5398
5540
|
|
|
5399
5541
|
// src/components/Toggle/Toggle.tsx
|
|
5400
|
-
var
|
|
5542
|
+
var import_react65 = __toESM(require("react"));
|
|
5401
5543
|
var import_classnames31 = __toESM(require("classnames"));
|
|
5402
5544
|
var Toggle = ({
|
|
5403
5545
|
name,
|
|
@@ -5406,9 +5548,9 @@ var Toggle = ({
|
|
|
5406
5548
|
onChange,
|
|
5407
5549
|
size = "medium" /* medium */
|
|
5408
5550
|
}) => {
|
|
5409
|
-
const [currentWidth, setCurrentWidth] = (0,
|
|
5410
|
-
const [thumbPos, setThumbPos] = (0,
|
|
5411
|
-
const [initialized, setInitialized] = (0,
|
|
5551
|
+
const [currentWidth, setCurrentWidth] = (0, import_react65.useState)(0);
|
|
5552
|
+
const [thumbPos, setThumbPos] = (0, import_react65.useState)({ left: 0, width: 0 });
|
|
5553
|
+
const [initialized, setInitialized] = (0, import_react65.useState)(false);
|
|
5412
5554
|
const toggleRef = useElementSize((a, b, c) => {
|
|
5413
5555
|
if (c.width && c?.width !== currentWidth) {
|
|
5414
5556
|
setCurrentWidth(c.width);
|
|
@@ -5443,14 +5585,14 @@ var Toggle = ({
|
|
|
5443
5585
|
shift2 = shift2 + (size === "medium" /* medium */ ? 2 : 1.5);
|
|
5444
5586
|
setThumbPos({ left: shift2, width });
|
|
5445
5587
|
};
|
|
5446
|
-
(0,
|
|
5588
|
+
(0, import_react65.useEffect)(() => {
|
|
5447
5589
|
const selectedIndex = getSelectedIndex();
|
|
5448
5590
|
updateThumbPosition(selectedIndex);
|
|
5449
5591
|
setTimeout(() => {
|
|
5450
5592
|
setInitialized(true);
|
|
5451
5593
|
}, 400);
|
|
5452
5594
|
}, []);
|
|
5453
|
-
(0,
|
|
5595
|
+
(0, import_react65.useEffect)(() => {
|
|
5454
5596
|
const selectedIndex = getSelectedIndex();
|
|
5455
5597
|
updateThumbPosition(selectedIndex);
|
|
5456
5598
|
}, [currentWidth]);
|
|
@@ -5463,7 +5605,7 @@ var Toggle = ({
|
|
|
5463
5605
|
}
|
|
5464
5606
|
return selectedIndex;
|
|
5465
5607
|
};
|
|
5466
|
-
return /* @__PURE__ */
|
|
5608
|
+
return /* @__PURE__ */ import_react65.default.createElement("div", { className: baseClassName, ref: toggleRef }, options.map((option, index) => /* @__PURE__ */ import_react65.default.createElement(
|
|
5467
5609
|
ToggleOption,
|
|
5468
5610
|
{
|
|
5469
5611
|
...option,
|
|
@@ -5476,7 +5618,7 @@ var Toggle = ({
|
|
|
5476
5618
|
disabledMessage: option.disabledMessage,
|
|
5477
5619
|
index
|
|
5478
5620
|
}
|
|
5479
|
-
)), /* @__PURE__ */
|
|
5621
|
+
)), /* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle__thumb", style: { ...thumbPos } }));
|
|
5480
5622
|
};
|
|
5481
5623
|
var ToggleOption = ({
|
|
5482
5624
|
checked,
|
|
@@ -5492,14 +5634,14 @@ var ToggleOption = ({
|
|
|
5492
5634
|
index
|
|
5493
5635
|
}) => {
|
|
5494
5636
|
if (disabled) {
|
|
5495
|
-
return /* @__PURE__ */
|
|
5637
|
+
return /* @__PURE__ */ import_react65.default.createElement(Tooltip, null, /* @__PURE__ */ import_react65.default.createElement(TooltipTrigger, null, /* @__PURE__ */ import_react65.default.createElement(
|
|
5496
5638
|
"label",
|
|
5497
5639
|
{
|
|
5498
5640
|
className: `Layer__toggle-option`,
|
|
5499
5641
|
"data-checked": checked,
|
|
5500
5642
|
style
|
|
5501
5643
|
},
|
|
5502
|
-
/* @__PURE__ */
|
|
5644
|
+
/* @__PURE__ */ import_react65.default.createElement(
|
|
5503
5645
|
"input",
|
|
5504
5646
|
{
|
|
5505
5647
|
type: "radio",
|
|
@@ -5511,17 +5653,17 @@ var ToggleOption = ({
|
|
|
5511
5653
|
"data-idx": index
|
|
5512
5654
|
}
|
|
5513
5655
|
),
|
|
5514
|
-
/* @__PURE__ */
|
|
5515
|
-
)), /* @__PURE__ */
|
|
5656
|
+
/* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle-option-content" }, leftIcon && /* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle-option__icon" }, leftIcon), /* @__PURE__ */ import_react65.default.createElement("span", null, label))
|
|
5657
|
+
)), /* @__PURE__ */ import_react65.default.createElement(TooltipContent, { className: "Layer__tooltip" }, disabledMessage));
|
|
5516
5658
|
}
|
|
5517
|
-
return /* @__PURE__ */
|
|
5659
|
+
return /* @__PURE__ */ import_react65.default.createElement(
|
|
5518
5660
|
"label",
|
|
5519
5661
|
{
|
|
5520
5662
|
className: `Layer__toggle-option`,
|
|
5521
5663
|
"data-checked": checked,
|
|
5522
5664
|
style
|
|
5523
5665
|
},
|
|
5524
|
-
/* @__PURE__ */
|
|
5666
|
+
/* @__PURE__ */ import_react65.default.createElement(
|
|
5525
5667
|
"input",
|
|
5526
5668
|
{
|
|
5527
5669
|
type: "radio",
|
|
@@ -5533,12 +5675,12 @@ var ToggleOption = ({
|
|
|
5533
5675
|
"data-idx": index
|
|
5534
5676
|
}
|
|
5535
5677
|
),
|
|
5536
|
-
/* @__PURE__ */
|
|
5678
|
+
/* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle-option-content" }, leftIcon && /* @__PURE__ */ import_react65.default.createElement("span", { className: "Layer__toggle-option__icon" }, leftIcon), /* @__PURE__ */ import_react65.default.createElement("span", null, label))
|
|
5537
5679
|
);
|
|
5538
5680
|
};
|
|
5539
5681
|
|
|
5540
5682
|
// src/components/ExpandedBankTransactionRow/APIErrorNotifications.tsx
|
|
5541
|
-
var
|
|
5683
|
+
var import_react66 = __toESM(require("react"));
|
|
5542
5684
|
var ERROR_TITLE = "Approval Failed";
|
|
5543
5685
|
var ERROR_MESSAGE = "Something went wrong, try again later";
|
|
5544
5686
|
var NOTIFICATION_TIME = 4e3;
|
|
@@ -5548,7 +5690,7 @@ var APIErrorNotifications = ({
|
|
|
5548
5690
|
bankTransaction,
|
|
5549
5691
|
containerWidth
|
|
5550
5692
|
}) => {
|
|
5551
|
-
const [notifications, setNotifications] = (0,
|
|
5693
|
+
const [notifications, setNotifications] = (0, import_react66.useState)([]);
|
|
5552
5694
|
const pushNotification = (title, message) => {
|
|
5553
5695
|
const timestamp = (/* @__PURE__ */ new Date()).valueOf();
|
|
5554
5696
|
if (notificationsCache.find(
|
|
@@ -5577,18 +5719,18 @@ var APIErrorNotifications = ({
|
|
|
5577
5719
|
);
|
|
5578
5720
|
setNotifications(notificationsCache.concat());
|
|
5579
5721
|
};
|
|
5580
|
-
(0,
|
|
5722
|
+
(0, import_react66.useEffect)(() => {
|
|
5581
5723
|
if (bankTransaction.error) {
|
|
5582
5724
|
pushNotification(ERROR_TITLE, ERROR_MESSAGE);
|
|
5583
5725
|
}
|
|
5584
5726
|
}, [bankTransaction.error]);
|
|
5585
|
-
return /* @__PURE__ */
|
|
5727
|
+
return /* @__PURE__ */ import_react66.default.createElement(
|
|
5586
5728
|
"div",
|
|
5587
5729
|
{
|
|
5588
5730
|
className: "Layer__bank-transactions__notifications",
|
|
5589
5731
|
style: containerWidth ? { left: containerWidth - 324 } : {}
|
|
5590
5732
|
},
|
|
5591
|
-
notifications.filter((n) => n.bankTransactionId === bankTransaction.id).map((notification) => /* @__PURE__ */
|
|
5733
|
+
notifications.filter((n) => n.bankTransactionId === bankTransaction.id).map((notification) => /* @__PURE__ */ import_react66.default.createElement(
|
|
5592
5734
|
Notification,
|
|
5593
5735
|
{
|
|
5594
5736
|
key: notification.timestamp,
|
|
@@ -5602,8 +5744,8 @@ var Notification = ({
|
|
|
5602
5744
|
notification,
|
|
5603
5745
|
deleteNotification
|
|
5604
5746
|
}) => {
|
|
5605
|
-
const [visible, setVisible] = (0,
|
|
5606
|
-
(0,
|
|
5747
|
+
const [visible, setVisible] = (0, import_react66.useState)(false);
|
|
5748
|
+
(0, import_react66.useEffect)(() => {
|
|
5607
5749
|
setVisible(true);
|
|
5608
5750
|
const timer = setTimeout(() => {
|
|
5609
5751
|
hideNotification();
|
|
@@ -5616,20 +5758,20 @@ var Notification = ({
|
|
|
5616
5758
|
deleteNotification(notification.timestamp);
|
|
5617
5759
|
}, FADE_OUT_TIME_WAIT);
|
|
5618
5760
|
};
|
|
5619
|
-
return /* @__PURE__ */
|
|
5761
|
+
return /* @__PURE__ */ import_react66.default.createElement(
|
|
5620
5762
|
"div",
|
|
5621
5763
|
{
|
|
5622
5764
|
className: `Layer__bank-transactions__notification ${visible ? "notification-enter" : "notification-exit"}`,
|
|
5623
5765
|
onClick: hideNotification
|
|
5624
5766
|
},
|
|
5625
|
-
/* @__PURE__ */
|
|
5767
|
+
/* @__PURE__ */ import_react66.default.createElement("div", { className: "Layer__bank-transactions__notification-content" }, /* @__PURE__ */ import_react66.default.createElement("div", { className: "Layer__bank-transactions__notification-icon" }, /* @__PURE__ */ import_react66.default.createElement(AlertOctagon_default, { size: 14 })), /* @__PURE__ */ import_react66.default.createElement("div", { className: "Layer__bank-transactions__notification-text" }, /* @__PURE__ */ import_react66.default.createElement(
|
|
5626
5768
|
Text,
|
|
5627
5769
|
{
|
|
5628
5770
|
as: "span",
|
|
5629
5771
|
className: "Layer__bank-transactions__notification-title"
|
|
5630
5772
|
},
|
|
5631
5773
|
notification.title
|
|
5632
|
-
), /* @__PURE__ */
|
|
5774
|
+
), /* @__PURE__ */ import_react66.default.createElement(
|
|
5633
5775
|
Text,
|
|
5634
5776
|
{
|
|
5635
5777
|
as: "span",
|
|
@@ -5642,149 +5784,6 @@ var Notification = ({
|
|
|
5642
5784
|
|
|
5643
5785
|
// src/components/ExpandedBankTransactionRow/ExpandedBankTransactionRow.tsx
|
|
5644
5786
|
var import_classnames32 = __toESM(require("classnames"));
|
|
5645
|
-
|
|
5646
|
-
// src/hooks/useProfitAndLoss/useProfitAndLossLTM.tsx
|
|
5647
|
-
var import_react66 = require("react");
|
|
5648
|
-
var import_date_fns8 = require("date-fns");
|
|
5649
|
-
var import_swr3 = __toESM(require("swr"));
|
|
5650
|
-
var buildDates = ({ currentDate }) => {
|
|
5651
|
-
return {
|
|
5652
|
-
startYear: (0, import_date_fns8.startOfMonth)(currentDate).getFullYear() - 1,
|
|
5653
|
-
startMonth: (0, import_date_fns8.startOfMonth)(currentDate).getMonth() + 1,
|
|
5654
|
-
endYear: (0, import_date_fns8.startOfMonth)(currentDate).getFullYear(),
|
|
5655
|
-
endMonth: (0, import_date_fns8.startOfMonth)(currentDate).getMonth() + 1
|
|
5656
|
-
};
|
|
5657
|
-
};
|
|
5658
|
-
var buildMonthsArray = (startDate, endDate) => {
|
|
5659
|
-
if (startDate >= endDate) {
|
|
5660
|
-
return [];
|
|
5661
|
-
}
|
|
5662
|
-
var dates = [];
|
|
5663
|
-
for (var d = startDate; d <= endDate; d.setMonth(d.getMonth() + 1)) {
|
|
5664
|
-
dates.push(new Date(d));
|
|
5665
|
-
}
|
|
5666
|
-
return dates;
|
|
5667
|
-
};
|
|
5668
|
-
var useProfitAndLossLTM = ({ currentDate, tagFilter, reportingBasis } = {
|
|
5669
|
-
currentDate: /* @__PURE__ */ new Date()
|
|
5670
|
-
}) => {
|
|
5671
|
-
const { businessId, auth, apiUrl, syncTimestamps, read, hasBeenTouched } = useLayerContext();
|
|
5672
|
-
const [date, setDate] = (0, import_react66.useState)(currentDate);
|
|
5673
|
-
const [loaded, setLoaded] = (0, import_react66.useState)("initial");
|
|
5674
|
-
const [data, setData] = (0, import_react66.useState)([]);
|
|
5675
|
-
const { startYear, startMonth, endYear, endMonth } = (0, import_react66.useMemo)(() => {
|
|
5676
|
-
return buildDates({ currentDate: date });
|
|
5677
|
-
}, [date, businessId, tagFilter, reportingBasis]);
|
|
5678
|
-
const {
|
|
5679
|
-
data: rawData,
|
|
5680
|
-
isLoading,
|
|
5681
|
-
isValidating,
|
|
5682
|
-
error,
|
|
5683
|
-
mutate
|
|
5684
|
-
} = (0, import_swr3.default)(
|
|
5685
|
-
businessId && Boolean(startYear) && Boolean(startMonth) && Boolean(endYear) && Boolean(endMonth) && auth?.access_token && `profit-and-loss-summaries-${businessId}-${startYear.toString()}-${startMonth.toString()}-${tagFilter?.key}-${tagFilter?.values?.join(
|
|
5686
|
-
","
|
|
5687
|
-
)}-${reportingBasis}`,
|
|
5688
|
-
Layer.getProfitAndLossSummaries(apiUrl, auth?.access_token, {
|
|
5689
|
-
params: {
|
|
5690
|
-
businessId,
|
|
5691
|
-
startYear: startYear.toString(),
|
|
5692
|
-
startMonth: startMonth.toString(),
|
|
5693
|
-
endYear: endYear.toString(),
|
|
5694
|
-
endMonth: endMonth.toString(),
|
|
5695
|
-
tagKey: tagFilter?.key,
|
|
5696
|
-
tagValues: tagFilter?.values?.join(","),
|
|
5697
|
-
reportingBasis
|
|
5698
|
-
}
|
|
5699
|
-
})
|
|
5700
|
-
);
|
|
5701
|
-
(0, import_react66.useEffect)(() => {
|
|
5702
|
-
const newData = data.slice();
|
|
5703
|
-
const newPeriod = buildMonthsArray((0, import_date_fns8.sub)(date, { years: 1 }), date);
|
|
5704
|
-
if (newData && newPeriod) {
|
|
5705
|
-
newPeriod.forEach((x) => {
|
|
5706
|
-
if (!newData?.find(
|
|
5707
|
-
(n) => x.getMonth() + 1 === n.month && x.getFullYear() === n.year
|
|
5708
|
-
)) {
|
|
5709
|
-
newData.push({
|
|
5710
|
-
year: x.getFullYear(),
|
|
5711
|
-
month: x.getMonth() + 1,
|
|
5712
|
-
income: 0,
|
|
5713
|
-
costOfGoodsSold: 0,
|
|
5714
|
-
grossProfit: 0,
|
|
5715
|
-
operatingExpenses: 0,
|
|
5716
|
-
profitBeforeTaxes: 0,
|
|
5717
|
-
taxes: 0,
|
|
5718
|
-
netProfit: 0,
|
|
5719
|
-
fullyCategorized: false,
|
|
5720
|
-
totalExpenses: 0,
|
|
5721
|
-
uncategorizedInflows: 0,
|
|
5722
|
-
uncategorizedOutflows: 0,
|
|
5723
|
-
uncategorized_transactions: 0,
|
|
5724
|
-
isLoading: true
|
|
5725
|
-
});
|
|
5726
|
-
}
|
|
5727
|
-
});
|
|
5728
|
-
}
|
|
5729
|
-
if (newData) {
|
|
5730
|
-
setData(
|
|
5731
|
-
newData.sort(
|
|
5732
|
-
(a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
|
|
5733
|
-
)
|
|
5734
|
-
);
|
|
5735
|
-
}
|
|
5736
|
-
}, [startYear, startMonth]);
|
|
5737
|
-
(0, import_react66.useEffect)(() => {
|
|
5738
|
-
const newData = rawData?.data?.months?.slice();
|
|
5739
|
-
if (data && newData) {
|
|
5740
|
-
data.forEach((x) => {
|
|
5741
|
-
if (!newData?.find((n) => x.month === n.month && x.year === n.year)) {
|
|
5742
|
-
newData.push({ ...x });
|
|
5743
|
-
}
|
|
5744
|
-
});
|
|
5745
|
-
}
|
|
5746
|
-
if (newData) {
|
|
5747
|
-
setData(
|
|
5748
|
-
newData.sort(
|
|
5749
|
-
(a, b) => Number(new Date(a.year, a.month, 1)) - Number(new Date(b.year, b.month, 1))
|
|
5750
|
-
)
|
|
5751
|
-
);
|
|
5752
|
-
}
|
|
5753
|
-
}, [rawData]);
|
|
5754
|
-
(0, import_react66.useEffect)(() => {
|
|
5755
|
-
if (isLoading && loaded === "initial") {
|
|
5756
|
-
setLoaded("loading");
|
|
5757
|
-
return;
|
|
5758
|
-
}
|
|
5759
|
-
if (!isLoading && rawData) {
|
|
5760
|
-
setLoaded("complete");
|
|
5761
|
-
}
|
|
5762
|
-
}, [data, isLoading]);
|
|
5763
|
-
const pullData = (date2) => setDate(date2);
|
|
5764
|
-
(0, import_react66.useEffect)(() => {
|
|
5765
|
-
if (isLoading || isValidating) {
|
|
5766
|
-
read("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */);
|
|
5767
|
-
}
|
|
5768
|
-
}, [isLoading, isValidating]);
|
|
5769
|
-
(0, import_react66.useEffect)(() => {
|
|
5770
|
-
if (hasBeenTouched("PROFIT_AND_LOSS" /* PROFIT_AND_LOSS */)) {
|
|
5771
|
-
mutate();
|
|
5772
|
-
}
|
|
5773
|
-
}, [syncTimestamps]);
|
|
5774
|
-
const refetch = () => {
|
|
5775
|
-
mutate();
|
|
5776
|
-
};
|
|
5777
|
-
return {
|
|
5778
|
-
data,
|
|
5779
|
-
isLoading,
|
|
5780
|
-
loaded,
|
|
5781
|
-
error,
|
|
5782
|
-
pullData,
|
|
5783
|
-
refetch
|
|
5784
|
-
};
|
|
5785
|
-
};
|
|
5786
|
-
|
|
5787
|
-
// src/components/ExpandedBankTransactionRow/ExpandedBankTransactionRow.tsx
|
|
5788
5787
|
var isAlreadyMatched2 = (bankTransaction) => {
|
|
5789
5788
|
if (bankTransaction?.match) {
|
|
5790
5789
|
const foundMatch = bankTransaction.suggested_matches?.find(
|
|
@@ -6336,7 +6335,8 @@ var BankTransactionRow = ({
|
|
|
6336
6335
|
initialLoad,
|
|
6337
6336
|
showDescriptions,
|
|
6338
6337
|
showReceiptUploads,
|
|
6339
|
-
hardRefreshPnlOnCategorize
|
|
6338
|
+
hardRefreshPnlOnCategorize,
|
|
6339
|
+
stringOverrides
|
|
6340
6340
|
}) => {
|
|
6341
6341
|
const expandedRowRef = (0, import_react69.useRef)(null);
|
|
6342
6342
|
const [showRetry, setShowRetry] = (0, import_react69.useState)(false);
|
|
@@ -6562,7 +6562,7 @@ var BankTransactionRow = ({
|
|
|
6562
6562
|
active: open,
|
|
6563
6563
|
action: categorized ? "save" /* SAVE */ : "update" /* UPDATE */
|
|
6564
6564
|
},
|
|
6565
|
-
categorized ? "Update" : "Approve"
|
|
6565
|
+
categorized ? stringOverrides?.updateButtonText || "Update" : stringOverrides?.approveButtonText || "Approve"
|
|
6566
6566
|
) : null,
|
|
6567
6567
|
/* @__PURE__ */ import_react69.default.createElement(
|
|
6568
6568
|
IconButton,
|
|
@@ -6644,7 +6644,8 @@ var BankTransactionListItem = ({
|
|
|
6644
6644
|
showReceiptUploads,
|
|
6645
6645
|
hardRefreshPnlOnCategorize,
|
|
6646
6646
|
containerWidth,
|
|
6647
|
-
removeTransaction
|
|
6647
|
+
removeTransaction,
|
|
6648
|
+
stringOverrides
|
|
6648
6649
|
}) => {
|
|
6649
6650
|
const expandedRowRef = (0, import_react71.useRef)(null);
|
|
6650
6651
|
const [showRetry, setShowRetry] = (0, import_react71.useState)(false);
|
|
@@ -6737,7 +6738,7 @@ var BankTransactionListItem = ({
|
|
|
6737
6738
|
close: () => setOpen(false),
|
|
6738
6739
|
categorized,
|
|
6739
6740
|
asListItem: true,
|
|
6740
|
-
submitBtnText: categorized ? "Update" : "Approve",
|
|
6741
|
+
submitBtnText: categorized ? stringOverrides?.updateButtonText || "Update" : stringOverrides?.approveButtonText || "Approve",
|
|
6741
6742
|
containerWidth,
|
|
6742
6743
|
showDescriptions,
|
|
6743
6744
|
showReceiptUploads,
|
|
@@ -6767,7 +6768,7 @@ var BankTransactionListItem = ({
|
|
|
6767
6768
|
processing: bankTransaction.processing,
|
|
6768
6769
|
action: !categorized ? "save" /* SAVE */ : "update" /* UPDATE */
|
|
6769
6770
|
},
|
|
6770
|
-
!categorized ? "Approve" : "Update"
|
|
6771
|
+
!categorized ? stringOverrides?.approveButtonText || "Approve" : stringOverrides?.updateButtonText || "Update"
|
|
6771
6772
|
) : null, !categorized && showRetry ? /* @__PURE__ */ import_react71.default.createElement(
|
|
6772
6773
|
RetryButton,
|
|
6773
6774
|
{
|
|
@@ -6792,7 +6793,8 @@ var BankTransactionList = ({
|
|
|
6792
6793
|
containerWidth,
|
|
6793
6794
|
showDescriptions = false,
|
|
6794
6795
|
showReceiptUploads = false,
|
|
6795
|
-
hardRefreshPnlOnCategorize = false
|
|
6796
|
+
hardRefreshPnlOnCategorize = false,
|
|
6797
|
+
stringOverrides
|
|
6796
6798
|
}) => {
|
|
6797
6799
|
return /* @__PURE__ */ import_react72.default.createElement("ul", { className: "Layer__bank-transactions__list" }, bankTransactions?.map(
|
|
6798
6800
|
(bankTransaction, index) => /* @__PURE__ */ import_react72.default.createElement(
|
|
@@ -6807,7 +6809,8 @@ var BankTransactionList = ({
|
|
|
6807
6809
|
containerWidth,
|
|
6808
6810
|
showDescriptions,
|
|
6809
6811
|
showReceiptUploads,
|
|
6810
|
-
hardRefreshPnlOnCategorize
|
|
6812
|
+
hardRefreshPnlOnCategorize,
|
|
6813
|
+
stringOverrides
|
|
6811
6814
|
}
|
|
6812
6815
|
)
|
|
6813
6816
|
));
|
|
@@ -7626,6 +7629,7 @@ var BankTransactionsTable = ({
|
|
|
7626
7629
|
showDescriptions = false,
|
|
7627
7630
|
showReceiptUploads = false,
|
|
7628
7631
|
hardRefreshPnlOnCategorize = false,
|
|
7632
|
+
stringOverrides,
|
|
7629
7633
|
isSyncing = false,
|
|
7630
7634
|
page,
|
|
7631
7635
|
lastPage,
|
|
@@ -7637,7 +7641,7 @@ var BankTransactionsTable = ({
|
|
|
7637
7641
|
width: "100%",
|
|
7638
7642
|
className: "Layer__table Layer__bank-transactions__table with-cell-separators"
|
|
7639
7643
|
},
|
|
7640
|
-
/* @__PURE__ */ import_react86.default.createElement("thead", null, /* @__PURE__ */ import_react86.default.createElement("tr", null, /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__date-col" }, "Date"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__tx-col" }, "Transaction"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__account-col" }, "Account"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount Layer__table-cell__amount-col" }, "Amount"), categorizeView && editable ? /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-header--primary Layer__table-cell__category-col" }, "Categorize") : /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-cell__category-col" }, "Category"))),
|
|
7644
|
+
/* @__PURE__ */ import_react86.default.createElement("thead", null, /* @__PURE__ */ import_react86.default.createElement("tr", null, /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__date-col" }, stringOverrides?.transactionsTable?.dateColumnHeaderText || "Date"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__tx-col" }, stringOverrides?.transactionsTable?.transactionColumnHeaderText || "Transaction"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__bank-transactions__account-col" }, stringOverrides?.transactionsTable?.accountColumnHeaderText || "Account"), /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount Layer__table-cell__amount-col" }, stringOverrides?.transactionsTable?.amountColumnHeaderText || "Amount"), categorizeView && editable ? /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-header--primary Layer__table-cell__category-col" }, stringOverrides?.transactionsTable?.categorizeColumnHeaderText || "Categorize") : /* @__PURE__ */ import_react86.default.createElement("th", { className: "Layer__table-header Layer__table-cell__category-col" }, stringOverrides?.transactionsTable?.categoryColumnHeaderText || "Category"))),
|
|
7641
7645
|
isLoading && page && page === 1 ? /* @__PURE__ */ import_react86.default.createElement(BankTransactionsLoader, { isLoading: true }) : null,
|
|
7642
7646
|
!isLoading && isSyncing && page && page === 1 ? /* @__PURE__ */ import_react86.default.createElement(BankTransactionsLoader, { isLoading: false }) : null,
|
|
7643
7647
|
/* @__PURE__ */ import_react86.default.createElement("tbody", null, !isLoading && bankTransactions?.map(
|
|
@@ -7654,7 +7658,8 @@ var BankTransactionsTable = ({
|
|
|
7654
7658
|
containerWidth,
|
|
7655
7659
|
showDescriptions,
|
|
7656
7660
|
showReceiptUploads,
|
|
7657
|
-
hardRefreshPnlOnCategorize
|
|
7661
|
+
hardRefreshPnlOnCategorize,
|
|
7662
|
+
stringOverrides: stringOverrides?.bankTransactionCTAs
|
|
7658
7663
|
}
|
|
7659
7664
|
)
|
|
7660
7665
|
), isSyncing && (lastPage || (!bankTransactions || bankTransactions.length === 0) && page === 1) ? /* @__PURE__ */ import_react86.default.createElement("tr", null, /* @__PURE__ */ import_react86.default.createElement("td", { colSpan: 3 }, /* @__PURE__ */ import_react86.default.createElement(
|
|
@@ -8429,7 +8434,9 @@ var Tabs = ({ name, options, selected, onChange }) => {
|
|
|
8429
8434
|
// src/components/BankTransactions/BankTransactionsHeader.tsx
|
|
8430
8435
|
var import_classnames42 = __toESM(require("classnames"));
|
|
8431
8436
|
var import_date_fns15 = require("date-fns");
|
|
8432
|
-
var DownloadButton = (
|
|
8437
|
+
var DownloadButton = ({
|
|
8438
|
+
downloadButtonTextOverride
|
|
8439
|
+
}) => {
|
|
8433
8440
|
const { auth, businessId, apiUrl } = useLayerContext();
|
|
8434
8441
|
const [requestFailed, setRequestFailed] = (0, import_react95.useState)(false);
|
|
8435
8442
|
const handleClick = async () => {
|
|
@@ -8471,7 +8478,7 @@ var DownloadButton = () => {
|
|
|
8471
8478
|
rightIcon: /* @__PURE__ */ import_react95.default.createElement(DownloadCloud_default, { size: 12 }),
|
|
8472
8479
|
onClick: handleClick
|
|
8473
8480
|
},
|
|
8474
|
-
"Download"
|
|
8481
|
+
downloadButtonTextOverride || "Download"
|
|
8475
8482
|
);
|
|
8476
8483
|
};
|
|
8477
8484
|
var BankTransactionsHeader = ({
|
|
@@ -8486,6 +8493,7 @@ var BankTransactionsHeader = ({
|
|
|
8486
8493
|
listView,
|
|
8487
8494
|
dateRange,
|
|
8488
8495
|
setDateRange,
|
|
8496
|
+
stringOverrides,
|
|
8489
8497
|
isSyncing
|
|
8490
8498
|
}) => {
|
|
8491
8499
|
const { business } = useLayerContext();
|
|
@@ -8505,7 +8513,7 @@ var BankTransactionsHeader = ({
|
|
|
8505
8513
|
className: "Layer__bank-transactions__title",
|
|
8506
8514
|
size: asWidget ? "secondary" /* secondary */ : "secondary" /* secondary */
|
|
8507
8515
|
},
|
|
8508
|
-
"Transactions"
|
|
8516
|
+
stringOverrides?.header || "Transactions"
|
|
8509
8517
|
), isSyncing && /* @__PURE__ */ import_react95.default.createElement(
|
|
8510
8518
|
SyncingComponent,
|
|
8511
8519
|
{
|
|
@@ -8529,7 +8537,12 @@ var BankTransactionsHeader = ({
|
|
|
8529
8537
|
minDate: getEarliestDateToBrowse(business)
|
|
8530
8538
|
}
|
|
8531
8539
|
) : null),
|
|
8532
|
-
/* @__PURE__ */ import_react95.default.createElement("div", { className: "Layer__header__actions-wrapper" }, !categorizedOnly && !(mobileComponent == "mobileList" && listView) && categorizeView && /* @__PURE__ */ import_react95.default.createElement("div", { className: "Layer__header__actions" }, /* @__PURE__ */ import_react95.default.createElement(
|
|
8540
|
+
/* @__PURE__ */ import_react95.default.createElement("div", { className: "Layer__header__actions-wrapper" }, !categorizedOnly && !(mobileComponent == "mobileList" && listView) && categorizeView && /* @__PURE__ */ import_react95.default.createElement("div", { className: "Layer__header__actions" }, /* @__PURE__ */ import_react95.default.createElement(
|
|
8541
|
+
DownloadButton,
|
|
8542
|
+
{
|
|
8543
|
+
downloadButtonTextOverride: stringOverrides?.downloadButton
|
|
8544
|
+
}
|
|
8545
|
+
), /* @__PURE__ */ import_react95.default.createElement(
|
|
8533
8546
|
Toggle,
|
|
8534
8547
|
{
|
|
8535
8548
|
name: "bank-transaction-display",
|
|
@@ -8647,7 +8660,8 @@ var BankTransactionsContent = ({
|
|
|
8647
8660
|
monthlyView = false,
|
|
8648
8661
|
mobileComponent,
|
|
8649
8662
|
filters: inputFilters,
|
|
8650
|
-
hideHeader = false
|
|
8663
|
+
hideHeader = false,
|
|
8664
|
+
stringOverrides
|
|
8651
8665
|
}) => {
|
|
8652
8666
|
const [currentPage, setCurrentPage] = (0, import_react97.useState)(1);
|
|
8653
8667
|
const [initialLoad, setInitialLoad] = (0, import_react97.useState)(true);
|
|
@@ -8804,6 +8818,7 @@ var BankTransactionsContent = ({
|
|
|
8804
8818
|
listView,
|
|
8805
8819
|
dateRange,
|
|
8806
8820
|
setDateRange: (v) => setDateRange(v),
|
|
8821
|
+
stringOverrides: stringOverrides?.bankTransactionsHeader,
|
|
8807
8822
|
isDataLoading: isLoading,
|
|
8808
8823
|
isSyncing
|
|
8809
8824
|
}
|
|
@@ -8823,6 +8838,7 @@ var BankTransactionsContent = ({
|
|
|
8823
8838
|
showReceiptUploads,
|
|
8824
8839
|
page: currentPage,
|
|
8825
8840
|
hardRefreshPnlOnCategorize,
|
|
8841
|
+
stringOverrides,
|
|
8826
8842
|
lastPage: isLastPage,
|
|
8827
8843
|
onRefresh: refetch
|
|
8828
8844
|
}
|
|
@@ -8834,7 +8850,8 @@ var BankTransactionsContent = ({
|
|
|
8834
8850
|
editable,
|
|
8835
8851
|
removeTransaction,
|
|
8836
8852
|
containerWidth,
|
|
8837
|
-
hardRefreshPnlOnCategorize
|
|
8853
|
+
hardRefreshPnlOnCategorize,
|
|
8854
|
+
stringOverrides: stringOverrides?.bankTransactionCTAs
|
|
8838
8855
|
}
|
|
8839
8856
|
) : null,
|
|
8840
8857
|
!isLoading && listView && mobileComponent === "mobileList" ? /* @__PURE__ */ import_react97.default.createElement(
|
|
@@ -10234,7 +10251,8 @@ var DetailedTable = ({
|
|
|
10234
10251
|
filters,
|
|
10235
10252
|
sortBy,
|
|
10236
10253
|
hoveredItem,
|
|
10237
|
-
setHoveredItem
|
|
10254
|
+
setHoveredItem,
|
|
10255
|
+
stringOverrides
|
|
10238
10256
|
}) => {
|
|
10239
10257
|
const buildColClass = (column) => {
|
|
10240
10258
|
return (0, import_classnames44.default)(
|
|
@@ -10250,7 +10268,8 @@ var DetailedTable = ({
|
|
|
10250
10268
|
className: buildColClass("category"),
|
|
10251
10269
|
onClick: () => sortBy(sidebarScope ?? "expenses", "category")
|
|
10252
10270
|
},
|
|
10253
|
-
"Category
|
|
10271
|
+
stringOverrides?.categoryColumnHeader || "Category",
|
|
10272
|
+
" ",
|
|
10254
10273
|
/* @__PURE__ */ import_react105.default.createElement(SortArrows_default, { className: "Layer__sort-arrows" })
|
|
10255
10274
|
), /* @__PURE__ */ import_react105.default.createElement(
|
|
10256
10275
|
"th",
|
|
@@ -10258,7 +10277,8 @@ var DetailedTable = ({
|
|
|
10258
10277
|
className: buildColClass("type"),
|
|
10259
10278
|
onClick: () => sortBy(sidebarScope ?? "expenses", "type")
|
|
10260
10279
|
},
|
|
10261
|
-
"Type
|
|
10280
|
+
stringOverrides?.typeColumnHeader || "Type",
|
|
10281
|
+
" ",
|
|
10262
10282
|
/* @__PURE__ */ import_react105.default.createElement(SortArrows_default, { className: "Layer__sort-arrows" })
|
|
10263
10283
|
), /* @__PURE__ */ import_react105.default.createElement("th", null), /* @__PURE__ */ import_react105.default.createElement(
|
|
10264
10284
|
"th",
|
|
@@ -10266,7 +10286,8 @@ var DetailedTable = ({
|
|
|
10266
10286
|
className: buildColClass("value"),
|
|
10267
10287
|
onClick: () => sortBy(sidebarScope ?? "expenses", "value")
|
|
10268
10288
|
},
|
|
10269
|
-
"Value
|
|
10289
|
+
stringOverrides?.valueColumnHeader || "Value",
|
|
10290
|
+
" ",
|
|
10270
10291
|
/* @__PURE__ */ import_react105.default.createElement(SortArrows_default, { className: "Layer__sort-arrows" })
|
|
10271
10292
|
))), /* @__PURE__ */ import_react105.default.createElement("tbody", null, filteredData.filter((x) => !x.hidden).map((item, idx) => {
|
|
10272
10293
|
return /* @__PURE__ */ import_react105.default.createElement(
|
|
@@ -10607,7 +10628,8 @@ var import_date_fns21 = require("date-fns");
|
|
|
10607
10628
|
var ProfitAndLossDetailedCharts = ({
|
|
10608
10629
|
scope,
|
|
10609
10630
|
hideClose = false,
|
|
10610
|
-
showDatePicker = false
|
|
10631
|
+
showDatePicker = false,
|
|
10632
|
+
stringOverrides
|
|
10611
10633
|
}) => {
|
|
10612
10634
|
const {
|
|
10613
10635
|
filteredDataRevenue,
|
|
@@ -10662,7 +10684,8 @@ var ProfitAndLossDetailedCharts = ({
|
|
|
10662
10684
|
filters,
|
|
10663
10685
|
sortBy,
|
|
10664
10686
|
hoveredItem,
|
|
10665
|
-
setHoveredItem
|
|
10687
|
+
setHoveredItem,
|
|
10688
|
+
stringOverrides: stringOverrides?.detailedTableStringOverrides
|
|
10666
10689
|
}
|
|
10667
10690
|
))));
|
|
10668
10691
|
};
|
|
@@ -10736,8 +10759,10 @@ var buildMiniChartData = (scope, data) => {
|
|
|
10736
10759
|
};
|
|
10737
10760
|
var ProfitAndLossSummaries = ({
|
|
10738
10761
|
vertical,
|
|
10739
|
-
|
|
10740
|
-
|
|
10762
|
+
actionable = false,
|
|
10763
|
+
revenueLabel,
|
|
10764
|
+
// deprecated
|
|
10765
|
+
stringOverrides
|
|
10741
10766
|
}) => {
|
|
10742
10767
|
const {
|
|
10743
10768
|
data: storedData,
|
|
@@ -10784,7 +10809,7 @@ var ProfitAndLossSummaries = ({
|
|
|
10784
10809
|
}
|
|
10785
10810
|
},
|
|
10786
10811
|
/* @__PURE__ */ import_react110.default.createElement(MiniChart, { data: revenueChartData }),
|
|
10787
|
-
/* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, revenueLabel), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, null)) : /* @__PURE__ */ import_react110.default.createElement(
|
|
10812
|
+
/* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, stringOverrides?.revenueLabel || revenueLabel || "Revenue"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, null)) : /* @__PURE__ */ import_react110.default.createElement(
|
|
10788
10813
|
"span",
|
|
10789
10814
|
{
|
|
10790
10815
|
className: `Layer__profit-and-loss-summaries__amount ${incomeDirectionClass}`
|
|
@@ -10806,7 +10831,7 @@ var ProfitAndLossSummaries = ({
|
|
|
10806
10831
|
}
|
|
10807
10832
|
},
|
|
10808
10833
|
/* @__PURE__ */ import_react110.default.createElement(MiniChart, { data: expensesChartData }),
|
|
10809
|
-
/* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, "Expenses"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ import_react110.default.createElement(
|
|
10834
|
+
/* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, stringOverrides?.expensesLabel || "Expenses"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ import_react110.default.createElement(
|
|
10810
10835
|
"span",
|
|
10811
10836
|
{
|
|
10812
10837
|
className: `Layer__profit-and-loss-summaries__amount ${expensesDirectionClass}`
|
|
@@ -10824,7 +10849,7 @@ var ProfitAndLossSummaries = ({
|
|
|
10824
10849
|
actionable && "Layer__actionable"
|
|
10825
10850
|
)
|
|
10826
10851
|
},
|
|
10827
|
-
/* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, "Net Profit"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ import_react110.default.createElement(
|
|
10852
|
+
/* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__text" }, /* @__PURE__ */ import_react110.default.createElement("span", { className: "Layer__profit-and-loss-summaries__title" }, stringOverrides?.netProfitLabel || "Net Profit"), isLoading || storedData === void 0 ? /* @__PURE__ */ import_react110.default.createElement("div", { className: "Layer__profit-and-loss-summaries__loader" }, /* @__PURE__ */ import_react110.default.createElement(SkeletonLoader, { className: "Layer__profit-and-loss-summaries__loader" })) : /* @__PURE__ */ import_react110.default.createElement(
|
|
10828
10853
|
"span",
|
|
10829
10854
|
{
|
|
10830
10855
|
className: `Layer__profit-and-loss-summaries__amount ${netProfitDirectionClass}`
|
|
@@ -11011,7 +11036,7 @@ var empty_profit_and_loss_report_default = {
|
|
|
11011
11036
|
|
|
11012
11037
|
// src/components/ProfitAndLossTable/ProfitAndLossTable.tsx
|
|
11013
11038
|
var import_classnames46 = __toESM(require("classnames"));
|
|
11014
|
-
var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
|
|
11039
|
+
var ProfitAndLossTable = ({ lockExpanded, asContainer, stringOverrides }) => {
|
|
11015
11040
|
const {
|
|
11016
11041
|
data: actualData,
|
|
11017
11042
|
isLoading,
|
|
@@ -11064,7 +11089,7 @@ var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
|
|
|
11064
11089
|
{
|
|
11065
11090
|
lineItem: {
|
|
11066
11091
|
value: data.gross_profit,
|
|
11067
|
-
display_name: "Gross Profit"
|
|
11092
|
+
display_name: stringOverrides?.grossProfitLabel || "Gross Profit"
|
|
11068
11093
|
},
|
|
11069
11094
|
variant: "summation",
|
|
11070
11095
|
direction: "CREDIT" /* CREDIT */,
|
|
@@ -11088,7 +11113,7 @@ var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
|
|
|
11088
11113
|
{
|
|
11089
11114
|
lineItem: {
|
|
11090
11115
|
value: data.profit_before_taxes,
|
|
11091
|
-
display_name: "Profit Before Taxes"
|
|
11116
|
+
display_name: stringOverrides?.profitBeforeTaxesLabel || "Profit Before Taxes"
|
|
11092
11117
|
},
|
|
11093
11118
|
variant: "summation",
|
|
11094
11119
|
direction: "CREDIT" /* CREDIT */,
|
|
@@ -11112,7 +11137,7 @@ var ProfitAndLossTable = ({ lockExpanded, asContainer }) => {
|
|
|
11112
11137
|
{
|
|
11113
11138
|
lineItem: {
|
|
11114
11139
|
value: data.net_profit,
|
|
11115
|
-
display_name: "Net Profit"
|
|
11140
|
+
display_name: stringOverrides?.netProfitLabel || "Net Profit"
|
|
11116
11141
|
},
|
|
11117
11142
|
variant: "summation",
|
|
11118
11143
|
direction: "CREDIT" /* CREDIT */,
|
|
@@ -11462,7 +11487,8 @@ var Table = ({
|
|
|
11462
11487
|
// src/components/BalanceSheetTable/BalanceSheetTable.tsx
|
|
11463
11488
|
var BalanceSheetTable = ({
|
|
11464
11489
|
data,
|
|
11465
|
-
config
|
|
11490
|
+
config,
|
|
11491
|
+
stringOverrides
|
|
11466
11492
|
}) => {
|
|
11467
11493
|
const { isOpen, setIsOpen, expandedAllRows } = useTableExpandRow();
|
|
11468
11494
|
const allRowKeys = [];
|
|
@@ -11518,7 +11544,7 @@ var BalanceSheetTable = ({
|
|
|
11518
11544
|
/* @__PURE__ */ import_react125.default.createElement(TableCell, { primary: true, isCurrency: true }, lineItem.value)
|
|
11519
11545
|
));
|
|
11520
11546
|
};
|
|
11521
|
-
return /* @__PURE__ */ import_react125.default.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ import_react125.default.createElement(TableHead, null, /* @__PURE__ */ import_react125.default.createElement(TableRow, { isHeadRow: true, rowKey: "balance-sheet-head-row" }, /* @__PURE__ */ import_react125.default.createElement(TableCell, { isHeaderCell: true }, "Type"), /* @__PURE__ */ import_react125.default.createElement(TableCell, { isHeaderCell: true }, "Total"))), /* @__PURE__ */ import_react125.default.createElement(TableBody, null, config.map((row, idx) => /* @__PURE__ */ import_react125.default.createElement(import_react125.default.Fragment, { key: row.lineItem }, data[row.lineItem] && renderLineItem(
|
|
11547
|
+
return /* @__PURE__ */ import_react125.default.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ import_react125.default.createElement(TableHead, null, /* @__PURE__ */ import_react125.default.createElement(TableRow, { isHeadRow: true, rowKey: "balance-sheet-head-row" }, /* @__PURE__ */ import_react125.default.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.typeColumnHeader || "Type"), /* @__PURE__ */ import_react125.default.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.totalColumnHeader || "Total"))), /* @__PURE__ */ import_react125.default.createElement(TableBody, null, config.map((row, idx) => /* @__PURE__ */ import_react125.default.createElement(import_react125.default.Fragment, { key: row.lineItem }, data[row.lineItem] && renderLineItem(
|
|
11522
11548
|
data[row.lineItem],
|
|
11523
11549
|
0,
|
|
11524
11550
|
row.lineItem,
|
|
@@ -11620,11 +11646,12 @@ var import_date_fns24 = require("date-fns");
|
|
|
11620
11646
|
var COMPONENT_NAME3 = "balance-sheet";
|
|
11621
11647
|
var BalanceSheet = (props) => {
|
|
11622
11648
|
const balanceSheetContextData = useBalanceSheet(props.effectiveDate);
|
|
11623
|
-
return /* @__PURE__ */ import_react129.default.createElement(BalanceSheetContext.Provider, { value: balanceSheetContextData }, /* @__PURE__ */ import_react129.default.createElement(BalanceSheetView, { asWidget: props.asWidget, ...props }));
|
|
11649
|
+
return /* @__PURE__ */ import_react129.default.createElement(BalanceSheetContext.Provider, { value: balanceSheetContextData }, /* @__PURE__ */ import_react129.default.createElement(BalanceSheetView, { asWidget: props.asWidget, stringOverrides: props.stringOverrides, ...props }));
|
|
11624
11650
|
};
|
|
11625
11651
|
var BalanceSheetView = ({
|
|
11626
11652
|
withExpandAllButton = true,
|
|
11627
|
-
asWidget = false
|
|
11653
|
+
asWidget = false,
|
|
11654
|
+
stringOverrides
|
|
11628
11655
|
}) => {
|
|
11629
11656
|
const [effectiveDate, setEffectiveDate] = (0, import_react129.useState)((0, import_date_fns24.startOfDay)(/* @__PURE__ */ new Date()));
|
|
11630
11657
|
const { data, isLoading, refetch } = useBalanceSheet(effectiveDate);
|
|
@@ -11653,7 +11680,7 @@ var BalanceSheetView = ({
|
|
|
11653
11680
|
}
|
|
11654
11681
|
), withExpandAllButton && /* @__PURE__ */ import_react129.default.createElement(BalanceSheetExpandAllButton, null))
|
|
11655
11682
|
},
|
|
11656
|
-
!data || isLoading ? /* @__PURE__ */ import_react129.default.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ import_react129.default.createElement(Loader2, null)) : /* @__PURE__ */ import_react129.default.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS })
|
|
11683
|
+
!data || isLoading ? /* @__PURE__ */ import_react129.default.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ import_react129.default.createElement(Loader2, null)) : /* @__PURE__ */ import_react129.default.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS, stringOverrides: stringOverrides?.balanceSheetTable })
|
|
11657
11684
|
)));
|
|
11658
11685
|
}
|
|
11659
11686
|
return /* @__PURE__ */ import_react129.default.createElement(TableProvider, null, /* @__PURE__ */ import_react129.default.createElement(
|
|
@@ -11668,7 +11695,7 @@ var BalanceSheetView = ({
|
|
|
11668
11695
|
}
|
|
11669
11696
|
), withExpandAllButton && /* @__PURE__ */ import_react129.default.createElement(BalanceSheetExpandAllButton, null))
|
|
11670
11697
|
},
|
|
11671
|
-
!data || isLoading ? /* @__PURE__ */ import_react129.default.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ import_react129.default.createElement(Loader2, null)) : /* @__PURE__ */ import_react129.default.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS })
|
|
11698
|
+
!data || isLoading ? /* @__PURE__ */ import_react129.default.createElement("div", { className: `Layer__${COMPONENT_NAME3}__loader-container` }, /* @__PURE__ */ import_react129.default.createElement(Loader2, null)) : /* @__PURE__ */ import_react129.default.createElement(BalanceSheetTable, { data, config: BALANCE_SHEET_ROWS, stringOverrides: stringOverrides?.balanceSheetTable })
|
|
11672
11699
|
));
|
|
11673
11700
|
};
|
|
11674
11701
|
|
|
@@ -11726,7 +11753,8 @@ var useStatementOfCashFlow = (startDate = /* @__PURE__ */ new Date(), endDate =
|
|
|
11726
11753
|
var import_react132 = __toESM(require("react"));
|
|
11727
11754
|
var StatementOfCashFlowTable = ({
|
|
11728
11755
|
data,
|
|
11729
|
-
config
|
|
11756
|
+
config,
|
|
11757
|
+
stringOverrides
|
|
11730
11758
|
}) => {
|
|
11731
11759
|
const { isOpen, setIsOpen } = useTableExpandRow();
|
|
11732
11760
|
const renderLineItem = (lineItem, depth = 0, rowKey, rowIndex) => {
|
|
@@ -11768,7 +11796,7 @@ var StatementOfCashFlowTable = ({
|
|
|
11768
11796
|
/* @__PURE__ */ import_react132.default.createElement(TableCell, { primary: true, isCurrency: true }, lineItem.value)
|
|
11769
11797
|
));
|
|
11770
11798
|
};
|
|
11771
|
-
return /* @__PURE__ */ import_react132.default.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ import_react132.default.createElement(TableHead, null, /* @__PURE__ */ import_react132.default.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ import_react132.default.createElement(TableCell, { isHeaderCell: true }, "Type"), /* @__PURE__ */ import_react132.default.createElement(TableCell, { isHeaderCell: true }, "Total"))), /* @__PURE__ */ import_react132.default.createElement(TableBody, null, config.map((row, idx) => {
|
|
11799
|
+
return /* @__PURE__ */ import_react132.default.createElement(Table, { borderCollapse: "collapse" }, /* @__PURE__ */ import_react132.default.createElement(TableHead, null, /* @__PURE__ */ import_react132.default.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ import_react132.default.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.typeColumnHeader || "Type"), /* @__PURE__ */ import_react132.default.createElement(TableCell, { isHeaderCell: true }, stringOverrides?.totalColumnHeader || "Total"))), /* @__PURE__ */ import_react132.default.createElement(TableBody, null, config.map((row, idx) => {
|
|
11772
11800
|
if (row.type === "line_item") {
|
|
11773
11801
|
return /* @__PURE__ */ import_react132.default.createElement(import_react132.default.Fragment, { key: row.lineItem }, data[row.lineItem] && renderLineItem(
|
|
11774
11802
|
data[row.lineItem],
|
|
@@ -11824,11 +11852,11 @@ var STATEMENT_OF_CASH_FLOW_ROWS = [
|
|
|
11824
11852
|
// src/components/StatementOfCashFlow/StatementOfCashFlow.tsx
|
|
11825
11853
|
var import_date_fns26 = require("date-fns");
|
|
11826
11854
|
var COMPONENT_NAME4 = "statement-of-cash-flow";
|
|
11827
|
-
var StatementOfCashFlow = () => {
|
|
11855
|
+
var StatementOfCashFlow = ({ stringOverrides }) => {
|
|
11828
11856
|
const cashContextData = useStatementOfCashFlow();
|
|
11829
|
-
return /* @__PURE__ */ import_react133.default.createElement(StatementOfCashFlowContext.Provider, { value: cashContextData }, /* @__PURE__ */ import_react133.default.createElement(StatementOfCashFlowView,
|
|
11857
|
+
return /* @__PURE__ */ import_react133.default.createElement(StatementOfCashFlowContext.Provider, { value: cashContextData }, /* @__PURE__ */ import_react133.default.createElement(StatementOfCashFlowView, { stringOverrides }));
|
|
11830
11858
|
};
|
|
11831
|
-
var StatementOfCashFlowView = () => {
|
|
11859
|
+
var StatementOfCashFlowView = ({ stringOverrides }) => {
|
|
11832
11860
|
const [startDate, setStartDate] = (0, import_react133.useState)(
|
|
11833
11861
|
(0, import_date_fns26.startOfDay)((0, import_date_fns26.subWeeks)(/* @__PURE__ */ new Date(), 4))
|
|
11834
11862
|
);
|
|
@@ -11866,7 +11894,8 @@ var StatementOfCashFlowView = () => {
|
|
|
11866
11894
|
StatementOfCashFlowTable,
|
|
11867
11895
|
{
|
|
11868
11896
|
data,
|
|
11869
|
-
config: STATEMENT_OF_CASH_FLOW_ROWS
|
|
11897
|
+
config: STATEMENT_OF_CASH_FLOW_ROWS,
|
|
11898
|
+
stringOverrides: stringOverrides?.statementOfCashFlowTable
|
|
11870
11899
|
}
|
|
11871
11900
|
)
|
|
11872
11901
|
));
|
|
@@ -12797,7 +12826,7 @@ var useParentOptions = (data) => (0, import_react140.useMemo)(
|
|
|
12797
12826
|
);
|
|
12798
12827
|
|
|
12799
12828
|
// src/components/ChartOfAccountsForm/ChartOfAccountsForm.tsx
|
|
12800
|
-
var ChartOfAccountsForm = () => {
|
|
12829
|
+
var ChartOfAccountsForm = ({ stringOverrides }) => {
|
|
12801
12830
|
const {
|
|
12802
12831
|
form,
|
|
12803
12832
|
data,
|
|
@@ -12828,7 +12857,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12828
12857
|
submitForm();
|
|
12829
12858
|
}
|
|
12830
12859
|
},
|
|
12831
|
-
/* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__sidebar__header" }, /* @__PURE__ */ import_react141.default.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, form?.action === "edit" ? "Edit" : "Add New
|
|
12860
|
+
/* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__sidebar__header" }, /* @__PURE__ */ import_react141.default.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, form?.action === "edit" ? stringOverrides?.editModeHeader || "Edit Account" : stringOverrides?.createModeHeader || "Add New Account"), /* @__PURE__ */ import_react141.default.createElement("div", { className: "actions" }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12832
12861
|
Button,
|
|
12833
12862
|
{
|
|
12834
12863
|
type: "button",
|
|
@@ -12836,7 +12865,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12836
12865
|
variant: "secondary" /* secondary */,
|
|
12837
12866
|
disabled: sendingForm
|
|
12838
12867
|
},
|
|
12839
|
-
"Cancel"
|
|
12868
|
+
stringOverrides?.cancelButton || "Cancel"
|
|
12840
12869
|
), apiError && /* @__PURE__ */ import_react141.default.createElement(
|
|
12841
12870
|
RetryButton,
|
|
12842
12871
|
{
|
|
@@ -12845,7 +12874,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12845
12874
|
error: "Check connection and retry in few seconds.",
|
|
12846
12875
|
disabled: sendingForm
|
|
12847
12876
|
},
|
|
12848
|
-
"Retry"
|
|
12877
|
+
stringOverrides?.retryButton || "Retry"
|
|
12849
12878
|
), !apiError && /* @__PURE__ */ import_react141.default.createElement(
|
|
12850
12879
|
SubmitButton,
|
|
12851
12880
|
{
|
|
@@ -12854,7 +12883,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12854
12883
|
active: true,
|
|
12855
12884
|
disabled: sendingForm
|
|
12856
12885
|
},
|
|
12857
|
-
"Save"
|
|
12886
|
+
stringOverrides?.saveButton || "Save"
|
|
12858
12887
|
))),
|
|
12859
12888
|
apiError && /* @__PURE__ */ import_react141.default.createElement(
|
|
12860
12889
|
Text,
|
|
@@ -12865,7 +12894,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12865
12894
|
apiError
|
|
12866
12895
|
),
|
|
12867
12896
|
entry && /* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__form-edit-entry" }, /* @__PURE__ */ import_react141.default.createElement(Text, { weight: "bold" /* bold */ }, entry.name), /* @__PURE__ */ import_react141.default.createElement(Text, { weight: "bold" /* bold */ }, "$", centsToDollars(entry.balance || 0))),
|
|
12868
|
-
/* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__form" }, /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "parent", label: "Parent", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12897
|
+
/* @__PURE__ */ import_react141.default.createElement("div", { className: "Layer__chart-of-accounts__form" }, /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "parent", label: stringOverrides?.parentLabel || "Parent", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12869
12898
|
Select2,
|
|
12870
12899
|
{
|
|
12871
12900
|
options: parentOptions,
|
|
@@ -12873,7 +12902,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12873
12902
|
onChange: (sel) => changeFormData("parent", sel),
|
|
12874
12903
|
disabled: sendingForm
|
|
12875
12904
|
}
|
|
12876
|
-
)), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "name", label: "Name", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12905
|
+
)), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "name", label: stringOverrides?.nameLabel || "Name", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12877
12906
|
Input,
|
|
12878
12907
|
{
|
|
12879
12908
|
name: "name",
|
|
@@ -12884,7 +12913,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12884
12913
|
disabled: sendingForm,
|
|
12885
12914
|
onChange: (e) => changeFormData("name", e.target.value)
|
|
12886
12915
|
}
|
|
12887
|
-
)), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "type", label: "Type", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12916
|
+
)), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "type", label: stringOverrides?.typeLabel || "Type", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12888
12917
|
Select2,
|
|
12889
12918
|
{
|
|
12890
12919
|
options: LEDGER_ACCOUNT_TYPES,
|
|
@@ -12894,7 +12923,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12894
12923
|
errorMessage: form?.errors?.find((x) => x.field === "type")?.message,
|
|
12895
12924
|
disabled: sendingForm || form.action === "edit" || form.data.parent !== void 0
|
|
12896
12925
|
}
|
|
12897
|
-
)), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "subType", label: "Sub-Type", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12926
|
+
)), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "subType", label: stringOverrides?.subTypeLabel || "Sub-Type", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12898
12927
|
Select2,
|
|
12899
12928
|
{
|
|
12900
12929
|
options: form?.data.type?.value !== void 0 ? LEDGER_ACCOUNT_SUBTYPES_FOR_TYPE[form?.data.type?.value] : LEDGER_ACCOUNT_SUBTYPES,
|
|
@@ -12902,7 +12931,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12902
12931
|
onChange: (sel) => changeFormData("subType", sel),
|
|
12903
12932
|
disabled: sendingForm
|
|
12904
12933
|
}
|
|
12905
|
-
)), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "normality", label: "Normality", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12934
|
+
)), /* @__PURE__ */ import_react141.default.createElement(InputGroup, { name: "normality", label: stringOverrides?.normalityLabel || "Normality", inline: true }, /* @__PURE__ */ import_react141.default.createElement(
|
|
12906
12935
|
Select2,
|
|
12907
12936
|
{
|
|
12908
12937
|
options: NORMALITY_OPTIONS,
|
|
@@ -12922,7 +12951,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12922
12951
|
variant: "secondary" /* secondary */,
|
|
12923
12952
|
disabled: sendingForm
|
|
12924
12953
|
},
|
|
12925
|
-
"Cancel"
|
|
12954
|
+
stringOverrides?.cancelButton || "Cancel"
|
|
12926
12955
|
), apiError && /* @__PURE__ */ import_react141.default.createElement(
|
|
12927
12956
|
RetryButton,
|
|
12928
12957
|
{
|
|
@@ -12931,7 +12960,7 @@ var ChartOfAccountsForm = () => {
|
|
|
12931
12960
|
error: "Check connection and retry in few seconds.",
|
|
12932
12961
|
disabled: sendingForm
|
|
12933
12962
|
},
|
|
12934
|
-
"Retry"
|
|
12963
|
+
stringOverrides?.retryButton || "Retry"
|
|
12935
12964
|
), !apiError && /* @__PURE__ */ import_react141.default.createElement(
|
|
12936
12965
|
SubmitButton,
|
|
12937
12966
|
{
|
|
@@ -12940,16 +12969,17 @@ var ChartOfAccountsForm = () => {
|
|
|
12940
12969
|
active: true,
|
|
12941
12970
|
disabled: sendingForm
|
|
12942
12971
|
},
|
|
12943
|
-
"Save"
|
|
12972
|
+
stringOverrides?.saveButton || "Save"
|
|
12944
12973
|
)))
|
|
12945
12974
|
);
|
|
12946
12975
|
};
|
|
12947
12976
|
|
|
12948
12977
|
// src/components/ChartOfAccountsSidebar/ChartOfAccountsSidebar.tsx
|
|
12949
12978
|
var ChartOfAccountsSidebar = ({
|
|
12950
|
-
parentRef: _parentRef
|
|
12979
|
+
parentRef: _parentRef,
|
|
12980
|
+
stringOverrides
|
|
12951
12981
|
}) => {
|
|
12952
|
-
return /* @__PURE__ */ import_react142.default.createElement(ChartOfAccountsForm,
|
|
12982
|
+
return /* @__PURE__ */ import_react142.default.createElement(ChartOfAccountsForm, { stringOverrides });
|
|
12953
12983
|
};
|
|
12954
12984
|
|
|
12955
12985
|
// src/components/ChartOfAccountsTable/ChartOfAccountsTable.tsx
|
|
@@ -12959,7 +12989,8 @@ var ChartOfAccountsTable = ({
|
|
|
12959
12989
|
containerRef,
|
|
12960
12990
|
asWidget = false,
|
|
12961
12991
|
withDateControl = false,
|
|
12962
|
-
withExpandAllButton = false
|
|
12992
|
+
withExpandAllButton = false,
|
|
12993
|
+
stringOverrides
|
|
12963
12994
|
}) => {
|
|
12964
12995
|
const { data, isLoading, addAccount, error, isValidating, refetch, form } = (0, import_react143.useContext)(ChartOfAccountsContext);
|
|
12965
12996
|
const [expandAll, setExpandAll] = (0, import_react143.useState)();
|
|
@@ -12968,7 +12999,13 @@ var ChartOfAccountsTable = ({
|
|
|
12968
12999
|
return /* @__PURE__ */ import_react143.default.createElement(
|
|
12969
13000
|
Panel,
|
|
12970
13001
|
{
|
|
12971
|
-
sidebar: /* @__PURE__ */ import_react143.default.createElement(
|
|
13002
|
+
sidebar: /* @__PURE__ */ import_react143.default.createElement(
|
|
13003
|
+
ChartOfAccountsSidebar,
|
|
13004
|
+
{
|
|
13005
|
+
parentRef: containerRef,
|
|
13006
|
+
stringOverrides: stringOverrides?.chartOfAccountsForm
|
|
13007
|
+
}
|
|
13008
|
+
),
|
|
12972
13009
|
sidebarIsOpen: Boolean(form),
|
|
12973
13010
|
parentRef: containerRef
|
|
12974
13011
|
},
|
|
@@ -12984,7 +13021,7 @@ var ChartOfAccountsTable = ({
|
|
|
12984
13021
|
className: `Layer__${COMPONENT_NAME5}__title`,
|
|
12985
13022
|
size: asWidget ? "secondary" /* secondary */ : "primary" /* primary */
|
|
12986
13023
|
},
|
|
12987
|
-
"Chart of Accounts"
|
|
13024
|
+
stringOverrides?.headerText || "Chart of Accounts"
|
|
12988
13025
|
),
|
|
12989
13026
|
/* @__PURE__ */ import_react143.default.createElement(
|
|
12990
13027
|
"div",
|
|
@@ -13001,10 +13038,10 @@ var ChartOfAccountsTable = ({
|
|
|
13001
13038
|
},
|
|
13002
13039
|
!expandAll || expandAll === "collapsed" ? "Expand all rows" : "Collapse all rows"
|
|
13003
13040
|
)) : null,
|
|
13004
|
-
/* @__PURE__ */ import_react143.default.createElement("div", { className: "Layer__header__actions-col" }, /* @__PURE__ */ import_react143.default.createElement(Button, { onClick: () => addAccount(), disabled: isLoading }, "Add Account"))
|
|
13041
|
+
/* @__PURE__ */ import_react143.default.createElement("div", { className: "Layer__header__actions-col" }, /* @__PURE__ */ import_react143.default.createElement(Button, { onClick: () => addAccount(), disabled: isLoading }, stringOverrides?.addAccountButtonText || "Add Account"))
|
|
13005
13042
|
)
|
|
13006
13043
|
),
|
|
13007
|
-
/* @__PURE__ */ import_react143.default.createElement("table", { className: "Layer__chart-of-accounts__table" }, /* @__PURE__ */ import_react143.default.createElement("thead", null, /* @__PURE__ */ import_react143.default.createElement("tr", { className: "Layer__table-row--header" }, /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__name" }, "Name"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__type" }, "Type"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__subtype Layer__mobile--hidden" }, "Sub-Type"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__balance" }, "Balance"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__actions" }))), /* @__PURE__ */ import_react143.default.createElement("tbody", null, !error && data?.accounts.map((account, idx) => {
|
|
13044
|
+
/* @__PURE__ */ import_react143.default.createElement("table", { className: "Layer__chart-of-accounts__table" }, /* @__PURE__ */ import_react143.default.createElement("thead", null, /* @__PURE__ */ import_react143.default.createElement("tr", { className: "Layer__table-row--header" }, /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__name" }, stringOverrides?.nameColumnHeader || "Name"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__type" }, stringOverrides?.typeColumnHeader || "Type"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__subtype Layer__mobile--hidden" }, stringOverrides?.subtypeColumnHeader || "Sub-Type"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__balance" }, stringOverrides?.balanceColumnHeader || "Balance"), /* @__PURE__ */ import_react143.default.createElement("th", { className: "Layer__table-header Layer__coa__actions" }))), /* @__PURE__ */ import_react143.default.createElement("tbody", null, !error && data?.accounts.map((account, idx) => {
|
|
13008
13045
|
const currentCumulativeIndex = cumulativeIndex;
|
|
13009
13046
|
cumulativeIndex = (account.sub_accounts?.length || 0) + cumulativeIndex + 1;
|
|
13010
13047
|
return /* @__PURE__ */ import_react143.default.createElement(
|
|
@@ -13126,41 +13163,41 @@ var DetailsListItem = ({
|
|
|
13126
13163
|
};
|
|
13127
13164
|
|
|
13128
13165
|
// src/components/LedgerAccountEntryDetails/LedgerAccountEntryDetails.tsx
|
|
13129
|
-
var SourceDetailView = ({ source }) => {
|
|
13166
|
+
var SourceDetailView = ({ source, stringOverrides }) => {
|
|
13130
13167
|
switch (source.type) {
|
|
13131
13168
|
case "Transaction_Ledger_Entry_Source": {
|
|
13132
13169
|
const transactionSource = source;
|
|
13133
|
-
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Account name" }, transactionSource.account_name), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Date" }, /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: transactionSource.date })), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(transactionSource.amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Direction" }, transactionSource.direction), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Counterparty" }, transactionSource.counterparty));
|
|
13170
|
+
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.accountNameLabel || "Account name" }, transactionSource.account_name), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.dateLabel || "Date" }, /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: transactionSource.date })), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(transactionSource.amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.directionLabel || "Direction" }, transactionSource.direction), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.counterpartyLabel || "Counterparty" }, transactionSource.counterparty));
|
|
13134
13171
|
}
|
|
13135
13172
|
case "Invoice_Ledger_Entry_Source": {
|
|
13136
13173
|
const invoiceSource = source;
|
|
13137
|
-
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Invoice number" }, invoiceSource.invoice_number), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Recipient name" }, invoiceSource.recipient_name), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Date" }, /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: invoiceSource.date })), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(invoiceSource.amount)}`));
|
|
13174
|
+
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.invoiceNumberLabel || "Invoice number" }, invoiceSource.invoice_number), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.recipientNameLabel || "Recipient name" }, invoiceSource.recipient_name), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.dateLabel || "Date" }, /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: invoiceSource.date })), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(invoiceSource.amount)}`));
|
|
13138
13175
|
}
|
|
13139
13176
|
case "Manual_Ledger_Entry_Source": {
|
|
13140
13177
|
const manualSource = source;
|
|
13141
|
-
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Memo" }, manualSource.memo), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Created by" }, manualSource.created_by));
|
|
13178
|
+
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.memoLabel || "Memo" }, manualSource.memo), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.createdByLabel || "Created by" }, manualSource.created_by));
|
|
13142
13179
|
}
|
|
13143
13180
|
case "Invoice_Payment_Ledger_Entry_Source": {
|
|
13144
13181
|
const invoicePaymentSource = source;
|
|
13145
|
-
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Invoice number" }, invoicePaymentSource.invoice_number), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(invoicePaymentSource.amount)}`));
|
|
13182
|
+
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.invoiceNumberLabel || "Invoice number" }, invoicePaymentSource.invoice_number), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(invoicePaymentSource.amount)}`));
|
|
13146
13183
|
}
|
|
13147
13184
|
case "Refund_Ledger_Entry_Source": {
|
|
13148
13185
|
const refundSource = source;
|
|
13149
|
-
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(refundSource.refunded_to_customer_amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Recipient name" }, refundSource.recipient_name));
|
|
13186
|
+
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(refundSource.refunded_to_customer_amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.recipientNameLabel || "Recipient name" }, refundSource.recipient_name));
|
|
13150
13187
|
}
|
|
13151
13188
|
case "Opening_Balance_Ledger_Entry_Source": {
|
|
13152
13189
|
const openingBalanceSource = source;
|
|
13153
|
-
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Account name" }, openingBalanceSource.account_name));
|
|
13190
|
+
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.accountNameLabel || "Account name" }, openingBalanceSource.account_name));
|
|
13154
13191
|
}
|
|
13155
13192
|
case "Payout_Ledger_Entry_Source": {
|
|
13156
13193
|
const payoutSource = source;
|
|
13157
|
-
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Amount" }, `$${centsToDollars(payoutSource.paid_out_amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Processor" }, payoutSource.processor));
|
|
13194
|
+
return /* @__PURE__ */ import_react148.default.createElement(import_react148.default.Fragment, null, /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.amountLabel || "Amount" }, `$${centsToDollars(payoutSource.paid_out_amount)}`), /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.processorLabel || "Processor" }, payoutSource.processor));
|
|
13158
13195
|
}
|
|
13159
13196
|
default:
|
|
13160
13197
|
return null;
|
|
13161
13198
|
}
|
|
13162
13199
|
};
|
|
13163
|
-
var LedgerAccountEntryDetails = () => {
|
|
13200
|
+
var LedgerAccountEntryDetails = ({ stringOverrides }) => {
|
|
13164
13201
|
const { entryData, isLoadingEntry, closeSelectedEntry, errorEntry } = (0, import_react148.useContext)(LedgerAccountsContext);
|
|
13165
13202
|
const { totalDebit, totalCredit } = (0, import_react148.useMemo)(() => {
|
|
13166
13203
|
let totalDebit2 = 0;
|
|
@@ -13174,10 +13211,10 @@ var LedgerAccountEntryDetails = () => {
|
|
|
13174
13211
|
});
|
|
13175
13212
|
return { totalDebit: totalDebit2, totalCredit: totalCredit2 };
|
|
13176
13213
|
}, [entryData]);
|
|
13177
|
-
return /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details" }, /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__back-btn" }, /* @__PURE__ */ import_react148.default.createElement(BackButton, { onClick: () => closeSelectedEntry() }), /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__title-container" }, /* @__PURE__ */ import_react148.default.createElement(Text, { weight: "bold" /* bold */ }, "Transaction details"))), /* @__PURE__ */ import_react148.default.createElement(
|
|
13214
|
+
return /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details" }, /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__back-btn" }, /* @__PURE__ */ import_react148.default.createElement(BackButton, { onClick: () => closeSelectedEntry() }), /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__title-container" }, /* @__PURE__ */ import_react148.default.createElement(Text, { weight: "bold" /* bold */ }, stringOverrides?.title || "Transaction details"))), /* @__PURE__ */ import_react148.default.createElement(
|
|
13178
13215
|
DetailsList,
|
|
13179
13216
|
{
|
|
13180
|
-
title: "Transaction source",
|
|
13217
|
+
title: stringOverrides?.transactionSource?.header || "Transaction source",
|
|
13181
13218
|
actions: /* @__PURE__ */ import_react148.default.createElement(
|
|
13182
13219
|
Button,
|
|
13183
13220
|
{
|
|
@@ -13189,25 +13226,32 @@ var LedgerAccountEntryDetails = () => {
|
|
|
13189
13226
|
}
|
|
13190
13227
|
)
|
|
13191
13228
|
},
|
|
13192
|
-
/* @__PURE__ */ import_react148.default.createElement(
|
|
13229
|
+
/* @__PURE__ */ import_react148.default.createElement(
|
|
13230
|
+
DetailsListItem,
|
|
13231
|
+
{
|
|
13232
|
+
label: stringOverrides?.transactionSource?.details?.sourceLabel || "Source",
|
|
13233
|
+
isLoading: isLoadingEntry
|
|
13234
|
+
},
|
|
13235
|
+
/* @__PURE__ */ import_react148.default.createElement(Badge, null, entryData?.source?.entity_name)
|
|
13236
|
+
),
|
|
13193
13237
|
entryData?.source?.display_description && /* @__PURE__ */ import_react148.default.createElement(SourceDetailView, { source: entryData?.source })
|
|
13194
13238
|
), /* @__PURE__ */ import_react148.default.createElement(
|
|
13195
13239
|
DetailsList,
|
|
13196
13240
|
{
|
|
13197
|
-
title: `Journal Entry ${entryData?.id.substring(0, 5)}`,
|
|
13241
|
+
title: stringOverrides?.journalEntry?.header ? stringOverrides?.journalEntry?.header(entryData?.id.substring(0, 5)) : `Journal Entry ${entryData?.id.substring(0, 5)}`,
|
|
13198
13242
|
className: "Layer__border-top"
|
|
13199
13243
|
},
|
|
13200
|
-
/* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Entry type", isLoading: isLoadingEntry }, humanizeEnum(entryData?.entry_type ?? "")),
|
|
13201
|
-
/* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Date", isLoading: isLoadingEntry }, entryData?.entry_at && /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: entryData?.entry_at })),
|
|
13202
|
-
/* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Creation date", isLoading: isLoadingEntry }, entryData?.date && /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: entryData?.date })),
|
|
13203
|
-
entryData?.reversal_id && /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: "Reversal", isLoading: isLoadingEntry }, entryData?.reversal_id.substring(0, 5))
|
|
13244
|
+
/* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.entryTypeLabel || "Entry type", isLoading: isLoadingEntry }, humanizeEnum(entryData?.entry_type ?? "")),
|
|
13245
|
+
/* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.dateLabel || "Date", isLoading: isLoadingEntry }, entryData?.entry_at && /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: entryData?.entry_at })),
|
|
13246
|
+
/* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.creationDateLabel || "Creation date", isLoading: isLoadingEntry }, entryData?.date && /* @__PURE__ */ import_react148.default.createElement(DateTime, { value: entryData?.date })),
|
|
13247
|
+
entryData?.reversal_id && /* @__PURE__ */ import_react148.default.createElement(DetailsListItem, { label: stringOverrides?.journalEntry?.details?.reversalLabel || "Reversal", isLoading: isLoadingEntry }, entryData?.reversal_id.substring(0, 5))
|
|
13204
13248
|
), !isLoadingEntry && !errorEntry ? /* @__PURE__ */ import_react148.default.createElement("div", { className: "Layer__ledger-account__entry-details__line-items" }, /* @__PURE__ */ import_react148.default.createElement(Card, null, /* @__PURE__ */ import_react148.default.createElement(
|
|
13205
13249
|
Table,
|
|
13206
13250
|
{
|
|
13207
13251
|
componentName: "ledger-account__entry-details",
|
|
13208
13252
|
borderCollapse: "collapse"
|
|
13209
13253
|
},
|
|
13210
|
-
/* @__PURE__ */ import_react148.default.createElement(TableHead, null, /* @__PURE__ */ import_react148.default.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ import_react148.default.createElement(TableCell, null, "Line items"), /* @__PURE__ */ import_react148.default.createElement(TableCell, null, "Debit"), /* @__PURE__ */ import_react148.default.createElement(TableCell, null, "Credit"))),
|
|
13254
|
+
/* @__PURE__ */ import_react148.default.createElement(TableHead, null, /* @__PURE__ */ import_react148.default.createElement(TableRow, { rowKey: "soc-flow-head-row", isHeadRow: true }, /* @__PURE__ */ import_react148.default.createElement(TableCell, null, stringOverrides?.lineItemsTable?.lineItemsColumnHeader || "Line items"), /* @__PURE__ */ import_react148.default.createElement(TableCell, null, stringOverrides?.lineItemsTable?.debitColumnHeader || "Debit"), /* @__PURE__ */ import_react148.default.createElement(TableCell, null, stringOverrides?.lineItemsTable?.creditColumnHeader || "Credit"))),
|
|
13211
13255
|
/* @__PURE__ */ import_react148.default.createElement(TableBody, null, entryData?.line_items?.map((item, index) => /* @__PURE__ */ import_react148.default.createElement(
|
|
13212
13256
|
TableRow,
|
|
13213
13257
|
{
|
|
@@ -13223,7 +13267,7 @@ var LedgerAccountEntryDetails = () => {
|
|
|
13223
13267
|
rowKey: "ledger-line-item-summation",
|
|
13224
13268
|
variant: "summation"
|
|
13225
13269
|
},
|
|
13226
|
-
/* @__PURE__ */ import_react148.default.createElement(TableCell, { primary: true }, "Total"),
|
|
13270
|
+
/* @__PURE__ */ import_react148.default.createElement(TableCell, { primary: true }, stringOverrides?.lineItemsTable?.totalRowHeader || "Total"),
|
|
13227
13271
|
/* @__PURE__ */ import_react148.default.createElement(TableCell, { isCurrency: true, primary: true }, totalDebit || 0),
|
|
13228
13272
|
/* @__PURE__ */ import_react148.default.createElement(TableCell, { isCurrency: true, primary: true }, totalCredit || 0)
|
|
13229
13273
|
))
|
|
@@ -13348,7 +13392,8 @@ var import_classnames56 = __toESM(require("classnames"));
|
|
|
13348
13392
|
var LedgerAccount = ({
|
|
13349
13393
|
containerRef,
|
|
13350
13394
|
pageSize = 15,
|
|
13351
|
-
view
|
|
13395
|
+
view,
|
|
13396
|
+
stringOverrides
|
|
13352
13397
|
}) => {
|
|
13353
13398
|
const [currentPage, setCurrentPage] = (0, import_react150.useState)(1);
|
|
13354
13399
|
const [initialLoad, setInitialLoad] = (0, import_react150.useState)(true);
|
|
@@ -13393,7 +13438,12 @@ var LedgerAccount = ({
|
|
|
13393
13438
|
return /* @__PURE__ */ import_react150.default.createElement(
|
|
13394
13439
|
Panel,
|
|
13395
13440
|
{
|
|
13396
|
-
sidebar: /* @__PURE__ */ import_react150.default.createElement(
|
|
13441
|
+
sidebar: /* @__PURE__ */ import_react150.default.createElement(
|
|
13442
|
+
LedgerAccountEntryDetails,
|
|
13443
|
+
{
|
|
13444
|
+
stringOverrides: stringOverrides?.ledgerEntryDetail
|
|
13445
|
+
}
|
|
13446
|
+
),
|
|
13397
13447
|
sidebarIsOpen: Boolean(selectedEntryId),
|
|
13398
13448
|
parentRef: containerRef,
|
|
13399
13449
|
className: "Layer__ledger-account__panel"
|
|
@@ -13420,7 +13470,7 @@ var LedgerAccount = ({
|
|
|
13420
13470
|
},
|
|
13421
13471
|
"$",
|
|
13422
13472
|
centsToDollars(entry?.balance || 0)
|
|
13423
|
-
)))), /* @__PURE__ */ import_react150.default.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__ledger-account-table" }, /* @__PURE__ */ import_react150.default.createElement("thead", null, /* @__PURE__ */ import_react150.default.createElement("tr", null, view !== "desktop" && /* @__PURE__ */ import_react150.default.createElement("th", null), view === "desktop" && /* @__PURE__ */ import_react150.default.createElement(import_react150.default.Fragment, null, /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, "Date"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, "Journal id #"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, "Source")), view !== "mobile" && /* @__PURE__ */ import_react150.default.createElement(import_react150.default.Fragment, null, /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Debit"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Credit"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Running balance")))), /* @__PURE__ */ import_react150.default.createElement("tbody", null, data?.map((x, index) => /* @__PURE__ */ import_react150.default.createElement(
|
|
13473
|
+
)))), /* @__PURE__ */ import_react150.default.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__ledger-account-table" }, /* @__PURE__ */ import_react150.default.createElement("thead", null, /* @__PURE__ */ import_react150.default.createElement("tr", null, view !== "desktop" && /* @__PURE__ */ import_react150.default.createElement("th", null), view === "desktop" && /* @__PURE__ */ import_react150.default.createElement(import_react150.default.Fragment, null, /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.ledgerEntriesTable?.dateColumnHeader || "Date"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.ledgerEntriesTable?.journalIdColumnHeader || "Journal id #"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.ledgerEntriesTable?.sourceColumnHeader || "Source")), view !== "mobile" && /* @__PURE__ */ import_react150.default.createElement(import_react150.default.Fragment, null, /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.ledgerEntriesTable?.debitColumnHeader || "Debit"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.ledgerEntriesTable?.creditColumnHeader || "Credit"), /* @__PURE__ */ import_react150.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.ledgerEntriesTable?.runningBalanceColumnHeader || "Running balance")))), /* @__PURE__ */ import_react150.default.createElement("tbody", null, data?.map((x, index) => /* @__PURE__ */ import_react150.default.createElement(
|
|
13424
13474
|
LedgerAccountRow,
|
|
13425
13475
|
{
|
|
13426
13476
|
key: x.id,
|
|
@@ -13469,7 +13519,8 @@ var ChartOfAccounts = (props) => {
|
|
|
13469
13519
|
var ChartOfAccountsContent = ({
|
|
13470
13520
|
asWidget,
|
|
13471
13521
|
withDateControl,
|
|
13472
|
-
withExpandAllButton
|
|
13522
|
+
withExpandAllButton,
|
|
13523
|
+
stringOverrides
|
|
13473
13524
|
}) => {
|
|
13474
13525
|
const { accountId } = (0, import_react151.useContext)(LedgerAccountsContext);
|
|
13475
13526
|
const [view, setView] = (0, import_react151.useState)("desktop");
|
|
@@ -13484,14 +13535,15 @@ var ChartOfAccountsContent = ({
|
|
|
13484
13535
|
}
|
|
13485
13536
|
}
|
|
13486
13537
|
});
|
|
13487
|
-
return /* @__PURE__ */ import_react151.default.createElement(Container, { name: "chart-of-accounts", ref: containerRef, asWidget }, accountId ? /* @__PURE__ */ import_react151.default.createElement(LedgerAccount, { view, containerRef }) : /* @__PURE__ */ import_react151.default.createElement(
|
|
13538
|
+
return /* @__PURE__ */ import_react151.default.createElement(Container, { name: "chart-of-accounts", ref: containerRef, asWidget }, accountId ? /* @__PURE__ */ import_react151.default.createElement(LedgerAccount, { view, containerRef, stringOverrides: stringOverrides?.ledgerAccount }) : /* @__PURE__ */ import_react151.default.createElement(
|
|
13488
13539
|
ChartOfAccountsTable,
|
|
13489
13540
|
{
|
|
13490
13541
|
asWidget,
|
|
13491
13542
|
withDateControl,
|
|
13492
13543
|
withExpandAllButton,
|
|
13493
13544
|
view,
|
|
13494
|
-
containerRef
|
|
13545
|
+
containerRef,
|
|
13546
|
+
stringOverrides: stringOverrides?.chartOfAccountsTable
|
|
13495
13547
|
}
|
|
13496
13548
|
));
|
|
13497
13549
|
};
|
|
@@ -14209,7 +14261,7 @@ var JournalFormEntryLines = ({
|
|
|
14209
14261
|
};
|
|
14210
14262
|
|
|
14211
14263
|
// src/components/JournalForm/JournalForm.tsx
|
|
14212
|
-
var JournalForm = ({ config }) => {
|
|
14264
|
+
var JournalForm = ({ config, stringOverrides }) => {
|
|
14213
14265
|
const {
|
|
14214
14266
|
form,
|
|
14215
14267
|
cancelForm,
|
|
@@ -14229,7 +14281,7 @@ var JournalForm = ({ config }) => {
|
|
|
14229
14281
|
submitForm();
|
|
14230
14282
|
}
|
|
14231
14283
|
},
|
|
14232
|
-
/* @__PURE__ */ import_react157.default.createElement("div", { className: "Layer__journal__sidebar__header" }, /* @__PURE__ */ import_react157.default.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, "Add New Entry"), /* @__PURE__ */ import_react157.default.createElement("div", { className: "actions" }, /* @__PURE__ */ import_react157.default.createElement(
|
|
14284
|
+
/* @__PURE__ */ import_react157.default.createElement("div", { className: "Layer__journal__sidebar__header" }, /* @__PURE__ */ import_react157.default.createElement(Text, { size: "lg" /* lg */, weight: "bold" /* bold */, className: "title" }, stringOverrides?.header && "Add New Entry"), /* @__PURE__ */ import_react157.default.createElement("div", { className: "actions" }, /* @__PURE__ */ import_react157.default.createElement(
|
|
14233
14285
|
Button,
|
|
14234
14286
|
{
|
|
14235
14287
|
type: "button",
|
|
@@ -14237,7 +14289,7 @@ var JournalForm = ({ config }) => {
|
|
|
14237
14289
|
variant: "secondary" /* secondary */,
|
|
14238
14290
|
disabled: sendingForm
|
|
14239
14291
|
},
|
|
14240
|
-
"Cancel"
|
|
14292
|
+
stringOverrides?.cancelButton || "Cancel"
|
|
14241
14293
|
), apiError && /* @__PURE__ */ import_react157.default.createElement(
|
|
14242
14294
|
RetryButton,
|
|
14243
14295
|
{
|
|
@@ -14246,7 +14298,7 @@ var JournalForm = ({ config }) => {
|
|
|
14246
14298
|
error: "Check connection and retry in few seconds.",
|
|
14247
14299
|
disabled: sendingForm
|
|
14248
14300
|
},
|
|
14249
|
-
"Retry"
|
|
14301
|
+
stringOverrides?.retryButton || "Retry"
|
|
14250
14302
|
), !apiError && /* @__PURE__ */ import_react157.default.createElement(
|
|
14251
14303
|
SubmitButton,
|
|
14252
14304
|
{
|
|
@@ -14255,7 +14307,7 @@ var JournalForm = ({ config }) => {
|
|
|
14255
14307
|
active: true,
|
|
14256
14308
|
disabled: sendingForm
|
|
14257
14309
|
},
|
|
14258
|
-
"Save"
|
|
14310
|
+
stringOverrides?.saveButton || "Save"
|
|
14259
14311
|
))),
|
|
14260
14312
|
apiError && /* @__PURE__ */ import_react157.default.createElement(
|
|
14261
14313
|
Text,
|
|
@@ -14321,7 +14373,7 @@ var JournalForm = ({ config }) => {
|
|
|
14321
14373
|
variant: "secondary" /* secondary */,
|
|
14322
14374
|
disabled: sendingForm
|
|
14323
14375
|
},
|
|
14324
|
-
"Cancel"
|
|
14376
|
+
stringOverrides?.cancelButton || "Cancel"
|
|
14325
14377
|
), apiError && /* @__PURE__ */ import_react157.default.createElement(
|
|
14326
14378
|
RetryButton,
|
|
14327
14379
|
{
|
|
@@ -14330,7 +14382,7 @@ var JournalForm = ({ config }) => {
|
|
|
14330
14382
|
error: "Check connection and retry in few seconds.",
|
|
14331
14383
|
disabled: sendingForm
|
|
14332
14384
|
},
|
|
14333
|
-
"Retry"
|
|
14385
|
+
stringOverrides?.retryButton || "Retry"
|
|
14334
14386
|
), !apiError && /* @__PURE__ */ import_react157.default.createElement(
|
|
14335
14387
|
SubmitButton,
|
|
14336
14388
|
{
|
|
@@ -14339,7 +14391,7 @@ var JournalForm = ({ config }) => {
|
|
|
14339
14391
|
active: true,
|
|
14340
14392
|
disabled: sendingForm
|
|
14341
14393
|
},
|
|
14342
|
-
"Save"
|
|
14394
|
+
stringOverrides?.saveButton || "Save"
|
|
14343
14395
|
))
|
|
14344
14396
|
);
|
|
14345
14397
|
};
|
|
@@ -14347,13 +14399,14 @@ var JournalForm = ({ config }) => {
|
|
|
14347
14399
|
// src/components/JournalSidebar/JournalSidebar.tsx
|
|
14348
14400
|
var JournalSidebar = ({
|
|
14349
14401
|
parentRef: _parentRef,
|
|
14350
|
-
config
|
|
14402
|
+
config,
|
|
14403
|
+
stringOverrides
|
|
14351
14404
|
}) => {
|
|
14352
14405
|
const { selectedEntryId } = (0, import_react158.useContext)(JournalContext);
|
|
14353
14406
|
if (selectedEntryId !== "new") {
|
|
14354
14407
|
return /* @__PURE__ */ import_react158.default.createElement(JournalEntryDetails, null);
|
|
14355
14408
|
}
|
|
14356
|
-
return /* @__PURE__ */ import_react158.default.createElement(JournalForm, { config });
|
|
14409
|
+
return /* @__PURE__ */ import_react158.default.createElement(JournalForm, { config, stringOverrides });
|
|
14357
14410
|
};
|
|
14358
14411
|
|
|
14359
14412
|
// src/components/JournalTable/JournalTable.tsx
|
|
@@ -14362,7 +14415,8 @@ var JournalTable = ({
|
|
|
14362
14415
|
view,
|
|
14363
14416
|
containerRef,
|
|
14364
14417
|
pageSize = 15,
|
|
14365
|
-
config
|
|
14418
|
+
config,
|
|
14419
|
+
stringOverrides
|
|
14366
14420
|
}) => {
|
|
14367
14421
|
const [currentPage, setCurrentPage] = (0, import_react159.useState)(1);
|
|
14368
14422
|
const {
|
|
@@ -14382,12 +14436,12 @@ var JournalTable = ({
|
|
|
14382
14436
|
return /* @__PURE__ */ import_react159.default.createElement(
|
|
14383
14437
|
Panel,
|
|
14384
14438
|
{
|
|
14385
|
-
sidebar: /* @__PURE__ */ import_react159.default.createElement(JournalSidebar, { parentRef: containerRef, config }),
|
|
14439
|
+
sidebar: /* @__PURE__ */ import_react159.default.createElement(JournalSidebar, { parentRef: containerRef, config, stringOverrides: stringOverrides?.journalForm }),
|
|
14386
14440
|
sidebarIsOpen: Boolean(selectedEntryId),
|
|
14387
14441
|
parentRef: containerRef
|
|
14388
14442
|
},
|
|
14389
|
-
/* @__PURE__ */ import_react159.default.createElement(Header, { className: `Layer__${COMPONENT_NAME6}__header` }, /* @__PURE__ */ import_react159.default.createElement(Heading, { className: `Layer__${COMPONENT_NAME6}__title` }, "Journal"), /* @__PURE__ */ import_react159.default.createElement("div", { className: `Layer__${COMPONENT_NAME6}__actions` }, /* @__PURE__ */ import_react159.default.createElement(Button, { onClick: () => addEntry(), disabled: isLoading }, "Add Entry"))),
|
|
14390
|
-
/* @__PURE__ */ import_react159.default.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__journal__table" }, /* @__PURE__ */ import_react159.default.createElement("thead", null, /* @__PURE__ */ import_react159.default.createElement("tr", null, /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, "Id"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, "Date"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, "Transaction"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, "Account"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Debit"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, "Credit"))), /* @__PURE__ */ import_react159.default.createElement("tbody", null, !error && data?.map((entry, idx) => {
|
|
14443
|
+
/* @__PURE__ */ import_react159.default.createElement(Header, { className: `Layer__${COMPONENT_NAME6}__header` }, /* @__PURE__ */ import_react159.default.createElement(Heading, { className: `Layer__${COMPONENT_NAME6}__title` }, stringOverrides?.componentTitle || "Journal"), /* @__PURE__ */ import_react159.default.createElement("div", { className: `Layer__${COMPONENT_NAME6}__actions` }, /* @__PURE__ */ import_react159.default.createElement(Button, { onClick: () => addEntry(), disabled: isLoading }, stringOverrides?.addEntryButton || "Add Entry"))),
|
|
14444
|
+
/* @__PURE__ */ import_react159.default.createElement("table", { className: "Layer__table Layer__table--hover-effect Layer__journal__table" }, /* @__PURE__ */ import_react159.default.createElement("thead", null, /* @__PURE__ */ import_react159.default.createElement("tr", null, /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.idColumnHeader || "Id"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.dateColumnHeader || "Date"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.transactionColumnHeader || "Transaction"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header" }, stringOverrides?.accountColumnHeader || "Account"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.debitColumnHeader || "Debit"), /* @__PURE__ */ import_react159.default.createElement("th", { className: "Layer__table-header Layer__table-cell--amount" }, stringOverrides?.creditColumnHeader || "Credit"))), /* @__PURE__ */ import_react159.default.createElement("tbody", null, !error && data?.map((entry, idx) => {
|
|
14391
14445
|
return /* @__PURE__ */ import_react159.default.createElement(
|
|
14392
14446
|
JournalRow,
|
|
14393
14447
|
{
|
|
@@ -14434,7 +14488,8 @@ var Journal = (props) => {
|
|
|
14434
14488
|
};
|
|
14435
14489
|
var JournalContent = ({
|
|
14436
14490
|
asWidget,
|
|
14437
|
-
config = JOURNAL_CONFIG
|
|
14491
|
+
config = JOURNAL_CONFIG,
|
|
14492
|
+
stringOverrides
|
|
14438
14493
|
}) => {
|
|
14439
14494
|
const [view, setView] = (0, import_react160.useState)("desktop");
|
|
14440
14495
|
const containerRef = useElementSize((_a, _b, { width }) => {
|
|
@@ -14448,7 +14503,15 @@ var JournalContent = ({
|
|
|
14448
14503
|
}
|
|
14449
14504
|
}
|
|
14450
14505
|
});
|
|
14451
|
-
return /* @__PURE__ */ import_react160.default.createElement(Container, { name: "journal", ref: containerRef, asWidget }, /* @__PURE__ */ import_react160.default.createElement(
|
|
14506
|
+
return /* @__PURE__ */ import_react160.default.createElement(Container, { name: "journal", ref: containerRef, asWidget }, /* @__PURE__ */ import_react160.default.createElement(
|
|
14507
|
+
JournalTable,
|
|
14508
|
+
{
|
|
14509
|
+
view,
|
|
14510
|
+
containerRef,
|
|
14511
|
+
config,
|
|
14512
|
+
stringOverrides: stringOverrides?.journalTable
|
|
14513
|
+
}
|
|
14514
|
+
));
|
|
14452
14515
|
};
|
|
14453
14516
|
|
|
14454
14517
|
// src/components/Tasks/Tasks.tsx
|
|
@@ -14896,18 +14959,21 @@ var UseTasksContext = (0, import_react167.createContext)({
|
|
|
14896
14959
|
}
|
|
14897
14960
|
});
|
|
14898
14961
|
var Tasks = ({
|
|
14899
|
-
tasksHeader,
|
|
14900
14962
|
collapsable = false,
|
|
14901
14963
|
defaultCollapsed = false,
|
|
14902
|
-
collapsedWhenComplete
|
|
14964
|
+
collapsedWhenComplete,
|
|
14965
|
+
tasksHeader,
|
|
14966
|
+
// deprecated
|
|
14967
|
+
stringOverrides
|
|
14903
14968
|
}) => {
|
|
14904
14969
|
return /* @__PURE__ */ import_react167.default.createElement(TasksProvider, null, /* @__PURE__ */ import_react167.default.createElement(
|
|
14905
14970
|
TasksComponent,
|
|
14906
14971
|
{
|
|
14907
|
-
tasksHeader,
|
|
14908
14972
|
collapsable,
|
|
14909
14973
|
defaultCollapsed,
|
|
14910
|
-
collapsedWhenComplete
|
|
14974
|
+
collapsedWhenComplete,
|
|
14975
|
+
tasksHeader,
|
|
14976
|
+
stringOverrides
|
|
14911
14977
|
}
|
|
14912
14978
|
));
|
|
14913
14979
|
};
|
|
@@ -14916,10 +14982,12 @@ var TasksProvider = ({ children }) => {
|
|
|
14916
14982
|
return /* @__PURE__ */ import_react167.default.createElement(TasksContext.Provider, { value: contextData }, children);
|
|
14917
14983
|
};
|
|
14918
14984
|
var TasksComponent = ({
|
|
14919
|
-
tasksHeader,
|
|
14920
14985
|
collapsable = false,
|
|
14921
14986
|
defaultCollapsed = false,
|
|
14922
|
-
collapsedWhenComplete
|
|
14987
|
+
collapsedWhenComplete,
|
|
14988
|
+
tasksHeader,
|
|
14989
|
+
// deprecated
|
|
14990
|
+
stringOverrides
|
|
14923
14991
|
}) => {
|
|
14924
14992
|
const { isLoading, loadedStatus, data } = (0, import_react167.useContext)(TasksContext);
|
|
14925
14993
|
const allComplete = (0, import_react167.useMemo)(() => {
|
|
@@ -14942,7 +15010,7 @@ var TasksComponent = ({
|
|
|
14942
15010
|
return /* @__PURE__ */ import_react167.default.createElement("div", { className: "Layer__tasks-component" }, /* @__PURE__ */ import_react167.default.createElement(
|
|
14943
15011
|
TasksHeader,
|
|
14944
15012
|
{
|
|
14945
|
-
tasksHeader,
|
|
15013
|
+
tasksHeader: stringOverrides?.header || tasksHeader,
|
|
14946
15014
|
collapsable,
|
|
14947
15015
|
open,
|
|
14948
15016
|
toggleContent: () => setOpen(!open)
|
|
@@ -15052,7 +15120,9 @@ var BookkeepingUpsellBar = ({
|
|
|
15052
15120
|
var import_react170 = __toESM(require("react"));
|
|
15053
15121
|
var import_classnames61 = __toESM(require("classnames"));
|
|
15054
15122
|
var BookkeepingOverview = ({
|
|
15055
|
-
title
|
|
15123
|
+
title,
|
|
15124
|
+
// deprecated
|
|
15125
|
+
stringOverrides
|
|
15056
15126
|
}) => {
|
|
15057
15127
|
const [pnlToggle, setPnlToggle] = (0, import_react170.useState)("revenue");
|
|
15058
15128
|
const [width] = useWindowSize();
|
|
@@ -15060,16 +15130,16 @@ var BookkeepingOverview = ({
|
|
|
15060
15130
|
View,
|
|
15061
15131
|
{
|
|
15062
15132
|
viewClassName: "Layer__bookkeeping-overview--view",
|
|
15063
|
-
title,
|
|
15133
|
+
title: stringOverrides?.title || title || "Bookkeeping overview",
|
|
15064
15134
|
withSidebar: width > 1100,
|
|
15065
|
-
sidebar: /* @__PURE__ */ import_react170.default.createElement(TasksComponent, {
|
|
15135
|
+
sidebar: /* @__PURE__ */ import_react170.default.createElement(TasksComponent, { stringOverrides: stringOverrides?.tasks })
|
|
15066
15136
|
},
|
|
15067
15137
|
width <= 1100 && /* @__PURE__ */ import_react170.default.createElement(
|
|
15068
15138
|
TasksComponent,
|
|
15069
15139
|
{
|
|
15070
|
-
tasksHeader: "Bookkeeeping Tasks",
|
|
15071
15140
|
collapsable: true,
|
|
15072
|
-
collapsedWhenComplete: true
|
|
15141
|
+
collapsedWhenComplete: true,
|
|
15142
|
+
stringOverrides: stringOverrides?.tasks
|
|
15073
15143
|
}
|
|
15074
15144
|
),
|
|
15075
15145
|
/* @__PURE__ */ import_react170.default.createElement(
|
|
@@ -15079,8 +15149,13 @@ var BookkeepingOverview = ({
|
|
|
15079
15149
|
asWidget: true,
|
|
15080
15150
|
elevated: true
|
|
15081
15151
|
},
|
|
15082
|
-
/* @__PURE__ */ import_react170.default.createElement(Header, null, /* @__PURE__ */ import_react170.default.createElement(Heading, { size: "secondary" /* secondary */ }, "Profit & Loss"), /* @__PURE__ */ import_react170.default.createElement(ProfitAndLoss.DatePicker, null)),
|
|
15083
|
-
/* @__PURE__ */ import_react170.default.createElement("div", { className: "Layer__bookkeeping-overview__summaries-row" }, /* @__PURE__ */ import_react170.default.createElement(
|
|
15152
|
+
/* @__PURE__ */ import_react170.default.createElement(Header, null, /* @__PURE__ */ import_react170.default.createElement(Heading, { size: "secondary" /* secondary */ }, stringOverrides?.profitAndLoss?.header || "Profit & Loss"), /* @__PURE__ */ import_react170.default.createElement(ProfitAndLoss.DatePicker, null)),
|
|
15153
|
+
/* @__PURE__ */ import_react170.default.createElement("div", { className: "Layer__bookkeeping-overview__summaries-row" }, /* @__PURE__ */ import_react170.default.createElement(
|
|
15154
|
+
ProfitAndLoss.Summaries,
|
|
15155
|
+
{
|
|
15156
|
+
stringOverrides: stringOverrides?.profitAndLoss?.summaries
|
|
15157
|
+
}
|
|
15158
|
+
)),
|
|
15084
15159
|
/* @__PURE__ */ import_react170.default.createElement(ProfitAndLoss.Chart, null)
|
|
15085
15160
|
),
|
|
15086
15161
|
/* @__PURE__ */ import_react170.default.createElement("div", { className: "Layer__bookkeeping-overview-profit-and-loss-charts" }, /* @__PURE__ */ import_react170.default.createElement(
|
|
@@ -15108,7 +15183,14 @@ var BookkeepingOverview = ({
|
|
|
15108
15183
|
pnlToggle !== "revenue" && "bookkeeping-overview-profit-and-loss-chart--hidden"
|
|
15109
15184
|
)
|
|
15110
15185
|
},
|
|
15111
|
-
/* @__PURE__ */ import_react170.default.createElement(
|
|
15186
|
+
/* @__PURE__ */ import_react170.default.createElement(
|
|
15187
|
+
ProfitAndLoss.DetailedCharts,
|
|
15188
|
+
{
|
|
15189
|
+
scope: "revenue",
|
|
15190
|
+
hideClose: true,
|
|
15191
|
+
stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
|
|
15192
|
+
}
|
|
15193
|
+
)
|
|
15112
15194
|
), /* @__PURE__ */ import_react170.default.createElement(
|
|
15113
15195
|
Container,
|
|
15114
15196
|
{
|
|
@@ -15117,7 +15199,14 @@ var BookkeepingOverview = ({
|
|
|
15117
15199
|
pnlToggle !== "expenses" && "bookkeeping-overview-profit-and-loss-chart--hidden"
|
|
15118
15200
|
)
|
|
15119
15201
|
},
|
|
15120
|
-
/* @__PURE__ */ import_react170.default.createElement(
|
|
15202
|
+
/* @__PURE__ */ import_react170.default.createElement(
|
|
15203
|
+
ProfitAndLoss.DetailedCharts,
|
|
15204
|
+
{
|
|
15205
|
+
scope: "expenses",
|
|
15206
|
+
hideClose: true,
|
|
15207
|
+
stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
|
|
15208
|
+
}
|
|
15209
|
+
)
|
|
15121
15210
|
))
|
|
15122
15211
|
)));
|
|
15123
15212
|
};
|
|
@@ -15226,7 +15315,8 @@ var AccountingOverview = ({
|
|
|
15226
15315
|
title = "Accounting overview",
|
|
15227
15316
|
enableOnboarding = false,
|
|
15228
15317
|
onTransactionsToReviewClick,
|
|
15229
|
-
middleBanner
|
|
15318
|
+
middleBanner,
|
|
15319
|
+
stringOverrides
|
|
15230
15320
|
}) => {
|
|
15231
15321
|
const [pnlToggle, setPnlToggle] = (0, import_react174.useState)("revenue");
|
|
15232
15322
|
return /* @__PURE__ */ import_react174.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react174.default.createElement(View, { title, headerControls: /* @__PURE__ */ import_react174.default.createElement(ProfitAndLoss.DatePicker, null) }, enableOnboarding && /* @__PURE__ */ import_react174.default.createElement(
|
|
@@ -15234,7 +15324,12 @@ var AccountingOverview = ({
|
|
|
15234
15324
|
{
|
|
15235
15325
|
onTransactionsToReviewClick
|
|
15236
15326
|
}
|
|
15237
|
-
), /* @__PURE__ */ import_react174.default.createElement("div", { className: "Layer__accounting-overview__summaries-row" }, /* @__PURE__ */ import_react174.default.createElement(
|
|
15327
|
+
), /* @__PURE__ */ import_react174.default.createElement("div", { className: "Layer__accounting-overview__summaries-row" }, /* @__PURE__ */ import_react174.default.createElement(
|
|
15328
|
+
ProfitAndLoss.Summaries,
|
|
15329
|
+
{
|
|
15330
|
+
stringOverrides: stringOverrides?.profitAndLoss?.summaries
|
|
15331
|
+
}
|
|
15332
|
+
), /* @__PURE__ */ import_react174.default.createElement(
|
|
15238
15333
|
TransactionToReviewCard,
|
|
15239
15334
|
{
|
|
15240
15335
|
usePnlDateRange: true,
|
|
@@ -15247,7 +15342,7 @@ var AccountingOverview = ({
|
|
|
15247
15342
|
asWidget: true,
|
|
15248
15343
|
elevated: true
|
|
15249
15344
|
},
|
|
15250
|
-
/* @__PURE__ */ import_react174.default.createElement(Header, null, /* @__PURE__ */ import_react174.default.createElement(Heading, { size: "secondary" /* secondary */ }, "Profit & Loss")),
|
|
15345
|
+
/* @__PURE__ */ import_react174.default.createElement(Header, null, /* @__PURE__ */ import_react174.default.createElement(Heading, { size: "secondary" /* secondary */ }, stringOverrides?.header || "Profit & Loss")),
|
|
15251
15346
|
/* @__PURE__ */ import_react174.default.createElement(ProfitAndLoss.Chart, null)
|
|
15252
15347
|
), middleBanner && /* @__PURE__ */ import_react174.default.createElement(Container, { name: "accounting-overview-middle-banner" }, middleBanner), /* @__PURE__ */ import_react174.default.createElement("div", { className: "Layer__accounting-overview-profit-and-loss-charts" }, /* @__PURE__ */ import_react174.default.createElement(
|
|
15253
15348
|
Toggle,
|
|
@@ -15274,7 +15369,14 @@ var AccountingOverview = ({
|
|
|
15274
15369
|
pnlToggle !== "revenue" && "accounting-overview-profit-and-loss-chart--hidden"
|
|
15275
15370
|
)
|
|
15276
15371
|
},
|
|
15277
|
-
/* @__PURE__ */ import_react174.default.createElement(
|
|
15372
|
+
/* @__PURE__ */ import_react174.default.createElement(
|
|
15373
|
+
ProfitAndLoss.DetailedCharts,
|
|
15374
|
+
{
|
|
15375
|
+
scope: "revenue",
|
|
15376
|
+
hideClose: true,
|
|
15377
|
+
stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
|
|
15378
|
+
}
|
|
15379
|
+
)
|
|
15278
15380
|
), /* @__PURE__ */ import_react174.default.createElement(
|
|
15279
15381
|
Container,
|
|
15280
15382
|
{
|
|
@@ -15283,14 +15385,22 @@ var AccountingOverview = ({
|
|
|
15283
15385
|
pnlToggle !== "expenses" && "accounting-overview-profit-and-loss-chart--hidden"
|
|
15284
15386
|
)
|
|
15285
15387
|
},
|
|
15286
|
-
/* @__PURE__ */ import_react174.default.createElement(
|
|
15388
|
+
/* @__PURE__ */ import_react174.default.createElement(
|
|
15389
|
+
ProfitAndLoss.DetailedCharts,
|
|
15390
|
+
{
|
|
15391
|
+
scope: "expenses",
|
|
15392
|
+
hideClose: true,
|
|
15393
|
+
stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
|
|
15394
|
+
}
|
|
15395
|
+
)
|
|
15287
15396
|
))));
|
|
15288
15397
|
};
|
|
15289
15398
|
|
|
15290
15399
|
// src/views/BankTransactionsWithLinkedAccounts/BankTransactionsWithLinkedAccounts.tsx
|
|
15291
15400
|
var import_react175 = __toESM(require("react"));
|
|
15292
15401
|
var BankTransactionsWithLinkedAccounts = ({
|
|
15293
|
-
title
|
|
15402
|
+
title,
|
|
15403
|
+
// deprecated
|
|
15294
15404
|
elevatedLinkedAccounts = true,
|
|
15295
15405
|
showLedgerBalance = true,
|
|
15296
15406
|
showUnlinkItem = false,
|
|
@@ -15299,15 +15409,17 @@ var BankTransactionsWithLinkedAccounts = ({
|
|
|
15299
15409
|
hardRefreshPnlOnCategorize = false,
|
|
15300
15410
|
showDescriptions,
|
|
15301
15411
|
showReceiptUploads,
|
|
15302
|
-
mobileComponent
|
|
15412
|
+
mobileComponent,
|
|
15413
|
+
stringOverrides
|
|
15303
15414
|
}) => {
|
|
15304
|
-
return /* @__PURE__ */ import_react175.default.createElement(View, { title }, /* @__PURE__ */ import_react175.default.createElement(
|
|
15415
|
+
return /* @__PURE__ */ import_react175.default.createElement(View, { title: stringOverrides?.title || title || "Bank transactions" }, /* @__PURE__ */ import_react175.default.createElement(
|
|
15305
15416
|
LinkedAccounts,
|
|
15306
15417
|
{
|
|
15307
15418
|
elevated: elevatedLinkedAccounts,
|
|
15308
15419
|
showLedgerBalance,
|
|
15309
15420
|
showUnlinkItem,
|
|
15310
|
-
showBreakConnection
|
|
15421
|
+
showBreakConnection,
|
|
15422
|
+
stringOverrides: stringOverrides?.linkedAccounts
|
|
15311
15423
|
}
|
|
15312
15424
|
), /* @__PURE__ */ import_react175.default.createElement(
|
|
15313
15425
|
BankTransactions,
|
|
@@ -15317,7 +15429,8 @@ var BankTransactionsWithLinkedAccounts = ({
|
|
|
15317
15429
|
showReceiptUploads,
|
|
15318
15430
|
mobileComponent,
|
|
15319
15431
|
categorizedOnly,
|
|
15320
|
-
hardRefreshPnlOnCategorize
|
|
15432
|
+
hardRefreshPnlOnCategorize,
|
|
15433
|
+
stringOverrides: stringOverrides?.bankTransactions
|
|
15321
15434
|
}
|
|
15322
15435
|
));
|
|
15323
15436
|
};
|
|
@@ -15325,32 +15438,41 @@ var BankTransactionsWithLinkedAccounts = ({
|
|
|
15325
15438
|
// src/views/GeneralLedger/GeneralLedger.tsx
|
|
15326
15439
|
var import_react176 = __toESM(require("react"));
|
|
15327
15440
|
var GeneralLedgerView = ({
|
|
15328
|
-
title
|
|
15441
|
+
title,
|
|
15442
|
+
// deprecated
|
|
15443
|
+
stringOverrides
|
|
15329
15444
|
}) => {
|
|
15330
15445
|
const [activeTab, setActiveTab] = (0, import_react176.useState)("chartOfAccounts");
|
|
15331
|
-
return /* @__PURE__ */ import_react176.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react176.default.createElement(View, { title }, /* @__PURE__ */ import_react176.default.createElement(
|
|
15446
|
+
return /* @__PURE__ */ import_react176.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react176.default.createElement(View, { title: stringOverrides?.title || title || "General Ledger" }, /* @__PURE__ */ import_react176.default.createElement(
|
|
15332
15447
|
Toggle,
|
|
15333
15448
|
{
|
|
15334
15449
|
name: "general-ledger-tabs",
|
|
15335
15450
|
options: [
|
|
15336
15451
|
{
|
|
15337
15452
|
value: "chartOfAccounts",
|
|
15338
|
-
label: "Chart of accounts"
|
|
15453
|
+
label: stringOverrides?.chartOfAccountsToggleOption || "Chart of accounts"
|
|
15339
15454
|
},
|
|
15340
15455
|
{
|
|
15341
15456
|
value: "journal",
|
|
15342
|
-
label: "Journal"
|
|
15457
|
+
label: stringOverrides?.journalToggleOption || "Journal"
|
|
15343
15458
|
}
|
|
15344
15459
|
],
|
|
15345
15460
|
selected: activeTab,
|
|
15346
15461
|
onChange: (opt) => setActiveTab(opt.target.value)
|
|
15347
15462
|
}
|
|
15348
|
-
), /* @__PURE__ */ import_react176.default.createElement(Container, { name: "generalLedger" }, activeTab === "chartOfAccounts" ? /* @__PURE__ */ import_react176.default.createElement(
|
|
15463
|
+
), /* @__PURE__ */ import_react176.default.createElement(Container, { name: "generalLedger" }, activeTab === "chartOfAccounts" ? /* @__PURE__ */ import_react176.default.createElement(
|
|
15464
|
+
ChartOfAccounts,
|
|
15465
|
+
{
|
|
15466
|
+
asWidget: true,
|
|
15467
|
+
withExpandAllButton: true,
|
|
15468
|
+
stringOverrides: stringOverrides?.chartOfAccounts
|
|
15469
|
+
}
|
|
15470
|
+
) : /* @__PURE__ */ import_react176.default.createElement(Journal, { stringOverrides: stringOverrides?.journal }))));
|
|
15349
15471
|
};
|
|
15350
15472
|
|
|
15351
15473
|
// src/views/Reports/Reports.tsx
|
|
15352
15474
|
var import_react177 = __toESM(require("react"));
|
|
15353
|
-
var DownloadButton2 = () => {
|
|
15475
|
+
var DownloadButton2 = ({ stringOverrides }) => {
|
|
15354
15476
|
const { dateRange } = (0, import_react177.useContext)(ProfitAndLoss.Context);
|
|
15355
15477
|
const { auth, businessId, apiUrl } = useLayerContext();
|
|
15356
15478
|
const [requestFailed, setRequestFailed] = (0, import_react177.useState)(false);
|
|
@@ -15387,7 +15509,7 @@ var DownloadButton2 = () => {
|
|
|
15387
15509
|
className: "Layer__download-retry-btn",
|
|
15388
15510
|
error: "Approval failed. Check connection and retry in few seconds."
|
|
15389
15511
|
},
|
|
15390
|
-
"Retry"
|
|
15512
|
+
stringOverrides?.retryButtonText || "Retry"
|
|
15391
15513
|
) : /* @__PURE__ */ import_react177.default.createElement(
|
|
15392
15514
|
Button,
|
|
15393
15515
|
{
|
|
@@ -15395,13 +15517,13 @@ var DownloadButton2 = () => {
|
|
|
15395
15517
|
rightIcon: /* @__PURE__ */ import_react177.default.createElement(DownloadCloud_default, { size: 12 }),
|
|
15396
15518
|
onClick: handleClick
|
|
15397
15519
|
},
|
|
15398
|
-
"Download"
|
|
15520
|
+
stringOverrides?.downloadButtonText || "Download"
|
|
15399
15521
|
);
|
|
15400
15522
|
};
|
|
15401
|
-
var Reports = ({ title
|
|
15523
|
+
var Reports = ({ title, stringOverrides }) => {
|
|
15402
15524
|
const containerRef = (0, import_react177.useRef)(null);
|
|
15403
15525
|
const [activeTab, setActiveTab] = (0, import_react177.useState)("profitAndLoss");
|
|
15404
|
-
return /* @__PURE__ */ import_react177.default.createElement(View, { title }, /* @__PURE__ */ import_react177.default.createElement("div", { className: "Layer__component Layer__header__actions" }, /* @__PURE__ */ import_react177.default.createElement(
|
|
15526
|
+
return /* @__PURE__ */ import_react177.default.createElement(View, { title: stringOverrides?.title || title || "Reports" }, /* @__PURE__ */ import_react177.default.createElement("div", { className: "Layer__component Layer__header__actions" }, /* @__PURE__ */ import_react177.default.createElement(
|
|
15405
15527
|
Toggle,
|
|
15406
15528
|
{
|
|
15407
15529
|
name: "reports-tabs",
|
|
@@ -15416,26 +15538,38 @@ var Reports = ({ title = "Reports" }) => {
|
|
|
15416
15538
|
selected: activeTab,
|
|
15417
15539
|
onChange: (opt) => setActiveTab(opt.target.value)
|
|
15418
15540
|
}
|
|
15419
|
-
)), /* @__PURE__ */ import_react177.default.createElement(Container, { name: "reports", ref: containerRef }, /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react177.default.createElement(ReportsPanel, { containerRef, openReport: activeTab }))));
|
|
15541
|
+
)), /* @__PURE__ */ import_react177.default.createElement(Container, { name: "reports", ref: containerRef }, /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss, { asContainer: false }, /* @__PURE__ */ import_react177.default.createElement(ReportsPanel, { containerRef, openReport: activeTab, stringOverrides }))));
|
|
15420
15542
|
};
|
|
15421
|
-
var ReportsPanel = ({ containerRef, openReport }) => {
|
|
15543
|
+
var ReportsPanel = ({ containerRef, openReport, stringOverrides }) => {
|
|
15422
15544
|
const { sidebarScope } = (0, import_react177.useContext)(ProfitAndLoss.Context);
|
|
15423
15545
|
return /* @__PURE__ */ import_react177.default.createElement(import_react177.default.Fragment, null, openReport === "profitAndLoss" && /* @__PURE__ */ import_react177.default.createElement(
|
|
15424
15546
|
View,
|
|
15425
15547
|
{
|
|
15426
15548
|
type: "panel",
|
|
15427
|
-
headerControls: /* @__PURE__ */ import_react177.default.createElement(import_react177.default.Fragment, null, /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss.DatePicker, null), /* @__PURE__ */ import_react177.default.createElement(DownloadButton2,
|
|
15549
|
+
headerControls: /* @__PURE__ */ import_react177.default.createElement(import_react177.default.Fragment, null, /* @__PURE__ */ import_react177.default.createElement(ProfitAndLoss.DatePicker, null), /* @__PURE__ */ import_react177.default.createElement(DownloadButton2, { stringOverrides: stringOverrides?.downloadButton }))
|
|
15428
15550
|
},
|
|
15429
15551
|
/* @__PURE__ */ import_react177.default.createElement(
|
|
15430
15552
|
Panel,
|
|
15431
15553
|
{
|
|
15432
|
-
sidebar: /* @__PURE__ */ import_react177.default.createElement(
|
|
15554
|
+
sidebar: /* @__PURE__ */ import_react177.default.createElement(
|
|
15555
|
+
ProfitAndLoss.DetailedCharts,
|
|
15556
|
+
{
|
|
15557
|
+
showDatePicker: false,
|
|
15558
|
+
stringOverrides: stringOverrides?.profitAndLoss?.detailedCharts
|
|
15559
|
+
}
|
|
15560
|
+
),
|
|
15433
15561
|
sidebarIsOpen: Boolean(sidebarScope),
|
|
15434
15562
|
parentRef: containerRef
|
|
15435
15563
|
},
|
|
15436
|
-
/* @__PURE__ */ import_react177.default.createElement(
|
|
15564
|
+
/* @__PURE__ */ import_react177.default.createElement(
|
|
15565
|
+
ProfitAndLoss.Table,
|
|
15566
|
+
{
|
|
15567
|
+
asContainer: false,
|
|
15568
|
+
stringOverrides: stringOverrides?.profitAndLoss?.table
|
|
15569
|
+
}
|
|
15570
|
+
)
|
|
15437
15571
|
)
|
|
15438
|
-
), openReport === "balanceSheet" && /* @__PURE__ */ import_react177.default.createElement(BalanceSheet,
|
|
15572
|
+
), openReport === "balanceSheet" && /* @__PURE__ */ import_react177.default.createElement(BalanceSheet, { stringOverrides: stringOverrides?.balanceSheet }), openReport === "statementOfCashFlow" && /* @__PURE__ */ import_react177.default.createElement(StatementOfCashFlow, { stringOverrides: stringOverrides?.statementOfCashflow }));
|
|
15439
15573
|
};
|
|
15440
15574
|
|
|
15441
15575
|
// src/components/ProfitAndLossView/ProfitAndLossView.tsx
|
|
@@ -15447,23 +15581,30 @@ var ProfitAndLossView = (props) => {
|
|
|
15447
15581
|
};
|
|
15448
15582
|
var ProfitAndLossPanel = ({
|
|
15449
15583
|
containerRef,
|
|
15584
|
+
stringOverrides,
|
|
15450
15585
|
...props
|
|
15451
15586
|
}) => {
|
|
15452
15587
|
const { sidebarScope } = (0, import_react178.useContext)(ProfitAndLoss.Context);
|
|
15453
15588
|
return /* @__PURE__ */ import_react178.default.createElement(
|
|
15454
15589
|
Panel,
|
|
15455
15590
|
{
|
|
15456
|
-
sidebar: /* @__PURE__ */ import_react178.default.createElement(
|
|
15591
|
+
sidebar: /* @__PURE__ */ import_react178.default.createElement(
|
|
15592
|
+
ProfitAndLossDetailedCharts,
|
|
15593
|
+
{
|
|
15594
|
+
stringOverrides: stringOverrides?.profitAndLossDetailedCharts
|
|
15595
|
+
}
|
|
15596
|
+
),
|
|
15457
15597
|
sidebarIsOpen: Boolean(sidebarScope),
|
|
15458
15598
|
parentRef: containerRef
|
|
15459
15599
|
},
|
|
15460
|
-
/* @__PURE__ */ import_react178.default.createElement(Header, { className: `Layer__${COMPONENT_NAME7}__header` }, /* @__PURE__ */ import_react178.default.createElement(Heading, { className: "Layer__profit-and-loss__title" }, "Profit & Loss")),
|
|
15461
|
-
/* @__PURE__ */ import_react178.default.createElement(Components, { ...props })
|
|
15600
|
+
/* @__PURE__ */ import_react178.default.createElement(Header, { className: `Layer__${COMPONENT_NAME7}__header` }, /* @__PURE__ */ import_react178.default.createElement(Heading, { className: "Layer__profit-and-loss__title" }, stringOverrides?.header || "Profit & Loss")),
|
|
15601
|
+
/* @__PURE__ */ import_react178.default.createElement(Components, { stringOverrides, ...props })
|
|
15462
15602
|
);
|
|
15463
15603
|
};
|
|
15464
15604
|
var Components = ({
|
|
15465
15605
|
hideChart = false,
|
|
15466
|
-
hideTable = false
|
|
15606
|
+
hideTable = false,
|
|
15607
|
+
stringOverrides
|
|
15467
15608
|
}) => {
|
|
15468
15609
|
const { error, isLoading, isValidating, refetch } = (0, import_react178.useContext)(
|
|
15469
15610
|
ProfitAndLoss.Context
|
|
@@ -15486,14 +15627,26 @@ var Components = ({
|
|
|
15486
15627
|
className: `Layer__${COMPONENT_NAME7}__chart_with_summaries__summary-col`
|
|
15487
15628
|
},
|
|
15488
15629
|
/* @__PURE__ */ import_react178.default.createElement(ProfitAndLoss.DatePicker, null),
|
|
15489
|
-
/* @__PURE__ */ import_react178.default.createElement(
|
|
15630
|
+
/* @__PURE__ */ import_react178.default.createElement(
|
|
15631
|
+
ProfitAndLoss.Summaries,
|
|
15632
|
+
{
|
|
15633
|
+
vertical: true,
|
|
15634
|
+
actionable: true,
|
|
15635
|
+
stringOverrides: stringOverrides?.profitAndLossSummaries
|
|
15636
|
+
}
|
|
15637
|
+
)
|
|
15490
15638
|
), /* @__PURE__ */ import_react178.default.createElement(
|
|
15491
15639
|
"div",
|
|
15492
15640
|
{
|
|
15493
15641
|
className: `Layer__${COMPONENT_NAME7}__chart_with_summaries__chart-col`
|
|
15494
15642
|
},
|
|
15495
15643
|
/* @__PURE__ */ import_react178.default.createElement(ProfitAndLoss.Chart, null)
|
|
15496
|
-
)), !hideTable && /* @__PURE__ */ import_react178.default.createElement(
|
|
15644
|
+
)), !hideTable && /* @__PURE__ */ import_react178.default.createElement(
|
|
15645
|
+
ProfitAndLoss.Table,
|
|
15646
|
+
{
|
|
15647
|
+
stringOverrides: stringOverrides?.profitAndLossTable
|
|
15648
|
+
}
|
|
15649
|
+
));
|
|
15497
15650
|
};
|
|
15498
15651
|
// Annotate the CommonJS export names for ESM import in node:
|
|
15499
15652
|
0 && (module.exports = {
|