evui 3.4.40 → 3.4.42

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.
@@ -72,6 +72,9 @@ export const commonFunctions = (params) => {
72
72
  && (uncheckableList.length + checkedList.length === rows.length);
73
73
  checkInfo.isHeaderUncheckable = isAllUncheckable;
74
74
  }
75
+ checkInfo.isHeaderIndeterminate = !!rows.length
76
+ && rows.some(row => row.checked || row.indeterminate)
77
+ && !checkInfo.isHeaderChecked;
75
78
  };
76
79
  return {
77
80
  isRenderer,
@@ -171,7 +174,7 @@ export const scrollEvent = (params) => {
171
174
  };
172
175
 
173
176
  export const resizeEvent = (params) => {
174
- const { props } = getCurrentInstance();
177
+ const { props, emit } = getCurrentInstance();
175
178
  const {
176
179
  resizeInfo,
177
180
  elementInfo,
@@ -233,7 +236,7 @@ export const resizeEvent = (params) => {
233
236
  resizeInfo.columnWidth = columnWidth;
234
237
  }
235
238
 
236
- stores.orderedColumns.map((column) => {
239
+ stores.orderedColumns.forEach((column) => {
237
240
  const item = column;
238
241
  const minWidth = isRenderer(column) ? resizeInfo.rendererMinWidth : resizeInfo.minWidth;
239
242
  if (item.width && item.width < minWidth) {
@@ -262,7 +265,7 @@ export const resizeEvent = (params) => {
262
265
  const onResize = () => {
263
266
  nextTick(() => {
264
267
  if (resizeInfo.adjust) {
265
- stores.orderedColumns.map((column) => {
268
+ stores.orderedColumns.forEach((column) => {
266
269
  const item = column;
267
270
 
268
271
  if (!props.columns[column.index].width && !item.resized) {
@@ -329,7 +332,7 @@ export const resizeEvent = (params) => {
329
332
 
330
333
  if (stores.orderedColumns[columnIndex]) {
331
334
  stores.orderedColumns[columnIndex].width = changedWidth;
332
- stores.orderedColumns.map((column) => {
335
+ stores.orderedColumns.forEach((column) => {
333
336
  const item = column;
334
337
  item.resized = true;
335
338
  return item;
@@ -339,6 +342,10 @@ export const resizeEvent = (params) => {
339
342
  resizeInfo.showResizeLine = false;
340
343
  document.removeEventListener('mousemove', handleMouseMove);
341
344
  onResize();
345
+ emit('resize-column', {
346
+ column: stores.orderedColumns[columnIndex],
347
+ columns: stores.updatedColumns,
348
+ });
342
349
  };
343
350
 
344
351
  document.addEventListener('mousemove', handleMouseMove);
@@ -477,6 +484,10 @@ export const checkEvent = (params) => {
477
484
  parentNode.checked = true;
478
485
  }
479
486
  }
487
+
488
+ parentNode.indeterminate = !isCheck
489
+ && parentNode.children.some(n => n.checked || n.indeterminate);
490
+
480
491
  if (!parentNode.checked) {
481
492
  checkInfo.checkedRows = checkInfo.checkedRows
482
493
  .filter(checked => checked.index !== parentNode.index);
@@ -519,6 +530,7 @@ export const checkEvent = (params) => {
519
530
  onCheckChildren(row);
520
531
  onCheckParent(row);
521
532
  checkInfo.checkedRows.push(row);
533
+ row.indeterminate = false;
522
534
  };
523
535
  const removeCheckedRow = (row) => {
524
536
  if (isSingleMode()) {
@@ -563,7 +575,9 @@ export const checkEvent = (params) => {
563
575
  checkInfo.checkedRows = checkInfo.checkedRows
564
576
  .filter(checked => checked.index !== row.index);
565
577
  }
578
+ row.indeterminate = false;
566
579
  });
580
+ checkInfo.isHeaderIndeterminate = false;
567
581
  emit('update:checked', checkInfo.checkedRows);
568
582
  emit('check-all', event, checkInfo.checkedRows);
569
583
  };
@@ -613,7 +627,12 @@ export const contextMenuEvent = (params) => {
613
627
  text: contextInfo.columnMenuTextInfo?.hide ?? 'Hide',
614
628
  iconClass: 'ev-icon-visibility-off',
615
629
  disabled: !useGridSetting.value || stores.orderedColumns.length === 1,
616
- click: () => setColumnHidden(column.field),
630
+ click: () => {
631
+ setColumnHidden(column.field);
632
+ emit('change-column-status', {
633
+ columns: stores.updatedColumns,
634
+ });
635
+ },
617
636
  },
618
637
  ];
619
638
  } else {
@@ -644,7 +663,7 @@ export const contextMenuEvent = (params) => {
644
663
  /**
645
664
  * 상단 우측의 Grid 옵션에 대한 Contextmenu 를 생성한다.
646
665
  *
647
- * @param {object} event - 이벤트 객체
666
+ * @param {object} e - 이벤트 객체
648
667
  */
649
668
  const onGridSettingContextMenu = (e) => {
650
669
  const columnListMenu = {
@@ -720,6 +739,10 @@ export const treeEvent = (params) => {
720
739
  node.uncheckable = uncheckable;
721
740
  }
722
741
 
742
+ if (!Object.hasOwnProperty.call(node, 'indeterminate')) {
743
+ node.indeterminate = false;
744
+ }
745
+
723
746
  if (!Object.hasOwnProperty.call(node, 'data')) {
724
747
  node.data = getDataObj(node);
725
748
  }