mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-13 11:20:31 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
682b296f7c |
42
package-lock.json
generated
42
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "bigcapital-client",
|
||||
"version": "1.5.8",
|
||||
"version": "1.7.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -1043,17 +1043,6 @@
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@blueprintjs-formik/core": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@blueprintjs-formik/core/-/core-0.1.5.tgz",
|
||||
"integrity": "sha512-H0aXiNMYC8RwhWR1F2O77dcRcRITijUX5we51G4AK2Vmp1yXCmNb0piN9ftsjL5vVIvIsMKWg+dfbwREmB5VWg==",
|
||||
"requires": {
|
||||
"lodash.get": "^4.4.2",
|
||||
"lodash.keyby": "^4.6.0",
|
||||
"styled-components": "^5.3.3",
|
||||
"web-vitals": "^2.1.4"
|
||||
}
|
||||
},
|
||||
"@blueprintjs-formik/select": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@blueprintjs-formik/select/-/select-0.1.4.tgz",
|
||||
@@ -1980,6 +1969,16 @@
|
||||
"integrity": "sha512-MUc6zSmU3tEVnkQ78q0peeEjKWPUADMlC/t++2bI8WnAG2tvYRPIgHG8lWkXwqc8MsUF6Z2MOf+Mh5sazOmhiQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/hoist-non-react-statics": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
|
||||
"integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/react": "*",
|
||||
"hoist-non-react-statics": "^3.3.0"
|
||||
}
|
||||
},
|
||||
"@types/http-proxy": {
|
||||
"version": "1.17.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.3.tgz",
|
||||
@@ -2240,6 +2239,25 @@
|
||||
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
|
||||
"integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw=="
|
||||
},
|
||||
"@types/styled-components": {
|
||||
"version": "5.1.25",
|
||||
"resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.25.tgz",
|
||||
"integrity": "sha512-fgwl+0Pa8pdkwXRoVPP9JbqF0Ivo9llnmsm+7TCI330kbPIFd9qv1Lrhr37shf4tnxCOSu+/IgqM7uJXLWZZNQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/hoist-non-react-statics": "*",
|
||||
"@types/react": "*",
|
||||
"csstype": "^3.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"csstype": {
|
||||
"version": "3.0.11",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
|
||||
"integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/testing-library__dom": {
|
||||
"version": "6.12.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.12.1.tgz",
|
||||
|
||||
@@ -150,6 +150,7 @@
|
||||
"@types/react": "^17.0.0",
|
||||
"@types/react-dom": "^17.0.0",
|
||||
"@types/react-router-dom": "^5.1.8",
|
||||
"@types/styled-components": "^5.1.25",
|
||||
"@types/yup": "^0.29.13",
|
||||
"@welldone-software/why-did-you-render": "^6.0.0-rc.1",
|
||||
"compression-webpack-plugin": "^6.1.0",
|
||||
|
||||
16
src/components/FlexGrid/Flex.style.tsx
Normal file
16
src/components/FlexGrid/Flex.style.tsx
Normal file
@@ -0,0 +1,16 @@
|
||||
import styled from 'styled-components';
|
||||
import { FlexProps } from './interfaces';
|
||||
|
||||
export const FlexStyled = styled.div<FlexProps>`
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
align-items: ${({ align }) => align || 'center'};
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
max-width: ${({ col, gap = 1 }) =>
|
||||
col && col < 12 ? `${(100 * col) / 12 - gap}%` : '100%'};
|
||||
width: 100%;
|
||||
}
|
||||
`;
|
||||
26
src/components/FlexGrid/Flex.tsx
Normal file
26
src/components/FlexGrid/Flex.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import * as React from 'react';
|
||||
import { FlexProps } from './interfaces';
|
||||
import { FlexItem } from './FlexItem';
|
||||
import { FlexStyled } from './Flex.style';
|
||||
|
||||
export function Flex({
|
||||
children,
|
||||
col = 12,
|
||||
gap,
|
||||
align,
|
||||
className,
|
||||
style,
|
||||
}: FlexProps) {
|
||||
return (
|
||||
<FlexStyled
|
||||
col={col}
|
||||
gap={gap}
|
||||
align={align}
|
||||
className={className}
|
||||
style={style}
|
||||
>
|
||||
{children}
|
||||
<FlexItem col={col} gap={gap} />
|
||||
</FlexStyled>
|
||||
);
|
||||
}
|
||||
19
src/components/FlexGrid/FlexItem.style.tsx
Normal file
19
src/components/FlexGrid/FlexItem.style.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import styled from 'styled-components';
|
||||
import { ItemProps } from './interfaces';
|
||||
|
||||
export const FlexItem = styled.div<ItemProps>`
|
||||
width: 100%;
|
||||
max-width: ${({ col, gap = 1 }) =>
|
||||
col && col < 12 ? `${(100 * col) / 12 - gap}%` : '100%'};
|
||||
${({ marginBottom }) =>
|
||||
marginBottom &&
|
||||
`
|
||||
margin-bottom: ${marginBottom}px;
|
||||
`}
|
||||
${({ stretch }) =>
|
||||
stretch &&
|
||||
`
|
||||
display: flex;
|
||||
align-self: stretch;
|
||||
`}
|
||||
`;
|
||||
1
src/components/FlexGrid/FlexItem.tsx
Normal file
1
src/components/FlexGrid/FlexItem.tsx
Normal file
@@ -0,0 +1 @@
|
||||
export * from './FlexItem.style';
|
||||
4
src/components/FlexGrid/index.ts
Normal file
4
src/components/FlexGrid/index.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export * from './Flex.style';
|
||||
export * from './Flex';
|
||||
export * from './FlexItem.style';
|
||||
export * from './interfaces';
|
||||
22
src/components/FlexGrid/interfaces.ts
Normal file
22
src/components/FlexGrid/interfaces.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { HTMLAttributes, Component, StyleHTMLAttributes } from 'react';
|
||||
|
||||
export type Range = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
|
||||
|
||||
export interface ItemProps extends HTMLAttributes<HTMLDivElement> {
|
||||
gap?: number;
|
||||
col: Range;
|
||||
marginBottom?: number;
|
||||
stretch?: boolean;
|
||||
as?: string | Component;
|
||||
className?: string;
|
||||
style?: StyleHTMLAttributes<HTMLDivElement>;
|
||||
}
|
||||
|
||||
export interface FlexProps extends HTMLAttributes<HTMLDivElement> {
|
||||
gap?: number;
|
||||
align?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';
|
||||
col?: Range;
|
||||
className?: string;
|
||||
style?: StyleHTMLAttributes<HTMLDivElement>;
|
||||
as?: string | Component;
|
||||
}
|
||||
@@ -101,10 +101,11 @@ export * from './ExchangeRate';
|
||||
export * from './Branches';
|
||||
export * from './Warehouses';
|
||||
export * from './Currencies';
|
||||
export * from './FormTopbar'
|
||||
export * from './FormTopbar';
|
||||
export * from './Paper';
|
||||
export * from './Accounts'
|
||||
export * from './Accounts';
|
||||
export * from './DataTableCells';
|
||||
export * from './FlexGrid';
|
||||
|
||||
const Hint = FieldHint;
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { FastField, Field } from 'formik';
|
||||
import { FormGroup, Checkbox } from '@blueprintjs/core';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import { Row, Col, FieldHint, FormattedMessage as T } from 'components';
|
||||
import { Flex, FlexItem, FieldHint, FormattedMessage as T } from 'components';
|
||||
import {
|
||||
handlePreviousYearCheckBoxChange,
|
||||
handlePreviousYearChangeCheckboxChange,
|
||||
@@ -15,11 +15,11 @@ import {
|
||||
} from './utils';
|
||||
|
||||
/**
|
||||
* Balance sheet header - Comparison panal.
|
||||
* Balance sheet header - Comparison panal - Comparisons fields.
|
||||
*/
|
||||
export default function BalanceSheetHeaderComparisonPanal() {
|
||||
function BalanceSheetHeaderComparisonPanalFields() {
|
||||
return (
|
||||
<BalanceSheetComparisonWrap>
|
||||
<>
|
||||
{/**----------- Previous Year -----------*/}
|
||||
<Field name={'previousYear'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
@@ -33,8 +33,9 @@ export default function BalanceSheetHeaderComparisonPanal() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</Field>
|
||||
<Row>
|
||||
<Col xs={3}>
|
||||
|
||||
<FlexSubFields align={'left'}>
|
||||
<FlexItem col={6}>
|
||||
<Field name={'previousYearAmountChange'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
<FormGroup labelInfo={<FieldHint />}>
|
||||
@@ -48,8 +49,9 @@ export default function BalanceSheetHeaderComparisonPanal() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</Field>
|
||||
</Col>
|
||||
<Col xs={3}>
|
||||
</FlexItem>
|
||||
|
||||
<FlexItem col={6}>
|
||||
<FastField name={'previousYearPercentageChange'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
<FormGroup labelInfo={<FieldHint />}>
|
||||
@@ -62,8 +64,9 @@ export default function BalanceSheetHeaderComparisonPanal() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
</Col>
|
||||
</Row>
|
||||
</FlexItem>
|
||||
</FlexSubFields>
|
||||
|
||||
{/*------------ Previous Period -----------*/}
|
||||
<FastField name={'previousPeriod'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
@@ -78,8 +81,9 @@ export default function BalanceSheetHeaderComparisonPanal() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
<Row>
|
||||
<Col xs={3}>
|
||||
|
||||
<FlexSubFields>
|
||||
<FlexItem col={6}>
|
||||
<FastField name={'previousPeriodAmountChange'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
<FormGroup labelInfo={<FieldHint />}>
|
||||
@@ -93,8 +97,9 @@ export default function BalanceSheetHeaderComparisonPanal() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
</Col>
|
||||
<Col xs={3}>
|
||||
</FlexItem>
|
||||
|
||||
<FlexItem col={6}>
|
||||
<FastField name={'previousPeriodPercentageChange'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
<FormGroup labelInfo={<FieldHint />}>
|
||||
@@ -107,8 +112,8 @@ export default function BalanceSheetHeaderComparisonPanal() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
</Col>
|
||||
</Row>
|
||||
</FlexItem>
|
||||
</FlexSubFields>
|
||||
|
||||
{/**----------- % of Column -----------*/}
|
||||
<FastField name={'percentageOfColumn'} type={'checkbox'}>
|
||||
@@ -137,19 +142,33 @@ export default function BalanceSheetHeaderComparisonPanal() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Balance sheet header - Comparison panal.
|
||||
*/
|
||||
export default function BalanceSheetHeaderComparisonPanal() {
|
||||
return (
|
||||
<BalanceSheetComparisonWrap>
|
||||
<BalanceSheetComparisonFieldsWrap>
|
||||
<BalanceSheetHeaderComparisonPanalFields />
|
||||
</BalanceSheetComparisonFieldsWrap>
|
||||
</BalanceSheetComparisonWrap>
|
||||
);
|
||||
}
|
||||
|
||||
const BalanceSheetComparisonWrap = styled.div`
|
||||
.row {
|
||||
margin-left: 0.15rem;
|
||||
.col {
|
||||
min-width: 150px !important;
|
||||
max-width: 190px !important;
|
||||
}
|
||||
}
|
||||
.bp3-form-group {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
`;
|
||||
|
||||
const FlexSubFields = styled(Flex)`
|
||||
padding-left: 20px;
|
||||
`;
|
||||
|
||||
const BalanceSheetComparisonFieldsWrap = styled.div`
|
||||
width: 400px;
|
||||
`;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import React from 'react';
|
||||
import { FastField, Field } from 'formik';
|
||||
import { FastField } from 'formik';
|
||||
import { FormGroup, Checkbox } from '@blueprintjs/core';
|
||||
import styled from 'styled-components';
|
||||
|
||||
import { FormattedMessage as T } from 'components';
|
||||
import { Flex, FlexItem, FormattedMessage as T } from 'components';
|
||||
|
||||
import { Row, Col, FieldHint } from '../../../components';
|
||||
import { FieldHint } from '../../../components';
|
||||
import {
|
||||
handlePreviousYearCheckBoxChange,
|
||||
handlePreviousPeriodCheckBoxChange,
|
||||
@@ -16,11 +16,12 @@ import {
|
||||
} from './utils';
|
||||
|
||||
/**
|
||||
* ProfitLoss sheet header -comparison panel.
|
||||
* Profit/loss comparisons panel fields.
|
||||
* @returns {JSX.Element}
|
||||
*/
|
||||
export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
function ProfitLossComaprsionPanelFields() {
|
||||
return (
|
||||
<ProfitLossSheetComparisonWrap>
|
||||
<>
|
||||
{/**----------- Previous Year -----------*/}
|
||||
<FastField name={'previousYear'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
@@ -35,8 +36,9 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
<Row>
|
||||
<Col xs={3}>
|
||||
|
||||
<FlexSubFields>
|
||||
<FlexItem col={6}>
|
||||
<FastField name={'previousYearAmountChange'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
<FormGroup labelInfo={<FieldHint />}>
|
||||
@@ -50,8 +52,8 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
</Col>
|
||||
<Col xs={3}>
|
||||
</FlexItem>
|
||||
<FlexItem col={6}>
|
||||
<FastField name={'previousYearPercentageChange'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
<FormGroup labelInfo={<FieldHint />}>
|
||||
@@ -65,8 +67,9 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
</Col>
|
||||
</Row>
|
||||
</FlexItem>
|
||||
</FlexSubFields>
|
||||
|
||||
{/**----------- Previous Period (PP) -----------*/}
|
||||
<FastField name={'previousPeriod'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
@@ -81,8 +84,9 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
<Row>
|
||||
<Col xs={3}>
|
||||
|
||||
<FlexSubFields>
|
||||
<FlexItem col={6}>
|
||||
<FastField name={'previousPeriodAmountChange'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
<FormGroup labelInfo={<FieldHint />}>
|
||||
@@ -96,8 +100,8 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
</Col>
|
||||
<Col xs={3}>
|
||||
</FlexItem>
|
||||
<FlexItem col={6}>
|
||||
<FastField name={'previousPeriodPercentageChange'} type={'checkbox'}>
|
||||
{({ form, field }) => (
|
||||
<FormGroup labelInfo={<FieldHint />}>
|
||||
@@ -111,8 +115,9 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
</Col>
|
||||
</Row>
|
||||
</FlexItem>
|
||||
</FlexSubFields>
|
||||
|
||||
{/**----------- % of Column -----------*/}
|
||||
<FastField name={'percentageColumn'} type={'checkbox'}>
|
||||
{({ field }) => (
|
||||
@@ -126,6 +131,7 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
|
||||
{/**----------- % of Row -----------*/}
|
||||
<FastField name={'percentageRow'} type={'checkbox'}>
|
||||
{({ field }) => (
|
||||
@@ -139,6 +145,7 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
|
||||
{/**----------- % of Expense -----------*/}
|
||||
<FastField name={'percentageExpense'} type={'checkbox'}>
|
||||
{({ field }) => (
|
||||
@@ -152,6 +159,7 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
|
||||
{/**----------- % of Income -----------*/}
|
||||
<FastField name={'percentageIncome'} type={'checkbox'}>
|
||||
{({ field }) => (
|
||||
@@ -165,19 +173,33 @@ export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
</FormGroup>
|
||||
)}
|
||||
</FastField>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* ProfitLoss sheet header -comparison panel.
|
||||
*/
|
||||
export default function ProfitLossSheetHeaderComparisonPanel() {
|
||||
return (
|
||||
<ProfitLossSheetComparisonWrap>
|
||||
<ProfitLossComaprsionFieldsWrap>
|
||||
<ProfitLossComaprsionPanelFields />
|
||||
</ProfitLossComaprsionFieldsWrap>
|
||||
</ProfitLossSheetComparisonWrap>
|
||||
);
|
||||
}
|
||||
|
||||
const ProfitLossSheetComparisonWrap = styled.div`
|
||||
.row {
|
||||
margin-left: 0.15rem;
|
||||
.col {
|
||||
min-width: 150px !important;
|
||||
max-width: 190px !important;
|
||||
}
|
||||
}
|
||||
.bp3-form-group {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
`;
|
||||
|
||||
const FlexSubFields = styled(Flex)`
|
||||
padding-left: 20px;
|
||||
`;
|
||||
|
||||
const ProfitLossComaprsionFieldsWrap = styled.div`
|
||||
max-width: 400px;
|
||||
`;
|
||||
|
||||
Reference in New Issue
Block a user