pne-ui 1.0.12 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PneButton/PneButton.js.map +1 -0
- package/dist/PneModal/PneModal.d.ts +12 -0
- package/dist/PneModal/PneModal.js +61 -0
- package/dist/PneModal/PneModal.js.map +1 -0
- package/dist/PneModal/useModal.d.ts +7 -0
- package/dist/PneModal/useModal.js +13 -0
- package/dist/PneModal/useModal.js.map +1 -0
- package/dist/PneTextField/PneTextField.d.ts +3 -0
- package/dist/PneTextField/PneTextField.js +11 -0
- package/dist/PneTextField/PneTextField.js.map +1 -0
- package/dist/common/dropdown.d.ts +6 -0
- package/dist/common/dropdown.js +41 -0
- package/dist/common/dropdown.js.map +1 -0
- package/dist/common/paynet/schema.d.ts +24 -0
- package/dist/common/paynet/schema.js +11 -0
- package/dist/common/paynet/schema.js.map +1 -0
- package/dist/common/paynet/type.d.ts +15 -0
- package/dist/common/paynet/type.js +38 -0
- package/dist/common/paynet/type.js.map +1 -0
- package/dist/common/pne/dropdown.d.ts +6 -0
- package/dist/common/pne/dropdown.js +41 -0
- package/dist/common/pne/dropdown.js.map +1 -0
- package/dist/common/pne/type.d.ts +9 -0
- package/dist/common/pne/type.js +18 -0
- package/dist/common/pne/type.js.map +1 -0
- package/dist/common/type.d.ts +9 -0
- package/dist/common/type.js +18 -0
- package/dist/common/type.js.map +1 -0
- package/{cjs → dist}/component/PneButton.js +4 -7
- package/dist/component/PneModal.d.ts +18 -0
- package/dist/component/PneModal.js +72 -0
- package/dist/component/PneModal.js.map +1 -0
- package/dist/component/PneTextField.d.ts +3 -0
- package/dist/component/PneTextField.js +11 -0
- package/dist/component/PneTextField.js.map +1 -0
- package/dist/component/dropdown/PneAsyncAutocomplete.d.ts +14 -0
- package/dist/component/dropdown/PneAsyncAutocomplete.js +44 -0
- package/dist/component/dropdown/PneAsyncAutocomplete.js.map +1 -0
- package/dist/component/dropdown/PneAutocomplete.d.ts +12 -0
- package/dist/component/dropdown/PneAutocomplete.js +16 -0
- package/dist/component/dropdown/PneAutocomplete.js.map +1 -0
- package/dist/component/dropdown/PneSelect.d.ts +13 -0
- package/dist/component/dropdown/PneSelect.js +42 -0
- package/dist/component/dropdown/PneSelect.js.map +1 -0
- package/dist/component/table/AbstractHeaderTableCell.d.ts +4 -0
- package/dist/component/table/AbstractHeaderTableCell.js +21 -0
- package/dist/component/table/AbstractHeaderTableCell.js.map +1 -0
- package/dist/component/table/AbstractTable.d.ts +41 -0
- package/dist/component/table/AbstractTable.js +46 -0
- package/dist/component/table/AbstractTable.js.map +1 -0
- package/dist/component/table/AbstractTableCell.d.ts +4 -0
- package/dist/component/table/AbstractTableCell.js +7 -0
- package/dist/component/table/AbstractTableCell.js.map +1 -0
- package/dist/component/table/PneFirstPageIcon.d.ts +6 -0
- package/dist/component/table/PneFirstPageIcon.js +10 -0
- package/dist/component/table/PneFirstPageIcon.js.map +1 -0
- package/dist/component/table/PneHeaderTableCell.d.ts +4 -0
- package/dist/component/table/PneHeaderTableCell.js +15 -0
- package/dist/component/table/PneHeaderTableCell.js.map +1 -0
- package/dist/component/table/PneLastPageIcon.d.ts +6 -0
- package/dist/component/table/PneLastPageIcon.js +10 -0
- package/dist/component/table/PneLastPageIcon.js.map +1 -0
- package/dist/component/table/PneNextPageIcon.d.ts +6 -0
- package/dist/component/table/PneNextPageIcon.js +10 -0
- package/dist/component/table/PneNextPageIcon.js.map +1 -0
- package/dist/component/table/PnePreviousPageIcon.d.ts +6 -0
- package/dist/component/table/PnePreviousPageIcon.js +10 -0
- package/dist/component/table/PnePreviousPageIcon.js.map +1 -0
- package/dist/component/table/PneTable.d.ts +4 -0
- package/dist/component/table/PneTable.js +21 -0
- package/dist/component/table/PneTable.js.map +1 -0
- package/dist/component/table/PneTableCell.d.ts +6 -0
- package/dist/component/table/PneTableCell.js +21 -0
- package/dist/component/table/PneTableCell.js.map +1 -0
- package/dist/component/table/PneTablePagination.d.ts +3 -0
- package/dist/component/table/PneTablePagination.js +23 -0
- package/dist/component/table/PneTablePagination.js.map +1 -0
- package/dist/component/table/PneTablePaginationActions.d.ts +11 -0
- package/dist/component/table/PneTablePaginationActions.js +95 -0
- package/dist/component/table/PneTablePaginationActions.js.map +1 -0
- package/dist/component/table/PneTableRow.d.ts +7 -0
- package/dist/component/table/PneTableRow.js +33 -0
- package/dist/component/table/PneTableRow.js.map +1 -0
- package/dist/component/table/PneTableSortLabel.d.ts +10 -0
- package/dist/component/table/PneTableSortLabel.js +35 -0
- package/dist/component/table/PneTableSortLabel.js.map +1 -0
- package/dist/component/table/hooks.d.ts +27 -0
- package/dist/component/table/hooks.js +111 -0
- package/dist/component/table/hooks.js.map +1 -0
- package/dist/component/table/type.d.ts +5 -0
- package/dist/component/table/type.js +2 -0
- package/dist/component/table/type.js.map +1 -0
- package/dist/component/table/useTable.d.ts +27 -0
- package/dist/component/table/useTable.js +111 -0
- package/dist/component/table/useTable.js.map +1 -0
- package/{cjs → dist}/index.d.ts +11 -2
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/paynet/schema.d.ts +24 -0
- package/dist/paynet/schema.js +11 -0
- package/dist/paynet/schema.js.map +1 -0
- package/dist/paynet/type.d.ts +15 -0
- package/dist/paynet/type.js +38 -0
- package/dist/paynet/type.js.map +1 -0
- package/package.json +20 -20
- package/cjs/component/PneButton.js.map +0 -1
- package/cjs/createTheme.js +0 -180
- package/cjs/createTheme.js.map +0 -1
- package/cjs/index.js +0 -7
- package/cjs/index.js.map +0 -1
- package/esm/createTheme.d.ts +0 -2
- package/esm/index.d.ts +0 -39
- package/esm/index.js +0 -3
- package/esm/index.js.map +0 -1
- /package/{cjs/component → dist/PneButton}/PneButton.d.ts +0 -0
- /package/{esm/component → dist/PneButton}/PneButton.js +0 -0
- /package/{esm → dist}/component/PneButton.d.ts +0 -0
- /package/{esm → dist}/component/PneButton.js.map +0 -0
- /package/{cjs → dist}/createTheme.d.ts +0 -0
- /package/{esm → dist}/createTheme.js +0 -0
- /package/{esm → dist}/createTheme.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PneButton.js","sourceRoot":"","sources":["../../src/PneButton/PneButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAuB,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,uFAAuF;AACvF,MAAM,SAAS,GAAG,CACd,KAAwC,EAC1C,EAAE;IACA,MAAM,EACF,EAAE,EACF,QAAQ,EACR,OAAO,GAAG,WAAW,EACrB,GAAG,IAAI,EACV,GAAG,KAAK,CAAC;IAEV,MAAM,GAAG,GAAY;QACjB;YACI,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,SAAS;SAC3B;QACD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IAED,OAAO,oBAAC,MAAM,IAAC,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,KAAM,IAAI,IAAG,QAAQ,CAAU,CAAA;AAC3E,CAAC,CAAA;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SxProps } from "@mui/material";
|
|
3
|
+
export interface IProps {
|
|
4
|
+
open: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
containerSx?: SxProps;
|
|
7
|
+
title?: string;
|
|
8
|
+
subtitle?: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const PneModal: (props: React.PropsWithChildren<IProps>) => React.JSX.Element;
|
|
12
|
+
export default PneModal;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Box from "@mui/material/Box";
|
|
3
|
+
import IconButton from "@mui/material/IconButton";
|
|
4
|
+
import Modal from "@mui/material/Modal";
|
|
5
|
+
import Typography from "@mui/material/Typography";
|
|
6
|
+
import { styled } from "@mui/material/styles";
|
|
7
|
+
import CloseIcon from '@mui/icons-material/Close';
|
|
8
|
+
const PneModal = (props) => {
|
|
9
|
+
const { open, onClose, containerSx = {}, title, className, children, } = props;
|
|
10
|
+
return React.createElement(Modal, { open: open, onClose: onClose, "aria-labelledby": 'modal-title' },
|
|
11
|
+
React.createElement(Container, { className: className, sx: containerSx },
|
|
12
|
+
React.createElement(Header, null,
|
|
13
|
+
React.createElement("div", null,
|
|
14
|
+
React.createElement(Typography, { sx: {
|
|
15
|
+
padding: '0',
|
|
16
|
+
fontWeight: '700',
|
|
17
|
+
fontSize: '18px',
|
|
18
|
+
lineHeight: '24px',
|
|
19
|
+
}, component: 'h3', id: 'modal-title' }, title),
|
|
20
|
+
props.subtitle && (React.createElement(Typography, { sx: {
|
|
21
|
+
padding: '0',
|
|
22
|
+
fontWeight: '400',
|
|
23
|
+
fontSize: '12px',
|
|
24
|
+
lineHeight: '12px',
|
|
25
|
+
letterSpacing: '0.15px',
|
|
26
|
+
}, id: 'modal-subtitle' }, props.subtitle))),
|
|
27
|
+
React.createElement(IconButton, { sx: {
|
|
28
|
+
width: '40px',
|
|
29
|
+
height: '40px',
|
|
30
|
+
background: '#F1F5FA',
|
|
31
|
+
borderRadius: '4px',
|
|
32
|
+
}, onClick: onClose },
|
|
33
|
+
React.createElement(CloseIcon, { fontSize: 'small' }))),
|
|
34
|
+
React.createElement(Body, null, children)));
|
|
35
|
+
};
|
|
36
|
+
export default PneModal;
|
|
37
|
+
const Container = styled(Box) `
|
|
38
|
+
position: absolute;
|
|
39
|
+
top: 50%;
|
|
40
|
+
left: 50%;
|
|
41
|
+
transform: translate(-50%, -50%);
|
|
42
|
+
min-width: 400px;
|
|
43
|
+
background: #fff;
|
|
44
|
+
border: none;
|
|
45
|
+
border-radius: 4px;
|
|
46
|
+
max-height: 98%;
|
|
47
|
+
overflow-y: auto;
|
|
48
|
+
box-shadow: 0px -1px 12px rgba(0, 0, 0, 0.03), 0px 3px 3px rgba(0, 0, 0, 0.02), 0px 7px 6px rgba(0, 0, 0, 0.06), 0px 12px 10px rgba(0, 0, 3, 0.03), 0px 22px 18px rgba(0, 0, 0, 0.04), 0px 40px 33px rgba(0, 0, 0, 0.04), 0px 100px 80px rgba(0, 0, 0, 0.04);
|
|
49
|
+
`;
|
|
50
|
+
const Header = styled(Box) `
|
|
51
|
+
display: flex;
|
|
52
|
+
justify-content: space-between;
|
|
53
|
+
align-items: center;
|
|
54
|
+
padding: 16px 24px;
|
|
55
|
+
border-bottom: 1px solid #F1F5FA;
|
|
56
|
+
gap: 16px;
|
|
57
|
+
`;
|
|
58
|
+
const Body = styled(Box) `
|
|
59
|
+
padding: 16px 24px;
|
|
60
|
+
`;
|
|
61
|
+
//# sourceMappingURL=PneModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PneModal.js","sourceRoot":"","sources":["../../src/PneModal/PneModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAWlD,MAAM,QAAQ,GAAG,CAAC,KAAsC,EAAE,EAAE;IACxD,MAAM,EACF,IAAI,EACJ,OAAO,EACP,WAAW,GAAG,EAAE,EAChB,KAAK,EACL,SAAS,EACT,QAAQ,GACX,GAAG,KAAK,CAAC;IAEV,OAAO,oBAAC,KAAK,IACT,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,qBACA,aAAa;QAE7B,oBAAC,SAAS,IAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW;YAC5C,oBAAC,MAAM;gBACH;oBACI,oBAAC,UAAU,IACP,EAAE,EAAE;4BACA,OAAO,EAAE,GAAG;4BACZ,UAAU,EAAE,KAAK;4BACjB,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,MAAM;yBACrB,EACD,SAAS,EAAC,IAAI,EACd,EAAE,EAAE,aAAa,IAEhB,KAAK,CACG;oBACZ,KAAK,CAAC,QAAQ,IAAI,CACf,oBAAC,UAAU,IACP,EAAE,EAAE;4BACA,OAAO,EAAE,GAAG;4BACZ,UAAU,EAAE,KAAK;4BACjB,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,MAAM;4BAClB,aAAa,EAAE,QAAQ;yBAC1B,EACD,EAAE,EAAE,gBAAgB,IAEnB,KAAK,CAAC,QAAQ,CACN,CAChB,CACC;gBACN,oBAAC,UAAU,IACP,EAAE,EAAE;wBACA,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,MAAM;wBACd,UAAU,EAAE,SAAS;wBACrB,YAAY,EAAE,KAAK;qBACtB,EACD,OAAO,EAAE,OAAO;oBAEhB,oBAAC,SAAS,IAAC,QAAQ,EAAE,OAAO,GAAG,CACtB,CACR;YACT,oBAAC,IAAI,QACA,QAAQ,CACN,CACC,CACR,CAAA;AACZ,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA;AAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;;;;;;;;;;;CAY5B,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;;;;;;CAOzB,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;CAEvB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export const useModal = () => {
|
|
3
|
+
const [open, setOpen] = React.useState(false);
|
|
4
|
+
const handleOpen = () => setOpen(true);
|
|
5
|
+
const handleClose = () => setOpen(false);
|
|
6
|
+
return {
|
|
7
|
+
open,
|
|
8
|
+
setOpen,
|
|
9
|
+
handleOpen,
|
|
10
|
+
handleClose,
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=useModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModal.js","sourceRoot":"","sources":["../../src/PneModal/useModal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAC;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,GAKtB,EAAE;IACA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAExC,OAAO;QACH,IAAI;QACJ,OAAO;QACP,UAAU;QACV,WAAW;KACd,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const PneTextField: React.ForwardRefExoticComponent<(Omit<import("@mui/material").OutlinedTextFieldProps, "ref"> | Omit<import("@mui/material").FilledTextFieldProps, "ref"> | Omit<import("@mui/material").StandardTextFieldProps, "ref">) & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export default PneTextField;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { TextField } from '@mui/material';
|
|
3
|
+
const PneTextField = forwardRef((props, ref) => {
|
|
4
|
+
const { sx, size = 'small', ...rest } = props;
|
|
5
|
+
const _sx = [
|
|
6
|
+
...(Array.isArray(sx) ? sx : [sx])
|
|
7
|
+
];
|
|
8
|
+
return React.createElement(TextField, { size: size, sx: _sx, ref: ref, ...rest });
|
|
9
|
+
});
|
|
10
|
+
export default PneTextField;
|
|
11
|
+
//# sourceMappingURL=PneTextField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PneTextField.js","sourceRoot":"","sources":["../../src/PneTextField/PneTextField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,UAAU,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,EAAU,SAAS,EAAiB,MAAM,eAAe,CAAC;AAEjE,MAAM,YAAY,GAAG,UAAU,CAAC,CAC5B,KAAqB,EACrB,GAA8B,EAChC,EAAE;IACA,MAAM,EACF,EAAE,EACF,IAAI,GAAG,OAAO,EACd,GAAG,IAAI,EACV,GAAG,KAAK,CAAC;IAEV,MAAM,GAAG,GAAY;QACjB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IAED,OAAO,oBAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAM,IAAI,GAAG,CAAA;AAChE,CAAC,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AutocompleteFreeSoloValueMapping, SxProps } from '@mui/material';
|
|
2
|
+
import { AbstractEntity, AutoCompleteChoice } from "../paynet/type";
|
|
3
|
+
export type PneDropdownChoice = AutoCompleteChoice | AbstractEntity | string;
|
|
4
|
+
export declare const getOptionLabel: <T extends PneDropdownChoice, FreeSolo>(option: T | AutocompleteFreeSoloValueMapping<FreeSolo>) => string;
|
|
5
|
+
export declare const isOptionEqualToValue: <T extends PneDropdownChoice>(option: T, value: T) => boolean;
|
|
6
|
+
export declare const dropDownSx: SxProps;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { assertObject, exhaustiveCheck, } from './type';
|
|
2
|
+
import { isAbstractEntity, isIAutoCompleteChoice } from "../paynet/type";
|
|
3
|
+
export const getOptionLabel = (option) => {
|
|
4
|
+
if (typeof option === 'string') {
|
|
5
|
+
return option;
|
|
6
|
+
}
|
|
7
|
+
assertObject(option);
|
|
8
|
+
if (isIAutoCompleteChoice(option)) {
|
|
9
|
+
return option.displayName;
|
|
10
|
+
}
|
|
11
|
+
else if (isAbstractEntity(option)) {
|
|
12
|
+
return option.displayName;
|
|
13
|
+
}
|
|
14
|
+
exhaustiveCheck(option);
|
|
15
|
+
throw new TypeError('Incompatible types of option:\n'
|
|
16
|
+
+ JSON.stringify(option, null, 4));
|
|
17
|
+
};
|
|
18
|
+
export const isOptionEqualToValue = (option, value) => {
|
|
19
|
+
if (typeof option === 'string' && typeof value === 'string') {
|
|
20
|
+
return option === value;
|
|
21
|
+
}
|
|
22
|
+
assertObject(option);
|
|
23
|
+
assertObject(value);
|
|
24
|
+
if (isIAutoCompleteChoice(option) && isIAutoCompleteChoice(value)) {
|
|
25
|
+
return option.choiceId === value.choiceId;
|
|
26
|
+
}
|
|
27
|
+
else if (isAbstractEntity(option) && isAbstractEntity(value)) {
|
|
28
|
+
return option.id === value.id;
|
|
29
|
+
}
|
|
30
|
+
// TODO why it doesn't work?
|
|
31
|
+
// exhaustiveCheck(option, value)
|
|
32
|
+
throw new TypeError('Incompatible types of option and value:\n'
|
|
33
|
+
+ JSON.stringify(option, null, 4) + '\n'
|
|
34
|
+
+ JSON.stringify(value, null, 4));
|
|
35
|
+
};
|
|
36
|
+
export const dropDownSx = {
|
|
37
|
+
'& .MuiButtonBase-root.MuiChip-root': {
|
|
38
|
+
maxWidth: 'calc(50% - 4px)',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../src/common/dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,eAAe,GAClB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAqC,gBAAgB,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAI3G,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,MAAsD,EACxD,EAAE;IACA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,OAAO,MAAM,CAAA;KAChB;IAED,YAAY,CAAC,MAAM,CAAC,CAAA;IACpB,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;QAC/B,OAAO,MAAM,CAAC,WAAW,CAAA;KAC5B;SAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;QACjC,OAAO,MAAM,CAAC,WAAW,CAAA;KAC5B;IAED,eAAe,CAAC,MAAM,CAAC,CAAA;IAEvB,MAAM,IAAI,SAAS,CAAC,iCAAiC;UAC/C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CACpC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAA8B,MAAS,EAAE,KAAQ,EAAE,EAAE;IACrF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACzD,OAAO,MAAM,KAAK,KAAK,CAAA;KAC1B;IAED,YAAY,CAAC,MAAM,CAAC,CAAA;IACpB,YAAY,CAAC,KAAK,CAAC,CAAA;IACnB,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE;QAC/D,OAAO,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAA;KAC5C;SAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;QAC5D,OAAO,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAA;KAChC;IAED,4BAA4B;IAC5B,iCAAiC;IAEjC,MAAM,IAAI,SAAS,CAAC,2CAA2C;UACzD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;UACtC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CACnC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAY;IAC/B,oCAAoC,EAAE;QAClC,QAAQ,EAAE,iBAAiB;KAC9B;CACJ,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const AbstractEntitySchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodNumber;
|
|
4
|
+
displayName: z.ZodString;
|
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
|
6
|
+
id: number;
|
|
7
|
+
displayName: string;
|
|
8
|
+
}, {
|
|
9
|
+
id: number;
|
|
10
|
+
displayName: string;
|
|
11
|
+
}>;
|
|
12
|
+
export declare const AutoCompleteChoiceSchema: z.ZodObject<{
|
|
13
|
+
choiceId: z.ZodNumber;
|
|
14
|
+
displayName: z.ZodString;
|
|
15
|
+
description: z.ZodOptional<z.ZodString>;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
displayName: string;
|
|
18
|
+
choiceId: number;
|
|
19
|
+
description?: string | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
displayName: string;
|
|
22
|
+
choiceId: number;
|
|
23
|
+
description?: string | undefined;
|
|
24
|
+
}>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const AbstractEntitySchema = z.object({
|
|
3
|
+
id: z.number(),
|
|
4
|
+
displayName: z.string(),
|
|
5
|
+
});
|
|
6
|
+
export const AutoCompleteChoiceSchema = z.object({
|
|
7
|
+
choiceId: z.number(),
|
|
8
|
+
displayName: z.string(),
|
|
9
|
+
description: z.string().optional(),
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/common/paynet/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { AbstractEntitySchema, AutoCompleteChoiceSchema } from "./schema";
|
|
3
|
+
export type AbstractEntity = z.infer<typeof AbstractEntitySchema>;
|
|
4
|
+
export declare const isAbstractEntity: (value: unknown) => value is {
|
|
5
|
+
id: number;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function assertAbstractEntity(value: unknown): asserts value is AbstractEntity;
|
|
9
|
+
export type AutoCompleteChoice = z.infer<typeof AutoCompleteChoiceSchema>;
|
|
10
|
+
export declare const isIAutoCompleteChoice: (value: unknown) => value is {
|
|
11
|
+
displayName: string;
|
|
12
|
+
choiceId: number;
|
|
13
|
+
description?: string | undefined;
|
|
14
|
+
};
|
|
15
|
+
export declare function assertIAutoCompleteChoice(value: unknown): asserts value is AutoCompleteChoice;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { isObject } from "../pne/type";
|
|
2
|
+
export const isAbstractEntity = (value) => {
|
|
3
|
+
if (!isObject(value)) {
|
|
4
|
+
return false;
|
|
5
|
+
}
|
|
6
|
+
return 'id' in value && typeof value.id === 'number' &&
|
|
7
|
+
'displayName' in value && typeof value.displayName === 'string';
|
|
8
|
+
};
|
|
9
|
+
export function assertAbstractEntity(value) {
|
|
10
|
+
if (typeof value !== 'object' || value === null) {
|
|
11
|
+
throw new Error('Not an object: ' + value);
|
|
12
|
+
}
|
|
13
|
+
if (!('id' in value) || typeof value.id !== 'number') {
|
|
14
|
+
throw new Error('id is not a number');
|
|
15
|
+
}
|
|
16
|
+
if (!('displayName' in value) || typeof value.displayName !== 'string') {
|
|
17
|
+
throw new Error('displayName is not a string');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export const isIAutoCompleteChoice = (value) => {
|
|
21
|
+
if (!isObject(value)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return 'choiceId' in value && typeof value.choiceId === 'number' &&
|
|
25
|
+
'displayName' in value && typeof value.displayName === 'string';
|
|
26
|
+
};
|
|
27
|
+
export function assertIAutoCompleteChoice(value) {
|
|
28
|
+
if (typeof value !== 'object' || value === null) {
|
|
29
|
+
throw new Error('Not an object: ' + value);
|
|
30
|
+
}
|
|
31
|
+
if (!('choiceId' in value) || typeof value.choiceId !== 'number') {
|
|
32
|
+
throw new Error('choiceId is not a number');
|
|
33
|
+
}
|
|
34
|
+
if (!('displayName' in value) || typeof value.displayName !== 'string') {
|
|
35
|
+
throw new Error('displayName is not a string');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/common/paynet/type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAIrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAA2B,EAAE;IACxE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,IAAI,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAChD,aAAa,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC;AACxE,CAAC,CAAA;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;KAC9C;IAED,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE;QAClD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACzC;IAED,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE;QACpE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAClD;AACL,CAAC;AAID,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAc,EAA+B,EAAE;IACjF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAClB,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,UAAU,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAC5D,aAAa,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC;AACxE,CAAC,CAAA;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;KAC9C;IAED,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAC9D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC/C;IAED,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE;QACpE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAClD;AACL,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AutocompleteFreeSoloValueMapping, SxProps } from '@mui/material';
|
|
2
|
+
import { AbstractEntity, AutoCompleteChoice } from "../paynet/type";
|
|
3
|
+
export type PneDropdownChoice = AutoCompleteChoice | AbstractEntity | string;
|
|
4
|
+
export declare const getOptionLabel: <T extends PneDropdownChoice, FreeSolo>(option: T | AutocompleteFreeSoloValueMapping<FreeSolo>) => string;
|
|
5
|
+
export declare const isOptionEqualToValue: <T extends PneDropdownChoice>(option: T, value: T) => boolean;
|
|
6
|
+
export declare const dropDownSx: SxProps;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { assertObject, exhaustiveCheck, } from './type';
|
|
2
|
+
import { isAbstractEntity, isIAutoCompleteChoice } from "../paynet/type";
|
|
3
|
+
export const getOptionLabel = (option) => {
|
|
4
|
+
if (typeof option === 'string') {
|
|
5
|
+
return option;
|
|
6
|
+
}
|
|
7
|
+
assertObject(option);
|
|
8
|
+
if (isIAutoCompleteChoice(option)) {
|
|
9
|
+
return option.displayName;
|
|
10
|
+
}
|
|
11
|
+
else if (isAbstractEntity(option)) {
|
|
12
|
+
return option.displayName;
|
|
13
|
+
}
|
|
14
|
+
exhaustiveCheck(option);
|
|
15
|
+
throw new TypeError('Incompatible types of option:\n'
|
|
16
|
+
+ JSON.stringify(option, null, 4));
|
|
17
|
+
};
|
|
18
|
+
export const isOptionEqualToValue = (option, value) => {
|
|
19
|
+
if (typeof option === 'string' && typeof value === 'string') {
|
|
20
|
+
return option === value;
|
|
21
|
+
}
|
|
22
|
+
assertObject(option);
|
|
23
|
+
assertObject(value);
|
|
24
|
+
if (isIAutoCompleteChoice(option) && isIAutoCompleteChoice(value)) {
|
|
25
|
+
return option.choiceId === value.choiceId;
|
|
26
|
+
}
|
|
27
|
+
else if (isAbstractEntity(option) && isAbstractEntity(value)) {
|
|
28
|
+
return option.id === value.id;
|
|
29
|
+
}
|
|
30
|
+
// TODO why it doesn't work?
|
|
31
|
+
// exhaustiveCheck(option, value)
|
|
32
|
+
throw new TypeError('Incompatible types of option and value:\n'
|
|
33
|
+
+ JSON.stringify(option, null, 4) + '\n'
|
|
34
|
+
+ JSON.stringify(value, null, 4));
|
|
35
|
+
};
|
|
36
|
+
export const dropDownSx = {
|
|
37
|
+
'& .MuiButtonBase-root.MuiChip-root': {
|
|
38
|
+
maxWidth: 'calc(50% - 4px)',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../src/common/pne/dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,eAAe,GAClB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAqC,gBAAgB,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAI3G,MAAM,CAAC,MAAM,cAAc,GAAG,CAC1B,MAAsD,EACxD,EAAE;IACA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,OAAO,MAAM,CAAA;KAChB;IAED,YAAY,CAAC,MAAM,CAAC,CAAA;IACpB,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;QAC/B,OAAO,MAAM,CAAC,WAAW,CAAA;KAC5B;SAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;QACjC,OAAO,MAAM,CAAC,WAAW,CAAA;KAC5B;IAED,eAAe,CAAC,MAAM,CAAC,CAAA;IAEvB,MAAM,IAAI,SAAS,CAAC,iCAAiC;UAC/C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CACpC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAA8B,MAAS,EAAE,KAAQ,EAAE,EAAE;IACrF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACzD,OAAO,MAAM,KAAK,KAAK,CAAA;KAC1B;IAED,YAAY,CAAC,MAAM,CAAC,CAAA;IACpB,YAAY,CAAC,KAAK,CAAC,CAAA;IACnB,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,KAAK,CAAC,EAAE;QAC/D,OAAO,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAA;KAC5C;SAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;QAC5D,OAAO,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAA;KAChC;IAED,4BAA4B;IAC5B,iCAAiC;IAEjC,MAAM,IAAI,SAAS,CAAC,2CAA2C;UACzD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI;UACtC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CACnC,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAY;IAC/B,oCAAoC,EAAE;QAClC,QAAQ,EAAE,iBAAiB;KAC9B;CACJ,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const exhaustiveCheck: (value: never | never[]) => never[];
|
|
2
|
+
export declare const ensure: <T>(argument: T | null | undefined, message?: string) => T;
|
|
3
|
+
export declare const isObject: (value: unknown) => value is object;
|
|
4
|
+
export declare function assertObject(value: unknown): asserts value is object;
|
|
5
|
+
export type SelectOption = {
|
|
6
|
+
value: number | string;
|
|
7
|
+
label: string;
|
|
8
|
+
};
|
|
9
|
+
export type Order = 'asc' | 'desc';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const exhaustiveCheck = (value) => {
|
|
2
|
+
return value;
|
|
3
|
+
};
|
|
4
|
+
export const ensure = (argument, message = 'This value was promised to be there.') => {
|
|
5
|
+
if (argument === undefined || argument === null) {
|
|
6
|
+
throw new TypeError(message);
|
|
7
|
+
}
|
|
8
|
+
return argument;
|
|
9
|
+
};
|
|
10
|
+
export const isObject = (value) => {
|
|
11
|
+
return typeof value === 'object' && value !== null;
|
|
12
|
+
};
|
|
13
|
+
export function assertObject(value) {
|
|
14
|
+
if (typeof value !== 'object' || value === null) {
|
|
15
|
+
throw new Error('Not an object: ' + value);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/common/pne/type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAE,EAAE;IACtD,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,QAA8B,EAAE,OAAO,GAAG,sCAAsC,EAAK,EAAE;IAC7G,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAA;KAC/B;IAED,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;KAC9C;AACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const exhaustiveCheck: (value: never | never[]) => never[];
|
|
2
|
+
export declare const ensure: <T>(argument: T | null | undefined, message?: string) => T;
|
|
3
|
+
export declare const isObject: (value: unknown) => value is object;
|
|
4
|
+
export declare function assertObject(value: unknown): asserts value is object;
|
|
5
|
+
export type SelectOption = {
|
|
6
|
+
value: number | string;
|
|
7
|
+
label: string;
|
|
8
|
+
};
|
|
9
|
+
export type Order = 'asc' | 'desc';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const exhaustiveCheck = (value) => {
|
|
2
|
+
return value;
|
|
3
|
+
};
|
|
4
|
+
export const ensure = (argument, message = 'This value was promised to be there.') => {
|
|
5
|
+
if (argument === undefined || argument === null) {
|
|
6
|
+
throw new TypeError(message);
|
|
7
|
+
}
|
|
8
|
+
return argument;
|
|
9
|
+
};
|
|
10
|
+
export const isObject = (value) => {
|
|
11
|
+
return typeof value === 'object' && value !== null;
|
|
12
|
+
};
|
|
13
|
+
export function assertObject(value) {
|
|
14
|
+
if (typeof value !== 'object' || value === null) {
|
|
15
|
+
throw new Error('Not an object: ' + value);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/common/type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAE,EAAE;IACtD,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,QAA8B,EAAE,OAAO,GAAG,sCAAsC,EAAK,EAAE;IAC7G,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,CAAA;KAC/B;IAED,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC;KAC9C;AACL,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const material_1 = require("@mui/material");
|
|
5
|
-
const React = tslib_1.__importStar(require("react"));
|
|
1
|
+
import { Button } from '@mui/material';
|
|
2
|
+
import * as React from "react";
|
|
6
3
|
// https://mui.com/material-ui/guides/typescript/#complications-with-the-component-prop
|
|
7
4
|
const PneButton = (props) => {
|
|
8
5
|
const { sx, children, variant = 'contained', ...rest } = props;
|
|
@@ -16,7 +13,7 @@ const PneButton = (props) => {
|
|
|
16
13
|
},
|
|
17
14
|
...(Array.isArray(sx) ? sx : [sx])
|
|
18
15
|
];
|
|
19
|
-
return React.createElement(
|
|
16
|
+
return React.createElement(Button, { sx: _sx, variant: variant, ...rest }, children);
|
|
20
17
|
};
|
|
21
|
-
|
|
18
|
+
export default PneButton;
|
|
22
19
|
//# sourceMappingURL=PneButton.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React, { Dispatch, SetStateAction } from 'react';
|
|
2
|
+
import { SxProps } from "@mui/material";
|
|
3
|
+
export interface IProps {
|
|
4
|
+
open: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
containerSx?: SxProps;
|
|
7
|
+
title?: string;
|
|
8
|
+
subtitle?: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const PneModal: (props: React.PropsWithChildren<IProps>) => React.JSX.Element;
|
|
12
|
+
export default PneModal;
|
|
13
|
+
export declare const useModal: () => {
|
|
14
|
+
open: boolean;
|
|
15
|
+
setOpen: Dispatch<SetStateAction<boolean>>;
|
|
16
|
+
handleOpen: () => void;
|
|
17
|
+
handleClose: () => void;
|
|
18
|
+
};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Box from "@mui/material/Box";
|
|
3
|
+
import IconButton from "@mui/material/IconButton";
|
|
4
|
+
import Modal from "@mui/material/Modal";
|
|
5
|
+
import Typography from "@mui/material/Typography";
|
|
6
|
+
import { styled } from "@mui/material/styles";
|
|
7
|
+
import CloseIcon from '@mui/icons-material/Close';
|
|
8
|
+
const PneModal = (props) => {
|
|
9
|
+
const { open, onClose, containerSx = {}, title, className, children, } = props;
|
|
10
|
+
return React.createElement(Modal, { open: open, onClose: onClose, "aria-labelledby": 'modal-title' },
|
|
11
|
+
React.createElement(Container, { className: className, sx: containerSx },
|
|
12
|
+
React.createElement(Header, null,
|
|
13
|
+
React.createElement("div", null,
|
|
14
|
+
React.createElement(Typography, { sx: {
|
|
15
|
+
padding: '0',
|
|
16
|
+
fontWeight: '700',
|
|
17
|
+
fontSize: '18px',
|
|
18
|
+
lineHeight: '24px',
|
|
19
|
+
}, component: 'h3', id: 'modal-title' }, title),
|
|
20
|
+
props.subtitle && (React.createElement(Typography, { sx: {
|
|
21
|
+
padding: '0',
|
|
22
|
+
fontWeight: '400',
|
|
23
|
+
fontSize: '12px',
|
|
24
|
+
lineHeight: '12px',
|
|
25
|
+
letterSpacing: '0.15px',
|
|
26
|
+
}, id: 'modal-subtitle' }, props.subtitle))),
|
|
27
|
+
React.createElement(IconButton, { sx: {
|
|
28
|
+
width: '40px',
|
|
29
|
+
height: '40px',
|
|
30
|
+
background: '#F1F5FA',
|
|
31
|
+
borderRadius: '4px',
|
|
32
|
+
}, onClick: onClose },
|
|
33
|
+
React.createElement(CloseIcon, { fontSize: 'small' }))),
|
|
34
|
+
React.createElement(Body, null, children)));
|
|
35
|
+
};
|
|
36
|
+
export default PneModal;
|
|
37
|
+
const Container = styled(Box) `
|
|
38
|
+
position: absolute;
|
|
39
|
+
top: 50%;
|
|
40
|
+
left: 50%;
|
|
41
|
+
transform: translate(-50%, -50%);
|
|
42
|
+
min-width: 400px;
|
|
43
|
+
background: #fff;
|
|
44
|
+
border: none;
|
|
45
|
+
border-radius: 4px;
|
|
46
|
+
max-height: 98%;
|
|
47
|
+
overflow-y: auto;
|
|
48
|
+
box-shadow: 0px -1px 12px rgba(0, 0, 0, 0.03), 0px 3px 3px rgba(0, 0, 0, 0.02), 0px 7px 6px rgba(0, 0, 0, 0.06), 0px 12px 10px rgba(0, 0, 3, 0.03), 0px 22px 18px rgba(0, 0, 0, 0.04), 0px 40px 33px rgba(0, 0, 0, 0.04), 0px 100px 80px rgba(0, 0, 0, 0.04);
|
|
49
|
+
`;
|
|
50
|
+
const Header = styled(Box) `
|
|
51
|
+
display: flex;
|
|
52
|
+
justify-content: space-between;
|
|
53
|
+
align-items: center;
|
|
54
|
+
padding: 16px 24px;
|
|
55
|
+
border-bottom: 1px solid #F1F5FA;
|
|
56
|
+
gap: 16px;
|
|
57
|
+
`;
|
|
58
|
+
const Body = styled(Box) `
|
|
59
|
+
padding: 16px 24px;
|
|
60
|
+
`;
|
|
61
|
+
export const useModal = () => {
|
|
62
|
+
const [open, setOpen] = React.useState(false);
|
|
63
|
+
const handleOpen = () => setOpen(true);
|
|
64
|
+
const handleClose = () => setOpen(false);
|
|
65
|
+
return {
|
|
66
|
+
open,
|
|
67
|
+
setOpen,
|
|
68
|
+
handleOpen,
|
|
69
|
+
handleClose
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=PneModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PneModal.js","sourceRoot":"","sources":["../../src/component/PneModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAC;AACtD,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAC5C,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAWlD,MAAM,QAAQ,GAAG,CAAC,KAAsC,EAAE,EAAE;IACxD,MAAM,EACF,IAAI,EACJ,OAAO,EACP,WAAW,GAAG,EAAE,EAChB,KAAK,EACL,SAAS,EACT,QAAQ,GACX,GAAG,KAAK,CAAC;IAEV,OAAO,oBAAC,KAAK,IACT,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,qBACA,aAAa;QAE7B,oBAAC,SAAS,IAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW;YAC5C,oBAAC,MAAM;gBACH;oBACI,oBAAC,UAAU,IACP,EAAE,EAAE;4BACA,OAAO,EAAE,GAAG;4BACZ,UAAU,EAAE,KAAK;4BACjB,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,MAAM;yBACrB,EACD,SAAS,EAAC,IAAI,EACd,EAAE,EAAE,aAAa,IAEhB,KAAK,CACG;oBACZ,KAAK,CAAC,QAAQ,IAAI,CACf,oBAAC,UAAU,IACP,EAAE,EAAE;4BACA,OAAO,EAAE,GAAG;4BACZ,UAAU,EAAE,KAAK;4BACjB,QAAQ,EAAE,MAAM;4BAChB,UAAU,EAAE,MAAM;4BAClB,aAAa,EAAE,QAAQ;yBAC1B,EACD,EAAE,EAAE,gBAAgB,IAEnB,KAAK,CAAC,QAAQ,CACN,CAChB,CACC;gBACN,oBAAC,UAAU,IACP,EAAE,EAAE;wBACA,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,MAAM;wBACd,UAAU,EAAE,SAAS;wBACrB,YAAY,EAAE,KAAK;qBACtB,EACD,OAAO,EAAE,OAAO;oBAEhB,oBAAC,SAAS,IAAC,QAAQ,EAAE,OAAO,GAAG,CACtB,CACR;YACT,oBAAC,IAAI,QACA,QAAQ,CACN,CACC,CACR,CAAA;AACZ,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA;AAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;;;;;;;;;;;CAY5B,CAAC;AAEF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;;;;;;CAOzB,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;CAEvB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAKtB,EAAE;IACA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzC,OAAO;QACH,IAAI;QACJ,OAAO;QACP,UAAU;QACV,WAAW;KACd,CAAC;AACN,CAAC,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const PneTextField: React.ForwardRefExoticComponent<(Omit<import("@mui/material").OutlinedTextFieldProps, "ref"> | Omit<import("@mui/material").FilledTextFieldProps, "ref"> | Omit<import("@mui/material").StandardTextFieldProps, "ref">) & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
+
export default PneTextField;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { TextField } from '@mui/material';
|
|
3
|
+
const PneTextField = forwardRef((props, ref) => {
|
|
4
|
+
const { sx, size = 'small', ...rest } = props;
|
|
5
|
+
const _sx = [
|
|
6
|
+
...(Array.isArray(sx) ? sx : [sx])
|
|
7
|
+
];
|
|
8
|
+
return React.createElement(TextField, { size: size, sx: _sx, ref: ref, ...rest });
|
|
9
|
+
});
|
|
10
|
+
export default PneTextField;
|
|
11
|
+
//# sourceMappingURL=PneTextField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PneTextField.js","sourceRoot":"","sources":["../../src/component/PneTextField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,UAAU,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,EAAU,SAAS,EAAiB,MAAM,eAAe,CAAC;AAEjE,MAAM,YAAY,GAAG,UAAU,CAAC,CAC5B,KAAqB,EACrB,GAA8B,EAChC,EAAE;IACA,MAAM,EACF,EAAE,EACF,IAAI,GAAG,OAAO,EACd,GAAG,IAAI,EACV,GAAG,KAAK,CAAC;IAEV,MAAM,GAAG,GAAY;QACjB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IAED,OAAO,oBAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAM,IAAI,GAAG,CAAA;AAChE,CAAC,CAAC,CAAC;AAEH,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { AutocompleteProps } from '@mui/material';
|
|
3
|
+
import { PneDropdownChoice } from '../../common/pne/dropdown';
|
|
4
|
+
export interface IProps<T extends PneDropdownChoice, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined> extends Omit<AutocompleteProps<T, Multiple, DisableClearable, FreeSolo>, 'renderInput' | 'options'> {
|
|
5
|
+
searchChoices: (request: {
|
|
6
|
+
searchString?: string;
|
|
7
|
+
}) => Promise<T[]>;
|
|
8
|
+
label?: ReactNode;
|
|
9
|
+
error?: boolean;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
onSearchError?: (reason: any) => void;
|
|
12
|
+
}
|
|
13
|
+
declare const PneAsyncAutocomplete: <T extends PneDropdownChoice, Multiple extends boolean | undefined = false, DisableClearable extends boolean | undefined = false, FreeSolo extends boolean | undefined = false>(props: IProps<T, Multiple, DisableClearable, FreeSolo>) => React.JSX.Element;
|
|
14
|
+
export default PneAsyncAutocomplete;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React, { useEffect, useId, useState } from 'react';
|
|
2
|
+
import { Autocomplete, CircularProgress } from '@mui/material';
|
|
3
|
+
import { dropDownSx, getOptionLabel, isOptionEqualToValue } from '../../common/pne/dropdown';
|
|
4
|
+
import { PneTextField } from "../../index";
|
|
5
|
+
const PneAsyncAutocomplete = (props) => {
|
|
6
|
+
const { searchChoices, label, size = 'small', error = false, sx, placeholder, onSearchError, ...rest } = props;
|
|
7
|
+
const innerSx = [
|
|
8
|
+
dropDownSx,
|
|
9
|
+
...(Array.isArray(sx) ? sx : [sx])
|
|
10
|
+
];
|
|
11
|
+
const [open, setOpen] = useState(false);
|
|
12
|
+
const [options, setOptions] = useState([]);
|
|
13
|
+
const [loading, setLoading] = useState(false);
|
|
14
|
+
const [inputValue, setInputValue] = useState('');
|
|
15
|
+
const id = useId();
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (!open) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
setLoading(true);
|
|
21
|
+
searchChoices({ searchString: inputValue })
|
|
22
|
+
.then(setOptions)
|
|
23
|
+
.catch(reason => {
|
|
24
|
+
Promise.resolve(reason)
|
|
25
|
+
.then(value => {
|
|
26
|
+
onSearchError ? onSearchError(value) : console.error(value);
|
|
27
|
+
});
|
|
28
|
+
})
|
|
29
|
+
.finally(() => setLoading(false));
|
|
30
|
+
}, [open, inputValue, onSearchError, searchChoices]);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (!open) {
|
|
33
|
+
setOptions([]);
|
|
34
|
+
}
|
|
35
|
+
}, [open]);
|
|
36
|
+
return React.createElement(Autocomplete, { id: id, open: open, onOpen: () => setOpen(true), onClose: () => setOpen(false), isOptionEqualToValue: isOptionEqualToValue, getOptionLabel: getOptionLabel, options: options, loading: loading, filterOptions: (x) => x, inputValue: inputValue, onInputChange: (e, value) => setInputValue(value), renderInput: (params) => (React.createElement(PneTextField, { ...params, label: label, placeholder: placeholder, InputProps: {
|
|
37
|
+
...params.InputProps,
|
|
38
|
+
endAdornment: (React.createElement(React.Fragment, null,
|
|
39
|
+
loading ? React.createElement(CircularProgress, { color: "inherit", size: 20 }) : null,
|
|
40
|
+
params.InputProps.endAdornment)),
|
|
41
|
+
}, error: error })), sx: innerSx, size: size, ...rest });
|
|
42
|
+
};
|
|
43
|
+
export default PneAsyncAutocomplete;
|
|
44
|
+
//# sourceMappingURL=PneAsyncAutocomplete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PneAsyncAutocomplete.js","sourceRoot":"","sources":["../../../src/component/dropdown/PneAsyncAutocomplete.tsx"],"names":[],"mappings":"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"}
|