From 9e84a452ff421ab6adea9a0794667ebdd71a132d Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Tue, 18 Mar 2025 14:40:14 +0900 Subject: [PATCH 01/26] =?UTF-8?q?undefined=EA=B4=80=EB=A0=A8=20=ED=98=B8?= =?UTF-8?q?=EC=B6=9C=20=EC=88=98=EC=A0=95=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business_components/src/ui/search_input_select/index.tsx | 2 +- packages/common/business_components/src/ui/table/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/common/business_components/src/ui/search_input_select/index.tsx b/packages/common/business_components/src/ui/search_input_select/index.tsx index c6face023..bd41c1fba 100644 --- a/packages/common/business_components/src/ui/search_input_select/index.tsx +++ b/packages/common/business_components/src/ui/search_input_select/index.tsx @@ -14,7 +14,7 @@ export type SelectDataType = { * @param refs - React.forwardRef | null 입력값 ref * @returns React.FC */ -const SearchInputSelect = React.forwardRefvoid, textValue:string, setText:(val:string)=>void}>(({className, label, selectData, onSelectValue, textValue, setText}) => { +const SearchInputSelect = React.forwardRefvoid, textValue:string, setText:(val:string)=>void}>(({className, label, selectData, onSelectValue, textValue, setText}, ref) => { const changeText=(e:React.ChangeEvent)=>{ if(e?.target?.value) setText(e.target.value) } diff --git a/packages/common/business_components/src/ui/table/index.tsx b/packages/common/business_components/src/ui/table/index.tsx index cbb37b273..a1f00750c 100644 --- a/packages/common/business_components/src/ui/table/index.tsx +++ b/packages/common/business_components/src/ui/table/index.tsx @@ -8,7 +8,7 @@ type UiTableProps = { pageSize: number; total: number; children: React.ReactNode | undefined; - cellClick : (index:number)=>void | undefined; + cellClick : (index:number|undefined)=>void | (undefined); } type UiHeadProps = { From 23bc71b275ecd7c16dac7d4054e793fc65bc0ac7 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Tue, 18 Mar 2025 15:48:51 +0900 Subject: [PATCH 02/26] =?UTF-8?q?UI=ED=85=8C=EC=9D=B4=EB=B8=94=20cellclick?= =?UTF-8?q?=20=ED=83=80=EC=9E=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/business_components/src/ui/table/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/common/business_components/src/ui/table/index.tsx b/packages/common/business_components/src/ui/table/index.tsx index a1f00750c..cc4aa3c61 100644 --- a/packages/common/business_components/src/ui/table/index.tsx +++ b/packages/common/business_components/src/ui/table/index.tsx @@ -8,7 +8,7 @@ type UiTableProps = { pageSize: number; total: number; children: React.ReactNode | undefined; - cellClick : (index:number|undefined)=>void | (undefined); + cellClick : ((index:number|undefined)=>void) | undefined; } type UiHeadProps = { From 9ea9dc5e320ebe52f6b1b55cdaf7acde7620b9c3 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Wed, 19 Mar 2025 09:34:30 +0900 Subject: [PATCH 03/26] =?UTF-8?q?=ED=85=8C=EC=9D=B4=EB=B8=94=20=ED=97=A4?= =?UTF-8?q?=EB=8D=94=20=EA=B8=80=EC=94=A8=EC=B2=B4=20=EC=A7=84=ED=95=98?= =?UTF-8?q?=EA=B2=8C=20=EB=B0=8F=20margin=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/business_components/src/ui/table/index.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/common/business_components/src/ui/table/index.tsx b/packages/common/business_components/src/ui/table/index.tsx index cc4aa3c61..3b078a9b3 100644 --- a/packages/common/business_components/src/ui/table/index.tsx +++ b/packages/common/business_components/src/ui/table/index.tsx @@ -21,7 +21,9 @@ export function UiTable({ tableData, headlist, pageSize, total, children, headNa return ( <> - {headName ? headName : <>} + {headName ?
+ {headName} +
: <>} {children ? <>{children} : From f0f2665981f2151da88a442c1cc92e6c2fde2bd0 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Thu, 20 Mar 2025 17:43:16 +0900 Subject: [PATCH 04/26] =?UTF-8?q?searchInput=20value=EB=B0=8F=20setText=20?= =?UTF-8?q?=EC=9D=B4=EB=B2=A4=ED=8A=B8=EB=A5=BC=20=EB=B0=9B=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business_components/src/ui/search_input/index.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/common/business_components/src/ui/search_input/index.tsx b/packages/common/business_components/src/ui/search_input/index.tsx index 61ff8ec3f..338fcfd49 100644 --- a/packages/common/business_components/src/ui/search_input/index.tsx +++ b/packages/common/business_components/src/ui/search_input/index.tsx @@ -1,14 +1,15 @@ import { Input, Label } from "@common/components"; import React from "react"; -const SearchInput = React.forwardRef< - HTMLDivElement& HTMLInputElement, - React.HTMLAttributes & {className:string, label:string}> -(({className, label}, ref) => { +const SearchInput = React.forwardRefvoid}>(({className, label, textValue, setText}, ref) => { + const changeText=(e:React.ChangeEvent)=>{ + if(e?.target?.value) setText(e.target.value) + } + return (
{label && } - +
) }); From cc727045e188675158c4b0fa07b9675543184477 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Fri, 21 Mar 2025 11:36:05 +0900 Subject: [PATCH 05/26] =?UTF-8?q?select,=20search=5Fiinput=5Fselect=20?= =?UTF-8?q?=EC=B4=88=EA=B8=B0=ED=99=94=EA=B0=80=20=EB=90=A0=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8F=84=EB=A1=9D=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/search_input_select/index.tsx | 10 +++++++--- .../business_components/src/ui/select/index.tsx | 14 ++++++++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/common/business_components/src/ui/search_input_select/index.tsx b/packages/common/business_components/src/ui/search_input_select/index.tsx index bd41c1fba..a97b4cf24 100644 --- a/packages/common/business_components/src/ui/search_input_select/index.tsx +++ b/packages/common/business_components/src/ui/search_input_select/index.tsx @@ -11,19 +11,23 @@ export type SelectDataType = { * @param label - string label * @param selectData - SelectDataType[] 선택 데이터 * @param onSelectValue - (val:string)=>void 선택 값 콜백 + * @param textValue - string 입력 값 + * @param setText - (val:string)=>void 입력 값 설정 콜백 + * @param selectValue - string select 선택 값 * @param refs - React.forwardRef | null 입력값 ref * @returns React.FC */ -const SearchInputSelect = React.forwardRefvoid, textValue:string, setText:(val:string)=>void}>(({className, label, selectData, onSelectValue, textValue, setText}, ref) => { +const SearchInputSelect = React.forwardRefvoid, textValue:string, setText:(val:string)=>void, selectValue:string}>(({className, label, selectData, onSelectValue, textValue, setText, selectValue}, ref) => { const changeText=(e:React.ChangeEvent)=>{ if(e?.target?.value) setText(e.target.value) } + return (
{label && }
- @@ -38,4 +42,4 @@ const SearchInputSelect = React.forwardRef ) }); -export { SearchInputSelect }; +export { SearchInputSelect }; \ No newline at end of file diff --git a/packages/common/business_components/src/ui/select/index.tsx b/packages/common/business_components/src/ui/select/index.tsx index a3b397606..b25584af0 100644 --- a/packages/common/business_components/src/ui/select/index.tsx +++ b/packages/common/business_components/src/ui/select/index.tsx @@ -8,17 +8,23 @@ interface SelectBox1 { val:string } - const SelectBox = React.forwardRef< HTMLDivElement, - React.HTMLAttributes & {label:string, selectClass:string|undefined, className:string, selectArray:SelectBox1[], onSelectValue:(val:string)=>void} ->(({ label, className, selectClass, selectArray, onSelectValue }, ref)=>{ + React.HTMLAttributes & { + label:string, + selectClass:string|undefined, + className:string, + selectArray:SelectBox1[], + onSelectValue:(val:string)=>void, + value?: string + } +>(({ label, className, selectClass, selectArray, onSelectValue, value }, ref)=>{ const placeHolder = selectArray?.[0]?.text ?? ""; return (
{label && } - From 0a29570cda76dfeb0f13e94d719f1cf0bd575d69 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Fri, 21 Mar 2025 15:49:43 +0900 Subject: [PATCH 06/26] =?UTF-8?q?=EB=A9=94=EC=9D=B8=EC=98=81=EC=97=AD=20?= =?UTF-8?q?=EB=B0=8F=20=EA=B2=80=EC=83=89=EC=98=81=EC=97=AD=20=EC=8A=A4?= =?UTF-8?q?=ED=83=80=EC=9D=BC=20=EC=A7=80=EC=A0=95=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/business_components/src/ui/index.ts | 3 ++- .../src/ui/main_content_div/index.tsx | 11 +++++++++++ .../business_components/src/ui/search_form/index.tsx | 2 +- .../business_components/src/ui/search_input/index.tsx | 6 +++--- .../src/ui/search_input_select/index.tsx | 4 ++-- .../business_components/src/ui/select/index.tsx | 4 ++-- .../common/business_components/src/ui/table/index.tsx | 5 ++--- .../common/business_components/src/ui/title/index.tsx | 9 +++++++++ 8 files changed, 32 insertions(+), 12 deletions(-) create mode 100644 packages/common/business_components/src/ui/main_content_div/index.tsx create mode 100644 packages/common/business_components/src/ui/title/index.tsx diff --git a/packages/common/business_components/src/ui/index.ts b/packages/common/business_components/src/ui/index.ts index 795fffa2a..48e1904eb 100644 --- a/packages/common/business_components/src/ui/index.ts +++ b/packages/common/business_components/src/ui/index.ts @@ -9,4 +9,5 @@ export * from "./search_input"; export * from "./search_input_select"; export * from "./select"; export * from "./table"; - +export * from "./main_content_div"; +export * from "./title"; \ No newline at end of file diff --git a/packages/common/business_components/src/ui/main_content_div/index.tsx b/packages/common/business_components/src/ui/main_content_div/index.tsx new file mode 100644 index 000000000..f1f85fa9c --- /dev/null +++ b/packages/common/business_components/src/ui/main_content_div/index.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +export default function MainContentDiv(props: {children: React.ReactNode}) { + return ( +
+ {props.children} +
+ ) +} + +export { MainContentDiv }; \ No newline at end of file diff --git a/packages/common/business_components/src/ui/search_form/index.tsx b/packages/common/business_components/src/ui/search_form/index.tsx index 7c6024748..1f7950358 100644 --- a/packages/common/business_components/src/ui/search_form/index.tsx +++ b/packages/common/business_components/src/ui/search_form/index.tsx @@ -1,6 +1,6 @@ function SearchDiv ({children}:{ children: React.ReactNode; }) { return ( -
+
{children}
) diff --git a/packages/common/business_components/src/ui/search_input/index.tsx b/packages/common/business_components/src/ui/search_input/index.tsx index 338fcfd49..026e8b8e6 100644 --- a/packages/common/business_components/src/ui/search_input/index.tsx +++ b/packages/common/business_components/src/ui/search_input/index.tsx @@ -7,9 +7,9 @@ const SearchInput = React.forwardRef - {label && } - +
+ {label && } +
) }); diff --git a/packages/common/business_components/src/ui/search_input_select/index.tsx b/packages/common/business_components/src/ui/search_input_select/index.tsx index a97b4cf24..5a386b77b 100644 --- a/packages/common/business_components/src/ui/search_input_select/index.tsx +++ b/packages/common/business_components/src/ui/search_input_select/index.tsx @@ -24,9 +24,9 @@ const SearchInputSelect = React.forwardRef - {label && } + {label && }
- + - + diff --git a/packages/common/business_components/src/ui/table/index.tsx b/packages/common/business_components/src/ui/table/index.tsx index 3b078a9b3..71473cc81 100644 --- a/packages/common/business_components/src/ui/table/index.tsx +++ b/packages/common/business_components/src/ui/table/index.tsx @@ -24,20 +24,19 @@ export function UiTable({ tableData, headlist, pageSize, total, children, headNa {headName ?
{headName}
: <>} -
+
{children ? <>{children} : {headlist?.map((head) => ( {head.title} ))} } - {tableData?.map((el: { [key: string]: string | number | boolean }, index) => ( {headlist.map((head) => ( - cellClick(index)} key={head.id + index}>{el[head.id]} + cellClick(index)} key={head.id + index}>{el[head.id]} ))} ))} diff --git a/packages/common/business_components/src/ui/title/index.tsx b/packages/common/business_components/src/ui/title/index.tsx new file mode 100644 index 000000000..aaa9d74fd --- /dev/null +++ b/packages/common/business_components/src/ui/title/index.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +function Title(props: {title: string}) { + return ( +

{props.title}

+ ) +} + +export { Title }; \ No newline at end of file From 6fccf422ea311622fc33e5b3ba692e2aafaac150 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Fri, 21 Mar 2025 16:15:25 +0900 Subject: [PATCH 07/26] =?UTF-8?q?search=5Fform=5Fleft,=20right=20/=20table?= =?UTF-8?q?=5Fdiv=20=EC=B6=94=EA=B0=80=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/business_components/src/ui/index.ts | 5 ++++- .../src/ui/search_form_left/index.tsx | 11 +++++++++++ .../src/ui/search_form_right/index.tsx | 11 +++++++++++ .../business_components/src/ui/table_div/index.tsx | 11 +++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 packages/common/business_components/src/ui/search_form_left/index.tsx create mode 100644 packages/common/business_components/src/ui/search_form_right/index.tsx create mode 100644 packages/common/business_components/src/ui/table_div/index.tsx diff --git a/packages/common/business_components/src/ui/index.ts b/packages/common/business_components/src/ui/index.ts index 48e1904eb..beec29bf0 100644 --- a/packages/common/business_components/src/ui/index.ts +++ b/packages/common/business_components/src/ui/index.ts @@ -10,4 +10,7 @@ export * from "./search_input_select"; export * from "./select"; export * from "./table"; export * from "./main_content_div"; -export * from "./title"; \ No newline at end of file +export * from "./title"; +export * from "./search_form_left"; +export * from "./search_form_right"; +export * from "./table_div"; \ No newline at end of file diff --git a/packages/common/business_components/src/ui/search_form_left/index.tsx b/packages/common/business_components/src/ui/search_form_left/index.tsx new file mode 100644 index 000000000..950306231 --- /dev/null +++ b/packages/common/business_components/src/ui/search_form_left/index.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +function SearchFormLeft(props: {children: React.ReactNode}) { + return ( +
+ {props.children} +
+ ) +} + +export { SearchFormLeft }; \ No newline at end of file diff --git a/packages/common/business_components/src/ui/search_form_right/index.tsx b/packages/common/business_components/src/ui/search_form_right/index.tsx new file mode 100644 index 000000000..676b90849 --- /dev/null +++ b/packages/common/business_components/src/ui/search_form_right/index.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +function SearchFormRight(props: {children: React.ReactNode}) { + return ( +
+ {props.children} +
+ ) +} + +export { SearchFormRight }; \ No newline at end of file diff --git a/packages/common/business_components/src/ui/table_div/index.tsx b/packages/common/business_components/src/ui/table_div/index.tsx new file mode 100644 index 000000000..a6bbe179b --- /dev/null +++ b/packages/common/business_components/src/ui/table_div/index.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +function TableDiv(props: {children: React.ReactNode}) { + return ( +
+ {props.children} +
+ ) +} + +export { TableDiv }; \ No newline at end of file From ac5573a29650981779d07d674e846567e190d753 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Fri, 21 Mar 2025 17:43:02 +0900 Subject: [PATCH 08/26] =?UTF-8?q?cellClick=20=EC=97=90=EB=9F=AC=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/business_components/src/ui/table/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/common/business_components/src/ui/table/index.tsx b/packages/common/business_components/src/ui/table/index.tsx index 71473cc81..c397e155d 100644 --- a/packages/common/business_components/src/ui/table/index.tsx +++ b/packages/common/business_components/src/ui/table/index.tsx @@ -36,7 +36,7 @@ export function UiTable({ tableData, headlist, pageSize, total, children, headNa {tableData?.map((el: { [key: string]: string | number | boolean }, index) => ( {headlist.map((head) => ( - cellClick(index)} key={head.id + index}>{el[head.id]} + cellClick && cellClick(index)} key={head.id + index}>{el[head.id]} ))} ))} From 076516fdbf1db39e0cfb914da0d038fee22b7327 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Mon, 24 Mar 2025 09:40:43 +0900 Subject: [PATCH 09/26] =?UTF-8?q?=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/business_components/src/ui/search_input/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/common/business_components/src/ui/search_input/index.tsx b/packages/common/business_components/src/ui/search_input/index.tsx index 026e8b8e6..9b38b475a 100644 --- a/packages/common/business_components/src/ui/search_input/index.tsx +++ b/packages/common/business_components/src/ui/search_input/index.tsx @@ -13,4 +13,4 @@ const SearchInput = React.forwardRef ) }); -export { SearchInput }; +export { SearchInput }; \ No newline at end of file From 54803e406130f2fd65c504cebfb31bce54919165 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Mon, 24 Mar 2025 11:06:39 +0900 Subject: [PATCH 10/26] =?UTF-8?q?=ED=83=AD=20=EA=B3=B5=ED=86=B5=EC=98=81?= =?UTF-8?q?=EC=97=AD=EC=9C=BC=EB=A1=9C=20=EA=B0=9C=EB=B0=9C=20(tabList,=20?= =?UTF-8?q?defaultValue=20=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business_components/src/ui/index.ts | 3 +- .../business_components/src/ui/tab/index.tsx | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 packages/common/business_components/src/ui/tab/index.tsx diff --git a/packages/common/business_components/src/ui/index.ts b/packages/common/business_components/src/ui/index.ts index beec29bf0..430d5edd9 100644 --- a/packages/common/business_components/src/ui/index.ts +++ b/packages/common/business_components/src/ui/index.ts @@ -13,4 +13,5 @@ export * from "./main_content_div"; export * from "./title"; export * from "./search_form_left"; export * from "./search_form_right"; -export * from "./table_div"; \ No newline at end of file +export * from "./table_div"; +export * from "./tab"; \ No newline at end of file diff --git a/packages/common/business_components/src/ui/tab/index.tsx b/packages/common/business_components/src/ui/tab/index.tsx new file mode 100644 index 000000000..9d24562f8 --- /dev/null +++ b/packages/common/business_components/src/ui/tab/index.tsx @@ -0,0 +1,36 @@ +import { Tabs, TabsList, TabsTrigger } from '@common/components/ui'; +import React from 'react'; + +interface TabItem { + value: string; + label: string; +} + +interface UITabProps extends React.HTMLAttributes { + defaultValue?: string; + tabList: TabItem[]; + children: React.ReactNode; +} + +const UITab = React.forwardRef< + HTMLDivElement, + UITabProps +>(({defaultValue, tabList, children}, ref)=>{ + return ( + + + {tabList.map((tab) => ( + + {tab.label} + + ))} + + {children} + + ) +}) +export { UITab }; From 8f1bb4b5f23dfafe473f2e48789907d52a3b6a51 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Wed, 26 Mar 2025 13:34:52 +0900 Subject: [PATCH 11/26] =?UTF-8?q?-TableDiv=20>=20ContentsDiv=20-css?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=9E=91=EC=97=85=20=EC=A7=84=ED=96=89?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/business_components/src/base.css | 130 ++++++++++++++++++ .../src/ui/table_div/index.tsx | 4 +- 2 files changed, 132 insertions(+), 2 deletions(-) diff --git a/packages/common/business_components/src/base.css b/packages/common/business_components/src/base.css index 6b56f5eff..9bdb52527 100644 --- a/packages/common/business_components/src/base.css +++ b/packages/common/business_components/src/base.css @@ -71,3 +71,133 @@ @apply bg-background text-foreground; } } + +.card { + position: relative; + margin: 0.6rem; + box-sizing: border-box; + min-height: 2rem; + border-radius: 0.5rem; + padding: 0.6rem; + font-size: 1.3rem; + color: #666; +} + +.card_width10 { + width: calc(10% - 12px); +} + +.card_width20 { + width: calc(20% - 12px); +} + +.card_width25 { + width: calc(25% - 12px); +} + +.card_width30 { + width: calc(30% - 12px); +} + +.card_width33 { + width: calc(33.333% - 12px); +} + +.card_width40 { + width: calc(40% - 12px); +} + +.card_width45 { + width: calc(45% - 12px); +} + +.card_width50 { + width: calc(50% - 12px); +} + +.card_width60 { + width: calc(60% - 12px); +} + +.card_width66 { + width: calc(66.666% - 12px); +} + +.card_width70 { + width: calc(70% - 12px); +} + +.card_width75 { + width: calc(75% - 12px); +} + +.card_width80 { + width: calc(80% - 12px); +} + +.card_width90 { + width: calc(90% - 12px); +} + +.card_width100 { + width: calc(100% - 12px); +} + +.card_nopadding { + padding: 0 !important; +} + +.card_nomargin { + width: 100%; + margin: 0 !important; + padding: 0 !important; +} + +.topline { + border-top: 1px solid #ccc; +} + +.bottomline { + border-bottom: 1px solid #e6eef3; + background: #fff; +} + +.card-border { + border: 1px solid #dbe2e6; + background-color: rgba(255, 255, 255, 0.6); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +.card-header { + margin-left: -0.6rem; + margin-right: -0.6rem; + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid #e1e7eb; + padding: 1rem; +} + +.card-footer { + margin-left: -0.6rem; + margin-right: -0.6rem; + margin-top: 0.5rem; + display: flex; + align-items: center; + justify-content: center; + border-top: 1px solid #e1e7eb; + padding-top: 1rem; + padding-bottom: 1rem; +} + +/* 블랙 테마 */ +[data-theme="black"] { + .card-border { + border-color: #3f4042; + background-color: rgba(255, 255, 255, 0.065); + } + + .card-header { + border-bottom-color: #3f4042; + } +} \ No newline at end of file diff --git a/packages/common/business_components/src/ui/table_div/index.tsx b/packages/common/business_components/src/ui/table_div/index.tsx index a6bbe179b..ccadd99b1 100644 --- a/packages/common/business_components/src/ui/table_div/index.tsx +++ b/packages/common/business_components/src/ui/table_div/index.tsx @@ -1,6 +1,6 @@ import React from 'react' -function TableDiv(props: {children: React.ReactNode}) { +function ContentsDiv(props: {children: React.ReactNode}) { return (
{props.children} @@ -8,4 +8,4 @@ function TableDiv(props: {children: React.ReactNode}) { ) } -export { TableDiv }; \ No newline at end of file +export { ContentsDiv }; \ No newline at end of file From a147d972b8d370eacdd0e837f7023238ea39c358 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Wed, 26 Mar 2025 14:52:40 +0900 Subject: [PATCH 12/26] =?UTF-8?q?base.css=20=EB=B3=B5=EA=B5=AC=20=EB=B0=8F?= =?UTF-8?q?=20css=EC=9E=91=EC=97=85=20=EC=A7=84=ED=96=89=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/business_components/src/base.css | 134 +----------------- 1 file changed, 4 insertions(+), 130 deletions(-) diff --git a/packages/common/business_components/src/base.css b/packages/common/business_components/src/base.css index 9bdb52527..daaa92719 100644 --- a/packages/common/business_components/src/base.css +++ b/packages/common/business_components/src/base.css @@ -1,3 +1,7 @@ +@import "@common/assets/styles/base.css"; +@import "@common/assets/styles/diveicon.css"; +@import "@common/assets/styles/components.css"; + @tailwind base; @tailwind components; @tailwind utilities; @@ -70,134 +74,4 @@ body { @apply bg-background text-foreground; } -} - -.card { - position: relative; - margin: 0.6rem; - box-sizing: border-box; - min-height: 2rem; - border-radius: 0.5rem; - padding: 0.6rem; - font-size: 1.3rem; - color: #666; -} - -.card_width10 { - width: calc(10% - 12px); -} - -.card_width20 { - width: calc(20% - 12px); -} - -.card_width25 { - width: calc(25% - 12px); -} - -.card_width30 { - width: calc(30% - 12px); -} - -.card_width33 { - width: calc(33.333% - 12px); -} - -.card_width40 { - width: calc(40% - 12px); -} - -.card_width45 { - width: calc(45% - 12px); -} - -.card_width50 { - width: calc(50% - 12px); -} - -.card_width60 { - width: calc(60% - 12px); -} - -.card_width66 { - width: calc(66.666% - 12px); -} - -.card_width70 { - width: calc(70% - 12px); -} - -.card_width75 { - width: calc(75% - 12px); -} - -.card_width80 { - width: calc(80% - 12px); -} - -.card_width90 { - width: calc(90% - 12px); -} - -.card_width100 { - width: calc(100% - 12px); -} - -.card_nopadding { - padding: 0 !important; -} - -.card_nomargin { - width: 100%; - margin: 0 !important; - padding: 0 !important; -} - -.topline { - border-top: 1px solid #ccc; -} - -.bottomline { - border-bottom: 1px solid #e6eef3; - background: #fff; -} - -.card-border { - border: 1px solid #dbe2e6; - background-color: rgba(255, 255, 255, 0.6); - box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); -} - -.card-header { - margin-left: -0.6rem; - margin-right: -0.6rem; - display: flex; - align-items: center; - justify-content: space-between; - border-bottom: 1px solid #e1e7eb; - padding: 1rem; -} - -.card-footer { - margin-left: -0.6rem; - margin-right: -0.6rem; - margin-top: 0.5rem; - display: flex; - align-items: center; - justify-content: center; - border-top: 1px solid #e1e7eb; - padding-top: 1rem; - padding-bottom: 1rem; -} - -/* 블랙 테마 */ -[data-theme="black"] { - .card-border { - border-color: #3f4042; - background-color: rgba(255, 255, 255, 0.065); - } - - .card-header { - border-bottom-color: #3f4042; - } } \ No newline at end of file From c966581a993aa9547a67c65bd4064f7b9b92975f Mon Sep 17 00:00:00 2001 From: leedj312 Date: Wed, 26 Mar 2025 16:56:55 +0900 Subject: [PATCH 13/26] =?UTF-8?q?selectBox=20default=20value=20=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/select/index.tsx | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/packages/common/business_components/src/ui/select/index.tsx b/packages/common/business_components/src/ui/select/index.tsx index 1f1294666..dc1ea6986 100644 --- a/packages/common/business_components/src/ui/select/index.tsx +++ b/packages/common/business_components/src/ui/select/index.tsx @@ -4,28 +4,22 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from ". /** 차트 기본 스타일 */ interface SelectBox1 { - text:string, + text:string|number, val:string } + const SelectBox = React.forwardRef< HTMLDivElement, - React.HTMLAttributes & { - label:string, - selectClass:string|undefined, - className:string, - selectArray:SelectBox1[], - onSelectValue:(val:string)=>void, - value?: string - } ->(({ label, className, selectClass, selectArray, onSelectValue, value }, ref)=>{ - const placeHolder = selectArray?.[0]?.text ?? ""; + React.HTMLAttributes & {label:string, selectClass:string|undefined, className:string, selectArray:SelectBox1[], onSelectValue:(val:string)=>void , defaultValue:string|number|undefined } +>(({ label, className, selectClass, selectArray, onSelectValue, defaultValue }, ref)=>{ + const placeHolder = defaultValue ? selectArray.find(item => defaultValue === item.val)?.text : selectArray?.[0]?.text; return (
- {label && } - + From 4b13eb4280f30a389aa458f4aa505a772ebbed93 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Wed, 26 Mar 2025 17:01:19 +0900 Subject: [PATCH 14/26] =?UTF-8?q?div=EC=98=81=EC=97=AD=20=EA=B3=B5?= =?UTF-8?q?=ED=86=B5=ED=99=94=20(Main,=20SearchDiv,=20ContentDiv,=20Listdi?= =?UTF-8?q?v..)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/business_components/src/ui/index.ts | 2 +- .../business_components/src/ui/list_div/index.tsx | 11 +++++++++++ .../src/ui/main_content_div/index.tsx | 4 ++-- .../business_components/src/ui/search_form/index.tsx | 2 +- .../common/business_components/src/ui/table/index.tsx | 4 ++-- .../business_components/src/ui/table_div/index.tsx | 2 +- 6 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 packages/common/business_components/src/ui/list_div/index.tsx diff --git a/packages/common/business_components/src/ui/index.ts b/packages/common/business_components/src/ui/index.ts index 430d5edd9..d76c22861 100644 --- a/packages/common/business_components/src/ui/index.ts +++ b/packages/common/business_components/src/ui/index.ts @@ -14,4 +14,4 @@ export * from "./title"; export * from "./search_form_left"; export * from "./search_form_right"; export * from "./table_div"; -export * from "./tab"; \ No newline at end of file +export * from "./list_div"; \ No newline at end of file diff --git a/packages/common/business_components/src/ui/list_div/index.tsx b/packages/common/business_components/src/ui/list_div/index.tsx new file mode 100644 index 000000000..a096a4c04 --- /dev/null +++ b/packages/common/business_components/src/ui/list_div/index.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +function ListDiv(props: {children: React.ReactNode}) { + return ( +
+ {props.children} +
+ ) +} + +export default ListDiv \ No newline at end of file diff --git a/packages/common/business_components/src/ui/main_content_div/index.tsx b/packages/common/business_components/src/ui/main_content_div/index.tsx index f1f85fa9c..d1e818196 100644 --- a/packages/common/business_components/src/ui/main_content_div/index.tsx +++ b/packages/common/business_components/src/ui/main_content_div/index.tsx @@ -1,6 +1,6 @@ import React from 'react' -export default function MainContentDiv(props: {children: React.ReactNode}) { +export default function MainDiv(props: {children: React.ReactNode}) { return (
{props.children} @@ -8,4 +8,4 @@ export default function MainContentDiv(props: {children: React.ReactNode}) { ) } -export { MainContentDiv }; \ No newline at end of file +export { MainDiv }; \ No newline at end of file diff --git a/packages/common/business_components/src/ui/search_form/index.tsx b/packages/common/business_components/src/ui/search_form/index.tsx index 1f7950358..3bcd94171 100644 --- a/packages/common/business_components/src/ui/search_form/index.tsx +++ b/packages/common/business_components/src/ui/search_form/index.tsx @@ -1,6 +1,6 @@ function SearchDiv ({children}:{ children: React.ReactNode; }) { return ( -
+
{children}
) diff --git a/packages/common/business_components/src/ui/table/index.tsx b/packages/common/business_components/src/ui/table/index.tsx index c397e155d..d22a5835d 100644 --- a/packages/common/business_components/src/ui/table/index.tsx +++ b/packages/common/business_components/src/ui/table/index.tsx @@ -21,10 +21,10 @@ export function UiTable({ tableData, headlist, pageSize, total, children, headNa return ( <> - {headName ?
+ {headName ?
{headName}
: <>} -
+
{children ? <>{children} : {headlist?.map((head) => ( diff --git a/packages/common/business_components/src/ui/table_div/index.tsx b/packages/common/business_components/src/ui/table_div/index.tsx index ccadd99b1..b0e580b9c 100644 --- a/packages/common/business_components/src/ui/table_div/index.tsx +++ b/packages/common/business_components/src/ui/table_div/index.tsx @@ -2,7 +2,7 @@ function ContentsDiv(props: {children: React.ReactNode}) { return ( -
+
{props.children}
) From 20442392ac2968e93b4cc132d43b17fe6853dc83 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Wed, 26 Mar 2025 17:20:28 +0900 Subject: [PATCH 15/26] =?UTF-8?q?tab=20export=20=EB=88=84=EB=9D=BD=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/business_components/src/ui/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/common/business_components/src/ui/index.ts b/packages/common/business_components/src/ui/index.ts index d76c22861..e5b11581b 100644 --- a/packages/common/business_components/src/ui/index.ts +++ b/packages/common/business_components/src/ui/index.ts @@ -14,4 +14,5 @@ export * from "./title"; export * from "./search_form_left"; export * from "./search_form_right"; export * from "./table_div"; -export * from "./list_div"; \ No newline at end of file +export * from "./list_div"; +export * from "./tab"; \ No newline at end of file From 8346f59f4501d75fdaac15b1e5415a8aea5bf118 Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Wed, 26 Mar 2025 17:32:28 +0900 Subject: [PATCH 16/26] =?UTF-8?q?selectbox,=20search=5Finput=20=EC=8A=A4?= =?UTF-8?q?=ED=83=80=EC=9D=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/business_components/src/ui/search_input/index.tsx | 2 +- packages/common/business_components/src/ui/select/index.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/common/business_components/src/ui/search_input/index.tsx b/packages/common/business_components/src/ui/search_input/index.tsx index 9b38b475a..0da6cffdc 100644 --- a/packages/common/business_components/src/ui/search_input/index.tsx +++ b/packages/common/business_components/src/ui/search_input/index.tsx @@ -9,7 +9,7 @@ const SearchInput = React.forwardRef {label && } - +
) }); diff --git a/packages/common/business_components/src/ui/select/index.tsx b/packages/common/business_components/src/ui/select/index.tsx index dc1ea6986..43fbbedef 100644 --- a/packages/common/business_components/src/ui/select/index.tsx +++ b/packages/common/business_components/src/ui/select/index.tsx @@ -17,9 +17,9 @@ const SelectBox = React.forwardRef< return (
- {label && } + {label && } - +
- +
+
+ {children ? <>{children} : {headlist?.map((head) => ( {head.title} @@ -41,8 +42,9 @@ export function UiTable({ tableData, headlist, pageSize, total, children, headNa ))} -
- {total <= 0 ? <> : } + + {total <= 0 ? <> : } + ); } diff --git a/packages/common/business_components/src/ui/title/index.tsx b/packages/common/business_components/src/ui/title/index.tsx index b496ad55f..5b6d9bff4 100644 --- a/packages/common/business_components/src/ui/title/index.tsx +++ b/packages/common/business_components/src/ui/title/index.tsx @@ -2,11 +2,9 @@ function Title(props: {title: string}) { return ( -

{props.title}

-
) } From 33d82eff22cb66a0a85900e5683f24a9fc6a3dea Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Thu, 27 Mar 2025 13:21:42 +0900 Subject: [PATCH 21/26] =?UTF-8?q?=ED=91=9C=20=EC=8A=A4=ED=83=80=EC=9D=BC?= =?UTF-8?q?=20=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/business_components/src/ui/table/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/common/business_components/src/ui/table/index.tsx b/packages/common/business_components/src/ui/table/index.tsx index e56bd7a5d..b8c2706bc 100644 --- a/packages/common/business_components/src/ui/table/index.tsx +++ b/packages/common/business_components/src/ui/table/index.tsx @@ -22,9 +22,9 @@ export function UiTable({ tableData, headlist, pageSize, total, children, headNa return ( <> {headName ?
- {headName} +

{headName}

: <>} -
+
{children ? <>{children} : From a263ec0961bc475b8bc1797ef8360d36116e5871 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Thu, 27 Mar 2025 15:24:09 +0900 Subject: [PATCH 22/26] =?UTF-8?q?selectbox1=20val=20=ED=83=80=EC=9E=85=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20alert=5Fdialog=5Fui=20=EB=B0=8F=20dialog?= =?UTF-8?q?=5Fui=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/{alert_dialog_ui => dialog_ui}/index.tsx | 0 packages/common/business_components/src/ui/select/index.tsx | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/common/business_components/src/ui/{alert_dialog_ui => dialog_ui}/index.tsx (100%) diff --git a/packages/common/business_components/src/ui/alert_dialog_ui/index.tsx b/packages/common/business_components/src/ui/dialog_ui/index.tsx similarity index 100% rename from packages/common/business_components/src/ui/alert_dialog_ui/index.tsx rename to packages/common/business_components/src/ui/dialog_ui/index.tsx diff --git a/packages/common/business_components/src/ui/select/index.tsx b/packages/common/business_components/src/ui/select/index.tsx index 1f1294666..c7fbc5ef0 100644 --- a/packages/common/business_components/src/ui/select/index.tsx +++ b/packages/common/business_components/src/ui/select/index.tsx @@ -5,7 +5,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from ". /** 차트 기본 스타일 */ interface SelectBox1 { text:string, - val:string + val:string|number } const SelectBox = React.forwardRef< From 4856e7fc17433b4bbe9c1bd4be1e477c7863b838 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Thu, 27 Mar 2025 15:38:03 +0900 Subject: [PATCH 23/26] =?UTF-8?q?index=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/common/business_components/src/ui/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/common/business_components/src/ui/index.ts b/packages/common/business_components/src/ui/index.ts index e224086a0..c3022740d 100644 --- a/packages/common/business_components/src/ui/index.ts +++ b/packages/common/business_components/src/ui/index.ts @@ -16,4 +16,4 @@ export * from "./search_form_right"; export * from "./table_div"; export * from "./list_div"; export * from "./tab"; -export * from "./alert_dialog_ui" \ No newline at end of file +export * from "./dialog_ui" \ No newline at end of file From 4667e535e98e5fb7ddd36db4b504a336971582ba Mon Sep 17 00:00:00 2001 From: leedj312 Date: Thu, 27 Mar 2025 16:10:20 +0900 Subject: [PATCH 24/26] =?UTF-8?q?select=20val=20type=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/business_components/src/ui/select/index.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/common/business_components/src/ui/select/index.tsx b/packages/common/business_components/src/ui/select/index.tsx index c7fbc5ef0..b03932256 100644 --- a/packages/common/business_components/src/ui/select/index.tsx +++ b/packages/common/business_components/src/ui/select/index.tsx @@ -15,8 +15,8 @@ const SelectBox = React.forwardRef< selectClass:string|undefined, className:string, selectArray:SelectBox1[], - onSelectValue:(val:string)=>void, - value?: string + onSelectValue:(val:string|number)=>void, + value?: string|number } >(({ label, className, selectClass, selectArray, onSelectValue, value }, ref)=>{ const placeHolder = selectArray?.[0]?.text ?? ""; @@ -24,13 +24,13 @@ const SelectBox = React.forwardRef< return (
{label && } - {selectArray.map((selectArray) => ( - {selectArray.text} + {selectArray.text} ))} From a764bde89949bba57514e73d979c9961a323c53f Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Thu, 27 Mar 2025 16:34:41 +0900 Subject: [PATCH 25/26] =?UTF-8?q?modal=20=EC=88=98=EC=A0=95=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/alert_dialog_ui/index.tsx | 71 ++++++++++++------- 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/packages/common/business_components/src/ui/alert_dialog_ui/index.tsx b/packages/common/business_components/src/ui/alert_dialog_ui/index.tsx index 58b69cff6..27c67458d 100644 --- a/packages/common/business_components/src/ui/alert_dialog_ui/index.tsx +++ b/packages/common/business_components/src/ui/alert_dialog_ui/index.tsx @@ -1,33 +1,52 @@ -import { Button, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@common/components"; +import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@common/components"; - -type ModalType={ - bodyClass:string - butNm:string - title:string - body:React.ReactNode +type ModalType = { + bodyClass: string; + butNm: string; + title: string; + body: React.ReactNode; + open?: boolean; + onOpenChange?: (open: boolean) => void; } -export function UiModal({bodyClass,butNm,title ,body}:ModalType ) { + +export function UiModal({ bodyClass, butNm, title, body, open, onOpenChange }: ModalType) { + const dialogProps = open !== undefined && onOpenChange !== undefined + ? { open, onOpenChange } + : {}; + return ( <> - - - - - - - {title} - - - - {body} - - - - - - - + {!open && ( + + + + + + + {title} + + + + {body} + + + + + )} + {open && ( + + + + {title} + + + + {body} + + + + + )} ); } From 2919d7d637fb983c58b5e3cf47f4257320ba763e Mon Sep 17 00:00:00 2001 From: YangJinSoo94 Date: Thu, 27 Mar 2025 16:36:41 +0900 Subject: [PATCH 26/26] =?UTF-8?q?alert=20dialog=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/alert_dialog_ui/index.tsx | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 packages/common/business_components/src/ui/alert_dialog_ui/index.tsx diff --git a/packages/common/business_components/src/ui/alert_dialog_ui/index.tsx b/packages/common/business_components/src/ui/alert_dialog_ui/index.tsx new file mode 100644 index 000000000..8437c87a8 --- /dev/null +++ b/packages/common/business_components/src/ui/alert_dialog_ui/index.tsx @@ -0,0 +1,53 @@ +import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@common/components"; +import React from "react"; + +type ModalType = { + bodyClass: string; + butNm: string; + title: string; + body: React.ReactNode; + open?: boolean; + onOpenChange?: (open: boolean) => void; +} + +export function UiModal({ bodyClass, butNm, title, body, open, onOpenChange }: ModalType) { + const dialogProps = open !== undefined && onOpenChange !== undefined + ? { open, onOpenChange } + : {}; + + return ( + <> + {!open && ( + + + + + + + {title} + + + + {body} + + + + + )} + {open && ( + + + + {title} + + + + {body} + + + + + )} + + ); +}