vue2-excel-grid 2.9.0 → 2.10.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-excel-grid",
3
- "version": "2.9.0",
3
+ "version": "2.10.0",
4
4
  "description": "Excel-style grid component for Vue 2.6.14 with virtual scrolling",
5
5
  "license": "MIT",
6
6
  "author": "Fozilbek Raimberdiyev",
@@ -60,6 +60,9 @@
60
60
  <div v-if="clearable && selectedOpt" class="eg-select-footer">
61
61
  <button class="eg-select-btn eg-select-btn--clear" tabindex="-1" @mousedown.prevent="pickClear">{{ t.clear }}</button>
62
62
  </div>
63
+ <div v-if="$slots['dropdown-footer']" class="eg-select-dropdown-footer">
64
+ <slot name="dropdown-footer"></slot>
65
+ </div>
63
66
  </template>
64
67
 
65
68
  <!-- Options panel in standalone mode (floating dropdown below trigger) -->
@@ -103,6 +106,9 @@
103
106
  <div v-if="clearable && selectedOpt" class="eg-select-footer">
104
107
  <button class="eg-select-btn eg-select-btn--clear" tabindex="-1" @mousedown.prevent="pickClear">{{ t.clear }}</button>
105
108
  </div>
109
+ <div v-if="$slots['dropdown-footer']" class="eg-select-dropdown-footer">
110
+ <slot name="dropdown-footer"></slot>
111
+ </div>
106
112
  </div>
107
113
 
108
114
  <div v-if="hoverTooltip" class="eg-option-tooltip" :style="hoverTooltipStyle">{{ hoverTooltip.text }}</div>
@@ -557,6 +563,10 @@ export default {
557
563
  padding: 4px 6px 6px;
558
564
  border-top: 1px solid var(--eg-color-border, var(--eg-color-border-default));
559
565
  }
566
+ .eg-select-dropdown-footer {
567
+ border-top: 1px solid var(--eg-color-border, var(--eg-color-border-default));
568
+ padding: 4px;
569
+ }
560
570
  .eg-select-btn {
561
571
  background: none;
562
572
  border: 1px solid var(--eg-color-border, var(--eg-color-border-default));
@@ -66,6 +66,9 @@
66
66
  <div v-if="clearable && selectedLabel != null" class="eg-select-footer">
67
67
  <button class="eg-select-btn eg-select-btn--clear" tabindex="-1" @mousedown.prevent="pickClear">{{ t.clear }}</button>
68
68
  </div>
69
+ <div v-if="$slots['dropdown-footer']" class="eg-select-dropdown-footer">
70
+ <slot name="dropdown-footer"></slot>
71
+ </div>
69
72
  </template>
70
73
 
71
74
  <!-- Options panel in standalone mode -->
@@ -116,6 +119,9 @@
116
119
  <div v-if="clearable && selectedLabel != null" class="eg-select-footer">
117
120
  <button class="eg-select-btn eg-select-btn--clear" tabindex="-1" @mousedown.prevent="pickClear">{{ t.clear }}</button>
118
121
  </div>
122
+ <div v-if="$slots['dropdown-footer']" class="eg-select-dropdown-footer">
123
+ <slot name="dropdown-footer"></slot>
124
+ </div>
119
125
  </div>
120
126
 
121
127
  <div v-if="hoverTooltip" class="eg-option-tooltip" :style="hoverTooltipStyle">{{ hoverTooltip.text }}</div>
@@ -97,6 +97,7 @@
97
97
  <option value="antd">Ant Design</option>
98
98
  <option value="fluent">Fluent</option>
99
99
  <option value="carbon">Carbon</option>
100
+ <option value="polaris">Shopify Polaris</option>
100
101
  </select>
101
102
  </div>
102
103
 
@@ -917,7 +918,11 @@
917
918
  :clearable="selectDropdown.clearable"
918
919
  @select="onComponentSelect"
919
920
  @close="closeSelectDropdown"
920
- />
921
+ >
922
+ <template #dropdown-footer>
923
+ <slot :name="'dropdown-footer-' + selectDropdown.col.key" :column="selectDropdown.col" :close="closeSelectDropdown"></slot>
924
+ </template>
925
+ </eg-select>
921
926
  <!-- Tree select dropdown overlay -->
922
927
  <eg-tree-select
923
928
  v-if="selectDropdown && selectDropdown.tree"
@@ -935,7 +940,11 @@
935
940
  :clearable="selectDropdown.clearable"
936
941
  @select="onComponentSelect"
937
942
  @close="closeSelectDropdown"
938
- />
943
+ >
944
+ <template #dropdown-footer>
945
+ <slot :name="'dropdown-footer-' + selectDropdown.col.key" :column="selectDropdown.col" :close="closeSelectDropdown"></slot>
946
+ </template>
947
+ </eg-tree-select>
939
948
 
940
949
  <!-- Date picker overlay -->
941
950
  <eg-date-picker
@@ -1051,7 +1060,7 @@ const DEFAULT_TOOLBAR_LIST = ['undoRedo', 'export', 'import', 'print', 'localSyn
1051
1060
  // retarget smoothly from whatever intermediate position an element is currently
1052
1061
  // at when the drop slot changes mid-flight — no JS animation library races.
1053
1062
  const COL_DRAG_TRANSITION = 'transform 200ms cubic-bezier(0.2, 0, 0, 1)'
1054
- const THEME_LIST = ['excel', 'material', 'antd', 'fluent', 'carbon']
1063
+ const THEME_LIST = ['excel', 'material', 'antd', 'fluent', 'carbon', 'polaris']
1055
1064
 
1056
1065
  // Kept as a named const (rather than an inline `export default {}`) so the
1057
1066
  // local-sync preview modal can receive the plain component definition
@@ -1456,7 +1465,7 @@ const ExcelGridComponent = {
1456
1465
 
1457
1466
  /**
1458
1467
  * Visual theme of the grid.
1459
- * Built-in: 'excel' | 'material' | 'antd' | 'fluent' | 'carbon'
1468
+ * Built-in: 'excel' | 'material' | 'antd' | 'fluent' | 'carbon' | 'polaris'
1460
1469
  * Default is the classic Excel 365 look. Use 'material' for Material Design 3.
1461
1470
  * Mirrors the `size` prop's convention: an internal `internalTheme` state
1462
1471
  * mirrors this prop and is what the toolbar's theme picker actually reads
@@ -7633,6 +7642,62 @@ export default ExcelGridComponent
7633
7642
  --eg-color-row-stripe-default: #F4F4F4;
7634
7643
  }
7635
7644
 
7645
+ /* ── Shopify Polaris — toza, zamonaviy e-commerce uslubi, 8px radius ── */
7646
+ .eg-shell.eg-theme-polaris {
7647
+ --eg-font-family-default: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
7648
+ --eg-font-size-default: 13px;
7649
+ --eg-font-size-header-default: 12px;
7650
+ --eg-radius-default: 8px;
7651
+ --eg-cell-padding-x-default: 8px;
7652
+
7653
+ --eg-color-accent-default: #008060;
7654
+ --eg-color-accent-dark-default: #004c3f;
7655
+ --eg-color-accent-soft-default: #E3F1DF;
7656
+
7657
+ --eg-color-error-default: #D72C0D;
7658
+ --eg-color-error-soft-default: #FFF4F4;
7659
+ --eg-color-error-dark-default: #8C1000;
7660
+
7661
+ /* Polaris borderlar: yumshoq kulrang */
7662
+ --eg-color-border-default: #D2D5D8;
7663
+ --eg-color-border-cell-default: #E1E3E5;
7664
+ --eg-color-border-strong-default: #8C9196;
7665
+
7666
+ /* Polaris header: yengil neytral kulrang (#F6F6F7) */
7667
+ --eg-color-header-bg-default: #F6F6F7;
7668
+ --eg-color-header-group-bg-default: #EDEEEF;
7669
+ --eg-color-group-border-default: #008060;
7670
+ --eg-color-group-bg-collapsed-default: #004c3f;
7671
+
7672
+ --eg-color-cell-bg-default: #FFFFFF;
7673
+ --eg-color-cell-selected-default: #E3F1DF;
7674
+ --eg-color-cell-fill-preview-default: #BBE5B3;
7675
+ --eg-color-cell-readonly-default: #FAFBFB;
7676
+ --eg-color-cell-readonly-selected-default: #D8ECE5;
7677
+ --eg-color-cell-readonly-pattern-default: rgba(0, 128, 96, 0.05);
7678
+ --eg-color-footer-bg-default: #F6F6F7;
7679
+
7680
+ --eg-color-text-default: #202223;
7681
+ --eg-color-text-secondary-default: #6D7175;
7682
+ --eg-color-text-muted-default: #8C9196;
7683
+
7684
+ --eg-shadow-dropdown-default: 0 4px 12px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.05);
7685
+ --eg-shadow-dialog-default: 0 8px 24px rgba(0, 0, 0, 0.12);
7686
+ --eg-shadow-tooltip-default: 0 2px 6px rgba(0, 0, 0, 0.15);
7687
+ --eg-color-freeze-shadow-default: rgba(0, 0, 0, 0.08);
7688
+
7689
+ --eg-color-overlay-bg-default: rgba(255, 255, 255, 0.94);
7690
+ --eg-color-option-hover-bg-default: #F6F6F7;
7691
+ --eg-color-option-active-hover-bg-default: #E3F1DF;
7692
+
7693
+ --eg-color-checkbox-border-default: #8C9196;
7694
+ --eg-color-checkbox-disabled-checked-default: #C9CCCF;
7695
+
7696
+ /* Polaris hover va stripe */
7697
+ --eg-color-row-hover-default: #F1F2F4;
7698
+ --eg-color-row-stripe-default: #FAFBFB;
7699
+ }
7700
+
7636
7701
  .eg-wrapper {
7637
7702
  display: flex;
7638
7703
  flex-direction: column;
@@ -8914,6 +8979,10 @@ export default ExcelGridComponent
8914
8979
  padding: 4px 6px 6px;
8915
8980
  border-top: 1px solid var(--eg-color-border, var(--eg-color-border-default));
8916
8981
  }
8982
+ .eg-select-dropdown-footer {
8983
+ border-top: 1px solid var(--eg-color-border, var(--eg-color-border-default));
8984
+ padding: 4px;
8985
+ }
8917
8986
  .eg-select-btn {
8918
8987
  background: none;
8919
8988
  border: 1px solid var(--eg-color-border, var(--eg-color-border-default));