pne-ui 1.0.12 → 1.0.16

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.
Files changed (157) hide show
  1. package/cjs/common/dropdown.d.ts +6 -0
  2. package/cjs/common/dropdown.js +46 -0
  3. package/cjs/common/dropdown.js.map +1 -0
  4. package/cjs/common/type.d.ts +9 -0
  5. package/cjs/common/type.js +25 -0
  6. package/cjs/common/type.js.map +1 -0
  7. package/cjs/component/PneModal.d.ts +18 -0
  8. package/cjs/component/PneModal.js +77 -0
  9. package/cjs/component/PneModal.js.map +1 -0
  10. package/cjs/component/PneTextField.d.ts +3 -0
  11. package/cjs/component/PneTextField.js +14 -0
  12. package/cjs/component/PneTextField.js.map +1 -0
  13. package/cjs/component/dropdown/PneAsyncAutocomplete.d.ts +14 -0
  14. package/cjs/component/dropdown/PneAsyncAutocomplete.js +47 -0
  15. package/cjs/component/dropdown/PneAsyncAutocomplete.js.map +1 -0
  16. package/cjs/component/dropdown/PneAutocomplete.d.ts +12 -0
  17. package/cjs/component/dropdown/PneAutocomplete.js +19 -0
  18. package/cjs/component/dropdown/PneAutocomplete.js.map +1 -0
  19. package/cjs/component/dropdown/PneSelect.d.ts +13 -0
  20. package/cjs/component/dropdown/PneSelect.js +45 -0
  21. package/cjs/component/dropdown/PneSelect.js.map +1 -0
  22. package/cjs/component/table/AbstractHeaderTableCell.d.ts +4 -0
  23. package/cjs/component/table/AbstractHeaderTableCell.js +24 -0
  24. package/cjs/component/table/AbstractHeaderTableCell.js.map +1 -0
  25. package/cjs/component/table/AbstractTable.d.ts +41 -0
  26. package/cjs/component/table/AbstractTable.js +49 -0
  27. package/cjs/component/table/AbstractTable.js.map +1 -0
  28. package/cjs/component/table/AbstractTableCell.d.ts +4 -0
  29. package/cjs/component/table/AbstractTableCell.js +10 -0
  30. package/cjs/component/table/AbstractTableCell.js.map +1 -0
  31. package/cjs/component/table/PneFirstPageIcon.d.ts +6 -0
  32. package/cjs/component/table/PneFirstPageIcon.js +13 -0
  33. package/cjs/component/table/PneFirstPageIcon.js.map +1 -0
  34. package/cjs/component/table/PneHeaderTableCell.d.ts +4 -0
  35. package/cjs/component/table/PneHeaderTableCell.js +18 -0
  36. package/cjs/component/table/PneHeaderTableCell.js.map +1 -0
  37. package/cjs/component/table/PneLastPageIcon.d.ts +6 -0
  38. package/cjs/component/table/PneLastPageIcon.js +13 -0
  39. package/cjs/component/table/PneLastPageIcon.js.map +1 -0
  40. package/cjs/component/table/PneNextPageIcon.d.ts +6 -0
  41. package/cjs/component/table/PneNextPageIcon.js +13 -0
  42. package/cjs/component/table/PneNextPageIcon.js.map +1 -0
  43. package/cjs/component/table/PnePreviousPageIcon.d.ts +6 -0
  44. package/cjs/component/table/PnePreviousPageIcon.js +13 -0
  45. package/cjs/component/table/PnePreviousPageIcon.js.map +1 -0
  46. package/cjs/component/table/PneTable.d.ts +4 -0
  47. package/cjs/component/table/PneTable.js +24 -0
  48. package/cjs/component/table/PneTable.js.map +1 -0
  49. package/cjs/component/table/PneTableCell.d.ts +6 -0
  50. package/cjs/component/table/PneTableCell.js +24 -0
  51. package/cjs/component/table/PneTableCell.js.map +1 -0
  52. package/cjs/component/table/PneTablePagination.d.ts +3 -0
  53. package/cjs/component/table/PneTablePagination.js +25 -0
  54. package/cjs/component/table/PneTablePagination.js.map +1 -0
  55. package/cjs/component/table/PneTablePaginationActions.d.ts +11 -0
  56. package/cjs/component/table/PneTablePaginationActions.js +98 -0
  57. package/cjs/component/table/PneTablePaginationActions.js.map +1 -0
  58. package/cjs/component/table/PneTableRow.d.ts +7 -0
  59. package/cjs/component/table/PneTableRow.js +35 -0
  60. package/cjs/component/table/PneTableRow.js.map +1 -0
  61. package/cjs/component/table/PneTableSortLabel.d.ts +10 -0
  62. package/cjs/component/table/PneTableSortLabel.js +38 -0
  63. package/cjs/component/table/PneTableSortLabel.js.map +1 -0
  64. package/cjs/component/table/hooks.d.ts +27 -0
  65. package/cjs/component/table/hooks.js +115 -0
  66. package/cjs/component/table/hooks.js.map +1 -0
  67. package/cjs/component/table/type.d.ts +5 -0
  68. package/cjs/component/table/type.js +3 -0
  69. package/cjs/component/table/type.js.map +1 -0
  70. package/cjs/index.d.ts +10 -1
  71. package/cjs/index.js +19 -1
  72. package/cjs/index.js.map +1 -1
  73. package/cjs/paynet/schema.d.ts +24 -0
  74. package/cjs/paynet/schema.js +14 -0
  75. package/cjs/paynet/schema.js.map +1 -0
  76. package/cjs/paynet/type.d.ts +15 -0
  77. package/cjs/paynet/type.js +45 -0
  78. package/cjs/paynet/type.js.map +1 -0
  79. package/esm/common/dropdown.d.ts +6 -0
  80. package/esm/common/dropdown.js +41 -0
  81. package/esm/common/dropdown.js.map +1 -0
  82. package/esm/common/type.d.ts +9 -0
  83. package/esm/common/type.js +18 -0
  84. package/esm/common/type.js.map +1 -0
  85. package/esm/component/PneModal.d.ts +18 -0
  86. package/esm/component/PneModal.js +72 -0
  87. package/esm/component/PneModal.js.map +1 -0
  88. package/esm/component/PneTextField.d.ts +3 -0
  89. package/esm/component/PneTextField.js +11 -0
  90. package/esm/component/PneTextField.js.map +1 -0
  91. package/esm/component/dropdown/PneAsyncAutocomplete.d.ts +14 -0
  92. package/esm/component/dropdown/PneAsyncAutocomplete.js +44 -0
  93. package/esm/component/dropdown/PneAsyncAutocomplete.js.map +1 -0
  94. package/esm/component/dropdown/PneAutocomplete.d.ts +12 -0
  95. package/esm/component/dropdown/PneAutocomplete.js +16 -0
  96. package/esm/component/dropdown/PneAutocomplete.js.map +1 -0
  97. package/esm/component/dropdown/PneSelect.d.ts +13 -0
  98. package/esm/component/dropdown/PneSelect.js +42 -0
  99. package/esm/component/dropdown/PneSelect.js.map +1 -0
  100. package/esm/component/table/AbstractHeaderTableCell.d.ts +4 -0
  101. package/esm/component/table/AbstractHeaderTableCell.js +21 -0
  102. package/esm/component/table/AbstractHeaderTableCell.js.map +1 -0
  103. package/esm/component/table/AbstractTable.d.ts +41 -0
  104. package/esm/component/table/AbstractTable.js +46 -0
  105. package/esm/component/table/AbstractTable.js.map +1 -0
  106. package/esm/component/table/AbstractTableCell.d.ts +4 -0
  107. package/esm/component/table/AbstractTableCell.js +7 -0
  108. package/esm/component/table/AbstractTableCell.js.map +1 -0
  109. package/esm/component/table/PneFirstPageIcon.d.ts +6 -0
  110. package/esm/component/table/PneFirstPageIcon.js +10 -0
  111. package/esm/component/table/PneFirstPageIcon.js.map +1 -0
  112. package/esm/component/table/PneHeaderTableCell.d.ts +4 -0
  113. package/esm/component/table/PneHeaderTableCell.js +15 -0
  114. package/esm/component/table/PneHeaderTableCell.js.map +1 -0
  115. package/esm/component/table/PneLastPageIcon.d.ts +6 -0
  116. package/esm/component/table/PneLastPageIcon.js +10 -0
  117. package/esm/component/table/PneLastPageIcon.js.map +1 -0
  118. package/esm/component/table/PneNextPageIcon.d.ts +6 -0
  119. package/esm/component/table/PneNextPageIcon.js +10 -0
  120. package/esm/component/table/PneNextPageIcon.js.map +1 -0
  121. package/esm/component/table/PnePreviousPageIcon.d.ts +6 -0
  122. package/esm/component/table/PnePreviousPageIcon.js +10 -0
  123. package/esm/component/table/PnePreviousPageIcon.js.map +1 -0
  124. package/esm/component/table/PneTable.d.ts +4 -0
  125. package/esm/component/table/PneTable.js +21 -0
  126. package/esm/component/table/PneTable.js.map +1 -0
  127. package/esm/component/table/PneTableCell.d.ts +6 -0
  128. package/esm/component/table/PneTableCell.js +21 -0
  129. package/esm/component/table/PneTableCell.js.map +1 -0
  130. package/esm/component/table/PneTablePagination.d.ts +3 -0
  131. package/esm/component/table/PneTablePagination.js +23 -0
  132. package/esm/component/table/PneTablePagination.js.map +1 -0
  133. package/esm/component/table/PneTablePaginationActions.d.ts +11 -0
  134. package/esm/component/table/PneTablePaginationActions.js +95 -0
  135. package/esm/component/table/PneTablePaginationActions.js.map +1 -0
  136. package/esm/component/table/PneTableRow.d.ts +7 -0
  137. package/esm/component/table/PneTableRow.js +33 -0
  138. package/esm/component/table/PneTableRow.js.map +1 -0
  139. package/esm/component/table/PneTableSortLabel.d.ts +10 -0
  140. package/esm/component/table/PneTableSortLabel.js +35 -0
  141. package/esm/component/table/PneTableSortLabel.js.map +1 -0
  142. package/esm/component/table/hooks.d.ts +27 -0
  143. package/esm/component/table/hooks.js +111 -0
  144. package/esm/component/table/hooks.js.map +1 -0
  145. package/esm/component/table/type.d.ts +5 -0
  146. package/esm/component/table/type.js +2 -0
  147. package/esm/component/table/type.js.map +1 -0
  148. package/esm/index.d.ts +10 -1
  149. package/esm/index.js +10 -1
  150. package/esm/index.js.map +1 -1
  151. package/esm/paynet/schema.d.ts +24 -0
  152. package/esm/paynet/schema.js +11 -0
  153. package/esm/paynet/schema.js.map +1 -0
  154. package/esm/paynet/type.d.ts +15 -0
  155. package/esm/paynet/type.js +38 -0
  156. package/esm/paynet/type.js.map +1 -0
  157. package/package.json +17 -12
@@ -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,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dropDownSx = exports.isOptionEqualToValue = exports.getOptionLabel = void 0;
4
+ const type_1 = require("./type");
5
+ const type_2 = require("../paynet/type");
6
+ const getOptionLabel = (option) => {
7
+ if (typeof option === 'string') {
8
+ return option;
9
+ }
10
+ (0, type_1.assertObject)(option);
11
+ if ((0, type_2.isIAutoCompleteChoice)(option)) {
12
+ return option.displayName;
13
+ }
14
+ else if ((0, type_2.isAbstractEntity)(option)) {
15
+ return option.displayName;
16
+ }
17
+ (0, type_1.exhaustiveCheck)(option);
18
+ throw new TypeError('Incompatible types of option:\n'
19
+ + JSON.stringify(option, null, 4));
20
+ };
21
+ exports.getOptionLabel = getOptionLabel;
22
+ const isOptionEqualToValue = (option, value) => {
23
+ if (typeof option === 'string' && typeof value === 'string') {
24
+ return option === value;
25
+ }
26
+ (0, type_1.assertObject)(option);
27
+ (0, type_1.assertObject)(value);
28
+ if ((0, type_2.isIAutoCompleteChoice)(option) && (0, type_2.isIAutoCompleteChoice)(value)) {
29
+ return option.choiceId === value.choiceId;
30
+ }
31
+ else if ((0, type_2.isAbstractEntity)(option) && (0, type_2.isAbstractEntity)(value)) {
32
+ return option.id === value.id;
33
+ }
34
+ // TODO why it doesn't work?
35
+ // exhaustiveCheck(option, value)
36
+ throw new TypeError('Incompatible types of option and value:\n'
37
+ + JSON.stringify(option, null, 4) + '\n'
38
+ + JSON.stringify(value, null, 4));
39
+ };
40
+ exports.isOptionEqualToValue = isOptionEqualToValue;
41
+ exports.dropDownSx = {
42
+ '& .MuiButtonBase-root.MuiChip-root': {
43
+ maxWidth: 'calc(50% - 4px)',
44
+ },
45
+ };
46
+ //# sourceMappingURL=dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../src/common/dropdown.ts"],"names":[],"mappings":";;;AAAA,iCAGgB;AAEhB,yCAA2G;AAIpG,MAAM,cAAc,GAAG,CAC1B,MAAsD,EACxD,EAAE;IACA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,OAAO,MAAM,CAAA;KAChB;IAED,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAA;IACpB,IAAI,IAAA,4BAAqB,EAAC,MAAM,CAAC,EAAE;QAC/B,OAAO,MAAM,CAAC,WAAW,CAAA;KAC5B;SAAM,IAAI,IAAA,uBAAgB,EAAC,MAAM,CAAC,EAAE;QACjC,OAAO,MAAM,CAAC,WAAW,CAAA;KAC5B;IAED,IAAA,sBAAe,EAAC,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;AAnBY,QAAA,cAAc,kBAmB1B;AAEM,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,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAA;IACpB,IAAA,mBAAY,EAAC,KAAK,CAAC,CAAA;IACnB,IAAI,IAAA,4BAAqB,EAAC,MAAM,CAAC,IAAI,IAAA,4BAAqB,EAAC,KAAK,CAAC,EAAE;QAC/D,OAAO,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAA;KAC5C;SAAM,IAAI,IAAA,uBAAgB,EAAC,MAAM,CAAC,IAAI,IAAA,uBAAgB,EAAC,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;AApBY,QAAA,oBAAoB,wBAoBhC;AAEY,QAAA,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,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertObject = exports.isObject = exports.ensure = exports.exhaustiveCheck = void 0;
4
+ const exhaustiveCheck = (value) => {
5
+ return value;
6
+ };
7
+ exports.exhaustiveCheck = exhaustiveCheck;
8
+ const ensure = (argument, message = 'This value was promised to be there.') => {
9
+ if (argument === undefined || argument === null) {
10
+ throw new TypeError(message);
11
+ }
12
+ return argument;
13
+ };
14
+ exports.ensure = ensure;
15
+ const isObject = (value) => {
16
+ return typeof value === 'object' && value !== null;
17
+ };
18
+ exports.isObject = isObject;
19
+ function assertObject(value) {
20
+ if (typeof value !== 'object' || value === null) {
21
+ throw new Error('Not an object: ' + value);
22
+ }
23
+ }
24
+ exports.assertObject = assertObject;
25
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/common/type.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,CAAC,KAAsB,EAAE,EAAE;IACtD,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAEM,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;AANY,QAAA,MAAM,UAMlB;AAEM,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC,CAAA;AAFY,QAAA,QAAQ,YAEpB;AAED,SAAgB,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;AAJD,oCAIC"}
@@ -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,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useModal = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const Box_1 = tslib_1.__importDefault(require("@mui/material/Box"));
7
+ const IconButton_1 = tslib_1.__importDefault(require("@mui/material/IconButton"));
8
+ const Modal_1 = tslib_1.__importDefault(require("@mui/material/Modal"));
9
+ const Typography_1 = tslib_1.__importDefault(require("@mui/material/Typography"));
10
+ const styles_1 = require("@mui/material/styles");
11
+ const Close_1 = tslib_1.__importDefault(require("@mui/icons-material/Close"));
12
+ const PneModal = (props) => {
13
+ const { open, onClose, containerSx = {}, title, className, children, } = props;
14
+ return react_1.default.createElement(Modal_1.default, { open: open, onClose: onClose, "aria-labelledby": 'modal-title' },
15
+ react_1.default.createElement(Container, { className: className, sx: containerSx },
16
+ react_1.default.createElement(Header, null,
17
+ react_1.default.createElement("div", null,
18
+ react_1.default.createElement(Typography_1.default, { sx: {
19
+ padding: '0',
20
+ fontWeight: '700',
21
+ fontSize: '18px',
22
+ lineHeight: '24px',
23
+ }, component: 'h3', id: 'modal-title' }, title),
24
+ props.subtitle && (react_1.default.createElement(Typography_1.default, { sx: {
25
+ padding: '0',
26
+ fontWeight: '400',
27
+ fontSize: '12px',
28
+ lineHeight: '12px',
29
+ letterSpacing: '0.15px',
30
+ }, id: 'modal-subtitle' }, props.subtitle))),
31
+ react_1.default.createElement(IconButton_1.default, { sx: {
32
+ width: '40px',
33
+ height: '40px',
34
+ background: '#F1F5FA',
35
+ borderRadius: '4px',
36
+ }, onClick: onClose },
37
+ react_1.default.createElement(Close_1.default, { fontSize: 'small' }))),
38
+ react_1.default.createElement(Body, null, children)));
39
+ };
40
+ exports.default = PneModal;
41
+ const Container = (0, styles_1.styled)(Box_1.default) `
42
+ position: absolute;
43
+ top: 50%;
44
+ left: 50%;
45
+ transform: translate(-50%, -50%);
46
+ min-width: 400px;
47
+ background: #fff;
48
+ border: none;
49
+ border-radius: 4px;
50
+ max-height: 98%;
51
+ overflow-y: auto;
52
+ 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);
53
+ `;
54
+ const Header = (0, styles_1.styled)(Box_1.default) `
55
+ display: flex;
56
+ justify-content: space-between;
57
+ align-items: center;
58
+ padding: 16px 24px;
59
+ border-bottom: 1px solid #F1F5FA;
60
+ gap: 16px;
61
+ `;
62
+ const Body = (0, styles_1.styled)(Box_1.default) `
63
+ padding: 16px 24px;
64
+ `;
65
+ const useModal = () => {
66
+ const [open, setOpen] = react_1.default.useState(false);
67
+ const handleOpen = () => setOpen(true);
68
+ const handleClose = () => setOpen(false);
69
+ return {
70
+ open,
71
+ setOpen,
72
+ handleOpen,
73
+ handleClose
74
+ };
75
+ };
76
+ exports.useModal = useModal;
77
+ //# sourceMappingURL=PneModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PneModal.js","sourceRoot":"","sources":["../../src/component/PneModal.tsx"],"names":[],"mappings":";;;;AAAA,0DAAsD;AACtD,oEAAoC;AACpC,kFAAkD;AAClD,wEAAwC;AACxC,kFAAkD;AAElD,iDAA4C;AAC5C,8EAAkD;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,8BAAC,eAAK,IACT,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,qBACA,aAAa;QAE7B,8BAAC,SAAS,IAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW;YAC5C,8BAAC,MAAM;gBACH;oBACI,8BAAC,oBAAU,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,8BAAC,oBAAU,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,8BAAC,oBAAU,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,8BAAC,eAAS,IAAC,QAAQ,EAAE,OAAO,GAAG,CACtB,CACR;YACT,8BAAC,IAAI,QACA,QAAQ,CACN,CACC,CACR,CAAA;AACZ,CAAC,CAAA;AAED,kBAAe,QAAQ,CAAA;AAEvB,MAAM,SAAS,GAAG,IAAA,eAAM,EAAC,aAAG,CAAC,CAAA;;;;;;;;;;;;CAY5B,CAAC;AAEF,MAAM,MAAM,GAAG,IAAA,eAAM,EAAC,aAAG,CAAC,CAAA;;;;;;;CAOzB,CAAC;AAEF,MAAM,IAAI,GAAG,IAAA,eAAM,EAAC,aAAG,CAAC,CAAA;;CAEvB,CAAC;AAEK,MAAM,QAAQ,GAAG,GAKtB,EAAE;IACA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,eAAK,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;AAhBY,QAAA,QAAQ,YAgBpB"}
@@ -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,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const material_1 = require("@mui/material");
6
+ const PneTextField = (0, react_1.forwardRef)((props, ref) => {
7
+ const { sx, size = 'small', ...rest } = props;
8
+ const _sx = [
9
+ ...(Array.isArray(sx) ? sx : [sx])
10
+ ];
11
+ return react_1.default.createElement(material_1.TextField, { size: size, sx: _sx, ref: ref, ...rest });
12
+ });
13
+ exports.default = PneTextField;
14
+ //# sourceMappingURL=PneTextField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PneTextField.js","sourceRoot":"","sources":["../../src/component/PneTextField.tsx"],"names":[],"mappings":";;;AAAA,uDAAwC;AACxC,4CAAiE;AAEjE,MAAM,YAAY,GAAG,IAAA,kBAAU,EAAC,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,8BAAC,oBAAS,IAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAM,IAAI,GAAG,CAAA;AAChE,CAAC,CAAC,CAAC;AAEH,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { AutocompleteProps } from '@mui/material';
3
+ import { PneDropdownChoice } from '../../common/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,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const material_1 = require("@mui/material");
6
+ const dropdown_1 = require("../../common/dropdown");
7
+ const index_1 = require("../../index");
8
+ const PneAsyncAutocomplete = (props) => {
9
+ const { searchChoices, label, size = 'small', error = false, sx, placeholder, onSearchError, ...rest } = props;
10
+ const innerSx = [
11
+ dropdown_1.dropDownSx,
12
+ ...(Array.isArray(sx) ? sx : [sx])
13
+ ];
14
+ const [open, setOpen] = (0, react_1.useState)(false);
15
+ const [options, setOptions] = (0, react_1.useState)([]);
16
+ const [loading, setLoading] = (0, react_1.useState)(false);
17
+ const [inputValue, setInputValue] = (0, react_1.useState)('');
18
+ const id = (0, react_1.useId)();
19
+ (0, react_1.useEffect)(() => {
20
+ if (!open) {
21
+ return;
22
+ }
23
+ setLoading(true);
24
+ searchChoices({ searchString: inputValue })
25
+ .then(setOptions)
26
+ .catch(reason => {
27
+ Promise.resolve(reason)
28
+ .then(value => {
29
+ onSearchError ? onSearchError(value) : console.error(value);
30
+ });
31
+ })
32
+ .finally(() => setLoading(false));
33
+ }, [open, inputValue, onSearchError, searchChoices]);
34
+ (0, react_1.useEffect)(() => {
35
+ if (!open) {
36
+ setOptions([]);
37
+ }
38
+ }, [open]);
39
+ return react_1.default.createElement(material_1.Autocomplete, { id: id, open: open, onOpen: () => setOpen(true), onClose: () => setOpen(false), isOptionEqualToValue: dropdown_1.isOptionEqualToValue, getOptionLabel: dropdown_1.getOptionLabel, options: options, loading: loading, filterOptions: (x) => x, inputValue: inputValue, onInputChange: (e, value) => setInputValue(value), renderInput: (params) => (react_1.default.createElement(index_1.PneTextField, { ...params, label: label, placeholder: placeholder, InputProps: {
40
+ ...params.InputProps,
41
+ endAdornment: (react_1.default.createElement(react_1.default.Fragment, null,
42
+ loading ? react_1.default.createElement(material_1.CircularProgress, { color: "inherit", size: 20 }) : null,
43
+ params.InputProps.endAdornment)),
44
+ }, error: error })), sx: innerSx, size: size, ...rest });
45
+ };
46
+ exports.default = PneAsyncAutocomplete;
47
+ //# 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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"}
@@ -0,0 +1,12 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { AutocompleteProps } from '@mui/material';
3
+ import { PneDropdownChoice } from '../../common/dropdown';
4
+ import { TextFieldVariants } from '@mui/material/TextField/TextField';
5
+ 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'> {
6
+ label?: ReactNode;
7
+ variant?: TextFieldVariants;
8
+ error?: boolean;
9
+ placeholder?: string;
10
+ }
11
+ declare const PneAutocomplete: <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;
12
+ export default PneAutocomplete;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const material_1 = require("@mui/material");
6
+ const dropdown_1 = require("../../common/dropdown");
7
+ const index_1 = require("../../index");
8
+ const PneAutocomplete = (props) => {
9
+ const { label, variant, size = 'small', error = false, sx, placeholder, ...rest } = props;
10
+ const innerSx = [
11
+ dropdown_1.dropDownSx,
12
+ ...(Array.isArray(sx) ? sx : [sx])
13
+ ];
14
+ return react_1.default.createElement(material_1.Autocomplete, { isOptionEqualToValue: dropdown_1.isOptionEqualToValue, getOptionLabel: dropdown_1.getOptionLabel, renderInput: (params) => {
15
+ return react_1.default.createElement(index_1.PneTextField, { ...params, placeholder: placeholder, label: label, variant: variant, error: error });
16
+ }, size: size, sx: innerSx, ...rest });
17
+ };
18
+ exports.default = PneAutocomplete;
19
+ //# sourceMappingURL=PneAutocomplete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PneAutocomplete.js","sourceRoot":"","sources":["../../../src/component/dropdown/PneAutocomplete.tsx"],"names":[],"mappings":";;;AAAA,0DAAuC;AACvC,4CAAuE;AACvE,oDAA0G;AAE1G,uCAAyC;AAczC,MAAM,eAAe,GAAG,CAKtB,KAKD,EAAE,EAAE;IAED,MAAM,EACF,KAAK,EACL,OAAO,EACP,IAAI,GAAG,OAAO,EACd,KAAK,GAAG,KAAK,EACb,EAAE,EACF,WAAW,EACX,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,OAAO,GAAY;QACrB,qBAAU;QACV,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IAED,OAAO,8BAAC,uBAAY,IAChB,oBAAoB,EAAE,+BAAoB,EAC1C,cAAc,EAAE,yBAAc,EAC9B,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;YACpB,OAAO,8BAAC,oBAAY,OACZ,MAAM,EACV,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACd,CAAA;QACN,CAAC,EACD,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,OAAO,KACP,IAAI,GACV,CAAA;AACN,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
@@ -0,0 +1,13 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { SelectProps, SelectVariants } from '@mui/material';
3
+ import { PneDropdownChoice } from '../../common/dropdown';
4
+ import { SelectOption } from '../../common/type';
5
+ export interface IProps<T extends PneDropdownChoice> extends Omit<SelectProps<T>, 'children' | 'onChange' | 'variant'> {
6
+ options: readonly T[];
7
+ onChange: (option: T) => void;
8
+ getOptionLabel?: (option: SelectOption) => ReactNode;
9
+ variant?: SelectVariants;
10
+ disableMenuItem?: (option: SelectOption) => boolean;
11
+ }
12
+ declare const PneSelect: React.ForwardRefExoticComponent<Omit<IProps<PneDropdownChoice>, "ref"> & React.RefAttributes<HTMLSelectElement>>;
13
+ export default PneSelect;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const material_1 = require("@mui/material");
6
+ const type_1 = require("../../common/type");
7
+ const type_2 = require("../../paynet/type");
8
+ const PneSelect = (0, react_1.forwardRef)((props, ref) => {
9
+ const { options, onChange, size = 'small', getOptionLabel = createDefaultOptionLabel, variant = 'outlined', disableMenuItem, ...rest } = props;
10
+ const handleChange = (event) => {
11
+ const value = event.target.value;
12
+ onChange((0, type_1.ensure)(options.find(opt => mapChoiceToSelectOption(opt).value === value)));
13
+ };
14
+ const optionsPresent = options?.length > 0;
15
+ return react_1.default.createElement(material_1.Select, { ref: ref, onChange: handleChange, size: size, variant: variant, ...rest }, optionsPresent ? options.map(mapChoiceToSelectOption).map(option => react_1.default.createElement(material_1.MenuItem, { disabled: disableMenuItem ? disableMenuItem(option) : false, key: option.value, value: option.value }, getOptionLabel(option))) : null);
16
+ });
17
+ exports.default = PneSelect;
18
+ const createDefaultOptionLabel = (option) => {
19
+ return option.label;
20
+ };
21
+ const mapChoiceToSelectOption = (choice) => {
22
+ if (typeof choice === 'string') {
23
+ return {
24
+ value: choice,
25
+ label: choice,
26
+ };
27
+ }
28
+ (0, type_1.assertObject)(choice);
29
+ if ((0, type_2.isIAutoCompleteChoice)(choice)) {
30
+ return {
31
+ value: choice.choiceId,
32
+ label: choice.displayName,
33
+ };
34
+ }
35
+ else if ((0, type_2.isAbstractEntity)(choice)) {
36
+ return {
37
+ value: choice.id,
38
+ label: choice.displayName,
39
+ };
40
+ }
41
+ (0, type_1.exhaustiveCheck)(choice);
42
+ throw new TypeError('Incompatible types of select option:\n'
43
+ + JSON.stringify(choice, null, 4));
44
+ };
45
+ //# sourceMappingURL=PneSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PneSelect.js","sourceRoot":"","sources":["../../../src/component/dropdown/PneSelect.tsx"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,4CAA+F;AAE/F,4CAK2B;AAC3B,4CAA0E;AAW1E,MAAM,SAAS,GAAG,IAAA,kBAAU,EAAC,CACzB,KAAgB,EAChB,GAAiC,EACnC,EAAE;IACA,MAAM,EACF,OAAO,EACP,QAAQ,EACR,IAAI,GAAG,OAAO,EACd,cAAc,GAAG,wBAAwB,EACzC,OAAO,GAAG,UAAU,EACpB,eAAe,EACf,GAAG,IAAI,EACV,GAAG,KAAK,CAAA;IAET,MAAM,YAAY,GAAG,CAAC,KAA2B,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;QAEhC,QAAQ,CAAC,IAAA,aAAM,EAAC,OAAO,CAAC,IAAI,CACxB,GAAG,CAAC,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CACtD,CAAC,CAAC,CAAA;IACP,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,OAAO,EAAE,MAAM,GAAG,CAAC,CAAA;IAE1C,OAAO,8BAAC,iBAAM,IAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAM,IAAI,IAClF,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAChE,8BAAC,mBAAQ,IACL,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAC3D,GAAG,EAAE,MAAM,CAAC,KAAK,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,IAElB,cAAc,CAAC,MAAM,CAAC,CAChB,CAAC,CAAC,CAAC,CAAC,IAAI,CAClB,CAAA;AACb,CAAC,CAAC,CAAA;AAEF,kBAAe,SAAS,CAAA;AAExB,MAAM,wBAAwB,GAAG,CAAC,MAAoB,EAAa,EAAE;IACjE,OAAO,MAAM,CAAC,KAAK,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAA8B,MAAS,EAAgB,EAAE;IACrF,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QAC5B,OAAO;YACH,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM;SAChB,CAAA;KACJ;IAED,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAA;IACpB,IAAI,IAAA,4BAAqB,EAAC,MAAM,CAAC,EAAE;QAC/B,OAAO;YACH,KAAK,EAAE,MAAM,CAAC,QAAQ;YACtB,KAAK,EAAE,MAAM,CAAC,WAAW;SAC5B,CAAA;KACJ;SAAM,IAAI,IAAA,uBAAgB,EAAC,MAAM,CAAC,EAAE;QACjC,OAAO;YACH,KAAK,EAAE,MAAM,CAAC,EAAE;YAChB,KAAK,EAAE,MAAM,CAAC,WAAW;SAC5B,CAAA;KACJ;IAED,IAAA,sBAAe,EAAC,MAAM,CAAC,CAAA;IAEvB,MAAM,IAAI,SAAS,CAAC,wCAAwC;UACtD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CACpC,CAAA;AACL,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { TableCellProps } from '@mui/material';
3
+ declare const AbstractHeaderTableCell: (props: TableCellProps) => React.JSX.Element;
4
+ export default AbstractHeaderTableCell;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const material_1 = require("@mui/material");
6
+ const AbstractHeaderTableCell = (props) => {
7
+ const { sx, children, ...rest } = props;
8
+ const _sx = [
9
+ {
10
+ fontSize: '12px',
11
+ fontStyle: 'normal',
12
+ fontWeight: 'bold',
13
+ lineHeight: '12px',
14
+ textTransform: 'uppercase',
15
+ color: '#809EAE',
16
+ padding: '12px 19px',
17
+ borderBottom: '1px solid #b7cdda'
18
+ },
19
+ ...(Array.isArray(sx) ? sx : [sx])
20
+ ];
21
+ return react_1.default.createElement(material_1.TableCell, { sx: _sx, ...rest }, children);
22
+ };
23
+ exports.default = AbstractHeaderTableCell;
24
+ //# sourceMappingURL=AbstractHeaderTableCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractHeaderTableCell.js","sourceRoot":"","sources":["../../../src/component/table/AbstractHeaderTableCell.tsx"],"names":[],"mappings":";;;AAAA,0DAA0B;AAC1B,4CAAiE;AAEjE,MAAM,uBAAuB,GAAG,CAAC,KAAqB,EAAE,EAAE;IACtD,MAAM,EACF,EAAE,EACF,QAAQ,EACR,GAAG,IAAI,EACV,GAAG,KAAK,CAAC;IAEV,MAAM,GAAG,GAAY;QACjB;YACI,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,aAAa,EAAE,WAAW;YAC1B,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,mBAAmB;SACpC;QACD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IAED,OAAO,8BAAC,oBAAS,IAAC,EAAE,EAAE,GAAG,KAAM,IAAI,IAAG,QAAQ,CAAa,CAAA;AAC/D,CAAC,CAAA;AAED,kBAAe,uBAAuB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { SxProps } from '@mui/material';
3
+ import { Order } from "../../common/type";
4
+ export type RowsPerPageOption = number;
5
+ export interface IPaginatorProps {
6
+ rowsPerPageOptions: RowsPerPageOption[];
7
+ rowsPerPage: number;
8
+ page: number;
9
+ onPageChange: (event: React.MouseEvent<HTMLButtonElement> | null, page: number) => void;
10
+ onPageSizeChange: (pageSize: number) => void;
11
+ hasNext: boolean;
12
+ displayedRowsLabel: string;
13
+ activeActionSx?: SxProps;
14
+ }
15
+ export type TableProps<D> = {
16
+ data: D[];
17
+ createRow: (rowData: D, index: number, arr: D[]) => React.ReactElement;
18
+ createTableHeader: TableCreateHeaderType;
19
+ sortOptions?: ITableSortOptions;
20
+ lastRow?: React.ReactElement;
21
+ paginator?: IPaginatorProps;
22
+ loading?: boolean;
23
+ stickyHeader?: boolean;
24
+ showNothingIsFoundRow?: boolean;
25
+ tableSx?: SxProps;
26
+ boxSx?: SxProps;
27
+ noRowsMessage?: string;
28
+ };
29
+ export interface ITableSortOptions {
30
+ order: Order;
31
+ setOrder: (order: Order) => void;
32
+ sortIndex: number;
33
+ setSortIndex: (index: number) => void;
34
+ onSortChange: (sortIndex: number, sortOrder: Order) => void;
35
+ }
36
+ export interface ITableCreateHeaderParams {
37
+ sortOptions?: ITableSortOptions;
38
+ }
39
+ export type TableCreateHeaderType = (headerParams: ITableCreateHeaderParams) => React.ReactElement;
40
+ declare const AbstractTable: <D>(props: React.PropsWithChildren<TableProps<D>>) => React.JSX.Element;
41
+ export default AbstractTable;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const Table_1 = tslib_1.__importDefault(require("@mui/material/Table"));
6
+ const TableBody_1 = tslib_1.__importDefault(require("@mui/material/TableBody"));
7
+ const TableContainer_1 = tslib_1.__importDefault(require("@mui/material/TableContainer"));
8
+ const TableHead_1 = tslib_1.__importDefault(require("@mui/material/TableHead"));
9
+ const Box_1 = tslib_1.__importDefault(require("@mui/material/Box"));
10
+ const PneTableRow_1 = tslib_1.__importDefault(require("./PneTableRow"));
11
+ const PneTableCell_1 = tslib_1.__importDefault(require("./PneTableCell"));
12
+ const PneTablePagination_1 = tslib_1.__importDefault(require("./PneTablePagination"));
13
+ const PneTablePaginationActions_1 = tslib_1.__importDefault(require("./PneTablePaginationActions"));
14
+ const AbstractTable = (props) => {
15
+ const { data, createTableHeader, sortOptions, createRow, lastRow = null, paginator, stickyHeader = false, showNothingIsFoundRow = true, tableSx = {}, boxSx = {}, noRowsMessage, } = props;
16
+ const containerRef = (0, react_1.useRef)(null);
17
+ const [nothingRowColSpan, setNothingRowColSpan] = (0, react_1.useState)(100);
18
+ const visibleRows = react_1.default.useMemo(() => data, [data, sortOptions?.order, sortOptions?.sortIndex]);
19
+ (0, react_1.useEffect)(() => {
20
+ if (visibleRows.length === 0 && showNothingIsFoundRow) {
21
+ if (containerRef?.current) {
22
+ const header = containerRef.current.querySelector('table thead tr');
23
+ if (header) {
24
+ setNothingRowColSpan(header.childElementCount);
25
+ }
26
+ }
27
+ }
28
+ }, [visibleRows.length, showNothingIsFoundRow]);
29
+ return react_1.default.createElement(Box_1.default, { sx: { ...boxSx }, ref: containerRef },
30
+ react_1.default.createElement(TableContainer_1.default, null,
31
+ react_1.default.createElement(Table_1.default, { stickyHeader: stickyHeader, sx: { ...tableSx } },
32
+ react_1.default.createElement(TableHead_1.default, null, createTableHeader({
33
+ sortOptions: sortOptions
34
+ })),
35
+ react_1.default.createElement(TableBody_1.default, null,
36
+ visibleRows.map(createRow),
37
+ visibleRows.length === 0 && showNothingIsFoundRow && (react_1.default.createElement(PneTableRow_1.default, { hover: false },
38
+ react_1.default.createElement(PneTableCell_1.default, { colSpan: nothingRowColSpan }, noRowsMessage || 'No rows'))),
39
+ lastRow))),
40
+ paginator && (react_1.default.createElement(PneTablePagination_1.default, { count: -1,
41
+ /*
42
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
43
+ // @ts-ignore */
44
+ component: 'div', labelDisplayedRows: () => null, labelRowsPerPage: null, nextIconButtonProps: {
45
+ disabled: !paginator.hasNext,
46
+ }, rowsPerPageOptions: paginator.rowsPerPageOptions, rowsPerPage: paginator.rowsPerPage, page: paginator.page, onPageChange: paginator.onPageChange, ActionsComponent: (props) => react_1.default.createElement(PneTablePaginationActions_1.default, { ...props, paginator: paginator }) })));
47
+ };
48
+ exports.default = AbstractTable;
49
+ //# sourceMappingURL=AbstractTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractTable.js","sourceRoot":"","sources":["../../../src/component/table/AbstractTable.tsx"],"names":[],"mappings":";;;AAAA,uDAAyD;AACzD,wEAAwC;AACxC,gFAAgD;AAChD,0FAA0D;AAC1D,gFAAgD;AAChD,oEAAoC;AAEpC,wEAAwC;AACxC,0EAA0C;AAC1C,sFAAsD;AACtD,oGAAoE;AAoDpE,MAAM,aAAa,GAAG,CAClB,KAA6C,EAC/C,EAAE;IACA,MAAM,EACF,IAAI,EACJ,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,OAAO,GAAG,IAAI,EACd,SAAS,EACT,YAAY,GAAG,KAAK,EACpB,qBAAqB,GAAG,IAAI,EAC5B,OAAO,GAAG,EAAE,EACZ,KAAK,GAAG,EAAE,EACV,aAAa,GAChB,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,IAAA,cAAM,EAAc,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAC7B,GAAG,EAAE,CAAC,IAAI,EACV,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CACrD,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,EAAE;YACnD,IAAI,YAAY,EAAE,OAAO,EAAE;gBACvB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;gBACpE,IAAI,MAAM,EAAE;oBACR,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;iBAClD;aACJ;SACJ;IACL,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEhD,OAAO,8BAAC,aAAG,IAAC,EAAE,EAAE,EAAC,GAAG,KAAK,EAAC,EAAE,GAAG,EAAE,YAAY;QACzC,8BAAC,wBAAc;YACX,8BAAC,eAAK,IAAC,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,EAAC,GAAG,OAAO,EAAC;gBAC/C,8BAAC,mBAAS,QACL,iBAAiB,CAAC;oBACf,WAAW,EAAE,WAAW;iBAC3B,CAAC,CACM;gBACZ,8BAAC,mBAAS;oBACL,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;oBAC1B,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,IAAI,CAClD,8BAAC,qBAAW,IAAC,KAAK,EAAE,KAAK;wBACrB,8BAAC,sBAAY,IAAC,OAAO,EAAE,iBAAiB,IACnC,aAAa,IAAI,SAAS,CAChB,CACL,CACjB;oBACA,OAAO,CACA,CACR,CACK;QAChB,SAAS,IAAI,CACV,8BAAC,4BAAkB,IACf,KAAK,EAAE,CAAC,CAAC;YACT;;4BAEgB;YAChB,SAAS,EAAE,KAAK,EAChB,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,EAC9B,gBAAgB,EAAE,IAAI,EACtB,mBAAmB,EAAE;gBACjB,QAAQ,EAAE,CAAC,SAAS,CAAC,OAAO;aAC/B,EACD,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,EAChD,WAAW,EAAE,SAAS,CAAC,WAAW,EAClC,IAAI,EAAE,SAAS,CAAC,IAAI,EACpB,YAAY,EAAE,SAAS,CAAC,YAAY,EACpC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,8BAAC,mCAAyB,OAC/C,KAAK,EACT,SAAS,EAAE,SAAS,GACtB,GACJ,CACL,CACC,CAAA;AACV,CAAC,CAAA;AAED,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { TableCellProps } from '@mui/material';
3
+ declare const AbstractTableCell: (props: TableCellProps) => React.JSX.Element;
4
+ export default AbstractTableCell;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const material_1 = require("@mui/material");
6
+ const AbstractTableCell = (props) => {
7
+ return react_1.default.createElement(material_1.TableCell, { ...props });
8
+ };
9
+ exports.default = AbstractTableCell;
10
+ //# sourceMappingURL=AbstractTableCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractTableCell.js","sourceRoot":"","sources":["../../../src/component/table/AbstractTableCell.tsx"],"names":[],"mappings":";;;AAAA,0DAA0B;AAC1B,4CAAwD;AAExD,MAAM,iBAAiB,GAAG,CAAC,KAAqB,EAAE,EAAE;IAChD,OAAO,8BAAC,oBAAS,OAAK,KAAK,GAAG,CAAA;AAClC,CAAC,CAAA;AAED,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ interface IProps {
3
+ disabled: boolean;
4
+ }
5
+ declare const PneFirstPageIcon: (props: IProps) => React.JSX.Element;
6
+ export default PneFirstPageIcon;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const PneFirstPageIcon = (props) => {
6
+ const { disabled } = props;
7
+ const color = disabled ? '#dae5ed' : '#809EAE';
8
+ return (react_1.default.createElement("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
9
+ react_1.default.createElement("path", { d: "M7.33333 11.3346L4 8.0013L7.33333 4.66797", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }),
10
+ react_1.default.createElement("path", { d: "M12 11.3346L8.66666 8.0013L12 4.66797", stroke: color, strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })));
11
+ };
12
+ exports.default = PneFirstPageIcon;
13
+ //# sourceMappingURL=PneFirstPageIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PneFirstPageIcon.js","sourceRoot":"","sources":["../../../src/component/table/PneFirstPageIcon.tsx"],"names":[],"mappings":";;;AAAA,0DAA0B;AAM1B,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;IACvC,MAAM,EACF,QAAQ,EACX,GAAG,KAAK,CAAC;IAEV,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/C,OAAO,CACH,uCAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;QAC1F,wCAAM,CAAC,EAAC,2CAA2C,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAE;QACjI,wCAAM,CAAC,EAAC,uCAAuC,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAE,CAC3H,CACT,CAAC;AACN,CAAC,CAAA;AAED,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { TableCellProps } from '@mui/material';
3
+ declare const PneHeaderTableCell: (props: TableCellProps) => React.JSX.Element;
4
+ export default PneHeaderTableCell;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importDefault(require("react"));
5
+ const AbstractHeaderTableCell_1 = tslib_1.__importDefault(require("./AbstractHeaderTableCell"));
6
+ const PneHeaderTableCell = (props) => {
7
+ const { sx, children, ...rest } = props;
8
+ const _sx = [
9
+ {
10
+ borderBottom: 'none',
11
+ background: 'transparent'
12
+ },
13
+ ...(Array.isArray(sx) ? sx : [sx])
14
+ ];
15
+ return react_1.default.createElement(AbstractHeaderTableCell_1.default, { sx: _sx, ...rest }, children);
16
+ };
17
+ exports.default = PneHeaderTableCell;
18
+ //# sourceMappingURL=PneHeaderTableCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PneHeaderTableCell.js","sourceRoot":"","sources":["../../../src/component/table/PneHeaderTableCell.tsx"],"names":[],"mappings":";;;AAAA,0DAA0B;AAE1B,gGAAgE;AAGhE,MAAM,kBAAkB,GAAG,CAAC,KAAqB,EAAE,EAAE;IACjD,MAAM,EACF,EAAE,EACF,QAAQ,EACR,GAAG,IAAI,EACV,GAAG,KAAK,CAAC;IAEV,MAAM,GAAG,GAAY;QACjB;YACI,YAAY,EAAE,MAAM;YACpB,UAAU,EAAE,aAAa;SAC5B;QACD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACrC,CAAA;IAED,OAAO,8BAAC,iCAAuB,IAAC,EAAE,EAAE,GAAG,KAAM,IAAI,IAAG,QAAQ,CAA2B,CAAA;AAC3F,CAAC,CAAA;AAED,kBAAe,kBAAkB,CAAC"}