@j-solution/components 1.6.1 → 1.7.0

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 (187) hide show
  1. package/README.md +8 -6
  2. package/assets/jwms-portal-frontend-CwxPfHfa.css +1 -0
  3. package/assets/styles/j-components.css +1 -1
  4. package/assets/styles/themes.css +107 -0
  5. package/components/atoms/JAvatar.vue.cjs +1 -1
  6. package/components/atoms/JAvatar.vue.cjs.map +1 -1
  7. package/components/atoms/JAvatar.vue.js +10 -7
  8. package/components/atoms/JAvatar.vue.js.map +1 -1
  9. package/components/atoms/JBadge.vue.cjs +1 -1
  10. package/components/atoms/JBadge.vue.cjs.map +1 -1
  11. package/components/atoms/JBadge.vue.js +7 -6
  12. package/components/atoms/JBadge.vue.js.map +1 -1
  13. package/components/atoms/JButton.vue.cjs +1 -1
  14. package/components/atoms/JButton.vue.cjs.map +1 -1
  15. package/components/atoms/JButton.vue.js +5 -5
  16. package/components/atoms/JButton.vue.js.map +1 -1
  17. package/components/atoms/JDatepicker.vue.cjs +1 -1
  18. package/components/atoms/JDatepicker.vue.cjs.map +1 -1
  19. package/components/atoms/JDatepicker.vue.js +10 -10
  20. package/components/atoms/JDatepicker.vue.js.map +1 -1
  21. package/components/atoms/JEditor.vue.cjs +1 -1
  22. package/components/atoms/JEditor.vue.js +1 -1
  23. package/components/atoms/JEditor.vue2.cjs +1 -1
  24. package/components/atoms/JEditor.vue2.cjs.map +1 -1
  25. package/components/atoms/JEditor.vue2.js +31 -17
  26. package/components/atoms/JEditor.vue2.js.map +1 -1
  27. package/components/atoms/JGrid.vue.cjs +1 -1
  28. package/components/atoms/JGrid.vue.js +2 -2
  29. package/components/atoms/JGrid.vue2.cjs +1 -1
  30. package/components/atoms/JGrid.vue2.cjs.map +1 -1
  31. package/components/atoms/JGrid.vue2.js +45 -33
  32. package/components/atoms/JGrid.vue2.js.map +1 -1
  33. package/components/atoms/JIcon.vue.cjs +1 -1
  34. package/components/atoms/JIcon.vue.cjs.map +1 -1
  35. package/components/atoms/JIcon.vue.js +14 -13
  36. package/components/atoms/JIcon.vue.js.map +1 -1
  37. package/components/atoms/JKbd.vue.cjs +1 -1
  38. package/components/atoms/JKbd.vue.cjs.map +1 -1
  39. package/components/atoms/JKbd.vue.js +13 -10
  40. package/components/atoms/JKbd.vue.js.map +1 -1
  41. package/components/atoms/JLabel.vue.cjs +1 -1
  42. package/components/atoms/JLabel.vue.cjs.map +1 -1
  43. package/components/atoms/JLabel.vue.js +4 -4
  44. package/components/atoms/JLabel.vue.js.map +1 -1
  45. package/components/atoms/JLink.vue.cjs +1 -1
  46. package/components/atoms/JLink.vue.cjs.map +1 -1
  47. package/components/atoms/JLink.vue.js +5 -5
  48. package/components/atoms/JLink.vue.js.map +1 -1
  49. package/components/atoms/JPreview.vue.cjs +1 -1
  50. package/components/atoms/JPreview.vue.js +2 -2
  51. package/components/atoms/JPreview.vue2.cjs +1 -1
  52. package/components/atoms/JPreview.vue2.cjs.map +1 -1
  53. package/components/atoms/JPreview.vue2.js +33 -20
  54. package/components/atoms/JPreview.vue2.js.map +1 -1
  55. package/components/atoms/JProgress.vue.cjs +1 -1
  56. package/components/atoms/JProgress.vue.cjs.map +1 -1
  57. package/components/atoms/JProgress.vue.js +15 -9
  58. package/components/atoms/JProgress.vue.js.map +1 -1
  59. package/components/atoms/JRadio.vue.cjs +1 -1
  60. package/components/atoms/JRadio.vue.cjs.map +1 -1
  61. package/components/atoms/JRadio.vue.js +1 -1
  62. package/components/atoms/JRadio.vue.js.map +1 -1
  63. package/components/atoms/JSearchCombo.vue.cjs +1 -1
  64. package/components/atoms/JSearchCombo.vue.cjs.map +1 -1
  65. package/components/atoms/JSearchCombo.vue.js +38 -37
  66. package/components/atoms/JSearchCombo.vue.js.map +1 -1
  67. package/components/atoms/JSpinner.vue.cjs +1 -1
  68. package/components/atoms/JSpinner.vue.cjs.map +1 -1
  69. package/components/atoms/JSpinner.vue.js +8 -7
  70. package/components/atoms/JSpinner.vue.js.map +1 -1
  71. package/components/atoms/JSplitter.vue.cjs +1 -1
  72. package/components/atoms/JSplitter.vue.cjs.map +1 -1
  73. package/components/atoms/JSplitter.vue.js +32 -27
  74. package/components/atoms/JSplitter.vue.js.map +1 -1
  75. package/components/atoms/JTooltip.vue.cjs +1 -1
  76. package/components/atoms/JTooltip.vue.cjs.map +1 -1
  77. package/components/atoms/JTooltip.vue.js +18 -15
  78. package/components/atoms/JTooltip.vue.js.map +1 -1
  79. package/components/examples/ExampleCrudPage.vue.cjs +1 -1
  80. package/components/examples/ExampleCrudPage.vue.cjs.map +1 -1
  81. package/components/examples/ExampleCrudPage.vue.js +162 -108
  82. package/components/examples/ExampleCrudPage.vue.js.map +1 -1
  83. package/components/examples/ExampleTabMappingPage.vue.cjs +1 -1
  84. package/components/examples/ExampleTabMappingPage.vue.cjs.map +1 -1
  85. package/components/examples/ExampleTabMappingPage.vue.js +162 -119
  86. package/components/examples/ExampleTabMappingPage.vue.js.map +1 -1
  87. package/components/molecules/JBreadcrumb.vue.cjs +1 -1
  88. package/components/molecules/JBreadcrumb.vue.cjs.map +1 -1
  89. package/components/molecules/JBreadcrumb.vue.js +3 -3
  90. package/components/molecules/JBreadcrumb.vue.js.map +1 -1
  91. package/components/molecules/JFormField.vue.cjs +1 -1
  92. package/components/molecules/JFormField.vue.cjs.map +1 -1
  93. package/components/molecules/JFormField.vue.js +26 -24
  94. package/components/molecules/JFormField.vue.js.map +1 -1
  95. package/components/molecules/JTabs.vue.cjs +1 -1
  96. package/components/molecules/JTabs.vue.js +1 -1
  97. package/components/molecules/JTabs.vue2.cjs +1 -1
  98. package/components/molecules/JTabs.vue2.cjs.map +1 -1
  99. package/components/molecules/JTabs.vue2.js +7 -7
  100. package/components/molecules/JTabs.vue2.js.map +1 -1
  101. package/components/molecules/JTitlebar.vue.cjs +1 -1
  102. package/components/molecules/JTitlebar.vue.cjs.map +1 -1
  103. package/components/molecules/JTitlebar.vue.js +35 -36
  104. package/components/molecules/JTitlebar.vue.js.map +1 -1
  105. package/components/organisms/JFilterBar.vue.cjs +1 -1
  106. package/components/organisms/JFilterBar.vue.cjs.map +1 -1
  107. package/components/organisms/JFilterBar.vue.js +5 -5
  108. package/components/organisms/JFilterBar.vue.js.map +1 -1
  109. package/components/organisms/JHeader.vue.cjs +1 -1
  110. package/components/organisms/JHeader.vue.cjs.map +1 -1
  111. package/components/organisms/JHeader.vue.js +25 -23
  112. package/components/organisms/JHeader.vue.js.map +1 -1
  113. package/components/organisms/JModal.vue.cjs +1 -1
  114. package/components/organisms/JModal.vue.cjs.map +1 -1
  115. package/components/organisms/JModal.vue.js +30 -27
  116. package/components/organisms/JModal.vue.js.map +1 -1
  117. package/components/organisms/JSidebarAdvanced.vue.cjs +1 -1
  118. package/components/organisms/JSidebarAdvanced.vue.js +7 -7
  119. package/components/organisms/JSidebarAdvanced.vue2.cjs +1 -1
  120. package/components/organisms/JSidebarAdvanced.vue2.cjs.map +1 -1
  121. package/components/organisms/JSidebarAdvanced.vue2.js +40 -40
  122. package/components/organisms/JSidebarAdvanced.vue2.js.map +1 -1
  123. package/components/organisms/JSidebarSimple/JDynamicMenuItem.vue.cjs +1 -1
  124. package/components/organisms/JSidebarSimple/JDynamicMenuItem.vue.cjs.map +1 -1
  125. package/components/organisms/JSidebarSimple/JDynamicMenuItem.vue.js +83 -63
  126. package/components/organisms/JSidebarSimple/JDynamicMenuItem.vue.js.map +1 -1
  127. package/components/organisms/JSidebarSimple.vue.cjs +1 -1
  128. package/components/organisms/JSidebarSimple.vue.js +2 -2
  129. package/components/organisms/JSidebarSimple.vue2.cjs +1 -1
  130. package/components/organisms/JSidebarSimple.vue2.cjs.map +1 -1
  131. package/components/organisms/JSidebarSimple.vue2.js +2 -2
  132. package/components/organisms/JSidebarSimple.vue2.js.map +1 -1
  133. package/components/shadcn/AccordionTrigger.vue.cjs +1 -1
  134. package/components/shadcn/AccordionTrigger.vue.cjs.map +1 -1
  135. package/components/shadcn/AccordionTrigger.vue.js +3 -3
  136. package/components/shadcn/AccordionTrigger.vue.js.map +1 -1
  137. package/components/shadcn/CardContent.vue.cjs +1 -1
  138. package/components/shadcn/CardContent.vue.cjs.map +1 -1
  139. package/components/shadcn/CardContent.vue.js +1 -1
  140. package/components/shadcn/CardContent.vue.js.map +1 -1
  141. package/components/shadcn/CardDescription.vue.cjs +1 -1
  142. package/components/shadcn/CardDescription.vue.cjs.map +1 -1
  143. package/components/shadcn/CardDescription.vue.js +1 -1
  144. package/components/shadcn/CardDescription.vue.js.map +1 -1
  145. package/components/shadcn/CardFooter.vue.cjs +1 -1
  146. package/components/shadcn/CardFooter.vue.cjs.map +1 -1
  147. package/components/shadcn/CardFooter.vue.js +7 -7
  148. package/components/shadcn/CardFooter.vue.js.map +1 -1
  149. package/components/shadcn/CardHeader.vue.cjs +1 -1
  150. package/components/shadcn/CardHeader.vue.cjs.map +1 -1
  151. package/components/shadcn/CardHeader.vue.js +8 -8
  152. package/components/shadcn/CardHeader.vue.js.map +1 -1
  153. package/components/shadcn/CardTitle.vue.cjs +1 -1
  154. package/components/shadcn/CardTitle.vue.cjs.map +1 -1
  155. package/components/shadcn/CardTitle.vue.js +5 -5
  156. package/components/shadcn/CardTitle.vue.js.map +1 -1
  157. package/components/shadcn/Input.vue.cjs +1 -1
  158. package/components/shadcn/Input.vue.cjs.map +1 -1
  159. package/components/shadcn/Input.vue.js +1 -1
  160. package/components/shadcn/Input.vue.js.map +1 -1
  161. package/components/shadcn/SelectTrigger.vue.cjs +1 -1
  162. package/components/shadcn/SelectTrigger.vue.cjs.map +1 -1
  163. package/components/shadcn/SelectTrigger.vue.js +2 -2
  164. package/components/shadcn/SelectTrigger.vue.js.map +1 -1
  165. package/components/shadcn/Switch.vue.cjs +1 -1
  166. package/components/shadcn/Switch.vue.cjs.map +1 -1
  167. package/components/shadcn/Switch.vue.js +2 -2
  168. package/components/shadcn/Switch.vue.js.map +1 -1
  169. package/components/shadcn/TabsList.vue.cjs +1 -1
  170. package/components/shadcn/TabsList.vue.cjs.map +1 -1
  171. package/components/shadcn/TabsList.vue.js +1 -1
  172. package/components/shadcn/TabsList.vue.js.map +1 -1
  173. package/components/shadcn/TabsTrigger.vue.cjs +1 -1
  174. package/components/shadcn/TabsTrigger.vue.cjs.map +1 -1
  175. package/components/shadcn/TabsTrigger.vue.js +4 -4
  176. package/components/shadcn/TabsTrigger.vue.js.map +1 -1
  177. package/components/shadcn/Textarea.vue.cjs +1 -1
  178. package/components/shadcn/Textarea.vue.cjs.map +1 -1
  179. package/components/shadcn/Textarea.vue.js +2 -2
  180. package/components/shadcn/Textarea.vue.js.map +1 -1
  181. package/components/shadcn/index.cjs +1 -1
  182. package/components/shadcn/index.cjs.map +1 -1
  183. package/components/shadcn/index.js +8 -7
  184. package/components/shadcn/index.js.map +1 -1
  185. package/package.json +1 -1
  186. package/types/index.d.ts +131 -15
  187. package/assets/jwms-portal-frontend-DntSIcYt.css +0 -1
@@ -1,4 +1,4 @@
1
- import { defineComponent as oe, ref as r, computed as A, createElementBlock as te, openBlock as R, createVNode as a, unref as t, withCtx as i, createElementVNode as s, createTextVNode as d, toDisplayString as ae, createBlock as ie, createCommentVNode as se } from "vue";
1
+ import { defineComponent as oe, ref as r, computed as I, createElementBlock as te, openBlock as R, createVNode as a, unref as t, withCtx as i, createElementVNode as s, createTextVNode as d, createBlock as ae, createCommentVNode as ie } from "vue";
2
2
  import b from "../molecules/JFormField.vue.js";
3
3
  /* empty css */
4
4
  import "../shadcn/index.js";
@@ -7,9 +7,10 @@ import "reka-ui";
7
7
  import "clsx";
8
8
  import "tailwind-merge";
9
9
  import "lucide-vue-next";
10
- import re from "../molecules/JTabs.vue.js";
10
+ import se from "../molecules/JTabs.vue.js";
11
11
  /* empty css */
12
12
  /* empty css */
13
+ import re from "../molecules/JCard.vue.js";
13
14
  import u from "../atoms/JButton.vue.js";
14
15
  import "@internationalized/date";
15
16
  import "md-editor-v3";
@@ -21,7 +22,7 @@ import "../shadcn/avatar-variants.js";
21
22
  import "dompurify";
22
23
  /* empty css */
23
24
  import y from "../atoms/JGrid.vue.js";
24
- import h from "../atoms/JSplitter.vue.js";
25
+ import A from "../atoms/JSplitter.vue.js";
25
26
  import "vue-sonner";
26
27
  import ne from "../molecules/JTitlebar.vue.js";
27
28
  /* empty css */
@@ -30,23 +31,23 @@ import z from "../organisms/JFilterBar.vue.js";
30
31
  import "vue-router";
31
32
  /* empty css */
32
33
  /* empty css */
33
- const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }, de = { class: "flex flex-col h-full gap-4 p-4" }, ue = { class: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4" }, pe = { class: "h-full overflow-auto bg-background" }, ce = { class: "h-full flex flex-col gap-4 overflow-y-auto p-4 border-l rounded-lg bg-card" }, fe = { class: "text-lg font-semibold mb-2" }, ve = { class: "grid grid-cols-1 md:grid-cols-2 gap-4" }, be = { class: "flex justify-end gap-2 mt-4" }, ge = { class: "flex flex-col h-full gap-4 p-4" }, ye = { class: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4" }, ke = { class: "h-full overflow-auto bg-background" }, xe = { class: "h-full flex gap-2 overflow-hidden items-stretch p-2 bg-background" }, Ce = { class: "flex-1 flex flex-col overflow-hidden" }, we = { class: "flex-1 overflow-auto bg-background" }, Ne = { class: "flex flex-col justify-center gap-2 px-2" }, Ve = { class: "flex-1 flex flex-col overflow-hidden" }, De = { class: "flex-1 overflow-auto bg-background" }, il = /* @__PURE__ */ oe({
34
+ const me = { class: "flex flex-col h-full gap-2 bg-background text-foreground" }, de = { class: "flex flex-col h-full gap-2 p-2" }, ue = { class: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-2" }, pe = { class: "h-full overflow-auto bg-background" }, ce = { class: "h-full overflow-y-auto border-l bg-muted/30" }, fe = { class: "grid grid-cols-1 md:grid-cols-2 gap-2 mt-2" }, ve = { class: "grid grid-cols-1 md:grid-cols-2 gap-2 mt-2" }, be = { class: "flex justify-end gap-2" }, ge = { class: "flex flex-col h-full gap-2 p-2" }, ye = { class: "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-2" }, we = { class: "h-full overflow-auto bg-background" }, ke = { class: "h-full flex gap-2 overflow-hidden items-stretch p-2 bg-background" }, Ce = { class: "flex-1 flex flex-col overflow-hidden" }, xe = { class: "flex-1 overflow-auto bg-background" }, Ne = { class: "flex flex-col justify-center gap-2 px-2" }, Ve = { class: "flex-1 flex flex-col overflow-hidden" }, _e = { class: "flex-1 overflow-auto bg-background" }, sl = /* @__PURE__ */ oe({
34
35
  __name: "ExampleTabMappingPage",
35
- setup(_e, { expose: U }) {
36
- const k = r("master"), Y = [
36
+ setup(De, { expose: G }) {
37
+ const w = r("master"), U = [
37
38
  { id: "master", label: "회원사 기본정보" },
38
39
  { id: "mapping-customer", label: "고객사 매핑" }
39
40
  ];
40
41
  function $(l) {
41
42
  console.log("탭 변경:", l);
42
43
  }
43
- const G = [
44
+ const T = [
44
45
  { value: "Y", label: "Y:활성" },
45
46
  { value: "N", label: "N:비활성" }
46
- ], x = r(!1), p = r({
47
+ ], k = r(!1), p = r({
47
48
  isActive: "",
48
49
  keyword: ""
49
- }), T = {
50
+ }), Y = {
50
51
  isActive: {
51
52
  label: "활성여부",
52
53
  displayValue: (l) => l === "Y" ? "Y:활성" : l === "N" ? "N:비활성" : ""
@@ -58,16 +59,32 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
58
59
  { memberId: "M001", memberName: "제이솔루션", isActive: "Y" },
59
60
  { memberId: "M002", memberName: "ABC물류", isActive: "Y" },
60
61
  { memberId: "M003", memberName: "XYZ유통", isActive: "N" }
61
- ]), B = r([
62
- { field: "memberId", headerName: "회원사코드", width: 150 },
63
- { field: "memberName", headerName: "회원사명", flex: 1 },
62
+ ]), F = r([
63
+ {
64
+ field: "memberId",
65
+ headerName: "회원사코드",
66
+ width: 150,
67
+ enableValue: !0
68
+ // 집계 가능 (count)
69
+ },
70
+ {
71
+ field: "memberName",
72
+ headerName: "회원사명",
73
+ flex: 1,
74
+ enableValue: !0
75
+ // 집계 가능 (count)
76
+ },
64
77
  {
65
78
  field: "isActive",
66
79
  headerName: "활성",
67
80
  width: 100,
68
- cellRenderer: (l) => l.value === "Y" ? "✓" : ""
81
+ cellRenderer: (l) => l.value === "Y" ? "✓" : "",
82
+ enableRowGroup: !0,
83
+ // Row Group으로 사용 가능
84
+ enablePivot: !0
85
+ // Pivot Column으로 사용 가능
69
86
  }
70
- ]), F = [
87
+ ]), S = [
71
88
  {
72
89
  icon: "pencil",
73
90
  label: "수정",
@@ -89,50 +106,50 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
89
106
  confirm(`${l.memberName}을(를) 삭제하시겠습니까?`) && (console.log("회원사 삭제:", l.memberId), alert(`삭제되었습니다: ${l.memberName}`));
90
107
  }
91
108
  }
92
- ], w = r(), f = r(!1), n = r({
109
+ ], x = r(), f = r(!1), n = r({
93
110
  memberId: "",
94
111
  memberName: "",
95
112
  isActive: "Y"
96
113
  });
97
- function S(l) {
114
+ function B(l) {
98
115
  f.value = !1, n.value = {
99
116
  memberId: l.data.memberId,
100
117
  memberName: l.data.memberName,
101
118
  isActive: l.data.isActive
102
119
  };
103
120
  }
104
- function E() {
121
+ function P() {
105
122
  f.value = !0, n.value = {
106
123
  memberId: "",
107
124
  memberName: "",
108
125
  isActive: "Y"
109
126
  };
110
127
  }
111
- function j() {
128
+ function E() {
112
129
  console.log("회원사 저장:", n.value), alert(`저장되었습니다: ${n.value.memberName}`);
113
130
  }
114
- function H() {
131
+ function j() {
115
132
  confirm(`${n.value.memberName}을(를) 삭제하시겠습니까?`) && (console.log("회원사 삭제:", n.value.memberId), alert(`삭제되었습니다: ${n.value.memberName}`));
116
133
  }
117
- function J() {
134
+ function H() {
118
135
  p.value = {
119
136
  isActive: "",
120
137
  keyword: ""
121
138
  };
122
139
  }
123
- function K() {
140
+ function J() {
124
141
  console.log("회원사 조회:", p.value);
125
142
  }
126
- function L() {
143
+ function W() {
127
144
  alert("회원사 관리 페이지 도움말");
128
145
  }
129
146
  const N = r(!1), v = r({
130
147
  keyword: ""
131
- }), O = {
148
+ }), K = {
132
149
  keyword: {
133
150
  label: "검색어"
134
151
  }
135
- }, V = r(), D = r(), _ = r(), P = r([
152
+ }, V = r(), _ = r(), D = r(), L = r([
136
153
  { field: "memberId", headerName: "회원사코드", width: 150 },
137
154
  { field: "memberName", headerName: "회원사명", flex: 1 }
138
155
  ]), m = r(""), c = r({
@@ -142,33 +159,33 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
142
159
  // ABC물류에 매핑된 고객사
143
160
  M003: []
144
161
  // XYZ유통에 매핑된 고객사 없음
145
- }), M = [
162
+ }), h = [
146
163
  { code: "C001", name: "고객A" },
147
164
  { code: "C002", name: "고객B" },
148
165
  { code: "C003", name: "고객C" },
149
166
  { code: "C004", name: "고객D" },
150
167
  { code: "C005", name: "고객E" }
151
- ], I = r([
168
+ ], M = r([
152
169
  { field: "code", headerName: "코드", width: 120 },
153
170
  { field: "name", headerName: "이름", flex: 1 }
154
- ]), X = A(() => {
171
+ ]), O = I(() => {
155
172
  if (!m.value) return [];
156
173
  const l = c.value[m.value] || [];
157
- return M.filter((e) => !l.includes(e.code));
158
- }), Z = A(() => {
174
+ return h.filter((e) => !l.includes(e.code));
175
+ }), X = I(() => {
159
176
  if (!m.value) return [];
160
177
  const l = c.value[m.value] || [];
161
- return M.filter((e) => l.includes(e.code));
178
+ return h.filter((e) => l.includes(e.code));
162
179
  });
163
- function q(l) {
180
+ function Z(l) {
164
181
  m.value = l.data.memberId, console.log("선택된 회원사:", l.data.memberName);
165
182
  }
166
- function Q() {
183
+ function q() {
167
184
  if (!m.value) {
168
185
  alert("회원사를 먼저 선택해주세요.");
169
186
  return;
170
187
  }
171
- const l = D.value?.getSelectedRows() || [];
188
+ const l = _.value?.getSelectedRows() || [];
172
189
  if (l.length === 0) {
173
190
  alert("매핑할 고객사를 선택해주세요.");
174
191
  return;
@@ -176,12 +193,12 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
176
193
  const e = l.map((g) => g.code), o = m.value;
177
194
  c.value[o] || (c.value[o] = []), c.value[o].push(...e), console.log("매핑:", e);
178
195
  }
179
- function W() {
196
+ function Q() {
180
197
  if (!m.value) {
181
198
  alert("회원사를 먼저 선택해주세요.");
182
199
  return;
183
200
  }
184
- const l = _.value?.getSelectedRows() || [];
201
+ const l = D.value?.getSelectedRows() || [];
185
202
  if (l.length === 0) {
186
203
  alert("해제할 고객사를 선택해주세요.");
187
204
  return;
@@ -199,28 +216,28 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
199
216
  function le() {
200
217
  console.log("매핑 조회:", v.value);
201
218
  }
202
- return U({ masterGridRef: w, mappingMasterGridRef: V }), (l, e) => (R(), te("div", me, [
219
+ return G({ masterGridRef: x, mappingMasterGridRef: V }), (l, e) => (R(), te("div", me, [
203
220
  a(t(ne), {
204
221
  icon: "users",
205
222
  title: "회원사 관리",
206
223
  description: "회원사 정보 및 고객사 매핑을 관리합니다",
207
224
  showHelp: !0,
208
- onHelp: L
225
+ onHelp: W
209
226
  }),
210
- a(t(re), {
211
- activeTabId: k.value,
212
- "onUpdate:activeTabId": e[10] || (e[10] = (o) => k.value = o),
213
- tabs: Y,
227
+ a(t(se), {
228
+ activeTabId: w.value,
229
+ "onUpdate:activeTabId": e[10] || (e[10] = (o) => w.value = o),
230
+ tabs: U,
214
231
  onTabChange: $
215
232
  }, {
216
233
  "content-master": i(() => [
217
234
  s("div", de, [
218
235
  a(t(z), {
219
- collapsed: x.value,
220
- "onUpdate:collapsed": e[2] || (e[2] = (o) => x.value = o),
236
+ collapsed: k.value,
237
+ "onUpdate:collapsed": e[2] || (e[2] = (o) => k.value = o),
221
238
  filterValues: p.value,
222
239
  "onUpdate:filterValues": e[3] || (e[3] = (o) => p.value = o),
223
- filterDisplay: T,
240
+ filterDisplay: Y,
224
241
  collapsible: !0,
225
242
  title: "회원사 목록"
226
243
  }, {
@@ -228,7 +245,7 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
228
245
  a(t(u), {
229
246
  size: "sm",
230
247
  variant: "outline",
231
- onClick: J
248
+ onClick: H
232
249
  }, {
233
250
  default: i(() => [...e[11] || (e[11] = [
234
251
  d("초기화", -1)
@@ -238,7 +255,7 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
238
255
  a(t(u), {
239
256
  size: "sm",
240
257
  styletype: "primary",
241
- onClick: K
258
+ onClick: J
242
259
  }, {
243
260
  default: i(() => [...e[12] || (e[12] = [
244
261
  d("조회", -1)
@@ -248,7 +265,7 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
248
265
  a(t(u), {
249
266
  size: "sm",
250
267
  styletype: "primary",
251
- onClick: E
268
+ onClick: P
252
269
  }, {
253
270
  default: i(() => [...e[13] || (e[13] = [
254
271
  d("신규", -1)
@@ -263,88 +280,111 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
263
280
  label: "활성여부",
264
281
  modelValue: p.value.isActive,
265
282
  "onUpdate:modelValue": e[0] || (e[0] = (o) => p.value.isActive = o),
266
- options: G
283
+ options: T,
284
+ orientation: "horizontal",
285
+ labelWidth: "30%"
267
286
  }, null, 8, ["modelValue"]),
268
287
  a(t(b), {
269
288
  type: "input",
270
289
  label: "검색어",
271
290
  modelValue: p.value.keyword,
272
- "onUpdate:modelValue": e[1] || (e[1] = (o) => p.value.keyword = o)
291
+ "onUpdate:modelValue": e[1] || (e[1] = (o) => p.value.keyword = o),
292
+ orientation: "horizontal",
293
+ labelWidth: "30%"
273
294
  }, null, 8, ["modelValue"])
274
295
  ])
275
296
  ]),
276
297
  _: 1
277
298
  }, 8, ["collapsed", "filterValues"]),
278
- a(t(h), {
299
+ a(t(A), {
279
300
  direction: "horizontal",
280
301
  "default-size": 60,
281
302
  "min-size": 30,
282
303
  "second-min-size": 20,
283
304
  "second-max-size": 60,
305
+ gap: 2,
284
306
  class: "flex-1"
285
307
  }, {
286
308
  left: i(() => [
287
309
  s("div", pe, [
288
310
  a(t(y), {
289
311
  ref_key: "masterGridRef",
290
- ref: w,
291
- columnDefs: B.value,
312
+ ref: x,
313
+ columnDefs: F.value,
292
314
  rowData: C.value,
293
- "action-buttons": F,
294
- onRowClicked: S
315
+ "action-buttons": S,
316
+ enableGrouping: !0,
317
+ enablePivot: !0,
318
+ enableColumnsToolPanel: !0,
319
+ rowGroupPanelShow: "always",
320
+ pivotPanelShow: "always",
321
+ groupDefaultExpanded: 1,
322
+ compactFooter: !0,
323
+ onRowClicked: B
295
324
  }, null, 8, ["columnDefs", "rowData"])
296
325
  ])
297
326
  ]),
298
327
  right: i(() => [
299
328
  s("div", ce, [
300
- s("h3", fe, ae(f.value ? "신규 등록" : "상세 정보"), 1),
301
- s("div", ve, [
302
- a(t(b), {
303
- type: "input",
304
- label: "회원사코드",
305
- modelValue: n.value.memberId,
306
- "onUpdate:modelValue": e[4] || (e[4] = (o) => n.value.memberId = o),
307
- readonly: !f.value,
308
- placeholder: "회원사 코드"
309
- }, null, 8, ["modelValue", "readonly"]),
310
- a(t(b), {
311
- type: "input",
312
- label: "회원사명",
313
- modelValue: n.value.memberName,
314
- "onUpdate:modelValue": e[5] || (e[5] = (o) => n.value.memberName = o),
315
- placeholder: "회원사 이름"
316
- }, null, 8, ["modelValue"])
317
- ]),
318
- a(t(b), {
319
- type: "checkbox",
320
- label: "활성여부",
321
- modelValue: n.value.isActive,
322
- "onUpdate:modelValue": e[6] || (e[6] = (o) => n.value.isActive = o),
323
- inlineLabel: "활성"
324
- }, null, 8, ["modelValue"]),
325
- s("div", be, [
326
- a(t(u), {
327
- styletype: "primary",
328
- size: "sm",
329
- onClick: j
330
- }, {
331
- default: i(() => [...e[14] || (e[14] = [
332
- d("저장", -1)
333
- ])]),
334
- _: 1
335
- }),
336
- f.value ? se("", !0) : (R(), ie(t(u), {
337
- key: 0,
338
- variant: "outline",
339
- size: "sm",
340
- onClick: H
341
- }, {
342
- default: i(() => [...e[15] || (e[15] = [
343
- d("삭제", -1)
344
- ])]),
345
- _: 1
346
- }))
347
- ])
329
+ a(t(re), {
330
+ class: "h-full",
331
+ title: f.value ? "신규 등록" : "상세 정보"
332
+ }, {
333
+ footer: i(() => [
334
+ s("div", be, [
335
+ a(t(u), {
336
+ styletype: "primary",
337
+ size: "sm",
338
+ onClick: E
339
+ }, {
340
+ default: i(() => [...e[14] || (e[14] = [
341
+ d("저장", -1)
342
+ ])]),
343
+ _: 1
344
+ }),
345
+ f.value ? ie("", !0) : (R(), ae(t(u), {
346
+ key: 0,
347
+ variant: "outline",
348
+ size: "sm",
349
+ onClick: j
350
+ }, {
351
+ default: i(() => [...e[15] || (e[15] = [
352
+ d("삭제", -1)
353
+ ])]),
354
+ _: 1
355
+ }))
356
+ ])
357
+ ]),
358
+ default: i(() => [
359
+ s("div", fe, [
360
+ a(t(b), {
361
+ type: "input",
362
+ label: "회원사코드",
363
+ modelValue: n.value.memberId,
364
+ "onUpdate:modelValue": e[4] || (e[4] = (o) => n.value.memberId = o),
365
+ readonly: !f.value,
366
+ placeholder: "회원사 코드"
367
+ }, null, 8, ["modelValue", "readonly"]),
368
+ a(t(b), {
369
+ type: "input",
370
+ label: "회원사명",
371
+ modelValue: n.value.memberName,
372
+ "onUpdate:modelValue": e[5] || (e[5] = (o) => n.value.memberName = o),
373
+ placeholder: "회원사 이름"
374
+ }, null, 8, ["modelValue"])
375
+ ]),
376
+ s("div", ve, [
377
+ a(t(b), {
378
+ type: "checkbox",
379
+ label: "활성여부",
380
+ modelValue: n.value.isActive,
381
+ "onUpdate:modelValue": e[6] || (e[6] = (o) => n.value.isActive = o),
382
+ inlineLabel: "활성"
383
+ }, null, 8, ["modelValue"])
384
+ ])
385
+ ]),
386
+ _: 1
387
+ }, 8, ["title"])
348
388
  ])
349
389
  ]),
350
390
  _: 1
@@ -358,7 +398,7 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
358
398
  "onUpdate:collapsed": e[8] || (e[8] = (o) => N.value = o),
359
399
  filterValues: v.value,
360
400
  "onUpdate:filterValues": e[9] || (e[9] = (o) => v.value = o),
361
- filterDisplay: O,
401
+ filterDisplay: K,
362
402
  collapsible: !0,
363
403
  title: "회원사별 고객사 매핑"
364
404
  }, {
@@ -396,34 +436,36 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
396
436
  ]),
397
437
  _: 1
398
438
  }, 8, ["collapsed", "filterValues"]),
399
- a(t(h), {
439
+ a(t(A), {
400
440
  direction: "vertical",
401
441
  "default-size": 30,
402
442
  "min-size": 20,
403
443
  "second-min-size": 40,
444
+ gap: 2,
404
445
  class: "flex-1"
405
446
  }, {
406
447
  top: i(() => [
407
- s("div", ke, [
448
+ s("div", we, [
408
449
  a(t(y), {
409
450
  ref_key: "mappingMasterGridRef",
410
451
  ref: V,
411
- columnDefs: P.value,
452
+ columnDefs: L.value,
412
453
  rowData: C.value,
413
- onRowClicked: q
454
+ onRowClicked: Z
414
455
  }, null, 8, ["columnDefs", "rowData"])
415
456
  ])
416
457
  ]),
417
458
  bottom: i(() => [
418
- s("div", xe, [
459
+ s("div", ke, [
419
460
  s("div", Ce, [
420
461
  e[18] || (e[18] = s("h4", { class: "text-sm font-semibold mb-2 px-2" }, "미매핑 고객사", -1)),
421
- s("div", we, [
462
+ s("div", xe, [
422
463
  a(t(y), {
423
464
  ref_key: "unmappedGridRef",
424
- ref: D,
425
- columnDefs: I.value,
426
- rowData: X.value,
465
+ ref: _,
466
+ columnDefs: M.value,
467
+ rowData: O.value,
468
+ pagination: !1,
427
469
  checkbox: ""
428
470
  }, null, 8, ["columnDefs", "rowData"])
429
471
  ])
@@ -432,7 +474,7 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
432
474
  a(t(u), {
433
475
  styletype: "primary",
434
476
  size: "sm",
435
- onClick: Q
477
+ onClick: q
436
478
  }, {
437
479
  default: i(() => [...e[19] || (e[19] = [
438
480
  d("매핑 ▶", -1)
@@ -442,7 +484,7 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
442
484
  a(t(u), {
443
485
  variant: "outline",
444
486
  size: "sm",
445
- onClick: W
487
+ onClick: Q
446
488
  }, {
447
489
  default: i(() => [...e[20] || (e[20] = [
448
490
  d("◀ 해제", -1)
@@ -452,12 +494,13 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
452
494
  ]),
453
495
  s("div", Ve, [
454
496
  e[21] || (e[21] = s("h4", { class: "text-sm font-semibold mb-2 px-2" }, "매핑된 고객사", -1)),
455
- s("div", De, [
497
+ s("div", _e, [
456
498
  a(t(y), {
457
499
  ref_key: "mappedGridRef",
458
- ref: _,
459
- columnDefs: I.value,
460
- rowData: Z.value,
500
+ ref: D,
501
+ columnDefs: M.value,
502
+ rowData: X.value,
503
+ pagination: !1,
461
504
  checkbox: ""
462
505
  }, null, 8, ["columnDefs", "rowData"])
463
506
  ])
@@ -474,6 +517,6 @@ const me = { class: "flex flex-col h-full gap-4 bg-background text-foreground" }
474
517
  }
475
518
  });
476
519
  export {
477
- il as default
520
+ sl as default
478
521
  };
479
522
  //# sourceMappingURL=ExampleTabMappingPage.vue.js.map