@tipp/ui 1.0.46 → 1.0.47

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 (71) hide show
  1. package/dist/atoms/drawer.js +2 -2
  2. package/dist/atoms/field-error-wrapper.js +2 -2
  3. package/dist/atoms/index.js +54 -54
  4. package/dist/atoms/pagination.js +3 -3
  5. package/dist/charts/index.js +3 -3
  6. package/dist/chunk-27COZ7JE.js +123 -0
  7. package/dist/chunk-27COZ7JE.js.map +1 -0
  8. package/dist/chunk-3HCVB462.js +123 -0
  9. package/dist/chunk-3HCVB462.js.map +1 -0
  10. package/dist/chunk-3N6DZ5K5.js +72 -0
  11. package/dist/chunk-3N6DZ5K5.js.map +1 -0
  12. package/dist/chunk-7TKVFGWB.js +72 -0
  13. package/dist/chunk-7TKVFGWB.js.map +1 -0
  14. package/dist/chunk-ANDMT45Z.js +123 -0
  15. package/dist/chunk-ANDMT45Z.js.map +1 -0
  16. package/dist/chunk-AUICOKM7.js +123 -0
  17. package/dist/chunk-AUICOKM7.js.map +1 -0
  18. package/dist/chunk-BZTI5I3W.js +123 -0
  19. package/dist/chunk-BZTI5I3W.js.map +1 -0
  20. package/dist/chunk-GSYJMQZP.js +123 -0
  21. package/dist/chunk-GSYJMQZP.js.map +1 -0
  22. package/dist/chunk-HMHRKLU7.js +123 -0
  23. package/dist/chunk-HMHRKLU7.js.map +1 -0
  24. package/dist/chunk-IQ7JV3NX.js +72 -0
  25. package/dist/chunk-IQ7JV3NX.js.map +1 -0
  26. package/dist/chunk-IUT2HS6J.js +130 -0
  27. package/dist/chunk-IUT2HS6J.js.map +1 -0
  28. package/dist/chunk-JEQAAME2.js +123 -0
  29. package/dist/chunk-JEQAAME2.js.map +1 -0
  30. package/dist/chunk-R6BKHIPF.js +123 -0
  31. package/dist/chunk-R6BKHIPF.js.map +1 -0
  32. package/dist/chunk-RWVITRNU.js +123 -0
  33. package/dist/chunk-RWVITRNU.js.map +1 -0
  34. package/dist/chunk-TVXYMNVM.js +123 -0
  35. package/dist/chunk-TVXYMNVM.js.map +1 -0
  36. package/dist/chunk-UXJHGE4F.js +124 -0
  37. package/dist/chunk-UXJHGE4F.js.map +1 -0
  38. package/dist/chunk-VEUQBCIM.js +72 -0
  39. package/dist/chunk-VEUQBCIM.js.map +1 -0
  40. package/dist/chunk-W26QXSFH.js +124 -0
  41. package/dist/chunk-W26QXSFH.js.map +1 -0
  42. package/dist/chunk-WEY4HIWE.js +123 -0
  43. package/dist/chunk-WEY4HIWE.js.map +1 -0
  44. package/dist/chunk-ZNZU4IY4.js +123 -0
  45. package/dist/chunk-ZNZU4IY4.js.map +1 -0
  46. package/dist/index.cjs +11 -5
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.css +22 -9
  49. package/dist/index.css.map +1 -1
  50. package/dist/index.js +71 -71
  51. package/dist/molecules/date-picker/index.js +2 -2
  52. package/dist/molecules/expand-table/index.cjs +11 -5
  53. package/dist/molecules/expand-table/index.cjs.map +1 -1
  54. package/dist/molecules/expand-table/index.js +27 -27
  55. package/dist/molecules/expand-table/row.cjs +6 -4
  56. package/dist/molecules/expand-table/row.cjs.map +1 -1
  57. package/dist/molecules/expand-table/row.d.cts +1 -0
  58. package/dist/molecules/expand-table/row.d.ts +1 -0
  59. package/dist/molecules/expand-table/row.js +24 -24
  60. package/dist/molecules/index.cjs +11 -5
  61. package/dist/molecules/index.cjs.map +1 -1
  62. package/dist/molecules/index.js +29 -29
  63. package/dist/molecules/navigation.js +24 -24
  64. package/dist/types/react-table.d.cjs.map +1 -1
  65. package/dist/types/react-table.d.d.cts +2 -0
  66. package/dist/types/react-table.d.d.ts +2 -0
  67. package/dist/types/react-table.d.js.map +1 -1
  68. package/package.json +1 -1
  69. package/src/molecules/expand-table/index.tsx +5 -2
  70. package/src/molecules/expand-table/row.tsx +6 -2
  71. package/src/types/react-table.d.ts +2 -0
@@ -3,9 +3,9 @@ import {
3
3
  Drawer,
4
4
  Root,
5
5
  Trigger
6
- } from "../chunk-NBJOYJAF.js";
7
- import "../chunk-BVBX6IJ3.js";
6
+ } from "../chunk-ONYSO7Y2.js";
8
7
  import "../chunk-NJ2U2TVS.js";
8
+ import "../chunk-BVBX6IJ3.js";
9
9
  import "../chunk-O3DNDMV3.js";
10
10
  import "../chunk-N552FDTV.js";
11
11
  export {
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  FieldErrorWrapper
3
- } from "../chunk-CHHLIPDN.js";
4
- import "../chunk-25HMMI7R.js";
3
+ } from "../chunk-CNQ7RNNY.js";
5
4
  import "../chunk-O3XTRD7R.js";
5
+ import "../chunk-25HMMI7R.js";
6
6
  import "../chunk-N552FDTV.js";
7
7
  export {
8
8
  FieldErrorWrapper
@@ -1,4 +1,16 @@
1
1
  import "../chunk-2ANGYYEV.js";
2
+ import {
3
+ TextField
4
+ } from "../chunk-JPIZP2PZ.js";
5
+ import {
6
+ Separator
7
+ } from "../chunk-HYITAA4J.js";
8
+ import {
9
+ Skeleton
10
+ } from "../chunk-5H3YPCZK.js";
11
+ import {
12
+ Spinner
13
+ } from "../chunk-FR2GDOU2.js";
2
14
  import {
3
15
  Strong
4
16
  } from "../chunk-74DX4CU7.js";
@@ -15,8 +27,14 @@ import {
15
27
  TextArea
16
28
  } from "../chunk-ILRUXI2E.js";
17
29
  import {
18
- TextField
19
- } from "../chunk-JPIZP2PZ.js";
30
+ Quote
31
+ } from "../chunk-YO3BQW6S.js";
32
+ import {
33
+ RadioCards
34
+ } from "../chunk-6IVCARWS.js";
35
+ import {
36
+ RadioGroup
37
+ } from "../chunk-6DJOIRMF.js";
20
38
  import {
21
39
  Radio
22
40
  } from "../chunk-FPD73OHW.js";
@@ -33,14 +51,8 @@ import {
33
51
  Select
34
52
  } from "../chunk-3JRNKBMN.js";
35
53
  import {
36
- Separator
37
- } from "../chunk-HYITAA4J.js";
38
- import {
39
- Skeleton
40
- } from "../chunk-5H3YPCZK.js";
41
- import {
42
- Spinner
43
- } from "../chunk-FR2GDOU2.js";
54
+ Inset
55
+ } from "../chunk-XQOL7UBI.js";
44
56
  import {
45
57
  Kbd
46
58
  } from "../chunk-TULWX7D6.js";
@@ -49,7 +61,7 @@ import {
49
61
  } from "../chunk-XQOZWYUA.js";
50
62
  import {
51
63
  Pagination
52
- } from "../chunk-FQYPUIFX.js";
64
+ } from "../chunk-HXJPG3ZO.js";
53
65
  import {
54
66
  Popover
55
67
  } from "../chunk-5AVBYDPB.js";
@@ -57,14 +69,23 @@ import {
57
69
  Progress
58
70
  } from "../chunk-365QMK4D.js";
59
71
  import {
60
- Quote
61
- } from "../chunk-YO3BQW6S.js";
72
+ EllipsisTooltip
73
+ } from "../chunk-4IKPNQV5.js";
62
74
  import {
63
- RadioCards
64
- } from "../chunk-6IVCARWS.js";
75
+ Tooltip
76
+ } from "../chunk-ACVANQJ4.js";
65
77
  import {
66
- RadioGroup
67
- } from "../chunk-6DJOIRMF.js";
78
+ Em
79
+ } from "../chunk-2DZ2Y3JI.js";
80
+ import {
81
+ FieldErrorWrapper
82
+ } from "../chunk-CNQ7RNNY.js";
83
+ import {
84
+ Typo
85
+ } from "../chunk-O3XTRD7R.js";
86
+ import {
87
+ Flex
88
+ } from "../chunk-25HMMI7R.js";
68
89
  import {
69
90
  Form
70
91
  } from "../chunk-2CVXGGI5.js";
@@ -78,8 +99,14 @@ import {
78
99
  HoverCard
79
100
  } from "../chunk-O3T3TM3V.js";
80
101
  import {
81
- Inset
82
- } from "../chunk-XQOL7UBI.js";
102
+ Checkbox
103
+ } from "../chunk-JEHDCZQU.js";
104
+ import {
105
+ Code
106
+ } from "../chunk-OHMOP5PV.js";
107
+ import {
108
+ Collapse
109
+ } from "../chunk-KGLIAFTI.js";
83
110
  import {
84
111
  Container
85
112
  } from "../chunk-Q37G2GS6.js";
@@ -94,12 +121,12 @@ import {
94
121
  Drawer,
95
122
  Root,
96
123
  Trigger
97
- } from "../chunk-NBJOYJAF.js";
98
- import "../chunk-BVBX6IJ3.js";
124
+ } from "../chunk-ONYSO7Y2.js";
99
125
  import {
100
126
  ToastContainer,
101
127
  toast
102
128
  } from "../chunk-NJ2U2TVS.js";
129
+ import "../chunk-BVBX6IJ3.js";
103
130
  import {
104
131
  IconButton
105
132
  } from "../chunk-O3DNDMV3.js";
@@ -107,23 +134,14 @@ import {
107
134
  DropdownMenu
108
135
  } from "../chunk-4WFMOFN2.js";
109
136
  import {
110
- EllipsisTooltip
111
- } from "../chunk-4IKPNQV5.js";
112
- import {
113
- Tooltip
114
- } from "../chunk-ACVANQJ4.js";
115
- import {
116
- Em
117
- } from "../chunk-2DZ2Y3JI.js";
118
- import {
119
- FieldErrorWrapper
120
- } from "../chunk-CHHLIPDN.js";
137
+ Badge
138
+ } from "../chunk-ALOPZ54P.js";
121
139
  import {
122
- Flex
123
- } from "../chunk-25HMMI7R.js";
140
+ Blockquote
141
+ } from "../chunk-YGL6SWKN.js";
124
142
  import {
125
- Typo
126
- } from "../chunk-O3XTRD7R.js";
143
+ Box
144
+ } from "../chunk-4Y5BEXVN.js";
127
145
  import {
128
146
  Button
129
147
  } from "../chunk-AQX7DQLI.js";
@@ -139,15 +157,6 @@ import {
139
157
  import {
140
158
  CheckboxGroup
141
159
  } from "../chunk-IQEEPHOY.js";
142
- import {
143
- Checkbox
144
- } from "../chunk-JEHDCZQU.js";
145
- import {
146
- Code
147
- } from "../chunk-OHMOP5PV.js";
148
- import {
149
- Collapse
150
- } from "../chunk-KGLIAFTI.js";
151
160
  import "../chunk-TSVWEPRP.js";
152
161
  import {
153
162
  AlertDialog
@@ -158,15 +167,6 @@ import {
158
167
  import {
159
168
  Avatar
160
169
  } from "../chunk-CZEGRZBK.js";
161
- import {
162
- Badge
163
- } from "../chunk-ALOPZ54P.js";
164
- import {
165
- Blockquote
166
- } from "../chunk-YGL6SWKN.js";
167
- import {
168
- Box
169
- } from "../chunk-4Y5BEXVN.js";
170
170
  import "../chunk-N552FDTV.js";
171
171
  export {
172
172
  AlertDialog,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Pagination
3
- } from "../chunk-FQYPUIFX.js";
4
- import "../chunk-O3DNDMV3.js";
5
- import "../chunk-25HMMI7R.js";
3
+ } from "../chunk-HXJPG3ZO.js";
6
4
  import "../chunk-O3XTRD7R.js";
5
+ import "../chunk-25HMMI7R.js";
6
+ import "../chunk-O3DNDMV3.js";
7
7
  import "../chunk-TSVWEPRP.js";
8
8
  import "../chunk-N552FDTV.js";
9
9
  export {
@@ -1,10 +1,10 @@
1
1
  import "../chunk-PSINRHYW.js";
2
- import {
3
- EchartDefaultProps
4
- } from "../chunk-2QFSCWES.js";
5
2
  import {
6
3
  HorizontalBarChart
7
4
  } from "../chunk-SGMO4KBC.js";
5
+ import {
6
+ EchartDefaultProps
7
+ } from "../chunk-2QFSCWES.js";
8
8
  import "../chunk-N552FDTV.js";
9
9
  export {
10
10
  EchartDefaultProps,
@@ -0,0 +1,123 @@
1
+ import {
2
+ Row
3
+ } from "./chunk-IQ7JV3NX.js";
4
+ import {
5
+ Flex
6
+ } from "./chunk-25HMMI7R.js";
7
+ import {
8
+ Typo
9
+ } from "./chunk-O3XTRD7R.js";
10
+ import {
11
+ TriangleArrowDownIcon
12
+ } from "./chunk-BSTJBBEX.js";
13
+ import {
14
+ TriangleArrowUpIcon
15
+ } from "./chunk-NDUKDKGB.js";
16
+
17
+ // src/molecules/expand-table/index.tsx
18
+ import {
19
+ flexRender,
20
+ getCoreRowModel,
21
+ useReactTable,
22
+ getSortedRowModel,
23
+ createColumnHelper
24
+ } from "@tanstack/react-table";
25
+ import { useMemo, useState } from "react";
26
+ import { jsx, jsxs } from "react/jsx-runtime";
27
+ function ExpandTable(props) {
28
+ const { data, columns, ExpandComp, placeholder, onRowClick } = props;
29
+ const defaultAlign = "left";
30
+ const [sorting, setSorting] = useState([]);
31
+ const { getRowModel, getHeaderGroups } = useReactTable({
32
+ data: data || [],
33
+ columns,
34
+ getCoreRowModel: getCoreRowModel(),
35
+ getSortedRowModel: getSortedRowModel(),
36
+ state: {
37
+ sorting
38
+ },
39
+ onSortingChange: setSorting
40
+ });
41
+ const gridColTemp = useMemo(() => {
42
+ return columns.map((col) => {
43
+ var _a;
44
+ if ((_a = col.meta) == null ? void 0 : _a.autoSize)
45
+ return "1fr";
46
+ return `${col.size || 150}px`;
47
+ }).join(" ");
48
+ }, [columns]);
49
+ const rowModels = getRowModel();
50
+ return /* @__PURE__ */ jsxs("div", { className: "expand-table", children: [
51
+ /* @__PURE__ */ jsx("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(
52
+ "div",
53
+ {
54
+ className: "tr",
55
+ style: { gridTemplateColumns: gridColTemp },
56
+ children: headerGroup.headers.map((header) => {
57
+ var _a;
58
+ const sortable = header.column.getCanSort();
59
+ const sortedState = header.column.getIsSorted();
60
+ const justifyContent = ((_a = header.column.columnDef.meta) == null ? void 0 : _a.align) || defaultAlign;
61
+ return /* @__PURE__ */ jsx("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ jsxs(
62
+ "button",
63
+ {
64
+ onClick: header.column.getToggleSortingHandler(),
65
+ style: sortable ? { cursor: "pointer" } : void 0,
66
+ type: "button",
67
+ children: [
68
+ /* @__PURE__ */ jsx(Typo, { variant: "body", children: flexRender(
69
+ header.column.columnDef.header,
70
+ header.getContext()
71
+ ) }),
72
+ sortable ? /* @__PURE__ */ jsxs(
73
+ Flex,
74
+ {
75
+ direction: "column",
76
+ style: { marginLeft: "var(--space-2)" },
77
+ children: [
78
+ /* @__PURE__ */ jsx(
79
+ TriangleArrowUpIcon,
80
+ {
81
+ color: sortedState === "asc" ? "var(--iris-10)" : "var(--iris-6)"
82
+ }
83
+ ),
84
+ /* @__PURE__ */ jsx(
85
+ TriangleArrowDownIcon,
86
+ {
87
+ color: sortedState === "desc" ? "var(--iris-10)" : "var(--iris-6)"
88
+ }
89
+ )
90
+ ]
91
+ }
92
+ ) : null
93
+ ]
94
+ }
95
+ ) }, header.id);
96
+ })
97
+ },
98
+ headerGroup.id
99
+ )) }),
100
+ /* @__PURE__ */ jsxs("div", { className: "tbody", children: [
101
+ rowModels.rows.length === 0 && /* @__PURE__ */ jsx("div", { className: "tr", children: /* @__PURE__ */ jsx(Flex, { align: "center", justify: "center", children: placeholder || /* @__PURE__ */ jsx(Typo, { color: "gray", mb: "6", mt: "6", variant: "body", children: "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" }) }) }, "expand_placeholder"),
102
+ rowModels.rows.map((row) => {
103
+ return /* @__PURE__ */ jsx(
104
+ Row,
105
+ {
106
+ ExpandComp,
107
+ defaultAlign,
108
+ gridColTemp,
109
+ onRowClick,
110
+ row
111
+ },
112
+ `row_${row.id}`
113
+ );
114
+ })
115
+ ] })
116
+ ] });
117
+ }
118
+
119
+ export {
120
+ createColumnHelper,
121
+ ExpandTable
122
+ };
123
+ //# sourceMappingURL=chunk-27COZ7JE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/expand-table/index.tsx"],"sourcesContent":["import type {\n ColumnDef,\n SortingState,\n RowData,\n Row as RowType,\n} from '@tanstack/react-table';\nimport type { CSSProperties } from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n useReactTable,\n getSortedRowModel,\n createColumnHelper,\n} from '@tanstack/react-table';\nimport React, { useMemo, useState } from 'react';\nimport { Flex, Typo } from '../../atoms';\nimport { TriangleArrowDownIcon } from '../../icons/down';\nimport { TriangleArrowUpIcon } from '../../icons/up';\nimport { Row, type ExpandComp, type OnRowClick } from './row';\n\nexport type { ExpandComp, OnRowClick, ColumnDef, RowType as Row };\nexport { createColumnHelper };\n\nexport interface ExpandTableProps<Datum extends RowData> {\n /** 렌더할 데이터 배열 */\n data?: Datum[];\n /** 테이블 컬럼의 메타 데이터 */\n columns: ColumnDef<Datum>[];\n /** Row의 open이 true인 경우 하단의 collapse에 렌더할 컴포넌트 */\n ExpandComp?: ExpandComp<Datum>;\n /** 데이테가 없을 시 화면에 표시할 컴포넌트 */\n placeholder?: React.ReactNode;\n /** 행 클릭 시 실행할 콜백 */\n onRowClick?: OnRowClick<Datum>;\n rowStyle?: CSSProperties;\n}\n\nexport function ExpandTable<Datum extends RowData>(\n props: ExpandTableProps<Datum>\n): React.ReactNode {\n const { data, columns, ExpandComp, placeholder, onRowClick } = props;\n const defaultAlign = 'left';\n const [sorting, setSorting] = useState<SortingState>([]);\n const { getRowModel, getHeaderGroups } = useReactTable({\n data: data || [],\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n state: {\n sorting,\n },\n onSortingChange: setSorting,\n });\n\n const gridColTemp = useMemo<string>(() => {\n return columns\n .map((col) => {\n if (col.meta?.autoSize) return '1fr';\n return `${col.size || 150}px`;\n })\n .join(' ');\n }, [columns]);\n\n const rowModels = getRowModel();\n\n return (\n <div className=\"expand-table\">\n <div className=\"thead\">\n {getHeaderGroups().map((headerGroup) => (\n <div\n className=\"tr\"\n key={headerGroup.id}\n style={{ gridTemplateColumns: gridColTemp }}\n >\n {headerGroup.headers.map((header) => {\n const sortable = header.column.getCanSort();\n const sortedState = header.column.getIsSorted();\n const justifyContent =\n header.column.columnDef.meta?.align || defaultAlign;\n\n return (\n <div className={`${justifyContent} th`} key={header.id}>\n <button\n onClick={header.column.getToggleSortingHandler()}\n style={sortable ? { cursor: 'pointer' } : undefined}\n type=\"button\"\n >\n <Typo variant=\"body\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </Typo>\n {sortable ? (\n <Flex\n direction=\"column\"\n style={{ marginLeft: 'var(--space-2)' }}\n >\n <TriangleArrowUpIcon\n color={\n sortedState === 'asc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n <TriangleArrowDownIcon\n color={\n sortedState === 'desc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n </Flex>\n ) : null}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n <div className=\"tbody\">\n {/* 데이터가 없을 시 표시되는 노드 */}\n {rowModels.rows.length === 0 && (\n <div className=\"tr\" key=\"expand_placeholder\">\n <Flex align=\"center\" justify=\"center\">\n {placeholder || (\n <Typo color=\"gray\" mb=\"6\" mt=\"6\" variant=\"body\">\n 데이터가 없습니다\n </Typo>\n )}\n </Flex>\n </div>\n )}\n\n {/* 행을 렌더하는 로직 */}\n {rowModels.rows.map((row) => {\n return (\n <Row\n ExpandComp={ExpandComp}\n defaultAlign={defaultAlign}\n gridColTemp={gridColTemp}\n key={`row_${row.id}`}\n onRowClick={onRowClick}\n row={row}\n />\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAOA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAgB,SAAS,gBAAgB;AAyErB,cAOE,YAPF;AAlDb,SAAS,YACd,OACiB;AACjB,QAAM,EAAE,MAAM,SAAS,YAAY,aAAa,WAAW,IAAI;AAC/D,QAAM,eAAe;AACrB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAuB,CAAC,CAAC;AACvD,QAAM,EAAE,aAAa,gBAAgB,IAAI,cAAc;AAAA,IACrD,MAAM,QAAQ,CAAC;AAAA,IACf;AAAA,IACA,iBAAiB,gBAAgB;AAAA,IACjC,mBAAmB,kBAAkB;AAAA,IACrC,OAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,EACnB,CAAC;AAED,QAAM,cAAc,QAAgB,MAAM;AACxC,WAAO,QACJ,IAAI,CAAC,QAAQ;AAxDpB;AAyDQ,WAAI,SAAI,SAAJ,mBAAU;AAAU,eAAO;AAC/B,aAAO,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC3B,CAAC,EACA,KAAK,GAAG;AAAA,EACb,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,YAAY,YAAY;AAE9B,SACE,qBAAC,SAAI,WAAU,gBACb;AAAA,wBAAC,SAAI,WAAU,SACZ,0BAAgB,EAAE,IAAI,CAAC,gBACtB;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QAEV,OAAO,EAAE,qBAAqB,YAAY;AAAA,QAEzC,sBAAY,QAAQ,IAAI,CAAC,WAAW;AA1EjD;AA2Ec,gBAAM,WAAW,OAAO,OAAO,WAAW;AAC1C,gBAAM,cAAc,OAAO,OAAO,YAAY;AAC9C,gBAAM,mBACJ,YAAO,OAAO,UAAU,SAAxB,mBAA8B,UAAS;AAEzC,iBACE,oBAAC,SAAI,WAAW,GAAG,cAAc,OAC/B;AAAA,YAAC;AAAA;AAAA,cACC,SAAS,OAAO,OAAO,wBAAwB;AAAA,cAC/C,OAAO,WAAW,EAAE,QAAQ,UAAU,IAAI;AAAA,cAC1C,MAAK;AAAA,cAEL;AAAA,oCAAC,QAAK,SAAQ,QACX;AAAA,kBACC,OAAO,OAAO,UAAU;AAAA,kBACxB,OAAO,WAAW;AAAA,gBACpB,GACF;AAAA,gBACC,WACC;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,YAAY,iBAAiB;AAAA,oBAEtC;AAAA;AAAA,wBAAC;AAAA;AAAA,0BACC,OACE,gBAAgB,QACZ,mBACA;AAAA;AAAA,sBAER;AAAA,sBACA;AAAA,wBAAC;AAAA;AAAA,0BACC,OACE,gBAAgB,SACZ,mBACA;AAAA;AAAA,sBAER;AAAA;AAAA;AAAA,gBACF,IACE;AAAA;AAAA;AAAA,UACN,KAjC2C,OAAO,EAkCpD;AAAA,QAEJ,CAAC;AAAA;AAAA,MA9CI,YAAY;AAAA,IA+CnB,CACD,GACH;AAAA,IACA,qBAAC,SAAI,WAAU,SAEZ;AAAA,gBAAU,KAAK,WAAW,KACzB,oBAAC,SAAI,WAAU,MACb,8BAAC,QAAK,OAAM,UAAS,SAAQ,UAC1B,yBACC,oBAAC,QAAK,OAAM,QAAO,IAAG,KAAI,IAAG,KAAI,SAAQ,QAAO,+DAEhD,GAEJ,KAPsB,oBAQxB;AAAA,MAID,UAAU,KAAK,IAAI,CAAC,QAAQ;AAC3B,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YAEA;AAAA,YACA;AAAA;AAAA,UAFK,OAAO,IAAI,EAAE;AAAA,QAGpB;AAAA,MAEJ,CAAC;AAAA,OACH;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,123 @@
1
+ import {
2
+ Row
3
+ } from "./chunk-3N6DZ5K5.js";
4
+ import {
5
+ TriangleArrowDownIcon
6
+ } from "./chunk-BSTJBBEX.js";
7
+ import {
8
+ TriangleArrowUpIcon
9
+ } from "./chunk-NDUKDKGB.js";
10
+ import {
11
+ Flex
12
+ } from "./chunk-25HMMI7R.js";
13
+ import {
14
+ Typo
15
+ } from "./chunk-O3XTRD7R.js";
16
+
17
+ // src/molecules/expand-table/index.tsx
18
+ import {
19
+ flexRender,
20
+ getCoreRowModel,
21
+ useReactTable,
22
+ getSortedRowModel,
23
+ createColumnHelper
24
+ } from "@tanstack/react-table";
25
+ import { useMemo, useState } from "react";
26
+ import { jsx, jsxs } from "react/jsx-runtime";
27
+ function ExpandTable(props) {
28
+ const { data, columns, ExpandComp, placeholder, onRowClick } = props;
29
+ const defaultAlign = "left";
30
+ const [sorting, setSorting] = useState([]);
31
+ const { getRowModel, getHeaderGroups } = useReactTable({
32
+ data: data || [],
33
+ columns,
34
+ getCoreRowModel: getCoreRowModel(),
35
+ getSortedRowModel: getSortedRowModel(),
36
+ state: {
37
+ sorting
38
+ },
39
+ onSortingChange: setSorting
40
+ });
41
+ const gridColTemp = useMemo(() => {
42
+ return columns.map((col) => {
43
+ var _a;
44
+ if ((_a = col.meta) == null ? void 0 : _a.autoSize)
45
+ return "1fr";
46
+ return `${col.size || 150}px`;
47
+ }).join(" ");
48
+ }, [columns]);
49
+ const rowModels = getRowModel();
50
+ return /* @__PURE__ */ jsxs("div", { className: "expand-table", children: [
51
+ /* @__PURE__ */ jsx("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(
52
+ "div",
53
+ {
54
+ className: "tr",
55
+ style: { gridTemplateColumns: gridColTemp },
56
+ children: headerGroup.headers.map((header) => {
57
+ var _a;
58
+ const sortable = header.column.getCanSort();
59
+ const sortedState = header.column.getIsSorted();
60
+ const textAlign = ((_a = header.column.columnDef.meta) == null ? void 0 : _a.align) || defaultAlign;
61
+ return /* @__PURE__ */ jsx("div", { className: "th", children: /* @__PURE__ */ jsxs(
62
+ "button",
63
+ {
64
+ onClick: header.column.getToggleSortingHandler(),
65
+ style: sortable ? { cursor: "pointer", textAlign } : void 0,
66
+ type: "button",
67
+ children: [
68
+ /* @__PURE__ */ jsx(Typo, { variant: "body", children: flexRender(
69
+ header.column.columnDef.header,
70
+ header.getContext()
71
+ ) }),
72
+ sortable ? /* @__PURE__ */ jsxs(
73
+ Flex,
74
+ {
75
+ direction: "column",
76
+ style: { marginLeft: "var(--space-2)" },
77
+ children: [
78
+ /* @__PURE__ */ jsx(
79
+ TriangleArrowUpIcon,
80
+ {
81
+ color: sortedState === "asc" ? "var(--iris-10)" : "var(--iris-6)"
82
+ }
83
+ ),
84
+ /* @__PURE__ */ jsx(
85
+ TriangleArrowDownIcon,
86
+ {
87
+ color: sortedState === "desc" ? "var(--iris-10)" : "var(--iris-6)"
88
+ }
89
+ )
90
+ ]
91
+ }
92
+ ) : null
93
+ ]
94
+ }
95
+ ) }, header.id);
96
+ })
97
+ },
98
+ headerGroup.id
99
+ )) }),
100
+ /* @__PURE__ */ jsxs("div", { className: "tbody", children: [
101
+ rowModels.rows.length === 0 && /* @__PURE__ */ jsx("div", { className: "tr", children: /* @__PURE__ */ jsx(Flex, { align: "center", justify: "center", children: placeholder || /* @__PURE__ */ jsx(Typo, { color: "gray", mb: "6", mt: "6", variant: "body", children: "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" }) }) }, "expand_placeholder"),
102
+ rowModels.rows.map((row) => {
103
+ return /* @__PURE__ */ jsx(
104
+ Row,
105
+ {
106
+ ExpandComp,
107
+ gridColTemp,
108
+ onRowClick,
109
+ row,
110
+ defaultAlign
111
+ },
112
+ `row_${row.id}`
113
+ );
114
+ })
115
+ ] })
116
+ ] });
117
+ }
118
+
119
+ export {
120
+ createColumnHelper,
121
+ ExpandTable
122
+ };
123
+ //# sourceMappingURL=chunk-3HCVB462.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/expand-table/index.tsx"],"sourcesContent":["import type {\n ColumnDef,\n SortingState,\n RowData,\n Row as RowType,\n} from '@tanstack/react-table';\nimport type { CSSProperties } from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n useReactTable,\n getSortedRowModel,\n createColumnHelper,\n} from '@tanstack/react-table';\nimport React, { useMemo, useState } from 'react';\nimport { Flex, Typo } from '../../atoms';\nimport { TriangleArrowDownIcon } from '../../icons/down';\nimport { TriangleArrowUpIcon } from '../../icons/up';\nimport { Row, type ExpandComp, type OnRowClick } from './row';\n\nexport type { ExpandComp, OnRowClick, ColumnDef, RowType as Row };\nexport { createColumnHelper };\n\nexport interface ExpandTableProps<Datum extends RowData> {\n /** 렌더할 데이터 배열 */\n data?: Datum[];\n /** 테이블 컬럼의 메타 데이터 */\n columns: ColumnDef<Datum>[];\n /** Row의 open이 true인 경우 하단의 collapse에 렌더할 컴포넌트 */\n ExpandComp?: ExpandComp<Datum>;\n /** 데이테가 없을 시 화면에 표시할 컴포넌트 */\n placeholder?: React.ReactNode;\n /** 행 클릭 시 실행할 콜백 */\n onRowClick?: OnRowClick<Datum>;\n rowStyle?: CSSProperties;\n}\n\nexport function ExpandTable<Datum extends RowData>(\n props: ExpandTableProps<Datum>\n): React.ReactNode {\n const { data, columns, ExpandComp, placeholder, onRowClick } = props;\n const defaultAlign = 'left';\n const [sorting, setSorting] = useState<SortingState>([]);\n const { getRowModel, getHeaderGroups } = useReactTable({\n data: data || [],\n columns,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n state: {\n sorting,\n },\n onSortingChange: setSorting,\n });\n\n const gridColTemp = useMemo<string>(() => {\n return columns\n .map((col) => {\n if (col.meta?.autoSize) return '1fr';\n return `${col.size || 150}px`;\n })\n .join(' ');\n }, [columns]);\n\n const rowModels = getRowModel();\n\n return (\n <div className=\"expand-table\">\n <div className=\"thead\">\n {getHeaderGroups().map((headerGroup) => (\n <div\n className=\"tr\"\n key={headerGroup.id}\n style={{ gridTemplateColumns: gridColTemp }}\n >\n {headerGroup.headers.map((header) => {\n const sortable = header.column.getCanSort();\n const sortedState = header.column.getIsSorted();\n const textAlign =\n header.column.columnDef.meta?.align || defaultAlign;\n\n return (\n <div className=\"th\" key={header.id}>\n <button\n onClick={header.column.getToggleSortingHandler()}\n style={\n sortable ? { cursor: 'pointer', textAlign } : undefined\n }\n type=\"button\"\n >\n <Typo variant=\"body\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </Typo>\n {sortable ? (\n <Flex\n direction=\"column\"\n style={{ marginLeft: 'var(--space-2)' }}\n >\n <TriangleArrowUpIcon\n color={\n sortedState === 'asc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n <TriangleArrowDownIcon\n color={\n sortedState === 'desc'\n ? 'var(--iris-10)'\n : 'var(--iris-6)'\n }\n />\n </Flex>\n ) : null}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n <div className=\"tbody\">\n {/* 데이터가 없을 시 표시되는 노드 */}\n {rowModels.rows.length === 0 && (\n <div className=\"tr\" key=\"expand_placeholder\">\n <Flex align=\"center\" justify=\"center\">\n {placeholder || (\n <Typo color=\"gray\" mb=\"6\" mt=\"6\" variant=\"body\">\n 데이터가 없습니다\n </Typo>\n )}\n </Flex>\n </div>\n )}\n\n {/* 행을 렌더하는 로직 */}\n {rowModels.rows.map((row) => {\n return (\n <Row\n ExpandComp={ExpandComp}\n gridColTemp={gridColTemp}\n key={`row_${row.id}`}\n onRowClick={onRowClick}\n row={row}\n defaultAlign={defaultAlign}\n />\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAOA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAgB,SAAS,gBAAgB;AA2ErB,cAOE,YAPF;AApDb,SAAS,YACd,OACiB;AACjB,QAAM,EAAE,MAAM,SAAS,YAAY,aAAa,WAAW,IAAI;AAC/D,QAAM,eAAe;AACrB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAuB,CAAC,CAAC;AACvD,QAAM,EAAE,aAAa,gBAAgB,IAAI,cAAc;AAAA,IACrD,MAAM,QAAQ,CAAC;AAAA,IACf;AAAA,IACA,iBAAiB,gBAAgB;AAAA,IACjC,mBAAmB,kBAAkB;AAAA,IACrC,OAAO;AAAA,MACL;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,EACnB,CAAC;AAED,QAAM,cAAc,QAAgB,MAAM;AACxC,WAAO,QACJ,IAAI,CAAC,QAAQ;AAxDpB;AAyDQ,WAAI,SAAI,SAAJ,mBAAU;AAAU,eAAO;AAC/B,aAAO,GAAG,IAAI,QAAQ,GAAG;AAAA,IAC3B,CAAC,EACA,KAAK,GAAG;AAAA,EACb,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,YAAY,YAAY;AAE9B,SACE,qBAAC,SAAI,WAAU,gBACb;AAAA,wBAAC,SAAI,WAAU,SACZ,0BAAgB,EAAE,IAAI,CAAC,gBACtB;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QAEV,OAAO,EAAE,qBAAqB,YAAY;AAAA,QAEzC,sBAAY,QAAQ,IAAI,CAAC,WAAW;AA1EjD;AA2Ec,gBAAM,WAAW,OAAO,OAAO,WAAW;AAC1C,gBAAM,cAAc,OAAO,OAAO,YAAY;AAC9C,gBAAM,cACJ,YAAO,OAAO,UAAU,SAAxB,mBAA8B,UAAS;AAEzC,iBACE,oBAAC,SAAI,WAAU,MACb;AAAA,YAAC;AAAA;AAAA,cACC,SAAS,OAAO,OAAO,wBAAwB;AAAA,cAC/C,OACE,WAAW,EAAE,QAAQ,WAAW,UAAU,IAAI;AAAA,cAEhD,MAAK;AAAA,cAEL;AAAA,oCAAC,QAAK,SAAQ,QACX;AAAA,kBACC,OAAO,OAAO,UAAU;AAAA,kBACxB,OAAO,WAAW;AAAA,gBACpB,GACF;AAAA,gBACC,WACC;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO,EAAE,YAAY,iBAAiB;AAAA,oBAEtC;AAAA;AAAA,wBAAC;AAAA;AAAA,0BACC,OACE,gBAAgB,QACZ,mBACA;AAAA;AAAA,sBAER;AAAA,sBACA;AAAA,wBAAC;AAAA;AAAA,0BACC,OACE,gBAAgB,SACZ,mBACA;AAAA;AAAA,sBAER;AAAA;AAAA;AAAA,gBACF,IACE;AAAA;AAAA;AAAA,UACN,KAnCuB,OAAO,EAoChC;AAAA,QAEJ,CAAC;AAAA;AAAA,MAhDI,YAAY;AAAA,IAiDnB,CACD,GACH;AAAA,IACA,qBAAC,SAAI,WAAU,SAEZ;AAAA,gBAAU,KAAK,WAAW,KACzB,oBAAC,SAAI,WAAU,MACb,8BAAC,QAAK,OAAM,UAAS,SAAQ,UAC1B,yBACC,oBAAC,QAAK,OAAM,QAAO,IAAG,KAAI,IAAG,KAAI,SAAQ,QAAO,+DAEhD,GAEJ,KAPsB,oBAQxB;AAAA,MAID,UAAU,KAAK,IAAI,CAAC,QAAQ;AAC3B,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YAEA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UAHK,OAAO,IAAI,EAAE;AAAA,QAIpB;AAAA,MAEJ,CAAC;AAAA,OACH;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,72 @@
1
+ import {
2
+ Collapse
3
+ } from "./chunk-KGLIAFTI.js";
4
+
5
+ // src/molecules/expand-table/row.tsx
6
+ import {
7
+ flexRender
8
+ } from "@tanstack/react-table";
9
+ import { useCallback, useState } from "react";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ function Row(props) {
12
+ const { row, ExpandComp, gridColTemp } = props;
13
+ const [open, setOpen] = useState(false);
14
+ const onClickRow = useCallback(() => {
15
+ var _a;
16
+ (_a = props.onRowClick) == null ? void 0 : _a.call(props, row.original);
17
+ setOpen((prev) => !prev);
18
+ }, [props, row.original]);
19
+ return /* @__PURE__ */ jsxs(
20
+ "div",
21
+ {
22
+ className: `tr-wrapper ${ExpandComp ? "expandable" : ""}`,
23
+ children: [
24
+ /* @__PURE__ */ jsx(
25
+ "button",
26
+ {
27
+ className: "tr",
28
+ onClick: onClickRow,
29
+ style: { gridTemplateColumns: gridColTemp },
30
+ type: "button",
31
+ children: row.getVisibleCells().map((cell) => {
32
+ var _a, _b, _c;
33
+ const autoSize = (_a = cell.column.columnDef.meta) == null ? void 0 : _a.autoSize;
34
+ const textAlign = ((_b = cell.column.columnDef.meta) == null ? void 0 : _b.align) || props.defaultAlign;
35
+ return /* @__PURE__ */ jsxs(
36
+ "div",
37
+ {
38
+ className: "td",
39
+ style: {
40
+ minWidth: autoSize ? void 0 : cell.column.getSize(),
41
+ flexGrow: autoSize ? 1 : void 0,
42
+ textAlign
43
+ },
44
+ children: [
45
+ flexRender(cell.column.columnDef.cell, cell.getContext()),
46
+ ((_c = cell.column.columnDef.meta) == null ? void 0 : _c.OpenBtn) ? /* @__PURE__ */ jsx(
47
+ cell.column.columnDef.meta.OpenBtn,
48
+ {
49
+ data: row.original,
50
+ open,
51
+ setIsOpen: setOpen
52
+ }
53
+ ) : null
54
+ ]
55
+ },
56
+ cell.id
57
+ );
58
+ })
59
+ },
60
+ `tr_${row.id}`
61
+ ),
62
+ ExpandComp ? /* @__PURE__ */ jsx(Collapse, { open, children: /* @__PURE__ */ jsx("div", { className: "expand-comp-wrapper", children: /* @__PURE__ */ jsx(ExpandComp, { row }) }) }) : null
63
+ ]
64
+ },
65
+ `tr-wrapper_${row.id}`
66
+ );
67
+ }
68
+
69
+ export {
70
+ Row
71
+ };
72
+ //# sourceMappingURL=chunk-3N6DZ5K5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/molecules/expand-table/row.tsx"],"sourcesContent":["import {\n type Row as TanstackRow,\n type RowData,\n flexRender,\n} from '@tanstack/react-table';\nimport React, { useCallback, useState } from 'react';\nimport { Collapse } from '../../atoms';\n\nexport type ExpandComp<Datum> = React.FC<{ row: TanstackRow<Datum> }>;\nexport type OnRowClick<Datum> = (data: Datum) => void;\n\ninterface RowProps<Datum extends RowData> {\n row: TanstackRow<Datum>;\n ExpandComp?: ExpandComp<Datum>;\n onRowClick?: OnRowClick<Datum>;\n gridColTemp: string;\n defaultAlign: 'left' | 'right' | 'center';\n}\n\nexport function Row<Datum extends RowData>(\n props: RowProps<Datum>\n): React.ReactNode {\n const { row, ExpandComp, gridColTemp } = props;\n const [open, setOpen] = useState(false);\n\n const onClickRow = useCallback(() => {\n props.onRowClick?.(row.original);\n setOpen((prev) => !prev);\n }, [props, row.original]);\n\n return (\n <div\n className={`tr-wrapper ${ExpandComp ? 'expandable' : ''}`}\n key={`tr-wrapper_${row.id}`}\n >\n <button\n className=\"tr\"\n key={`tr_${row.id}`}\n onClick={onClickRow}\n style={{ gridTemplateColumns: gridColTemp }}\n type=\"button\"\n >\n {row.getVisibleCells().map((cell) => {\n const autoSize = cell.column.columnDef.meta?.autoSize;\n const textAlign =\n cell.column.columnDef.meta?.align || props.defaultAlign;\n\n return (\n <div\n className=\"td\"\n key={cell.id}\n style={{\n minWidth: autoSize ? undefined : cell.column.getSize(),\n flexGrow: autoSize ? 1 : undefined,\n textAlign,\n }}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n {cell.column.columnDef.meta?.OpenBtn ? (\n <cell.column.columnDef.meta.OpenBtn\n data={row.original}\n open={open}\n setIsOpen={setOpen}\n />\n ) : null}\n </div>\n );\n })}\n </button>\n {ExpandComp ? (\n <Collapse open={open}>\n <div className=\"expand-comp-wrapper\">\n <ExpandComp row={row} />\n </div>\n </Collapse>\n ) : null}\n </div>\n );\n}\n"],"mappings":";;;;;AAAA;AAAA,EAGE;AAAA,OACK;AACP,SAAgB,aAAa,gBAAgB;AA2CjC,SAWI,KAXJ;AA7BL,SAAS,IACd,OACiB;AACjB,QAAM,EAAE,KAAK,YAAY,YAAY,IAAI;AACzC,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AAEtC,QAAM,aAAa,YAAY,MAAM;AAzBvC;AA0BI,gBAAM,eAAN,+BAAmB,IAAI;AACvB,YAAQ,CAAC,SAAS,CAAC,IAAI;AAAA,EACzB,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC;AAExB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,cAAc,aAAa,eAAe,EAAE;AAAA,MAGvD;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YAEV,SAAS;AAAA,YACT,OAAO,EAAE,qBAAqB,YAAY;AAAA,YAC1C,MAAK;AAAA,YAEJ,cAAI,gBAAgB,EAAE,IAAI,CAAC,SAAS;AA1C7C;AA2CU,oBAAM,YAAW,UAAK,OAAO,UAAU,SAAtB,mBAA4B;AAC7C,oBAAM,cACJ,UAAK,OAAO,UAAU,SAAtB,mBAA4B,UAAS,MAAM;AAE7C,qBACE;AAAA,gBAAC;AAAA;AAAA,kBACC,WAAU;AAAA,kBAEV,OAAO;AAAA,oBACL,UAAU,WAAW,SAAY,KAAK,OAAO,QAAQ;AAAA,oBACrD,UAAU,WAAW,IAAI;AAAA,oBACzB;AAAA,kBACF;AAAA,kBAEC;AAAA,+BAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC;AAAA,sBACxD,UAAK,OAAO,UAAU,SAAtB,mBAA4B,WAC3B;AAAA,sBAAC,KAAK,OAAO,UAAU,KAAK;AAAA,sBAA3B;AAAA,wBACC,MAAM,IAAI;AAAA,wBACV;AAAA,wBACA,WAAW;AAAA;AAAA,oBACb,IACE;AAAA;AAAA;AAAA,gBAdC,KAAK;AAAA,cAeZ;AAAA,YAEJ,CAAC;AAAA;AAAA,UA9BI,MAAM,IAAI,EAAE;AAAA,QA+BnB;AAAA,QACC,aACC,oBAAC,YAAS,MACR,8BAAC,SAAI,WAAU,uBACb,8BAAC,cAAW,KAAU,GACxB,GACF,IACE;AAAA;AAAA;AAAA,IA1CC,cAAc,IAAI,EAAE;AAAA,EA2C3B;AAEJ;","names":[]}
@@ -0,0 +1,72 @@
1
+ import {
2
+ Collapse
3
+ } from "./chunk-KGLIAFTI.js";
4
+
5
+ // src/molecules/expand-table/row.tsx
6
+ import {
7
+ flexRender
8
+ } from "@tanstack/react-table";
9
+ import { useCallback, useState } from "react";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ function Row(props) {
12
+ const { row, ExpandComp, gridColTemp } = props;
13
+ const [open, setOpen] = useState(false);
14
+ const onClickRow = useCallback(() => {
15
+ var _a;
16
+ (_a = props.onRowClick) == null ? void 0 : _a.call(props, row.original);
17
+ setOpen((prev) => !prev);
18
+ }, [props, row.original]);
19
+ return /* @__PURE__ */ jsxs(
20
+ "div",
21
+ {
22
+ className: `tr-wrapper ${ExpandComp ? "expandable" : ""}`,
23
+ children: [
24
+ /* @__PURE__ */ jsx(
25
+ "button",
26
+ {
27
+ className: "tr",
28
+ onClick: onClickRow,
29
+ style: { gridTemplateColumns: gridColTemp },
30
+ type: "button",
31
+ children: row.getVisibleCells().map((cell) => {
32
+ var _a, _b, _c;
33
+ const autoSize = (_a = cell.column.columnDef.meta) == null ? void 0 : _a.autoSize;
34
+ const justifyContent = ((_b = cell.column.columnDef.meta) == null ? void 0 : _b.align) || props.defaultAlign;
35
+ return /* @__PURE__ */ jsxs(
36
+ "div",
37
+ {
38
+ className: "td",
39
+ style: {
40
+ // width: autoSize ? undefined : cell.column.getSize(),
41
+ flexGrow: autoSize ? 1 : void 0,
42
+ justifyContent
43
+ },
44
+ children: [
45
+ flexRender(cell.column.columnDef.cell, cell.getContext()),
46
+ ((_c = cell.column.columnDef.meta) == null ? void 0 : _c.OpenBtn) ? /* @__PURE__ */ jsx(
47
+ cell.column.columnDef.meta.OpenBtn,
48
+ {
49
+ data: row.original,
50
+ open,
51
+ setIsOpen: setOpen
52
+ }
53
+ ) : null
54
+ ]
55
+ },
56
+ cell.id
57
+ );
58
+ })
59
+ },
60
+ `tr_${row.id}`
61
+ ),
62
+ ExpandComp ? /* @__PURE__ */ jsx(Collapse, { open, children: /* @__PURE__ */ jsx("div", { className: "expand-comp-wrapper", children: /* @__PURE__ */ jsx(ExpandComp, { row }) }) }) : null
63
+ ]
64
+ },
65
+ `tr-wrapper_${row.id}`
66
+ );
67
+ }
68
+
69
+ export {
70
+ Row
71
+ };
72
+ //# sourceMappingURL=chunk-7TKVFGWB.js.map