evui 3.3.36 → 3.3.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +40 -40
- package/dist/evui.common.js +1907 -1832
- package/dist/evui.common.js.map +1 -1
- package/dist/evui.umd.js +1907 -1832
- package/dist/evui.umd.js.map +1 -1
- package/dist/evui.umd.min.js +1 -1
- package/dist/evui.umd.min.js.map +1 -1
- package/dist/img/{EVUI.7f3588fb.svg → EVUI.b82ee81a.svg} +292 -292
- package/dist/img/{icon_mysql.7ea26d5d.svg → icon_mysql.1085fdc9.svg} +78 -78
- package/dist/img/{icon_oracle.9009b108.svg → icon_oracle.0572d3ee.svg} +13 -13
- package/dist/img/{icon_postgresql.f8fffba9.svg → icon_postgresql.ee12bde8.svg} +58 -58
- package/package.json +61 -61
- package/src/common/emitter.js +20 -20
- package/src/common/utils.debounce.js +223 -223
- package/src/common/utils.js +134 -134
- package/src/common/utils.table.js +78 -78
- package/src/common/utils.throttle.js +83 -83
- package/src/common/utils.tree.js +18 -18
- package/src/components/button/Button.vue +198 -198
- package/src/components/button/index.js +7 -7
- package/src/components/buttonGroup/ButtonGroup.vue +11 -11
- package/src/components/buttonGroup/index.js +7 -7
- package/src/components/calendar/Calendar.vue +661 -661
- package/src/components/calendar/index.js +7 -7
- package/src/components/calendar/uses.js +1272 -1272
- package/src/components/chart/Chart.vue +189 -192
- package/src/components/chart/chart.core.js +870 -870
- package/src/components/chart/element/element.bar.js +524 -524
- package/src/components/chart/element/element.bar.time.js +156 -156
- package/src/components/chart/element/element.heatmap.js +533 -533
- package/src/components/chart/element/element.line.js +339 -339
- package/src/components/chart/element/element.pie.js +197 -197
- package/src/components/chart/element/element.scatter.js +184 -184
- package/src/components/chart/element/element.tip.js +550 -542
- package/src/components/chart/helpers/helpers.canvas.js +265 -265
- package/src/components/chart/helpers/helpers.constant.js +206 -206
- package/src/components/chart/helpers/helpers.util.js +346 -338
- package/src/components/chart/index.js +9 -9
- package/src/components/chart/model/index.js +4 -4
- package/src/components/chart/model/model.series.js +93 -93
- package/src/components/chart/model/model.store.js +977 -967
- package/src/components/chart/plugins/plugins.interaction.js +769 -769
- package/src/components/chart/plugins/plugins.legend.gradient.js +602 -602
- package/src/components/chart/plugins/plugins.legend.js +1155 -1151
- package/src/components/chart/plugins/plugins.pie.js +254 -254
- package/src/components/chart/plugins/plugins.title.js +56 -56
- package/src/components/chart/plugins/plugins.tooltip.js +692 -692
- package/src/components/chart/scale/scale.js +848 -848
- package/src/components/chart/scale/scale.linear.js +38 -38
- package/src/components/chart/scale/scale.logarithmic.js +128 -128
- package/src/components/chart/scale/scale.step.js +336 -336
- package/src/components/chart/scale/scale.time.category.js +277 -277
- package/src/components/chart/scale/scale.time.js +48 -48
- package/src/components/chart/style/chart.scss +312 -312
- package/src/components/chart/uses.js +264 -252
- package/src/components/checkbox/Checkbox.vue +200 -200
- package/src/components/checkbox/index.js +7 -7
- package/src/components/checkboxGroup/CheckboxGroup.vue +44 -44
- package/src/components/checkboxGroup/index.js +7 -7
- package/src/components/contextMenu/ContextMenu.vue +80 -80
- package/src/components/contextMenu/MenuList.vue +149 -149
- package/src/components/contextMenu/index.js +7 -7
- package/src/components/contextMenu/uses.js +203 -203
- package/src/components/datePicker/DatePicker.vue +437 -437
- package/src/components/datePicker/index.js +7 -7
- package/src/components/datePicker/uses.js +419 -419
- package/src/components/grid/Grid.vue +827 -827
- package/src/components/grid/grid.filter.window.vue +493 -493
- package/src/components/grid/grid.pagination.vue +75 -75
- package/src/components/grid/grid.summary.vue +265 -265
- package/src/components/grid/grid.toolbar.vue +26 -26
- package/src/components/grid/index.js +11 -11
- package/src/components/grid/style/grid.scss +263 -263
- package/src/components/grid/uses.js +1002 -1007
- package/src/components/icon/Icon.vue +49 -49
- package/src/components/icon/index.js +8 -8
- package/src/components/inputNumber/InputNumber.vue +212 -212
- package/src/components/inputNumber/index.js +7 -7
- package/src/components/inputNumber/uses.js +217 -217
- package/src/components/loading/Loading.vue +125 -125
- package/src/components/loading/index.js +7 -7
- package/src/components/menu/Menu.vue +68 -68
- package/src/components/menu/MenuItem.vue +187 -187
- package/src/components/menu/index.js +7 -7
- package/src/components/message/Message.vue +223 -223
- package/src/components/message/index.js +31 -31
- package/src/components/messageBox/MessageBox.vue +358 -358
- package/src/components/messageBox/index.js +22 -22
- package/src/components/notification/Notification.vue +316 -316
- package/src/components/notification/index.js +49 -49
- package/src/components/pagination/Pagination.vue +271 -271
- package/src/components/pagination/index.js +7 -7
- package/src/components/pagination/pageButton.vue +30 -30
- package/src/components/progress/Progress.vue +139 -139
- package/src/components/progress/index.js +7 -7
- package/src/components/radio/Radio.vue +159 -159
- package/src/components/radio/index.js +7 -7
- package/src/components/radioGroup/RadioGroup.vue +41 -41
- package/src/components/radioGroup/index.js +7 -7
- package/src/components/scheduler/Scheduler.vue +149 -149
- package/src/components/scheduler/index.js +7 -7
- package/src/components/scheduler/uses.js +183 -183
- package/src/components/select/Select.vue +440 -440
- package/src/components/select/index.js +7 -7
- package/src/components/select/uses.js +270 -270
- package/src/components/slider/Slider.vue +505 -505
- package/src/components/slider/index.js +7 -7
- package/src/components/slider/uses.js +390 -390
- package/src/components/tabPanel/TabPanel.vue +74 -74
- package/src/components/tabPanel/index.js +7 -7
- package/src/components/tabs/Tabs.vue +517 -517
- package/src/components/tabs/index.js +7 -7
- package/src/components/textField/TextField.vue +375 -375
- package/src/components/textField/index.js +7 -7
- package/src/components/timePicker/TimePicker.vue +352 -352
- package/src/components/timePicker/index.js +7 -7
- package/src/components/toggle/Toggle.vue +115 -115
- package/src/components/toggle/index.js +7 -7
- package/src/components/tree/Tree.vue +313 -313
- package/src/components/tree/TreeNode.vue +293 -293
- package/src/components/tree/index.js +7 -7
- package/src/components/treeGrid/TreeGrid.vue +758 -758
- package/src/components/treeGrid/TreeGridNode.vue +275 -275
- package/src/components/treeGrid/index.js +9 -9
- package/src/components/treeGrid/style/treeGrid.scss +261 -261
- package/src/components/treeGrid/treeGrid.toolbar.vue +26 -26
- package/src/components/treeGrid/uses.js +867 -867
- package/src/components/window/Window.vue +329 -329
- package/src/components/window/index.js +7 -7
- package/src/components/window/uses.js +899 -899
- package/src/directives/clickoutside.js +90 -90
- package/src/main.js +116 -116
- package/src/style/components/input.scss +108 -108
- package/src/style/functions.scss +3 -3
- package/src/style/index.scss +6 -6
- package/src/style/lib/fonts/EVUI.svg +292 -292
- package/src/style/lib/icon.css +888 -888
- package/src/style/mixins.scss +94 -94
- package/src/style/themes.scss +67 -67
- package/src/style/variables.scss +22 -22
|
@@ -1,183 +1,183 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getCurrentInstance, computed, reactive,
|
|
3
|
-
} from 'vue';
|
|
4
|
-
|
|
5
|
-
const getMatrixArr = (row, col) => Array.from(Array(row), () => Array(col).fill(false));
|
|
6
|
-
|
|
7
|
-
export const useModel = () => {
|
|
8
|
-
const { props, emit } = getCurrentInstance();
|
|
9
|
-
|
|
10
|
-
const mv = computed({
|
|
11
|
-
get: () => {
|
|
12
|
-
if (props.modelValue.length !== props.rowLabels.length
|
|
13
|
-
|| !props.modelValue[0]
|
|
14
|
-
|| props.modelValue[0].length !== props.colLabels.length
|
|
15
|
-
) {
|
|
16
|
-
return getMatrixArr(props.rowLabels.length, props.colLabels.length);
|
|
17
|
-
}
|
|
18
|
-
return props.modelValue;
|
|
19
|
-
},
|
|
20
|
-
set: (val) => {
|
|
21
|
-
emit('update:modelValue', val);
|
|
22
|
-
emit('change', val);
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* 초기값 배열의 length와 options의 count가 안맞는 경우 valid체크하는 로직
|
|
28
|
-
*/
|
|
29
|
-
const validateValue = () => {
|
|
30
|
-
if (props.modelValue.length !== props.rowLabels.length
|
|
31
|
-
|| !props.modelValue[0]
|
|
32
|
-
|| props.modelValue[0].length !== props.colLabels.length
|
|
33
|
-
) {
|
|
34
|
-
mv.value = [...getMatrixArr(props.rowLabels.length, props.colLabels.length)];
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
return {
|
|
39
|
-
mv,
|
|
40
|
-
validateValue,
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export const useEvent = (param) => {
|
|
45
|
-
const { mv } = param;
|
|
46
|
-
const mousePos = reactive({
|
|
47
|
-
startRow: null,
|
|
48
|
-
startCol: null,
|
|
49
|
-
dragRow: null,
|
|
50
|
-
dragCol: null,
|
|
51
|
-
endRow: null,
|
|
52
|
-
endCol: null,
|
|
53
|
-
dragEventName: null,
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* 스케쥴 내 드래그 시 선택영역의 style 세팅
|
|
58
|
-
* @param rows
|
|
59
|
-
* @param cols
|
|
60
|
-
*/
|
|
61
|
-
const selectionStyle = (rows, cols) => {
|
|
62
|
-
if (mousePos.dragCol === null || mousePos.dragRow === null) {
|
|
63
|
-
return {};
|
|
64
|
-
}
|
|
65
|
-
const minRow = mousePos.startRow < mousePos.dragRow ? mousePos.startRow : mousePos.dragRow;
|
|
66
|
-
const maxRow = mousePos.startRow > mousePos.dragRow ? mousePos.startRow : mousePos.dragRow;
|
|
67
|
-
const minCol = mousePos.startCol < mousePos.dragCol ? mousePos.startCol : mousePos.dragCol;
|
|
68
|
-
const maxCol = mousePos.startCol > mousePos.dragCol ? mousePos.startCol : mousePos.dragCol;
|
|
69
|
-
if (minRow > rows || maxRow < rows || minCol > cols || maxCol < cols) {
|
|
70
|
-
return {};
|
|
71
|
-
}
|
|
72
|
-
const borderValue = '2px solid #5292F7';
|
|
73
|
-
let result = {};
|
|
74
|
-
if (rows === minRow) {
|
|
75
|
-
result = { ...result, 'border-top': borderValue };
|
|
76
|
-
}
|
|
77
|
-
if (rows === maxRow) {
|
|
78
|
-
result = { ...result, 'border-bottom': borderValue };
|
|
79
|
-
}
|
|
80
|
-
if (cols === minCol) {
|
|
81
|
-
result = { ...result, 'border-left': borderValue };
|
|
82
|
-
}
|
|
83
|
-
if (cols === maxCol) {
|
|
84
|
-
result = { ...result, 'border-right': borderValue };
|
|
85
|
-
}
|
|
86
|
-
return result;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* 마우스다운할 때 좌표값 세팅 및 드래그이벤트명을 mousemove로 변경함으로서 마우스이벤트 활성화
|
|
91
|
-
* @param rows
|
|
92
|
-
* @param cols
|
|
93
|
-
*/
|
|
94
|
-
const mousedownBox = (rows, cols) => {
|
|
95
|
-
mousePos.startRow = rows;
|
|
96
|
-
mousePos.startCol = cols;
|
|
97
|
-
mousePos.dragRow = rows;
|
|
98
|
-
mousePos.dragCol = cols;
|
|
99
|
-
mousePos.dragEventName = 'mousemove';
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* 마우스업할 때 start~end의 행열 값을 가져오고 mv에 적용
|
|
104
|
-
* @param rows
|
|
105
|
-
* @param cols
|
|
106
|
-
*/
|
|
107
|
-
const mouseupBox = (rows, cols) => {
|
|
108
|
-
if (!mousePos.dragEventName) {
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
mousePos.endRow = rows;
|
|
112
|
-
mousePos.endCol = cols;
|
|
113
|
-
mousePos.dragEventName = null;
|
|
114
|
-
const tempArr = [...mv.value];
|
|
115
|
-
const minRow = mousePos.startRow < mousePos.endRow ? mousePos.startRow : mousePos.endRow;
|
|
116
|
-
const maxRow = mousePos.startRow > mousePos.endRow ? mousePos.startRow : mousePos.endRow;
|
|
117
|
-
const minCol = mousePos.startCol < mousePos.endCol ? mousePos.startCol : mousePos.endCol;
|
|
118
|
-
const maxCol = mousePos.startCol > mousePos.endCol ? mousePos.startCol : mousePos.endCol;
|
|
119
|
-
for (let i = minRow; i <= maxRow; i++) {
|
|
120
|
-
for (let j = minCol; j <= maxCol; j++) {
|
|
121
|
-
tempArr[i][j] = !tempArr[i][j];
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
mv.value = [...tempArr];
|
|
125
|
-
mousePos.dragRow = null;
|
|
126
|
-
mousePos.dragCol = null;
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* 마우스다운 후 이벤트명이 mousemove일 때 실행되는 이벤트
|
|
131
|
-
* 즉, 드래그할 때의 박스들의 rows, cols값을 입력받음
|
|
132
|
-
* @param rows
|
|
133
|
-
* @param cols
|
|
134
|
-
*/
|
|
135
|
-
const mousemoveBox = (rows, cols) => {
|
|
136
|
-
mousePos.dragRow = rows;
|
|
137
|
-
mousePos.dragCol = cols;
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* tbody밖으로 마우스벗어나는 경우 마우스업하는 이벤트 실행
|
|
142
|
-
*/
|
|
143
|
-
const mouseleaveBoxArea = () => {
|
|
144
|
-
mouseupBox(mousePos.dragRow, mousePos.dragCol);
|
|
145
|
-
};
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* 선택된 Column의 첫번째 row의 값의 반대로 전체 적용
|
|
149
|
-
* @param wIdx
|
|
150
|
-
*/
|
|
151
|
-
const selectColumn = (wIdx) => {
|
|
152
|
-
const tempArr = [...mv.value];
|
|
153
|
-
const firstValue = tempArr[0][wIdx];
|
|
154
|
-
for (let i = 0; i < tempArr.length; i++) {
|
|
155
|
-
tempArr[i][wIdx] = !firstValue;
|
|
156
|
-
}
|
|
157
|
-
mv.value = [...tempArr];
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* 선택된 Row의 첫번째 column의 값의 반대로 전체 적용
|
|
162
|
-
* @param hIdx
|
|
163
|
-
*/
|
|
164
|
-
const selectRow = (hIdx) => {
|
|
165
|
-
const tempArr = [...mv.value];
|
|
166
|
-
const firstValue = tempArr[hIdx][0];
|
|
167
|
-
for (let i = 0; i < tempArr[0].length; i++) {
|
|
168
|
-
tempArr[hIdx][i] = !firstValue;
|
|
169
|
-
}
|
|
170
|
-
mv.value = [...tempArr];
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
return {
|
|
174
|
-
mousePos,
|
|
175
|
-
selectionStyle,
|
|
176
|
-
mousedownBox,
|
|
177
|
-
mouseupBox,
|
|
178
|
-
mousemoveBox,
|
|
179
|
-
mouseleaveBoxArea,
|
|
180
|
-
selectColumn,
|
|
181
|
-
selectRow,
|
|
182
|
-
};
|
|
183
|
-
};
|
|
1
|
+
import {
|
|
2
|
+
getCurrentInstance, computed, reactive,
|
|
3
|
+
} from 'vue';
|
|
4
|
+
|
|
5
|
+
const getMatrixArr = (row, col) => Array.from(Array(row), () => Array(col).fill(false));
|
|
6
|
+
|
|
7
|
+
export const useModel = () => {
|
|
8
|
+
const { props, emit } = getCurrentInstance();
|
|
9
|
+
|
|
10
|
+
const mv = computed({
|
|
11
|
+
get: () => {
|
|
12
|
+
if (props.modelValue.length !== props.rowLabels.length
|
|
13
|
+
|| !props.modelValue[0]
|
|
14
|
+
|| props.modelValue[0].length !== props.colLabels.length
|
|
15
|
+
) {
|
|
16
|
+
return getMatrixArr(props.rowLabels.length, props.colLabels.length);
|
|
17
|
+
}
|
|
18
|
+
return props.modelValue;
|
|
19
|
+
},
|
|
20
|
+
set: (val) => {
|
|
21
|
+
emit('update:modelValue', val);
|
|
22
|
+
emit('change', val);
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 초기값 배열의 length와 options의 count가 안맞는 경우 valid체크하는 로직
|
|
28
|
+
*/
|
|
29
|
+
const validateValue = () => {
|
|
30
|
+
if (props.modelValue.length !== props.rowLabels.length
|
|
31
|
+
|| !props.modelValue[0]
|
|
32
|
+
|| props.modelValue[0].length !== props.colLabels.length
|
|
33
|
+
) {
|
|
34
|
+
mv.value = [...getMatrixArr(props.rowLabels.length, props.colLabels.length)];
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
mv,
|
|
40
|
+
validateValue,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const useEvent = (param) => {
|
|
45
|
+
const { mv } = param;
|
|
46
|
+
const mousePos = reactive({
|
|
47
|
+
startRow: null,
|
|
48
|
+
startCol: null,
|
|
49
|
+
dragRow: null,
|
|
50
|
+
dragCol: null,
|
|
51
|
+
endRow: null,
|
|
52
|
+
endCol: null,
|
|
53
|
+
dragEventName: null,
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 스케쥴 내 드래그 시 선택영역의 style 세팅
|
|
58
|
+
* @param rows
|
|
59
|
+
* @param cols
|
|
60
|
+
*/
|
|
61
|
+
const selectionStyle = (rows, cols) => {
|
|
62
|
+
if (mousePos.dragCol === null || mousePos.dragRow === null) {
|
|
63
|
+
return {};
|
|
64
|
+
}
|
|
65
|
+
const minRow = mousePos.startRow < mousePos.dragRow ? mousePos.startRow : mousePos.dragRow;
|
|
66
|
+
const maxRow = mousePos.startRow > mousePos.dragRow ? mousePos.startRow : mousePos.dragRow;
|
|
67
|
+
const minCol = mousePos.startCol < mousePos.dragCol ? mousePos.startCol : mousePos.dragCol;
|
|
68
|
+
const maxCol = mousePos.startCol > mousePos.dragCol ? mousePos.startCol : mousePos.dragCol;
|
|
69
|
+
if (minRow > rows || maxRow < rows || minCol > cols || maxCol < cols) {
|
|
70
|
+
return {};
|
|
71
|
+
}
|
|
72
|
+
const borderValue = '2px solid #5292F7';
|
|
73
|
+
let result = {};
|
|
74
|
+
if (rows === minRow) {
|
|
75
|
+
result = { ...result, 'border-top': borderValue };
|
|
76
|
+
}
|
|
77
|
+
if (rows === maxRow) {
|
|
78
|
+
result = { ...result, 'border-bottom': borderValue };
|
|
79
|
+
}
|
|
80
|
+
if (cols === minCol) {
|
|
81
|
+
result = { ...result, 'border-left': borderValue };
|
|
82
|
+
}
|
|
83
|
+
if (cols === maxCol) {
|
|
84
|
+
result = { ...result, 'border-right': borderValue };
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 마우스다운할 때 좌표값 세팅 및 드래그이벤트명을 mousemove로 변경함으로서 마우스이벤트 활성화
|
|
91
|
+
* @param rows
|
|
92
|
+
* @param cols
|
|
93
|
+
*/
|
|
94
|
+
const mousedownBox = (rows, cols) => {
|
|
95
|
+
mousePos.startRow = rows;
|
|
96
|
+
mousePos.startCol = cols;
|
|
97
|
+
mousePos.dragRow = rows;
|
|
98
|
+
mousePos.dragCol = cols;
|
|
99
|
+
mousePos.dragEventName = 'mousemove';
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* 마우스업할 때 start~end의 행열 값을 가져오고 mv에 적용
|
|
104
|
+
* @param rows
|
|
105
|
+
* @param cols
|
|
106
|
+
*/
|
|
107
|
+
const mouseupBox = (rows, cols) => {
|
|
108
|
+
if (!mousePos.dragEventName) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
mousePos.endRow = rows;
|
|
112
|
+
mousePos.endCol = cols;
|
|
113
|
+
mousePos.dragEventName = null;
|
|
114
|
+
const tempArr = [...mv.value];
|
|
115
|
+
const minRow = mousePos.startRow < mousePos.endRow ? mousePos.startRow : mousePos.endRow;
|
|
116
|
+
const maxRow = mousePos.startRow > mousePos.endRow ? mousePos.startRow : mousePos.endRow;
|
|
117
|
+
const minCol = mousePos.startCol < mousePos.endCol ? mousePos.startCol : mousePos.endCol;
|
|
118
|
+
const maxCol = mousePos.startCol > mousePos.endCol ? mousePos.startCol : mousePos.endCol;
|
|
119
|
+
for (let i = minRow; i <= maxRow; i++) {
|
|
120
|
+
for (let j = minCol; j <= maxCol; j++) {
|
|
121
|
+
tempArr[i][j] = !tempArr[i][j];
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
mv.value = [...tempArr];
|
|
125
|
+
mousePos.dragRow = null;
|
|
126
|
+
mousePos.dragCol = null;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* 마우스다운 후 이벤트명이 mousemove일 때 실행되는 이벤트
|
|
131
|
+
* 즉, 드래그할 때의 박스들의 rows, cols값을 입력받음
|
|
132
|
+
* @param rows
|
|
133
|
+
* @param cols
|
|
134
|
+
*/
|
|
135
|
+
const mousemoveBox = (rows, cols) => {
|
|
136
|
+
mousePos.dragRow = rows;
|
|
137
|
+
mousePos.dragCol = cols;
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* tbody밖으로 마우스벗어나는 경우 마우스업하는 이벤트 실행
|
|
142
|
+
*/
|
|
143
|
+
const mouseleaveBoxArea = () => {
|
|
144
|
+
mouseupBox(mousePos.dragRow, mousePos.dragCol);
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* 선택된 Column의 첫번째 row의 값의 반대로 전체 적용
|
|
149
|
+
* @param wIdx
|
|
150
|
+
*/
|
|
151
|
+
const selectColumn = (wIdx) => {
|
|
152
|
+
const tempArr = [...mv.value];
|
|
153
|
+
const firstValue = tempArr[0][wIdx];
|
|
154
|
+
for (let i = 0; i < tempArr.length; i++) {
|
|
155
|
+
tempArr[i][wIdx] = !firstValue;
|
|
156
|
+
}
|
|
157
|
+
mv.value = [...tempArr];
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* 선택된 Row의 첫번째 column의 값의 반대로 전체 적용
|
|
162
|
+
* @param hIdx
|
|
163
|
+
*/
|
|
164
|
+
const selectRow = (hIdx) => {
|
|
165
|
+
const tempArr = [...mv.value];
|
|
166
|
+
const firstValue = tempArr[hIdx][0];
|
|
167
|
+
for (let i = 0; i < tempArr[0].length; i++) {
|
|
168
|
+
tempArr[hIdx][i] = !firstValue;
|
|
169
|
+
}
|
|
170
|
+
mv.value = [...tempArr];
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
return {
|
|
174
|
+
mousePos,
|
|
175
|
+
selectionStyle,
|
|
176
|
+
mousedownBox,
|
|
177
|
+
mouseupBox,
|
|
178
|
+
mousemoveBox,
|
|
179
|
+
mouseleaveBoxArea,
|
|
180
|
+
selectColumn,
|
|
181
|
+
selectRow,
|
|
182
|
+
};
|
|
183
|
+
};
|