vue2-excel-grid 1.1.76 → 1.1.78

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-excel-grid",
3
- "version": "1.1.76",
3
+ "version": "1.1.78",
4
4
  "description": "Excel-style grid component for Vue 2.6.14 with virtual scrolling",
5
5
  "main": "dist/vue2-excel-grid.umd.js",
6
6
  "module": "dist/vue2-excel-grid.esm.js",
@@ -172,7 +172,7 @@
172
172
  v-if="sortMenu.visible"
173
173
  key="eg-sort-menu"
174
174
  ref="sortMenuEl"
175
- class="eg-context-menu"
175
+ class="eg-context-menu eg-sort-menu"
176
176
  :style="{ top: sortMenu.y + 'px', left: (sortMenuPositioned ? sortMenu.x : -9999) + 'px', visibility: sortMenuPositioned ? 'visible' : 'hidden' }"
177
177
  @click.stop
178
178
  >
@@ -3617,8 +3617,8 @@ export default {
3617
3617
  },
3618
3618
 
3619
3619
  sortIconClass(col) {
3620
- if (!this.internalSort || this.internalSort.key !== col.key) return 'eg-icon-sort'
3621
- return this.internalSort.direction === 'asc' ? 'eg-icon-sort-asc' : 'eg-icon-sort-desc'
3620
+ const active = !!(this.internalSort && this.internalSort.key === col.key)
3621
+ return active ? 'eg-icon-sort-menu eg-sort-icon-active' : 'eg-icon-sort-menu'
3622
3622
  },
3623
3623
 
3624
3624
  sortIconTitle() {
@@ -5660,10 +5660,11 @@ export default {
5660
5660
  .eg-icon-expand { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3H3v6'/%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M9 21H3v-6'/%3E%3Cpath d='M15 21h6v-6'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3H3v6'/%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M9 21H3v-6'/%3E%3Cpath d='M15 21h6v-6'/%3E%3C/svg%3E"); }
5661
5661
  .eg-icon-compress{ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h6V3'/%3E%3Cpath d='M20 9h-6V3'/%3E%3Cpath d='M4 15h6v6'/%3E%3Cpath d='M20 15h-6v6'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h6V3'/%3E%3Cpath d='M20 9h-6V3'/%3E%3Cpath d='M4 15h6v6'/%3E%3Cpath d='M20 15h-6v6'/%3E%3C/svg%3E"); }
5662
5662
 
5663
- /* Sort icon (header) — neutral shows both arrows faint on hover; asc/desc show one arrow, accent-colored, always visible */
5664
- .eg-icon-sort { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l4.5 5h-9z'/%3E%3Cpath d='M12 21l-4.5-5h9z'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3l4.5 5h-9z'/%3E%3Cpath d='M12 21l-4.5-5h9z'/%3E%3C/svg%3E"); }
5665
- .eg-icon-sort-asc { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5l6 7H6z'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5l6 7H6z'/%3E%3C/svg%3E"); }
5666
- .eg-icon-sort-desc{ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 19l-6-7h12z'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 19l-6-7h12z'/%3E%3C/svg%3E"); }
5663
+ /* Sort icon (header) — "more actions" trigger (kebab dots) that opens the sort
5664
+ popup menu; faint until hover/active, accent-colored while this column is
5665
+ the active sort (see .eg-sort-icon-active below). Same glyph in every
5666
+ state — direction is shown inside the popup menu, not on the icon. */
5667
+ .eg-icon-sort-menu { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='5' r='2'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Ccircle cx='12' cy='19' r='2'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='5' r='2'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Ccircle cx='12' cy='19' r='2'/%3E%3C/svg%3E"); }
5667
5668
 
5668
5669
  /* Size segmented control — each icon shows row density: tight/thin bars → small, wide/thick bars → large */
5669
5670
  .eg-icon-size-small { mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='6' width='16' height='2' rx='1'/%3E%3Crect x='4' y='11' width='16' height='2' rx='1'/%3E%3Crect x='4' y='16' width='16' height='2' rx='1'/%3E%3C/svg%3E"); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='6' width='16' height='2' rx='1'/%3E%3Crect x='4' y='11' width='16' height='2' rx='1'/%3E%3Crect x='4' y='16' width='16' height='2' rx='1'/%3E%3C/svg%3E"); }
@@ -5725,8 +5726,7 @@ export default {
5725
5726
  }
5726
5727
  .eg-header-cell:hover .eg-sort-icon { opacity: 0.65; }
5727
5728
  .eg-sort-icon:hover { opacity: 1; }
5728
- .eg-sort-icon.eg-icon-sort-asc,
5729
- .eg-sort-icon.eg-icon-sort-desc {
5729
+ .eg-sort-icon.eg-sort-icon-active {
5730
5730
  opacity: 1;
5731
5731
  color: var(--eg-color-accent);
5732
5732
  }
@@ -5966,6 +5966,13 @@ export default {
5966
5966
  color: var(--eg-color-text);
5967
5967
  }
5968
5968
 
5969
+ /* Only 3 short items ("A → Z" / "Z → A" / "Clear sort") — the generic
5970
+ 160px context-menu min-width looks oversized next to it, especially
5971
+ at size="small" where rows/text are much smaller. */
5972
+ .eg-sort-menu {
5973
+ min-width: 110px;
5974
+ }
5975
+
5969
5976
  .eg-context-item {
5970
5977
  padding: 6px 16px;
5971
5978
  cursor: pointer;
@@ -6344,6 +6351,9 @@ export default {
6344
6351
  .eg-size-small .eg-context-item {
6345
6352
  padding: 4px 14px;
6346
6353
  }
6354
+ .eg-size-small .eg-sort-menu {
6355
+ min-width: 90px;
6356
+ }
6347
6357
  .eg-size-small .eg-toolbar {
6348
6358
  height: 28px;
6349
6359
  }
@@ -6392,6 +6402,9 @@ export default {
6392
6402
  .eg-size-large .eg-context-item {
6393
6403
  padding: 8px 18px;
6394
6404
  }
6405
+ .eg-size-large .eg-sort-menu {
6406
+ min-width: 130px;
6407
+ }
6395
6408
  .eg-size-large .eg-toolbar {
6396
6409
  height: 40px;
6397
6410
  }