@actual-app/web 23.8.1 → 23.10.0
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/README.md +42 -1
- package/build/apple-touch-icon.png +0 -0
- package/build/asset-manifest.json +25 -25
- package/build/index.html +1 -1
- package/build/kcab/kcab.worker.b835d2cdcf8004c363da.js +250 -0
- package/build/kcab/kcab.worker.b835d2cdcf8004c363da.js.map +1 -0
- package/build/kcab/xfo.xfo.kcab.worker.2ee5d7175d50b7896f28.js +1 -0
- package/build/static/css/main.476f35a5.css +359 -0
- package/build/static/css/main.476f35a5.css.map +1 -0
- package/build/static/js/231.370f17f8.chunk.js +2 -0
- package/build/static/js/231.370f17f8.chunk.js.map +1 -0
- package/build/static/js/389.c8f94185.chunk.js +2 -0
- package/build/static/js/389.c8f94185.chunk.js.map +1 -0
- package/build/static/js/473.02c273e8.chunk.js +2 -0
- package/build/static/js/473.02c273e8.chunk.js.map +1 -0
- package/build/static/js/678.bf349f5d.chunk.js +2 -0
- package/build/static/js/678.bf349f5d.chunk.js.map +1 -0
- package/build/static/js/713.1731d555.chunk.js +15 -0
- package/build/static/js/713.1731d555.chunk.js.map +1 -0
- package/build/static/js/main.7e6eedd0.js +188 -0
- package/build/static/js/main.7e6eedd0.js.map +1 -0
- package/build/static/js/narrow-components.11cf3591.chunk.js +2 -0
- package/build/static/js/narrow-components.11cf3591.chunk.js.map +1 -0
- package/build/static/js/reports.39b7254a.chunk.js +2 -0
- package/build/static/js/reports.39b7254a.chunk.js.map +1 -0
- package/build/static/js/resize-observer-polyfill.98a18736.chunk.js +2 -0
- package/build/static/js/resize-observer-polyfill.98a18736.chunk.js.map +1 -0
- package/build/static/js/wide-components.fd8595f4.chunk.js +2 -0
- package/build/static/js/wide-components.fd8595f4.chunk.js.map +1 -0
- package/build/static/media/browser-server.20abc230cfc504c53fa0.js +1 -0
- package/package.json +25 -19
- package/build/kcab/kcab.worker.61dd77d50c3de3a5c965.js +0 -3
- package/build/kcab/kcab.worker.61dd77d50c3de3a5c965.js.LICENSE.txt +0 -24
- package/build/kcab/kcab.worker.61dd77d50c3de3a5c965.js.map +0 -1
- package/build/kcab/xfo.xfo.kcab.worker.e800a4a41b9557f2726d.js +0 -1
- package/build/static/css/main.90cc2688.css +0 -7
- package/build/static/css/main.90cc2688.css.map +0 -1
- package/build/static/js/281.6bb03bd1.chunk.js +0 -2
- package/build/static/js/281.6bb03bd1.chunk.js.map +0 -1
- package/build/static/js/383.1b04bac1.chunk.js +0 -2
- package/build/static/js/383.1b04bac1.chunk.js.map +0 -1
- package/build/static/js/457.4c255aed.chunk.js +0 -2
- package/build/static/js/457.4c255aed.chunk.js.map +0 -1
- package/build/static/js/876.00fe0e63.chunk.js +0 -2
- package/build/static/js/876.00fe0e63.chunk.js.map +0 -1
- package/build/static/js/969.b56f4e53.chunk.js +0 -2
- package/build/static/js/969.b56f4e53.chunk.js.map +0 -1
- package/build/static/js/main.b9496410.js +0 -3
- package/build/static/js/main.b9496410.js.LICENSE.txt +0 -178
- package/build/static/js/main.b9496410.js.map +0 -1
- package/build/static/js/narrow-components.55a3b7fd.chunk.js +0 -2
- package/build/static/js/narrow-components.55a3b7fd.chunk.js.map +0 -1
- package/build/static/js/reports.689f3940.chunk.js +0 -2
- package/build/static/js/reports.689f3940.chunk.js.map +0 -1
- package/build/static/js/resize-observer-polyfill.68c3249b.chunk.js +0 -2
- package/build/static/js/resize-observer-polyfill.68c3249b.chunk.js.map +0 -1
- package/build/static/js/wide-components.e3cfa9ca.chunk.js +0 -2
- package/build/static/js/wide-components.e3cfa9ca.chunk.js.map +0 -1
- package/build/static/media/browser-server.14ed34b8682d7b10163f.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/js/reports.39b7254a.chunk.js","mappings":"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","sources":["components/common/ButtonLink.tsx","hooks/useFilters.ts","components/reports/Change.js","components/reports/util.js","components/reports/graphs/cash-flow-spreadsheet.tsx","components/reports/chart-theme.js","components/reports/Container.tsx","components/reports/Tooltip.js","components/reports/graphs/CashFlowGraph.tsx","components/reports/Header.js","components/reports/useReport.js","components/reports/CashFlow.js","components/reports/CategorySelector.tsx","components/reports/graphs/category-spending-spreadsheet.tsx","components/reports/graphs/common.tsx","components/reports/graphs/CategorySpendingGraph.tsx","components/reports/CategorySpending.js","components/reports/graphs/net-worth-spreadsheet.tsx","components/reports/graphs/NetWorthGraph.tsx","components/reports/NetWorth.js","components/reports/DateRange.js","components/reports/Overview.js","components/reports/ReportRouter.js"],"sourcesContent":["import React, { type ComponentProps } from 'react';\nimport { useMatch, useNavigate } from 'react-router-dom';\n\nimport { type CSSProperties } from '../../style';\n\nimport Button from './Button';\n\ntype ButtonLinkProps = ComponentProps<typeof Button> & {\n to: string;\n activeStyle?: CSSProperties;\n};\nexport default function ButtonLink({\n to,\n style,\n activeStyle,\n ...props\n}: ButtonLinkProps) {\n const navigate = useNavigate();\n const match = useMatch({ path: to });\n return (\n <Button\n style={{\n ...style,\n ...(match ? activeStyle : {}),\n }}\n activeStyle={activeStyle}\n {...props}\n onClick={e => {\n props.onClick?.(e);\n navigate(to);\n }}\n />\n );\n}\n","import { useCallback, useMemo, useState } from 'react';\n\nexport default function useFilters<T>(initialFilters: T[] = []) {\n const [filters, setFilters] = useState<T[]>(initialFilters);\n const [conditionsOp, setConditionsOp] = useState('and');\n const [saved, setSaved] = useState<T[]>(null);\n\n const onApply = useCallback(\n newFilter => {\n if (newFilter.conditions) {\n setFilters([...newFilter.conditions]);\n setConditionsOp(newFilter.conditionsOp);\n setSaved(newFilter.id);\n } else {\n setFilters(state => [...state, newFilter]);\n setSaved(null);\n }\n },\n [setFilters],\n );\n\n const onUpdate = useCallback(\n (oldFilter: T, updatedFilter: T) => {\n setFilters(state =>\n state.map(f => (f === oldFilter ? updatedFilter : f)),\n );\n setSaved(null);\n },\n [setFilters],\n );\n\n const onDelete = useCallback(\n (deletedFilter: T) => {\n setFilters(state => state.filter(f => f !== deletedFilter));\n setSaved(null);\n },\n [setFilters],\n );\n\n const onCondOpChange = useCallback(\n condOp => {\n setConditionsOp(condOp);\n },\n [setConditionsOp],\n );\n\n return useMemo(\n () => ({\n filters,\n saved,\n conditionsOp,\n onApply,\n onUpdate,\n onDelete,\n onCondOpChange,\n }),\n [filters, saved, onApply, onUpdate, onDelete, onCondOpChange, conditionsOp],\n );\n}\n","import React from 'react';\n\nimport { integerToCurrency } from 'loot-core/src/shared/util';\n\nimport { theme, styles } from '../../style';\nimport Block from '../common/Block';\n\nfunction Change({ amount }) {\n return (\n <Block\n style={{\n ...styles.smallText,\n color: amount < 0 ? theme.errorText : theme.noticeText,\n }}\n >\n {amount >= 0 ? '+' : ''}\n {integerToCurrency(amount)}\n </Block>\n );\n}\n\nexport default Change;\n","import { runQuery } from 'loot-core/src/client/query-helpers';\n\nexport function fromDateRepr(date) {\n return date.slice(0, 7);\n}\n\nexport async function runAll(queries, cb) {\n let data = await Promise.all(\n queries.map(q => {\n return runQuery(q).then(({ data }) => data);\n }),\n );\n cb(data);\n}\n\nexport function index(data, field, mapper) {\n const result = {};\n data.forEach(item => {\n result[mapper ? mapper(item[field]) : item[field]] = item;\n });\n return result;\n}\n\nexport function indexCashFlow(data, date, isTransfer) {\n const results = {};\n data.forEach(item => {\n let findExisting = results[item.date]\n ? results[item.date][item.isTransfer]\n ? results[item.date][item.isTransfer]\n : 0\n : 0;\n let result = { [item[isTransfer]]: item.amount + findExisting };\n results[item[date]] = { ...results[item[date]], ...result };\n });\n return results;\n}\n","import React from 'react';\n\nimport * as d from 'date-fns';\n\nimport q from 'loot-core/src/client/query-helpers';\nimport { send } from 'loot-core/src/platform/client/fetch';\nimport * as monthUtils from 'loot-core/src/shared/months';\nimport { integerToCurrency, integerToAmount } from 'loot-core/src/shared/util';\n\nimport AlignedText from '../../common/AlignedText';\nimport { runAll, indexCashFlow } from '../util';\n\nexport function simpleCashFlow(start, end) {\n return async (spreadsheet, setData) => {\n function makeQuery() {\n return q('transactions')\n .filter({\n $and: [{ date: { $gte: start } }, { date: { $lte: end } }],\n 'account.offbudget': false,\n $or: [\n {\n 'payee.transfer_acct.offbudget': true,\n 'payee.transfer_acct': null,\n },\n ],\n })\n .calculate({ $sum: '$amount' });\n }\n\n return runAll(\n [\n makeQuery().filter({ amount: { $gt: 0 } }),\n makeQuery().filter({ amount: { $lt: 0 } }),\n ],\n data => {\n setData({\n graphData: {\n income: data[0],\n expense: data[1],\n },\n });\n },\n );\n };\n}\n\nexport function cashFlowByDate(\n start,\n end,\n isConcise,\n conditions = [],\n conditionsOp,\n) {\n return async (spreadsheet, setData) => {\n let { filters } = await send('make-filters-from-conditions', {\n conditions: conditions.filter(cond => !cond.customName),\n });\n const conditionsOpKey = conditionsOp === 'or' ? '$or' : '$and';\n\n function makeQuery(where) {\n let query = q('transactions')\n .filter({\n [conditionsOpKey]: [...filters],\n })\n .filter({\n $and: [\n { date: { $transform: '$month', $gte: start } },\n { date: { $transform: '$month', $lte: end } },\n ],\n 'account.offbudget': false,\n });\n\n if (isConcise) {\n return query\n .groupBy([{ $month: '$date' }, 'payee.transfer_acct'])\n .select([\n { date: { $month: '$date' } },\n { isTransfer: 'payee.transfer_acct' },\n { amount: { $sum: '$amount' } },\n ]);\n }\n\n return query\n .groupBy(['date', 'payee.transfer_acct'])\n .select([\n 'date',\n { isTransfer: 'payee.transfer_acct' },\n { amount: { $sum: '$amount' } },\n ]);\n }\n\n return runAll(\n [\n q('transactions')\n .filter({\n [conditionsOpKey]: filters,\n date: { $transform: '$month', $lt: start },\n 'account.offbudget': false,\n })\n .calculate({ $sum: '$amount' }),\n makeQuery('amount > 0').filter({ amount: { $gt: 0 } }),\n makeQuery('amount < 0').filter({ amount: { $lt: 0 } }),\n ],\n data => {\n setData(recalculate(data, start, end, isConcise));\n },\n );\n };\n}\n\nfunction recalculate(data, start, end, isConcise) {\n let [startingBalance, income, expense] = data;\n let convIncome = income.map(t => {\n return { ...t, isTransfer: t.isTransfer !== null };\n });\n let convExpense = expense.map(t => {\n return { ...t, isTransfer: t.isTransfer !== null };\n });\n const dates = isConcise\n ? monthUtils.rangeInclusive(\n monthUtils.getMonth(start),\n monthUtils.getMonth(end),\n )\n : monthUtils.dayRangeInclusive(start, end);\n const incomes = indexCashFlow(convIncome, 'date', 'isTransfer');\n const expenses = indexCashFlow(convExpense, 'date', 'isTransfer');\n\n let balance = startingBalance;\n let totalExpenses = 0;\n let totalIncome = 0;\n let totalTransfers = 0;\n\n const graphData = dates.reduce(\n (res, date) => {\n let income = 0;\n let expense = 0;\n let creditTransfers = 0;\n let debitTransfers = 0;\n\n if (incomes[date]) {\n income = !incomes[date].false ? 0 : incomes[date].false;\n creditTransfers = !incomes[date].true ? 0 : incomes[date].true;\n }\n if (expenses[date]) {\n expense = !expenses[date].false ? 0 : expenses[date].false;\n debitTransfers = !expenses[date].true ? 0 : expenses[date].true;\n }\n\n totalExpenses += expense;\n totalIncome += income;\n balance += income + expense + creditTransfers + debitTransfers;\n totalTransfers += creditTransfers + debitTransfers;\n const x = d.parseISO(date);\n\n const label = (\n <div>\n <div style={{ marginBottom: 10 }}>\n <strong>\n {d.format(x, isConcise ? 'MMMM yyyy' : 'MMMM d, yyyy')}\n </strong>\n </div>\n <div style={{ lineHeight: 1.5 }}>\n <AlignedText left=\"Income:\" right={integerToCurrency(income)} />\n <AlignedText left=\"Expenses:\" right={integerToCurrency(expense)} />\n <AlignedText\n left=\"Change:\"\n right={<strong>{integerToCurrency(income + expense)}</strong>}\n />\n {creditTransfers + debitTransfers !== 0 && (\n <AlignedText\n left=\"Transfers:\"\n right={integerToCurrency(creditTransfers + debitTransfers)}\n />\n )}\n <AlignedText left=\"Balance:\" right={integerToCurrency(balance)} />\n </div>\n </div>\n );\n\n res.income.push({ x, y: integerToAmount(income) });\n res.expenses.push({ x, y: integerToAmount(expense) });\n res.balances.push({\n x,\n y: integerToAmount(balance),\n premadeLabel: label,\n amount: balance,\n });\n return res;\n },\n { expenses: [], income: [], balances: [] },\n );\n\n const { balances } = graphData;\n\n return {\n graphData,\n balance: balances[balances.length - 1].amount,\n totalExpenses,\n totalIncome,\n totalTransfers,\n totalChange: balances[balances.length - 1].amount - balances[0].amount,\n };\n}\n","import { theme } from '../../style';\n\nlet colorFades = {\n blueFadeStart: 'rgba(229, 245, 255, 1)',\n blueFadeEnd: 'rgba(229, 245, 255, 0)',\n redFadeStart: 'rgba(255, 243, 242, 1)',\n redFadeEnd: 'rgba(255, 243, 242, 0)',\n};\n\n// Typography\nconst sansSerif =\n 'Inter var, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, sans-serif';\nconst letterSpacing = 'normal';\nconst fontSize = 13;\n\n// Labels\nconst baseLabelStyles = {\n fontFamily: sansSerif,\n fontSize,\n letterSpacing,\n fill: theme.reportsLabel,\n stroke: 'transparent',\n};\n\nconst axisBaseStyles = {\n axis: {\n fill: 'transparent',\n stroke: 'none',\n },\n grid: {\n fill: 'none',\n stroke: 'none',\n pointerEvents: 'none',\n },\n ticks: {\n fill: 'transparent',\n size: 1,\n stroke: 'none',\n },\n axisLabel: baseLabelStyles,\n tickLabels: baseLabelStyles,\n};\n\nexport const chartTheme = {\n colors: {\n ...colorFades,\n red: theme.reportsRed,\n blue: theme.reportsBlue,\n },\n area: {\n style: {\n labels: baseLabelStyles,\n data: {\n stroke: theme.reportsBlue,\n strokeWidth: 2,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n },\n },\n },\n axis: {\n style: axisBaseStyles,\n },\n dependentAxis: {\n style: {\n ...axisBaseStyles,\n grid: {\n ...axisBaseStyles.grid,\n stroke: 'rgba(0,0,0,.2)',\n strokeDasharray: '1,1',\n },\n tickLabels: { ...baseLabelStyles, padding: 5 },\n },\n },\n independentAxis: {\n style: {\n ...axisBaseStyles,\n axis: { ...axisBaseStyles.axis, stroke: 'rgba(0,0,0,.2)' },\n tickLabels: { ...baseLabelStyles, padding: 10 },\n },\n },\n bar: {\n style: {\n labels: baseLabelStyles,\n data: { fill: theme.reportsBlue, stroke: 'none' },\n },\n },\n line: {\n style: {\n labels: baseLabelStyles,\n data: {\n fill: 'none',\n stroke: theme.reportsBlue,\n strokeWidth: 2,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n },\n },\n },\n voronoi: {\n style: {\n labels: baseLabelStyles,\n },\n },\n chart: {\n padding: {\n top: 20,\n left: 65,\n right: 20,\n bottom: 50,\n },\n },\n};\n","import React, { useRef, type ReactNode } from 'react';\nimport AutoSizer from 'react-virtualized-auto-sizer';\n\nimport { type CSSProperties } from '../../style';\nimport View from '../common/View';\n\ntype ContainerProps = {\n style?: CSSProperties;\n children: (width: number, height: number, host: HTMLDivElement) => ReactNode;\n};\nexport default function Container({ style, children }: ContainerProps) {\n const portalHost = useRef<HTMLDivElement>(null);\n\n return (\n <View\n style={{ height: 300, position: 'relative', flexShrink: 0, ...style }}\n >\n <div ref={portalHost} />\n <AutoSizer>\n {({ width, height }) => (\n <div style={{ width, height }}>\n {children(width, height, portalHost.current)}\n </div>\n )}\n </AutoSizer>\n </View>\n );\n}\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { css, before } from 'glamor';\nimport { VictoryTooltip } from 'victory';\n\nimport { theme } from '../../style';\n\nclass Tooltip extends Component {\n static defaultEvents = VictoryTooltip.defaultEvents;\n\n render() {\n let {\n active,\n x,\n y,\n scale,\n datum,\n portalHost,\n offsetX = 0,\n offsetY,\n position,\n light,\n forceActive,\n style,\n } = this.props;\n const xRange = scale.x.range();\n const xPos = x - xRange[0];\n\n if (!position) {\n if (datum.labelPosition) {\n position = datum.labelPosition;\n } else {\n position = xPos < 150 ? 'right' : 'left';\n }\n }\n\n if (!portalHost || (!active && !forceActive)) {\n return null;\n }\n\n y = offsetY ? offsetY(y) : y;\n\n return ReactDOM.createPortal(\n <div\n className={`${css(\n {\n position: 'absolute',\n top: 0,\n left: offsetX,\n // prettier-ignore\n transform: position === 'right' ?\n `translate(calc(${x}px + 15px), calc(${y}px ${light ? '' : '- 50%'}))` :\n `translate(calc(${x}px - 100% - 15px), calc(${y}px ${light ? '' : '- 50%'}))`,\n zIndex: 1000,\n pointerEvents: 'none',\n borderRadius: 2,\n boxShadow: light ? 'none' : '0 1px 6px rgba(0, 0, 0, .20)',\n // TODO: Transparent background\n backgroundColor: light ? 'transparent' : theme.alt2MenuBackground,\n color: light ? 'inherit' : theme.alt2MenuItemText,\n padding: 10,\n },\n !light &&\n before({\n position: 'absolute',\n display: 'inline-block',\n borderTop: '7px solid transparent',\n borderBottom: '7px solid transparent',\n [position === 'right' ? 'borderRight' : 'borderLeft']:\n '7px solid ' + theme.alt2MenuBackground,\n [position === 'right' ? 'left' : 'right']: -6,\n top: 'calc(50% - 7px)',\n // eslint-disable-next-line rulesdir/typography\n content: '\" \"',\n }),\n style,\n )}`}\n >\n {datum.premadeLabel}\n </div>,\n portalHost,\n );\n }\n}\n\nexport default Tooltip;\n","import React from 'react';\n\nimport * as d from 'date-fns';\nimport {\n VictoryChart,\n VictoryBar,\n VictoryLine,\n VictoryAxis,\n VictoryVoronoiContainer,\n VictoryGroup,\n} from 'victory';\n\nimport { theme } from '../../../style';\nimport { chartTheme } from '../chart-theme';\nimport Container from '../Container';\nimport Tooltip from '../Tooltip';\n\ntype CashFlowGraphProps = {\n graphData: { expenses; income; balances };\n isConcise: boolean;\n};\nfunction CashFlowGraph({ graphData, isConcise }: CashFlowGraphProps) {\n return (\n <Container>\n {(width, height, portalHost) =>\n graphData && (\n <VictoryChart\n scale={{ x: 'time', y: 'linear' }}\n theme={chartTheme}\n domainPadding={10}\n width={width}\n height={height}\n containerComponent={\n <VictoryVoronoiContainer voronoiDimension=\"x\" />\n }\n >\n <VictoryGroup>\n <VictoryBar data={graphData.expenses} />\n <VictoryBar data={graphData.income} />\n </VictoryGroup>\n <VictoryLine\n data={graphData.balances}\n labelComponent={<Tooltip portalHost={portalHost} />}\n labels={x => x.premadeLabel}\n style={{\n data: { stroke: theme.altpageTextSubdued },\n }}\n />\n <VictoryAxis\n // eslint-disable-next-line rulesdir/typography\n tickFormat={x => d.format(x, isConcise ? \"MMM ''yy\" : 'MMM d')}\n tickValues={graphData.balances.map(item => item.x)}\n tickCount={Math.min(5, graphData.balances.length)}\n offsetY={50}\n />\n <VictoryAxis dependentAxis crossAxis={false} />\n </VictoryChart>\n )\n }\n </Container>\n );\n}\n\nexport default CashFlowGraph;\n","import * as monthUtils from 'loot-core/src/shared/months';\n\nimport ArrowLeft from '../../icons/v1/ArrowLeft';\nimport { styles } from '../../style';\nimport Button from '../common/Button';\nimport ButtonLink from '../common/ButtonLink';\nimport Select from '../common/Select';\nimport View from '../common/View';\nimport { FilterButton, AppliedFilters } from '../filters/FiltersMenu';\n\nfunction validateStart(allMonths, start, end) {\n const earliest = allMonths[allMonths.length - 1].name;\n if (end < start) {\n end = monthUtils.addMonths(start, 6);\n }\n return boundedRange(earliest, start, end);\n}\n\nfunction validateEnd(allMonths, start, end) {\n const earliest = allMonths[allMonths.length - 1].name;\n if (start > end) {\n start = monthUtils.subMonths(end, 6);\n }\n return boundedRange(earliest, start, end);\n}\n\nfunction boundedRange(earliest, start, end) {\n const latest = monthUtils.currentMonth();\n if (end > latest) {\n end = latest;\n }\n if (start < earliest) {\n start = earliest;\n }\n return [start, end];\n}\n\nfunction getLatestRange(offset) {\n const end = monthUtils.currentMonth();\n const start = monthUtils.subMonths(end, offset);\n return [start, end];\n}\n\nfunction getFullRange(allMonths) {\n const start = allMonths[allMonths.length - 1].name;\n const end = monthUtils.currentMonth();\n return [start, end];\n}\n\nfunction Header({\n title,\n start,\n end,\n show1Month,\n allMonths,\n onChangeDates,\n filters,\n conditionsOp,\n onApply,\n onUpdateFilter,\n onDeleteFilter,\n onCondOpChange,\n headerPrefixItems,\n}) {\n return (\n <View\n style={{\n padding: 10,\n paddingTop: 0,\n flexShrink: 0,\n }}\n >\n <ButtonLink\n type=\"bare\"\n to=\"/reports\"\n style={{ marginBottom: '15', alignSelf: 'flex-start' }}\n >\n <ArrowLeft width={10} height={10} style={{ marginRight: 5 }} /> Back\n </ButtonLink>\n <View style={styles.veryLargeText}>{title}</View>\n\n <View\n style={{\n flexDirection: 'row',\n alignItems: 'center',\n marginTop: 15,\n gap: 15,\n }}\n >\n {headerPrefixItems}\n\n <View\n style={{\n flexDirection: 'row',\n alignItems: 'center',\n gap: 5,\n }}\n >\n <Select\n onChange={newValue =>\n onChangeDates(...validateStart(allMonths, newValue, end))\n }\n value={start}\n defaultLabel={monthUtils.format(start, 'MMMM, yyyy')}\n options={allMonths.map(({ name, pretty }) => [name, pretty])}\n />\n <View>to</View>\n <Select\n onChange={newValue =>\n onChangeDates(...validateEnd(allMonths, start, newValue))\n }\n value={end}\n options={allMonths.map(({ name, pretty }) => [name, pretty])}\n />\n </View>\n\n {filters && <FilterButton onApply={onApply} />}\n\n {show1Month && (\n <Button\n type=\"bare\"\n onClick={() => onChangeDates(...getLatestRange(1))}\n >\n 1 month\n </Button>\n )}\n <Button type=\"bare\" onClick={() => onChangeDates(...getLatestRange(2))}>\n 3 months\n </Button>\n <Button type=\"bare\" onClick={() => onChangeDates(...getLatestRange(5))}>\n 6 months\n </Button>\n <Button\n type=\"bare\"\n onClick={() => onChangeDates(...getLatestRange(11))}\n >\n 1 Year\n </Button>\n <Button\n type=\"bare\"\n onClick={() => onChangeDates(...getFullRange(allMonths))}\n >\n All Time\n </Button>\n </View>\n {filters && filters.length > 0 && (\n <View\n style={{ marginTop: 5 }}\n spacing={2}\n direction=\"row\"\n justify=\"flex-start\"\n align=\"flex-start\"\n >\n <AppliedFilters\n filters={filters}\n onUpdate={onUpdateFilter}\n onDelete={onDeleteFilter}\n conditionsOp={conditionsOp}\n onCondOpChange={onCondOpChange}\n />\n </View>\n )}\n </View>\n );\n}\n\nexport default Header;\n","import { useState, useEffect } from 'react';\n\nimport { useSpreadsheet } from 'loot-core/src/client/SpreadsheetProvider';\n\nfunction useReport(sheetName, getData) {\n const spreadsheet = useSpreadsheet();\n const [results, setResults] = useState(null);\n\n useEffect(() => {\n let cleanup;\n getData(spreadsheet, results => setResults(results)).then(c => {\n cleanup = c;\n });\n return () => {\n cleanup?.();\n };\n }, [getData]);\n\n return results;\n}\n\nexport default useReport;\n","import React, { useState, useEffect, useMemo } from 'react';\n\nimport * as d from 'date-fns';\n\nimport { send } from 'loot-core/src/platform/client/fetch';\nimport * as monthUtils from 'loot-core/src/shared/months';\nimport { integerToCurrency } from 'loot-core/src/shared/util';\n\nimport useFilters from '../../hooks/useFilters';\nimport { theme, styles } from '../../style';\nimport AlignedText from '../common/AlignedText';\nimport Block from '../common/Block';\nimport Paragraph from '../common/Paragraph';\nimport Text from '../common/Text';\nimport View from '../common/View';\nimport PrivacyFilter from '../PrivacyFilter';\n\nimport Change from './Change';\nimport { cashFlowByDate } from './graphs/cash-flow-spreadsheet';\nimport CashFlowGraph from './graphs/CashFlowGraph';\nimport Header from './Header';\nimport useReport from './useReport';\n\nfunction CashFlow() {\n const {\n filters,\n conditionsOp,\n onApply: onApplyFilter,\n onDelete: onDeleteFilter,\n onUpdate: onUpdateFilter,\n onCondOpChange,\n } = useFilters();\n\n const [allMonths, setAllMonths] = useState(null);\n const [start, setStart] = useState(\n monthUtils.subMonths(monthUtils.currentMonth(), 5),\n );\n const [end, setEnd] = useState(monthUtils.currentDay());\n\n const [isConcise, setIsConcise] = useState(() => {\n const numDays = d.differenceInCalendarDays(\n d.parseISO(end),\n d.parseISO(start),\n );\n return numDays > 31 * 3;\n });\n\n const params = useMemo(\n () => cashFlowByDate(start, end, isConcise, filters, conditionsOp),\n [start, end, isConcise, filters, conditionsOp],\n );\n const data = useReport('cash_flow', params);\n\n useEffect(() => {\n async function run() {\n const trans = await send('get-earliest-transaction');\n const earliestMonth = trans\n ? monthUtils.monthFromDate(d.parseISO(trans.date))\n : monthUtils.currentMonth();\n\n const allMonths = monthUtils\n .rangeInclusive(earliestMonth, monthUtils.currentMonth())\n .map(month => ({\n name: month,\n pretty: monthUtils.format(month, 'MMMM, yyyy'),\n }))\n .reverse();\n\n setAllMonths(allMonths);\n }\n run();\n }, []);\n\n function onChangeDates(start, end) {\n const numDays = d.differenceInCalendarDays(\n d.parseISO(end),\n d.parseISO(start),\n );\n const isConcise = numDays > 31 * 3;\n\n let endDay = end + '-31';\n if (endDay > monthUtils.currentDay()) {\n endDay = monthUtils.currentDay();\n }\n\n setStart(start + '-01');\n setEnd(endDay);\n setIsConcise(isConcise);\n }\n\n if (!allMonths || !data) {\n return null;\n }\n\n const { graphData, totalExpenses, totalIncome, totalTransfers } = data;\n\n return (\n <View style={{ ...styles.page, minWidth: 650, overflow: 'hidden' }}>\n <Header\n title=\"Cash Flow\"\n allMonths={allMonths}\n start={monthUtils.getMonth(start)}\n end={monthUtils.getMonth(end)}\n show1Month\n onChangeDates={onChangeDates}\n onApply={onApplyFilter}\n filters={filters}\n onUpdateFilter={onUpdateFilter}\n onDeleteFilter={onDeleteFilter}\n conditionsOp={conditionsOp}\n onCondOpChange={onCondOpChange}\n />\n\n <View\n style={{\n backgroundColor: theme.tableBackground,\n padding: 30,\n paddingTop: 0,\n overflow: 'auto',\n }}\n >\n <View\n style={{\n paddingTop: 20,\n paddingRight: 20,\n flexShrink: 0,\n alignItems: 'flex-end',\n color: theme.pageText,\n }}\n >\n <AlignedText\n style={{ marginBottom: 5, minWidth: 160 }}\n left={<Block>Income:</Block>}\n right={\n <Text style={{ fontWeight: 600 }}>\n <PrivacyFilter>{integerToCurrency(totalIncome)}</PrivacyFilter>\n </Text>\n }\n />\n\n <AlignedText\n style={{ marginBottom: 5, minWidth: 160 }}\n left={<Block>Expenses:</Block>}\n right={\n <Text style={{ fontWeight: 600 }}>\n <PrivacyFilter>\n {integerToCurrency(totalExpenses)}\n </PrivacyFilter>\n </Text>\n }\n />\n\n <AlignedText\n style={{ marginBottom: 5, minWidth: 160 }}\n left={<Block>Transfers:</Block>}\n right={\n <Text style={{ fontWeight: 600 }}>\n <PrivacyFilter>\n {integerToCurrency(totalTransfers)}\n </PrivacyFilter>\n </Text>\n }\n />\n <Text style={{ fontWeight: 600 }}>\n <PrivacyFilter>\n <Change amount={totalIncome + totalExpenses + totalTransfers} />\n </PrivacyFilter>\n </Text>\n </View>\n\n <CashFlowGraph\n start={start}\n end={end}\n graphData={graphData}\n isConcise={isConcise}\n />\n\n <View style={{ marginTop: 30 }}>\n <Paragraph>\n <strong>How is cash flow calculated?</strong>\n </Paragraph>\n <Paragraph>\n Cash flow shows the balance of your budgeted accounts over time, and\n the amount of expenses/income each day or month. Your budgeted\n accounts are considered to be “cash on hand,” so this gives you a\n picture of how available money fluctuates.\n </Paragraph>\n </View>\n </View>\n </View>\n );\n}\n\nexport default CashFlow;\n","import React, { Fragment, useState } from 'react';\n\nimport Eye from '../../icons/v2/Eye';\nimport EyeSlashed from '../../icons/v2/EyeSlashed';\nimport {\n type Category,\n type CategoryGroup,\n type CategoryListProps,\n} from '../autocomplete/CategoryAutocomplete';\nimport Button from '../common/Button';\nimport { Checkbox } from '../forms';\n\ntype CategorySelectorProps = {\n categoryGroups: Array<CategoryGroup>;\n selectedCategories: CategoryListProps['items'];\n setSelectedCategories: (selectedCategories: Category[]) => null;\n};\n\nexport default function CategorySelector({\n categoryGroups,\n selectedCategories,\n setSelectedCategories,\n}: CategorySelectorProps) {\n const [uncheckedHidden, setUncheckedHidden] = useState(false);\n\n return (\n <>\n <div>\n <Button onClick={() => setUncheckedHidden(state => !state)}>\n {uncheckedHidden ? (\n <>\n <Eye width={20} height={20} />\n Show unchecked\n </>\n ) : (\n <>\n <EyeSlashed width={20} height={20} />\n Hide unchecked\n </>\n )}\n </Button>\n </div>\n\n <ul\n style={{\n listStyle: 'none',\n marginLeft: 0,\n paddingLeft: 0,\n paddingRight: 10,\n height: 320,\n flexGrow: 1,\n overflowY: 'scroll',\n }}\n >\n {categoryGroups &&\n categoryGroups.map(categoryGroup => {\n const allCategoriesInGroupSelected = categoryGroup.categories.every(\n category =>\n selectedCategories.some(\n selectedCategory => selectedCategory.id === category.id,\n ),\n );\n const noCategorySelected = categoryGroup.categories.every(\n category =>\n !selectedCategories.some(\n selectedCategory => selectedCategory.id === category.id,\n ),\n );\n return (\n <Fragment key={categoryGroup.id}>\n <li\n style={{\n display:\n noCategorySelected && uncheckedHidden ? 'none' : 'flex',\n marginBottom: 8,\n flexDirection: 'row',\n }}\n >\n <Checkbox\n id={`form_${categoryGroup.id}`}\n checked={allCategoriesInGroupSelected}\n onChange={e => {\n const selectedCategoriesExcludingGroupCategories =\n selectedCategories.filter(\n selectedCategory =>\n !categoryGroup.categories.some(\n groupCategory =>\n groupCategory.id === selectedCategory.id,\n ),\n );\n if (allCategoriesInGroupSelected) {\n setSelectedCategories(\n selectedCategoriesExcludingGroupCategories,\n );\n } else {\n setSelectedCategories(\n selectedCategoriesExcludingGroupCategories.concat(\n categoryGroup.categories,\n ),\n );\n }\n }}\n />\n <label\n htmlFor={`form_${categoryGroup.id}`}\n style={{ userSelect: 'none', fontWeight: 'bold' }}\n >\n {categoryGroup.name}\n </label>\n </li>\n <li>\n <ul\n style={{\n listStyle: 'none',\n marginLeft: 0,\n marginBottom: 10,\n paddingLeft: 10,\n }}\n >\n {categoryGroup.categories.map((category, index) => {\n const isChecked = selectedCategories.some(\n selectedCategory => selectedCategory.id === category.id,\n );\n return (\n <li\n key={category.id}\n style={{\n display:\n !isChecked && uncheckedHidden ? 'none' : 'flex',\n flexDirection: 'row',\n marginBottom: 4,\n }}\n >\n <Checkbox\n id={`form_${category.id}`}\n checked={isChecked}\n onChange={e => {\n if (isChecked) {\n setSelectedCategories(\n selectedCategories.filter(\n selectedCategory =>\n selectedCategory.id !== category.id,\n ),\n );\n } else {\n setSelectedCategories([\n ...selectedCategories,\n category,\n ]);\n }\n }}\n />\n <label\n htmlFor={`form_${category.id}`}\n style={{ userSelect: 'none' }}\n >\n {category.name}\n </label>\n </li>\n );\n })}\n </ul>\n </li>\n </Fragment>\n );\n })}\n </ul>\n </>\n );\n}\n","import React from 'react';\n\nimport * as d from 'date-fns';\n\nimport { rolloverBudget } from 'loot-core/src/client/queries';\nimport q, { runQuery } from 'loot-core/src/client/query-helpers';\nimport * as monthUtils from 'loot-core/src/shared/months';\nimport { integerToAmount, integerToCurrency } from 'loot-core/src/shared/util';\n\nimport AlignedText from '../../common/AlignedText';\n\ntype CategoryGraphDataForMonth = {\n x: number;\n y: number;\n premadeLabel: JSX.Element;\n\n average: number;\n budgeted: number;\n total: number;\n};\n\nexport type CategorySpendingGraphData = {\n categories: Category[];\n tickValues: number[];\n data: { [category: string]: CategoryGraphDataForMonth[] };\n};\n\ntype Category = {\n id: string;\n name: string;\n};\n\ntype CategoryBudgetForMonth = {\n budgeted: number;\n sumAmount: number;\n balance: number;\n};\ntype CategoryBudgetPerMonth = {\n [month: string]: CategoryBudgetForMonth;\n};\n\nexport default function createSpreadsheet(\n start: string | null,\n end: string | null,\n numberOfMonthsAverage: number,\n categories: Category[],\n) {\n return async (\n spreadsheet: {\n get: (sheet: string, cell: string) => Promise<{ value: number }>;\n },\n setData: (graphData: CategorySpendingGraphData) => void,\n ) => {\n if (start === null || end === null || categories.length === 0) {\n return;\n }\n\n // Calculate the range of months that we will return data for. This will\n // contain more months than the specified start-end range in case we're\n // averaging data.\n let months: string[];\n if (numberOfMonthsAverage === -1) {\n // `numberOfMonthsAverage` is set to -1 to mean \"all time.\"\n const firstTransaction = await runQuery(\n q('transactions')\n .filter({\n $or: categories.map(category => ({ category: category.id })),\n })\n .orderBy({ date: 'asc' })\n .limit(1)\n .select('date'),\n );\n if (firstTransaction.data.length === 0) {\n return;\n }\n\n months = monthUtils.rangeInclusive(\n monthUtils.monthFromDate(firstTransaction.data[0].date),\n end,\n );\n } else {\n months = monthUtils.rangeInclusive(\n monthUtils.subMonths(start, numberOfMonthsAverage),\n end,\n );\n }\n\n const budgetForMonth = async (\n sheet: string,\n category: Category,\n ): Promise<CategoryBudgetForMonth> =>\n Promise.all([\n spreadsheet\n .get(sheet, rolloverBudget.catBudgeted(category.id))\n .then((cell: { value: number }) => cell.value ?? 0),\n spreadsheet\n .get(sheet, rolloverBudget.catSumAmount(category.id))\n .then((cell: { value: number }) => cell.value ?? 0),\n spreadsheet\n .get(sheet, rolloverBudget.catBalance(category.id))\n .then((cell: { value: number }) => cell.value ?? 0),\n ]).then(([budgeted, sumAmount, balance]) => ({\n budgeted,\n sumAmount,\n balance,\n }));\n\n const budgetPerMonth = async (\n category: Category,\n ): Promise<CategoryBudgetPerMonth> =>\n months.reduce(\n async (perMonth, month) => ({\n ...(await perMonth),\n [month]: await budgetForMonth(\n monthUtils.sheetForMonth(month),\n category,\n ),\n }),\n Promise.resolve({}),\n );\n\n const data: { [category: string]: CategoryGraphDataForMonth[] } =\n await categories.reduce(\n async (perCategory, category) => ({\n ...(await perCategory),\n [category.id]: await budgetPerMonth(category).then(perMonth =>\n recalculate(start, end, category, numberOfMonthsAverage, perMonth),\n ),\n }),\n Promise.resolve({}),\n );\n\n setData({\n categories,\n tickValues: data[categories[0].id].map(item => item.x),\n data,\n });\n };\n}\n\nfunction recalculate(\n start: string,\n end: string,\n category: Category,\n numberOfMonthsAverage: number,\n budgetPerMonth: CategoryBudgetPerMonth,\n): CategoryGraphDataForMonth[] {\n const months = monthUtils.rangeInclusive(start, end);\n const [averagedData, _] = months.reduce(\n ([arr, idx], month) => {\n const thisMonth = budgetPerMonth[month];\n const x = d.parseISO(`${month}-01`);\n\n const months = numberOfMonthsAverage === -1 ? idx : numberOfMonthsAverage;\n const sumAmounts = [];\n for (let i = 0; i < months; i++) {\n sumAmounts.push(\n budgetPerMonth[monthUtils.subMonths(month, i)].sumAmount,\n );\n }\n const average = sumAmounts.reduce((a, b) => a + b) / sumAmounts.length;\n\n const label = (\n <div>\n <div style={{ marginBottom: 10 }}>\n <strong>{category.name}</strong>\n </div>\n <div style={{ lineHeight: 1.5 }}>\n {numberOfMonthsAverage !== 0 && (\n <>\n <AlignedText\n left=\"Average:\"\n right={integerToCurrency(Math.round(average))}\n />\n <hr />\n </>\n )}\n <AlignedText\n left=\"Budgeted:\"\n right={integerToCurrency(thisMonth.budgeted)}\n />\n <AlignedText\n left=\"Spent:\"\n right={integerToCurrency(thisMonth.sumAmount)}\n />\n <AlignedText\n left=\"Balance:\"\n right={integerToCurrency(thisMonth.balance)}\n />\n </div>\n </div>\n );\n\n return [\n [\n ...arr,\n {\n x,\n y: integerToAmount(Math.round(average)),\n premadeLabel: label,\n\n average,\n budgeted: thisMonth.budgeted,\n total: thisMonth.sumAmount,\n },\n ],\n idx + 1,\n ];\n },\n [[], 1],\n );\n\n return averagedData;\n}\n","import * as d from 'date-fns';\n\nimport { chartTheme } from '../chart-theme';\n\ntype AreaProps = {\n start: string;\n end: string;\n scale?;\n range?;\n};\nexport function Area({ start, end, scale, range }: AreaProps) {\n const zero = scale.y(0);\n\n const startX = scale.x(d.parseISO(start + '-01'));\n const endX = scale.x(d.parseISO(end + '-01'));\n\n if (startX < 0 || endX < 0 || startX === undefined || endX === undefined) {\n return null;\n }\n\n return (\n <svg>\n <defs>\n <clipPath id=\"positive\">\n <rect\n x={startX}\n y={range.y[1]}\n width={endX - startX}\n height={zero - range.y[1] + 1}\n fill=\"#ffffff\"\n />\n </clipPath>\n <clipPath id=\"negative\">\n <rect\n x={startX}\n y={zero + 1}\n width={endX - startX}\n height={Math.max(range.y[0] - zero - 1, 0)}\n fill=\"#ffffff\"\n />\n </clipPath>\n <linearGradient\n id=\"positive-gradient\"\n gradientUnits=\"userSpaceOnUse\"\n x1={0}\n y1={range.y[1]}\n x2={0}\n y2={zero}\n >\n <stop offset=\"0%\" stopColor={chartTheme.colors.blueFadeStart} />\n <stop offset=\"100%\" stopColor={chartTheme.colors.blueFadeEnd} />\n </linearGradient>\n <linearGradient\n id=\"negative-gradient\"\n gradientUnits=\"userSpaceOnUse\"\n x1={0}\n y1={zero}\n x2={0}\n y2={range.y[0]}\n >\n <stop offset=\"0%\" stopColor={chartTheme.colors.redFadeEnd} />\n <stop offset=\"100%\" stopColor={chartTheme.colors.redFadeStart} />\n </linearGradient>\n </defs>\n </svg>\n );\n}\n","import type { CSSProperties } from 'react';\n\nimport * as d from 'date-fns';\nimport { VictoryAxis, VictoryBar, VictoryChart, VictoryStack } from 'victory';\n\nimport { chartTheme } from '../chart-theme';\nimport Container from '../Container';\nimport Tooltip from '../Tooltip';\n\nimport { type CategorySpendingGraphData } from './category-spending-spreadsheet';\nimport { Area } from './common';\n\ntype CategorySpendingGraphProps = {\n start: string;\n end: string;\n graphData: CategorySpendingGraphData;\n compact?: boolean;\n style?: CSSProperties;\n};\nfunction CategorySpendingGraph({\n style,\n start,\n end,\n graphData,\n compact,\n}: CategorySpendingGraphProps) {\n if (!graphData || !graphData.data) {\n return;\n }\n\n return (\n <Container\n style={{\n ...style,\n ...(compact && { height: 'auto', flex: 1 }),\n }}\n >\n {(width, height, portalHost) => (\n <VictoryChart\n scale={{ x: 'time', y: 'linear' }}\n theme={chartTheme}\n width={width}\n height={height}\n >\n <Area start={start} end={end} />\n <VictoryStack\n colorScale=\"qualitative\"\n domainPadding={{ x: compact ? 5 : 15 }}\n >\n {graphData.categories.map(category => (\n <VictoryBar\n key={category.id}\n data={graphData.data[category.id]}\n labelComponent={\n !compact ? <Tooltip portalHost={portalHost} /> : undefined\n }\n labels={item => item.premadeLabel}\n />\n ))}\n </VictoryStack>\n {!compact && (\n <VictoryAxis\n style={{ ticks: { stroke: 'red' } }}\n // eslint-disable-next-line rulesdir/typography\n tickFormat={x => d.format(x, \"MMM ''yy\")}\n tickValues={graphData.tickValues}\n tickCount={Math.max(\n 1,\n Math.min(width > 760 ? 12 : 5, graphData.tickValues.length),\n )}\n offsetY={50}\n orientation=\"bottom\"\n />\n )}\n <VictoryAxis\n dependentAxis\n crossAxis={false}\n invertAxis\n tickCount={compact ? 2 : height / 70}\n />\n </VictoryChart>\n )}\n </Container>\n );\n}\n\nexport default CategorySpendingGraph;\n","import React, { useState, useEffect, useMemo } from 'react';\n\nimport * as d from 'date-fns';\n\nimport { send } from 'loot-core/src/platform/client/fetch';\nimport * as monthUtils from 'loot-core/src/shared/months';\n\nimport useCategories from '../../hooks/useCategories';\nimport { styles } from '../../style';\nimport Select from '../common/Select';\nimport View from '../common/View';\n\nimport CategorySelector from './CategorySelector';\nimport categorySpendingSpreadsheet from './graphs/category-spending-spreadsheet';\nimport CategorySpendingGraph from './graphs/CategorySpendingGraph';\nimport Header from './Header';\nimport useReport from './useReport';\nimport { fromDateRepr } from './util';\n\nfunction CategoryAverage() {\n const categories = useCategories();\n\n const [selectedCategories, setSelectedCategories] = useState(null);\n\n const [allMonths, setAllMonths] = useState(null);\n\n const [start, setStart] = useState(\n monthUtils.subMonths(monthUtils.currentMonth(), 5),\n );\n const [end, setEnd] = useState(monthUtils.currentMonth());\n\n const [numberOfMonthsAverage, setNumberOfMonthsAverage] = useState(1);\n\n useEffect(() => {\n if (selectedCategories === null && categories.list.length !== 0) {\n setSelectedCategories(categories.list);\n }\n }, [categories, selectedCategories]);\n\n const getGraphData = useMemo(() => {\n return categorySpendingSpreadsheet(\n start,\n end,\n numberOfMonthsAverage,\n (categories.list || []).filter(\n category =>\n !category.is_income &&\n !category.hidden &&\n selectedCategories &&\n selectedCategories.some(\n selectedCategory => selectedCategory.id === category.id,\n ),\n ),\n );\n }, [start, end, numberOfMonthsAverage, categories, selectedCategories]);\n const perCategorySpending = useReport('category_spending', getGraphData);\n\n useEffect(() => {\n async function run() {\n const trans = await send('get-earliest-transaction');\n const currentMonth = monthUtils.currentMonth();\n let earliestMonth = trans\n ? monthUtils.monthFromDate(d.parseISO(fromDateRepr(trans.date)))\n : currentMonth;\n\n // Make sure the month selects are at least populates with a\n // year's worth of months. We can undo this when we have fancier\n // date selects.\n const yearAgo = monthUtils.subMonths(monthUtils.currentMonth(), 12);\n if (earliestMonth > yearAgo) {\n earliestMonth = yearAgo;\n }\n\n const allMonths = monthUtils\n .rangeInclusive(earliestMonth, monthUtils.currentMonth())\n .map(month => ({\n name: month,\n pretty: monthUtils.format(month, 'MMMM, yyyy'),\n }))\n .reverse();\n\n setAllMonths(allMonths);\n }\n run();\n }, []);\n\n function onChangeDates(start, end) {\n setStart(start);\n setEnd(end);\n }\n\n if (!allMonths || !perCategorySpending) {\n return null;\n }\n\n const numberOfMonthsOptions = [\n { value: 1, description: 'No averaging' },\n { value: 3, description: '3 months' },\n { value: 6, description: '6 months' },\n { value: 12, description: '12 months' },\n { value: -1, description: 'All time' },\n ];\n const numberOfMonthsLine = numberOfMonthsOptions.length - 1;\n\n const headerPrefixItems = (\n <View\n style={{\n flexDirection: 'row',\n alignItems: 'center',\n gap: 5,\n }}\n >\n <View>Average: </View>\n <Select\n style={{ backgroundColor: 'white' }}\n onChange={setNumberOfMonthsAverage}\n value={numberOfMonthsAverage}\n options={numberOfMonthsOptions.map(number => [\n number.value,\n number.description,\n ])}\n line={numberOfMonthsLine}\n />\n </View>\n );\n\n return (\n <View style={{ ...styles.page, overflow: 'hidden' }}>\n <Header\n title=\"Category Spending\"\n allMonths={allMonths}\n start={start}\n end={end}\n onChangeDates={onChangeDates}\n headerPrefixItems={headerPrefixItems}\n />\n <View\n style={{\n display: 'flex',\n flexDirection: 'row',\n padding: 15,\n gap: 15,\n flexGrow: 1,\n }}\n >\n <View style={{ width: 200 }}>\n <CategorySelector\n categoryGroups={categories.grouped.filter(\n categoryGroup => !categoryGroup.is_income,\n )}\n selectedCategories={selectedCategories}\n setSelectedCategories={setSelectedCategories}\n />\n </View>\n\n <View\n style={{\n flexGrow: 1,\n backgroundColor: 'white',\n padding: 30,\n overflow: 'auto',\n transition: 'flex-grow .3s linear',\n }}\n >\n <CategorySpendingGraph\n style={{ flexGrow: 1 }}\n start={start}\n end={end}\n graphData={perCategorySpending}\n />\n </View>\n </View>\n </View>\n );\n}\n\nexport default CategoryAverage;\n","import React from 'react';\n\nimport * as d from 'date-fns';\n\nimport q, { runQuery } from 'loot-core/src/client/query-helpers';\nimport { send } from 'loot-core/src/platform/client/fetch';\nimport * as monthUtils from 'loot-core/src/shared/months';\nimport {\n integerToCurrency,\n integerToAmount,\n amountToInteger,\n} from 'loot-core/src/shared/util';\n\nimport AlignedText from '../../common/AlignedText';\nimport { index } from '../util';\n\nexport default function createSpreadsheet(\n start,\n end,\n accounts,\n conditions = [],\n conditionsOp,\n) {\n return async (spreadsheet, setData) => {\n if (accounts.length === 0) {\n return null;\n }\n\n let { filters } = await send('make-filters-from-conditions', {\n conditions: conditions.filter(cond => !cond.customName),\n });\n const conditionsOpKey = conditionsOp === 'or' ? '$or' : '$and';\n\n const data = await Promise.all(\n accounts.map(async acct => {\n let [starting, balances] = await Promise.all([\n runQuery(\n q('transactions')\n .filter({\n [conditionsOpKey]: filters,\n account: acct.id,\n date: { $lt: start + '-01' },\n })\n .calculate({ $sum: '$amount' }),\n ).then(({ data }) => data),\n\n runQuery(\n q('transactions')\n .filter({\n [conditionsOpKey]: [...filters],\n })\n .filter({\n account: acct.id,\n $and: [\n { date: { $gte: start + '-01' } },\n { date: { $lte: end + '-31' } },\n ],\n })\n .groupBy({ $month: '$date' })\n .select([\n { date: { $month: '$date' } },\n { amount: { $sum: '$amount' } },\n ]),\n ).then(({ data }) => data),\n ]);\n\n return {\n id: acct.id,\n balances: index(balances, 'date'),\n starting,\n };\n }),\n );\n\n setData(recalculate(data, start, end));\n };\n}\n\nfunction recalculate(data, start, end) {\n const months = monthUtils.rangeInclusive(start, end);\n\n const accountBalances = data.map(account => {\n // Start off with the balance at that point in time\n let balance = account.starting;\n return months.map(month => {\n if (account.balances[month]) {\n balance += account.balances[month].amount;\n }\n return balance;\n });\n });\n\n let hasNegative = false;\n let startNetWorth = 0;\n let endNetWorth = 0;\n let lowestNetWorth = null;\n let highestNetWorth = null;\n\n const graphData = months.reduce((arr, month, idx) => {\n let debt = 0;\n let assets = 0;\n let total = 0;\n const last = arr.length === 0 ? null : arr[arr.length - 1];\n\n accountBalances.forEach(balances => {\n const balance = balances[idx];\n if (balance < 0) {\n debt += -balance;\n } else {\n assets += balance;\n }\n total += balance;\n });\n\n if (total < 0) {\n hasNegative = true;\n }\n\n const x = d.parseISO(month + '-01');\n const change = last ? total - amountToInteger(last.y) : 0;\n\n const label = (\n <div>\n <div style={{ marginBottom: 10 }}>\n <strong>{d.format(x, 'MMMM yyyy')}</strong>\n </div>\n <div style={{ lineHeight: 1.5 }}>\n <AlignedText left=\"Assets:\" right={integerToCurrency(assets)} />\n <AlignedText left=\"Debt:\" right={`-${integerToCurrency(debt)}`} />\n <AlignedText\n left=\"Net worth:\"\n right={<strong>{integerToCurrency(total)}</strong>}\n />\n <AlignedText left=\"Change:\" right={integerToCurrency(change)} />\n </div>\n </div>\n );\n\n if (arr.length === 0) {\n startNetWorth = total;\n }\n endNetWorth = total;\n\n arr.push({ x, y: integerToAmount(total), premadeLabel: label });\n\n arr.forEach(item => {\n if (item.y < lowestNetWorth || lowestNetWorth === null) {\n lowestNetWorth = item.y;\n }\n if (item.y > highestNetWorth || highestNetWorth === null) {\n highestNetWorth = item.y;\n }\n });\n return arr;\n }, []);\n\n return {\n graphData: {\n data: graphData,\n hasNegative,\n start,\n end,\n },\n netWorth: endNetWorth,\n totalChange: endNetWorth - startNetWorth,\n lowestNetWorth,\n highestNetWorth,\n };\n}\n","import React, { createElement } from 'react';\n\nimport * as d from 'date-fns';\nimport {\n VictoryChart,\n VictoryBar,\n VictoryArea,\n VictoryAxis,\n VictoryVoronoiContainer,\n VictoryGroup,\n} from 'victory';\n\nimport { type CSSProperties } from '../../../style';\nimport { chartTheme } from '../chart-theme';\nimport Container from '../Container';\nimport Tooltip from '../Tooltip';\n\nimport { Area } from './common';\n\ntype NetWorthGraphProps = {\n style?: CSSProperties;\n graphData;\n compact: boolean;\n domain?: {\n y?: [number, number];\n };\n};\nfunction NetWorthGraph({\n style,\n graphData,\n compact,\n domain,\n}: NetWorthGraphProps) {\n const Chart = compact ? VictoryGroup : VictoryChart;\n\n return (\n <Container\n style={{\n ...style,\n ...(compact && { height: 'auto' }),\n }}\n >\n {(width, height, portalHost) =>\n graphData && (\n <Chart\n scale={{ x: 'time', y: 'linear' }}\n theme={chartTheme}\n domainPadding={{ x: 0, y: 10 }}\n domain={domain}\n width={width}\n height={height}\n containerComponent={\n <VictoryVoronoiContainer voronoiDimension=\"x\" />\n }\n padding={\n compact && {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n }\n }\n >\n <Area start={graphData.start} end={graphData.end} />\n {createElement(\n // @ts-expect-error defaultProps mismatch causing issue\n graphData.data.length === 1 ? VictoryBar : VictoryArea,\n {\n data: graphData.data,\n labelComponent: <Tooltip portalHost={portalHost} />,\n labels: x => x.premadeLabel,\n style: {\n data:\n graphData.data.length === 1\n ? { width: 50 }\n : {\n clipPath: 'url(#positive)',\n fill: 'url(#positive-gradient)',\n },\n },\n },\n )}\n {graphData.data.length > 1 && (\n <VictoryArea\n data={graphData.data}\n style={{\n data: {\n clipPath: 'url(#negative)',\n fill: 'url(#negative-gradient)',\n stroke: chartTheme.colors.red,\n strokeLinejoin: 'round',\n },\n }}\n />\n )}\n {/* Somehow the path `d` attributes are stripped from second\n `<VictoryArea />` above if this is removed. I’m just as\n confused as you are! */}\n <VictoryArea\n data={graphData.data}\n style={{ data: { fill: 'none', stroke: 'none' } }}\n />\n {!compact && (\n <VictoryAxis\n style={{ ticks: { stroke: chartTheme.colors.red } }}\n // eslint-disable-next-line rulesdir/typography\n tickFormat={x => d.format(x, \"MMM ''yy\")}\n tickValues={graphData.data.map(item => item.x)}\n tickCount={Math.min(width / 220, graphData.data.length)}\n offsetY={50}\n />\n )}\n {!compact && (\n <VictoryAxis\n dependentAxis\n tickCount={Math.round(height / 70)}\n crossAxis={!graphData.hasNegative}\n />\n )}\n </Chart>\n )\n }\n </Container>\n );\n}\n\nexport default NetWorthGraph;\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport * as d from 'date-fns';\n\nimport { send } from 'loot-core/src/platform/client/fetch';\nimport * as monthUtils from 'loot-core/src/shared/months';\nimport { integerToCurrency } from 'loot-core/src/shared/util';\n\nimport useFilters from '../../hooks/useFilters';\nimport { theme, styles } from '../../style';\nimport Paragraph from '../common/Paragraph';\nimport View from '../common/View';\nimport PrivacyFilter from '../PrivacyFilter';\n\nimport Change from './Change';\nimport netWorthSpreadsheet from './graphs/net-worth-spreadsheet';\nimport NetWorthGraph from './graphs/NetWorthGraph';\nimport Header from './Header';\nimport useReport from './useReport';\nimport { fromDateRepr } from './util';\n\nexport default function NetWorth() {\n let accounts = useSelector(state => state.queries.accounts);\n const {\n filters,\n saved,\n conditionsOp,\n onApply: onApplyFilter,\n onDelete: onDeleteFilter,\n onUpdate: onUpdateFilter,\n onCondOpChange,\n } = useFilters();\n\n const [allMonths, setAllMonths] = useState(null);\n const [start, setStart] = useState(\n monthUtils.subMonths(monthUtils.currentMonth(), 5),\n );\n const [end, setEnd] = useState(monthUtils.currentMonth());\n\n const params = useMemo(\n () => netWorthSpreadsheet(start, end, accounts, filters, conditionsOp),\n [start, end, accounts, filters, conditionsOp],\n );\n const data = useReport('net_worth', params);\n useEffect(() => {\n async function run() {\n const trans = await send('get-earliest-transaction');\n const currentMonth = monthUtils.currentMonth();\n let earliestMonth = trans\n ? monthUtils.monthFromDate(d.parseISO(fromDateRepr(trans.date)))\n : currentMonth;\n\n // Make sure the month selects are at least populates with a\n // year's worth of months. We can undo this when we have fancier\n // date selects.\n const yearAgo = monthUtils.subMonths(monthUtils.currentMonth(), 12);\n if (earliestMonth > yearAgo) {\n earliestMonth = yearAgo;\n }\n\n const allMonths = monthUtils\n .rangeInclusive(earliestMonth, monthUtils.currentMonth())\n .map(month => ({\n name: month,\n pretty: monthUtils.format(month, 'MMMM, yyyy'),\n }))\n .reverse();\n\n setAllMonths(allMonths);\n }\n run();\n }, []);\n\n function onChangeDates(start, end) {\n setStart(start);\n setEnd(end);\n }\n\n if (!allMonths || !data) {\n return null;\n }\n\n return (\n <View style={{ ...styles.page, minWidth: 650, overflow: 'hidden' }}>\n <Header\n title=\"Net Worth\"\n allMonths={allMonths}\n start={start}\n end={end}\n onChangeDates={onChangeDates}\n filters={filters}\n saved={saved}\n onApply={onApplyFilter}\n onUpdateFilter={onUpdateFilter}\n onDeleteFilter={onDeleteFilter}\n conditionsOp={conditionsOp}\n onCondOpChange={onCondOpChange}\n />\n\n <View\n style={{\n backgroundColor: theme.tableBackground,\n padding: 30,\n paddingTop: 0,\n overflow: 'auto',\n flexGrow: 1,\n }}\n >\n <View\n style={{\n textAlign: 'right',\n paddingTop: 20,\n paddingRight: 20,\n flexShrink: 0,\n }}\n >\n <View\n style={{ ...styles.largeText, fontWeight: 400, marginBottom: 5 }}\n >\n <PrivacyFilter blurIntensity={5}>\n {integerToCurrency(data.netWorth)}\n </PrivacyFilter>\n </View>\n <PrivacyFilter>\n <Change amount={data.totalChange} />\n </PrivacyFilter>\n </View>\n\n <NetWorthGraph\n style={{ flexGrow: 1 }}\n start={start}\n end={end}\n graphData={data.graphData}\n domain={{\n y: [data.lowestNetWorth * 0.99, data.highestNetWorth * 1.01],\n }}\n />\n\n <View style={{ marginTop: 30 }}>\n <Paragraph>\n <strong>How is net worth calculated?</strong>\n </Paragraph>\n <Paragraph>\n Net worth shows the balance of all accounts over time, including all\n of your investments. Your “net worth” is considered to be the amount\n you’d have if you sold all your assets and paid off as much debt as\n possible. If you hover over the graph, you can also see the amount\n of assets and debt individually.\n </Paragraph>\n </View>\n </View>\n </View>\n );\n}\n","import React from 'react';\n\nimport * as d from 'date-fns';\n\nimport { theme } from '../../style';\nimport Block from '../common/Block';\n\nfunction DateRange({ start, end }) {\n start = d.parseISO(start);\n end = d.parseISO(end);\n\n let content;\n if (start.getYear() !== end.getYear()) {\n content = (\n <div>\n {d.format(start, 'MMM yyyy')} - {d.format(end, 'MMM yyyy')}\n </div>\n );\n } else if (start.getMonth() !== end.getMonth()) {\n content = (\n <div>\n {d.format(start, 'MMM')} - {d.format(end, 'MMM yyyy')}\n </div>\n );\n } else {\n content = d.format(end, 'MMMM yyyy');\n }\n\n return <Block style={{ color: theme.pageTextSubdued }}>{content}</Block>;\n}\n\nexport default DateRange;\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { useSelector } from 'react-redux';\n\nimport { VictoryBar, VictoryGroup, VictoryVoronoiContainer } from 'victory';\n\nimport * as monthUtils from 'loot-core/src/shared/months';\nimport { integerToCurrency } from 'loot-core/src/shared/util';\n\nimport useCategories from '../../hooks/useCategories';\nimport useFeatureFlag from '../../hooks/useFeatureFlag';\nimport AnimatedLoading from '../../icons/AnimatedLoading';\nimport { theme, styles } from '../../style';\nimport AnchorLink from '../common/AnchorLink';\nimport Block from '../common/Block';\nimport View from '../common/View';\nimport PrivacyFilter from '../PrivacyFilter';\n\nimport Change from './Change';\nimport { chartTheme } from './chart-theme';\nimport Container from './Container';\nimport DateRange from './DateRange';\nimport { simpleCashFlow } from './graphs/cash-flow-spreadsheet';\nimport categorySpendingSpreadsheet from './graphs/category-spending-spreadsheet';\nimport CategorySpendingGraph from './graphs/CategorySpendingGraph';\nimport netWorthSpreadsheet from './graphs/net-worth-spreadsheet';\nimport NetWorthGraph from './graphs/NetWorthGraph';\nimport Tooltip from './Tooltip';\nimport useReport from './useReport';\n\nfunction Card({ flex, to, style, children }) {\n const containerProps = { flex, margin: 15 };\n\n const content = (\n <View\n style={{\n backgroundColor: theme.tableBackground,\n borderRadius: 2,\n height: 200,\n boxShadow: '0 2px 6px rgba(0, 0, 0, .15)',\n transition: 'box-shadow .25s',\n ':hover': to && {\n boxShadow: '0 4px 6px rgba(0, 0, 0, .15)',\n },\n ...(to ? null : containerProps),\n ...style,\n }}\n >\n {children}\n </View>\n );\n\n if (to) {\n return (\n <AnchorLink\n to={to}\n style={{ textDecoration: 'none', flex, ...containerProps }}\n >\n {content}\n </AnchorLink>\n );\n }\n return content;\n}\n\nfunction LoadingIndicator() {\n return (\n <View\n style={{\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <AnimatedLoading style={{ width: 25, height: 25 }} />\n </View>\n );\n}\n\nfunction NetWorthCard({ accounts }) {\n const end = monthUtils.currentMonth();\n const start = monthUtils.subMonths(end, 5);\n const [isCardHovered, setIsCardHovered] = useState(false);\n const onCardHover = useCallback(() => setIsCardHovered(true));\n const onCardHoverEnd = useCallback(() => setIsCardHovered(false));\n\n const params = useMemo(\n () => netWorthSpreadsheet(start, end, accounts),\n [start, end, accounts],\n );\n const data = useReport('net_worth', params);\n\n return (\n <Card flex={2} to=\"/reports/net-worth\">\n <View\n style={{ flex: 1 }}\n onPointerEnter={onCardHover}\n onPointerLeave={onCardHoverEnd}\n >\n <View style={{ flexDirection: 'row', padding: 20 }}>\n <View style={{ flex: 1 }}>\n <Block\n style={{ ...styles.mediumText, fontWeight: 500, marginBottom: 5 }}\n role=\"heading\"\n >\n Net Worth\n </Block>\n <DateRange start={start} end={end} />\n </View>\n {data && (\n <View style={{ textAlign: 'right' }}>\n <Block\n style={{\n ...styles.mediumText,\n fontWeight: 500,\n marginBottom: 5,\n }}\n >\n <PrivacyFilter activationFilters={[!isCardHovered]}>\n {integerToCurrency(data.netWorth)}\n </PrivacyFilter>\n </Block>\n <PrivacyFilter activationFilters={[!isCardHovered]}>\n <Change\n amount={data.totalChange}\n style={{ color: theme.altTableText, fontWeight: 300 }}\n />\n </PrivacyFilter>\n </View>\n )}\n </View>\n\n {data ? (\n <NetWorthGraph\n start={start}\n end={end}\n graphData={data.graphData}\n compact={true}\n style={{ height: 'auto', flex: 1 }}\n />\n ) : (\n <LoadingIndicator />\n )}\n </View>\n </Card>\n );\n}\n\nfunction CashFlowCard() {\n const end = monthUtils.currentDay();\n const start = monthUtils.currentMonth() + '-01';\n\n const params = useMemo(() => simpleCashFlow(start, end), [start, end]);\n const data = useReport('cash_flow_simple', params);\n const [isCardHovered, setIsCardHovered] = useState(false);\n const onCardHover = useCallback(() => setIsCardHovered(true));\n const onCardHoverEnd = useCallback(() => setIsCardHovered(false));\n\n const { graphData } = data || {};\n const expense = -(graphData?.expense || 0);\n const income = graphData?.income || 0;\n\n return (\n <Card flex={1} to=\"/reports/cash-flow\">\n <View\n style={{ flex: 1 }}\n onPointerEnter={onCardHover}\n onPointerLeave={onCardHoverEnd}\n >\n <View style={{ flexDirection: 'row', padding: 20 }}>\n <View style={{ flex: 1 }}>\n <Block\n style={{ ...styles.mediumText, fontWeight: 500, marginBottom: 5 }}\n role=\"heading\"\n >\n Cash Flow\n </Block>\n <DateRange start={start} end={end} />\n </View>\n {data && (\n <View style={{ textAlign: 'right' }}>\n <PrivacyFilter activationFilters={[!isCardHovered]}>\n <Change\n amount={income - expense}\n style={{ color: theme.altTableText, fontWeight: 300 }}\n />\n </PrivacyFilter>\n </View>\n )}\n </View>\n\n {data ? (\n <Container style={{ height: 'auto', flex: 1 }}>\n {(width, height, portalHost) => (\n <VictoryGroup\n colorScale={[chartTheme.colors.blue, chartTheme.colors.red]}\n width={100}\n height={height}\n theme={chartTheme}\n domain={{\n x: [0, 100],\n y: [0, Math.max(income, expense, 100)],\n }}\n containerComponent={\n <VictoryVoronoiContainer voronoiDimension=\"x\" />\n }\n labelComponent={\n <Tooltip\n portalHost={portalHost}\n offsetX={(width - 100) / 2}\n offsetY={y => (y + 40 > height ? height - 40 : y)}\n light={true}\n forceActive={true}\n style={{\n padding: 0,\n }}\n />\n }\n padding={{\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n }}\n >\n <VictoryBar\n barWidth={13}\n data={[\n {\n x: 30,\n y: Math.max(income, 5),\n premadeLabel: (\n <View style={{ textAlign: 'right' }}>\n Income\n <View>\n <PrivacyFilter activationFilters={[!isCardHovered]}>\n {integerToCurrency(income)}\n </PrivacyFilter>\n </View>\n </View>\n ),\n labelPosition: 'left',\n },\n ]}\n labels={d => d.premadeLabel}\n />\n <VictoryBar\n barWidth={13}\n data={[\n {\n x: 60,\n y: Math.max(expense, 5),\n premadeLabel: (\n <View>\n Expenses\n <View>\n <PrivacyFilter activationFilters={[!isCardHovered]}>\n {integerToCurrency(expense)}\n </PrivacyFilter>\n </View>\n </View>\n ),\n labelPosition: 'right',\n },\n ]}\n labels={d => d.premadeLabel}\n />\n </VictoryGroup>\n )}\n </Container>\n ) : (\n <LoadingIndicator />\n )}\n </View>\n </Card>\n );\n}\n\nfunction CategorySpendingCard() {\n const { list: categories = [] } = useCategories();\n\n const end = monthUtils.currentDay();\n const start = monthUtils.subMonths(end, 3);\n\n const params = useMemo(() => {\n return categorySpendingSpreadsheet(\n start,\n end,\n 3,\n categories.filter(category => !category.is_income && !category.hidden),\n );\n }, [start, end, categories]);\n\n const perCategorySpending = useReport('category_spending', params);\n\n return (\n <Card flex={1} to=\"/reports/category-spending\">\n <View>\n <View style={{ flexDirection: 'row', padding: '20px 20px 0' }}>\n <View style={{ flex: 1 }}>\n <Block\n style={{ ...styles.mediumText, fontWeight: 500, marginBottom: 5 }}\n role=\"heading\"\n >\n Spending\n </Block>\n <DateRange start={start} end={end} />\n </View>\n </View>\n </View>\n\n {perCategorySpending ? (\n <CategorySpendingGraph\n start={start}\n end={end}\n graphData={perCategorySpending}\n compact={true}\n />\n ) : (\n <LoadingIndicator />\n )}\n </Card>\n );\n}\n\nexport default function Overview() {\n let categorySpendingReportFeatureFlag = useFeatureFlag(\n 'categorySpendingReport',\n );\n\n let accounts = useSelector(state => state.queries.accounts);\n return (\n <View\n style={{\n ...styles.page,\n ...{ paddingLeft: 40, paddingRight: 40, minWidth: 700 },\n }}\n >\n <View\n style={{\n flexDirection: 'row',\n flex: '0 0 auto',\n }}\n >\n <NetWorthCard accounts={accounts} />\n <CashFlowCard />\n </View>\n\n {categorySpendingReportFeatureFlag && (\n <View\n style={{\n flex: '0 0 auto',\n flexDirection: 'row',\n }}\n >\n <CategorySpendingCard />\n <div style={{ flex: 1 }} />\n <div style={{ flex: 1 }} />\n </View>\n )}\n </View>\n );\n}\n","import React from 'react';\nimport { Route, Routes } from 'react-router-dom';\n\nimport CashFlow from './CashFlow';\nimport CategorySpending from './CategorySpending';\nimport NetWorth from './NetWorth';\nimport Overview from './Overview';\n\nexport function ReportRouter() {\n return (\n <Routes>\n <Route path=\"/\" element={<Overview />} />\n <Route path=\"/net-worth\" element={<NetWorth />} />\n <Route path=\"/cash-flow\" element={<CashFlow />} />\n <Route path=\"/category-spending\" element={<CategorySpending />} />\n </Routes>\n );\n}\n"],"names":["ButtonLink","to","style","activeStyle","props","navigate","useNavigate","match","useMatch","path","Button","onClick","e","useFilters","initialFilters","filters","setFilters","useState","conditionsOp","setConditionsOp","saved","setSaved","onApply","useCallback","newFilter","conditions","id","state","onUpdate","oldFilter","updatedFilter","map","f","onDelete","filter","deletedFilter","onCondOpChange","condOp","useMemo","Change","amount","Block","styles","smallText","color","theme","errorText","noticeText","integerToCurrency","fromDateRepr","date","slice","runAll","queries","cb","data","Promise","all","q","runQuery","then","index","field","mapper","result","forEach","item","indexCashFlow","isTransfer","results","findExisting","simpleCashFlow","start","end","spreadsheet","setData","makeQuery","$and","$gte","$lte","$or","calculate","$sum","$gt","$lt","graphData","income","expense","cashFlowByDate","isConcise","send","cond","customName","conditionsOpKey","where","query","$transform","groupBy","$month","select","recalculate","startingBalance","convIncome","t","convExpense","dates","monthUtils","incomes","expenses","balance","totalExpenses","totalIncome","totalTransfers","reduce","res","creditTransfers","debitTransfers","false","true","x","d","label","div","marginBottom","strong","lineHeight","AlignedText","left","right","push","y","integerToAmount","balances","premadeLabel","length","totalChange","colorFades","blueFadeStart","blueFadeEnd","redFadeStart","redFadeEnd","sansSerif","letterSpacing","fontSize","baseLabelStyles","fontFamily","fill","reportsLabel","stroke","axisBaseStyles","axis","grid","pointerEvents","ticks","size","axisLabel","tickLabels","chartTheme","colors","red","reportsRed","blue","reportsBlue","area","labels","strokeWidth","strokeLinejoin","strokeLinecap","dependentAxis","strokeDasharray","padding","independentAxis","bar","line","voronoi","chart","top","bottom","Container","children","portalHost","useRef","View","height","position","flexShrink","ref","AutoSizer","width","current","Tooltip","Component","defaultEvents","VictoryTooltip","render","active","scale","datum","offsetX","offsetY","light","forceActive","xRange","range","xPos","labelPosition","ReactDOM","className","css","transform","zIndex","borderRadius","boxShadow","backgroundColor","alt2MenuBackground","alt2MenuItemText","before","display","borderTop","borderBottom","content","CashFlowGraph","VictoryChart","domainPadding","containerComponent","VictoryVoronoiContainer","voronoiDimension","VictoryGroup","VictoryBar","VictoryLine","labelComponent","altpageTextSubdued","VictoryAxis","tickFormat","tickValues","tickCount","Math","min","crossAxis","validateStart","allMonths","earliest","name","boundedRange","validateEnd","latest","getLatestRange","offset","getFullRange","Header","title","show1Month","onChangeDates","onUpdateFilter","onDeleteFilter","headerPrefixItems","paddingTop","type","alignSelf","ArrowLeft","marginRight","veryLargeText","flexDirection","alignItems","marginTop","gap","Select","onChange","newValue","value","defaultLabel","options","pretty","FilterButton","spacing","direction","justify","align","AppliedFilters","useReport","sheetName","getData","useSpreadsheet","setResults","useEffect","cleanup","c","CashFlow","onApplyFilter","setAllMonths","setStart","setEnd","setIsConcise","numDays","params","run","trans","earliestMonth","month","reverse","endDay","page","minWidth","overflow","tableBackground","paddingRight","pageText","Text","fontWeight","PrivacyFilter","Paragraph","CategorySelector","categoryGroups","selectedCategories","setSelectedCategories","uncheckedHidden","setUncheckedHidden","Eye","EyeSlashed","ul","listStyle","marginLeft","paddingLeft","flexGrow","overflowY","categoryGroup","allCategoriesInGroupSelected","categories","every","category","some","selectedCategory","noCategorySelected","Fragment","li","Checkbox","checked","selectedCategoriesExcludingGroupCategories","groupCategory","concat","htmlFor","userSelect","isChecked","createSpreadsheet","numberOfMonthsAverage","months","firstTransaction","orderBy","limit","budgetForMonth","sheet","get","rolloverBudget","catBudgeted","cell","catSumAmount","catBalance","budgeted","sumAmount","budgetPerMonth","perMonth","resolve","perCategory","averagedData","_","arr","idx","thisMonth","sumAmounts","i","average","a","b","round","hr","total","Area","zero","startX","endX","undefined","svg","defs","clipPath","rect","max","linearGradient","gradientUnits","x1","y1","x2","y2","stop","stopColor","CategorySpendingGraph","compact","flex","VictoryStack","colorScale","orientation","invertAxis","CategoryAverage","useCategories","setNumberOfMonthsAverage","list","getGraphData","categorySpendingSpreadsheet","is_income","hidden","perCategorySpending","currentMonth","yearAgo","numberOfMonthsOptions","description","numberOfMonthsLine","number","grouped","transition","accounts","acct","starting","account","accountBalances","hasNegative","startNetWorth","endNetWorth","lowestNetWorth","highestNetWorth","debt","assets","last","change","amountToInteger","netWorth","NetWorthGraph","domain","Chart","createElement","VictoryArea","NetWorth","useSelector","netWorthSpreadsheet","textAlign","largeText","blurIntensity","DateRange","getYear","getMonth","pageTextSubdued","Card","containerProps","margin","AnchorLink","textDecoration","LoadingIndicator","justifyContent","AnimatedLoading","NetWorthCard","isCardHovered","setIsCardHovered","onCardHover","onCardHoverEnd","onPointerEnter","onPointerLeave","mediumText","role","activationFilters","altTableText","CashFlowCard","barWidth","CategorySpendingCard","Overview","categorySpendingReportFeatureFlag","useFeatureFlag","ReportRouter","Routes","Route","element","CategorySpending"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self["webpackChunk_actual_app_web"]=self["webpackChunk_actual_app_web"]||[]).push([[737],{81518:function(e,t,r){r.r(t);r.d(t,{ResizeObserver:function(){return Z},ResizeObserverEntry:function(){return B},ResizeObserverSize:function(){return v}});var n=[];var i=function(){return n.some(function(e){return e.activeTargets.length>0})};var o=function(){return n.some(function(e){return e.skippedTargets.length>0})};var a="ResizeObserver loop completed with undelivered notifications.";var s=function(){var e;if(typeof ErrorEvent==="function"){e=new ErrorEvent("error",{message:a})}else{e=document.createEvent("Event");e.initEvent("error",false,false);e.message=a}window.dispatchEvent(e)};var u;(function(e){e["BORDER_BOX"]="border-box";e["CONTENT_BOX"]="content-box";e["DEVICE_PIXEL_CONTENT_BOX"]="device-pixel-content-box"})(u||(u={}));var c=function(e){return Object.freeze(e)};var v=function(){function e(e,t){this.inlineSize=e;this.blockSize=t;c(this)}return e}();var f=function(){function e(e,t,r,n){this.x=e;this.y=t;this.width=r;this.height=n;this.top=this.y;this.left=this.x;this.bottom=this.top+this.height;this.right=this.left+this.width;return c(this)}e.prototype.toJSON=function(){var e=this,t=e.x,r=e.y,n=e.top,i=e.right,o=e.bottom,a=e.left,s=e.width,u=e.height;return{x:t,y:r,top:n,right:i,bottom:o,left:a,width:s,height:u}};e.fromRect=function(t){return new e(t.x,t.y,t.width,t.height)};return e}();var h=function(e){return e instanceof SVGElement&&"getBBox"in e};var d=function(e){if(h(e)){var t=e.getBBox(),r=t.width,n=t.height;return!r&&!n}var i=e,o=i.offsetWidth,a=i.offsetHeight;return!(o||a||e.getClientRects().length)};var l=function(e){var t;if(e instanceof Element){return true}var r=(t=e===null||e===void 0?void 0:e.ownerDocument)===null||t===void 0?void 0:t.defaultView;return!!(r&&e instanceof r.Element)};var p=function(e){switch(e.tagName){case"INPUT":if(e.type!=="image"){break}case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return true}return false};var g=typeof window!=="undefined"?window:{};var b=new WeakMap;var w=/auto|scroll/;var E=/^tb|vertical/;var x=/msie|trident/i.test(g.navigator&&g.navigator.userAgent);var T=function(e){return parseFloat(e||"0")};var m=function(e,t,r){if(e===void 0){e=0}if(t===void 0){t=0}if(r===void 0){r=false}return new v((r?t:e)||0,(r?e:t)||0)};var y=c({devicePixelContentBoxSize:m(),borderBoxSize:m(),contentBoxSize:m(),contentRect:new f(0,0,0,0)});var z=function(e,t){if(t===void 0){t=false}if(b.has(e)&&!t){return b.get(e)}if(d(e)){b.set(e,y);return y}var r=getComputedStyle(e);var n=h(e)&&e.ownerSVGElement&&e.getBBox();var i=!x&&r.boxSizing==="border-box";var o=E.test(r.writingMode||"");var a=!n&&w.test(r.overflowY||"");var s=!n&&w.test(r.overflowX||"");var u=n?0:T(r.paddingTop);var v=n?0:T(r.paddingRight);var l=n?0:T(r.paddingBottom);var p=n?0:T(r.paddingLeft);var g=n?0:T(r.borderTopWidth);var z=n?0:T(r.borderRightWidth);var S=n?0:T(r.borderBottomWidth);var B=n?0:T(r.borderLeftWidth);var O=p+v;var R=u+l;var k=B+z;var C=g+S;var _=!s?0:e.offsetHeight-C-e.clientHeight;var N=!a?0:e.offsetWidth-k-e.clientWidth;var D=i?O+k:0;var I=i?R+C:0;var M=n?n.width:T(r.width)-D-N;var P=n?n.height:T(r.height)-I-_;var F=M+O+N+k;var L=P+R+_+C;var W=c({devicePixelContentBoxSize:m(Math.round(M*devicePixelRatio),Math.round(P*devicePixelRatio),o),borderBoxSize:m(F,L,o),contentBoxSize:m(M,P,o),contentRect:new f(p,u,M,P)});b.set(e,W);return W};var S=function(e,t,r){var n=z(e,r),i=n.borderBoxSize,o=n.contentBoxSize,a=n.devicePixelContentBoxSize;switch(t){case u.DEVICE_PIXEL_CONTENT_BOX:return a;case u.BORDER_BOX:return i;default:return o}};var B=function(){function e(e){var t=z(e);this.target=e;this.contentRect=t.contentRect;this.borderBoxSize=c([t.borderBoxSize]);this.contentBoxSize=c([t.contentBoxSize]);this.devicePixelContentBoxSize=c([t.devicePixelContentBoxSize])}return e}();var O=function(e){if(d(e)){return Infinity}var t=0;var r=e.parentNode;while(r){t+=1;r=r.parentNode}return t};var R=function(){var e=Infinity;var t=[];n.forEach(function r(r){if(r.activeTargets.length===0){return}var n=[];r.activeTargets.forEach(function t(t){var r=new B(t.target);var i=O(t.target);n.push(r);t.lastReportedSize=S(t.target,t.observedBox);if(i<e){e=i}});t.push(function e(){r.callback.call(r.observer,n,r.observer)});r.activeTargets.splice(0,r.activeTargets.length)});for(var r=0,i=t;r<i.length;r++){var o=i[r];o()}return e};var k=function(e){n.forEach(function t(t){t.activeTargets.splice(0,t.activeTargets.length);t.skippedTargets.splice(0,t.skippedTargets.length);t.observationTargets.forEach(function r(r){if(r.isActive()){if(O(r.target)>e){t.activeTargets.push(r)}else{t.skippedTargets.push(r)}}})})};var C=function(){var e=0;k(e);while(i()){e=R();k(e)}if(o()){s()}return e>0};var _;var N=[];var D=function(){return N.splice(0).forEach(function(e){return e()})};var I=function(e){if(!_){var t=0;var r=document.createTextNode("");var n={characterData:true};new MutationObserver(function(){return D()}).observe(r,n);_=function(){r.textContent="".concat(t?t--:t++)}}N.push(e);_()};var M=function(e){I(function t(){requestAnimationFrame(e)})};var P=0;var F=function(){return!!P};var L=250;var W={attributes:true,characterData:true,childList:true,subtree:true};var X=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"];var A=function(e){if(e===void 0){e=0}return Date.now()+e};var V=false;var q=function(){function e(){var e=this;this.stopped=true;this.listener=function(){return e.schedule()}}e.prototype.run=function(e){var t=this;if(e===void 0){e=L}if(V){return}V=true;var r=A(e);M(function(){var n=false;try{n=C()}finally{V=false;e=r-A();if(!F()){return}if(n){t.run(1e3)}else if(e>0){t.run(e)}else{t.start()}}})};e.prototype.schedule=function(){this.stop();this.run()};e.prototype.observe=function(){var e=this;var t=function(){return e.observer&&e.observer.observe(document.body,W)};document.body?t():g.addEventListener("DOMContentLoaded",t)};e.prototype.start=function(){var e=this;if(this.stopped){this.stopped=false;this.observer=new MutationObserver(this.listener);this.observe();X.forEach(function(t){return g.addEventListener(t,e.listener,true)})}};e.prototype.stop=function(){var e=this;if(!this.stopped){this.observer&&this.observer.disconnect();X.forEach(function(t){return g.removeEventListener(t,e.listener,true)});this.stopped=true}};return e}();var G=new q;var H=function(e){!P&&e>0&&G.start();P+=e;!P&&G.stop()};var J=function(e){return!h(e)&&!p(e)&&getComputedStyle(e).display==="inline"};var U=function(){function e(e,t){this.target=e;this.observedBox=t||u.CONTENT_BOX;this.lastReportedSize={inlineSize:0,blockSize:0}}e.prototype.isActive=function(){var e=S(this.target,this.observedBox,true);if(J(this.target)){this.lastReportedSize=e}if(this.lastReportedSize.inlineSize!==e.inlineSize||this.lastReportedSize.blockSize!==e.blockSize){return true}return false};return e}();var j=function(){function e(e,t){this.activeTargets=[];this.skippedTargets=[];this.observationTargets=[];this.observer=e;this.callback=t}return e}();var Y=new WeakMap;var K=function(e,t){for(var r=0;r<e.length;r+=1){if(e[r].target===t){return r}}return-1};var Q=function(){function e(){}e.connect=function(e,t){var r=new j(e,t);Y.set(e,r)};e.observe=function(e,t,r){var i=Y.get(e);var o=i.observationTargets.length===0;if(K(i.observationTargets,t)<0){o&&n.push(i);i.observationTargets.push(new U(t,r&&r.box));H(1);G.schedule()}};e.unobserve=function(e,t){var r=Y.get(e);var i=K(r.observationTargets,t);var o=r.observationTargets.length===1;if(i>=0){o&&n.splice(n.indexOf(r),1);r.observationTargets.splice(i,1);H(-1)}};e.disconnect=function(e){var t=this;var r=Y.get(e);r.observationTargets.slice().forEach(function(r){return t.unobserve(e,r.target)});r.activeTargets.splice(0,r.activeTargets.length)};return e}();var Z=function(){function e(e){if(arguments.length===0){throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.")}if(typeof e!=="function"){throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.")}Q.connect(this,e)}e.prototype.observe=function(e,t){if(arguments.length===0){throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.")}if(!l(e)){throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element")}Q.observe(this,e,t)};e.prototype.unobserve=function(e){if(arguments.length===0){throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.")}if(!l(e)){throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element")}Q.unobserve(this,e)};e.prototype.disconnect=function(){Q.disconnect(this)};e.toString=function(){return"function ResizeObserver () { [polyfill code] }"};return e}();}}]);
|
|
2
|
+
//# sourceMappingURL=resize-observer-polyfill.98a18736.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/js/resize-observer-polyfill.98a18736.chunk.js","mappings":"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","sources":["../../../node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../../../node_modules/@juggle/resize-observer/lib/utils/freeze.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../../../node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../../../node_modules/@juggle/resize-observer/lib/utils/element.js","../../../node_modules/@juggle/resize-observer/lib/utils/global.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../../../node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../../../node_modules/@juggle/resize-observer/lib/utils/process.js","../../../node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../../../node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../../../node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../../../node_modules/@juggle/resize-observer/lib/ResizeObserver.js"],"sourcesContent":["var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n"],"names":["resizeObservers","hasActiveObservations","some","ro","activeTargets","length","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","window","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","height","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","target","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","type","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","Math","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","processObserver","entries","processTarget","ot","entry","targetDepth","push","lastReportedSize","resizeObserverCallback","callback","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","queueResizeObserver","ResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","listener","schedule","run","until","elementsHaveResized","start","stop","body","addEventListener","name","disconnect","removeEventListener","scheduler","updateCount","n","skipNotifyOnElement","display","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","arguments","TypeError","toString"],"sourceRoot":""}
|