wave-ui 2.27.0 → 2.28.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": "wave-ui",
3
- "version": "2.27.0",
3
+ "version": "2.28.0",
4
4
  "description": "An emerging UI framework for Vue.js & Vue 3 with only the bright side. :sunny:",
5
5
  "author": "Antoni Andre <antoniandre.web@gmail.com>",
6
6
  "main": "./dist/wave-ui.umd.js",
@@ -62,7 +62,7 @@
62
62
  "splitpanes": "^3.0.6",
63
63
  "vite": "^2.6.14",
64
64
  "vite-plugin-pug": "^0.3.0",
65
- "vue": "^3.2.22",
65
+ "vue": "^3.2.26",
66
66
  "vue-cal": "^4.2.0",
67
67
  "vue-router": "^4.0.12",
68
68
  "vueperslides": "^3.3.2",
@@ -5,7 +5,7 @@
5
5
  @mousedown="onMouseDown"
6
6
  @mouseover="onMouseOver"
7
7
  @mouseout="onMouseOut")
8
- colgroup
8
+ colgroup(ref="colgroup")
9
9
  col.w-table__col(
10
10
  v-for="(header, i) in headers"
11
11
  :key="i"
@@ -44,7 +44,7 @@
44
44
  .w-table__loading-text
45
45
  slot(name="loading") Loading...
46
46
  //- No data.
47
- tr.no-data(v-if="!tableItems.length")
47
+ tr.no-data(v-else-if="!tableItems.length")
48
48
  td.w-table__cell.text-center(:colspan="headers.length")
49
49
  slot(name="no-data") No data to show.
50
50
 
@@ -58,12 +58,12 @@
58
58
  :item="item"
59
59
  :index="i + 1"
60
60
  :select="() => doSelectRow(item, i)"
61
- :classes="{ 'w-table__row': true, 'w-table__row--selected': selectedRowsByUid[item._uid] !== undefined, 'w-table__row--has-expanded': expandedRowsByUid[item._uid] !== undefined }")
61
+ :classes="{ 'w-table__row': true, 'w-table__row--selected': selectedRowsByUid[item._uid] !== undefined, 'w-table__row--expanded': expandedRowsByUid[item._uid] !== undefined }")
62
62
 
63
63
  tr.w-table__row(
64
64
  v-else
65
65
  @click="doSelectRow(item, i)"
66
- :class="{ 'w-table__row--selected': selectedRowsByUid[item._uid] !== undefined, 'w-table__row--has-expanded': expandedRowsByUid[item._uid] !== undefined }")
66
+ :class="{ 'w-table__row--selected': selectedRowsByUid[item._uid] !== undefined, 'w-table__row--expanded': expandedRowsByUid[item._uid] !== undefined }")
67
67
  template(v-for="(header, j) in headers")
68
68
  td.w-table__cell(
69
69
  v-if="$slots[`item-cell.${header.key}`] || $slots[`item-cell.${j + 1}`] || $slots['item-cell']"
@@ -106,13 +106,14 @@
106
106
  :class="{ 'w-table__col-resizer--hover': colResizing.hover === j, 'w-table__col-resizer--active': colResizing.columnIndex === j }")
107
107
 
108
108
  //- Expanded row.
109
- tr.w-table__row.w-table__row--expanded(v-if="expandedRowsByUid[item._uid]")
109
+ tr.w-table__row.w-table__row--expansion(v-if="expandedRowsByUid[item._uid]")
110
110
  td.w-table__cell(:colspan="headers.length")
111
- div(v-if="expandedRowsByUid[item._uid]")
112
- slot(name="expanded-row" :item="item" :index="i + 1")
113
- span.w-table__col-resizer(
114
- v-if="j < headers.length - 1 && resizableColumns"
115
- :class="{ 'w-table__col-resizer--hover': colResizing.hover === j, 'w-table__col-resizer--active': colResizing.columnIndex === j }")
111
+ w-transition-expand(y)
112
+ div(v-if="expandedRowsByUid[item._uid]")
113
+ slot(name="row-expansion" :item="item" :index="i + 1")
114
+ span.w-table__col-resizer(
115
+ v-if="i < headers.length - 1 && resizableColumns"
116
+ :class="{ 'w-table__col-resizer--hover': colResizing.hover === i, 'w-table__col-resizer--active': colResizing.columnIndex === j }")
116
117
  </template>
117
118
 
118
119
  <script>
@@ -174,7 +175,7 @@ export default {
174
175
  resizableColumns: { type: Boolean }
175
176
  },
176
177
 
177
- emits: ['row-select', 'row-expand', 'row-click', 'update:sort', 'update:selected-rows', 'update:expanded-rows'],
178
+ emits: ['row-select', 'row-expand', 'row-click', 'update:sort', 'update:selected-rows', 'update:expanded-rows', 'column-resize'],
178
179
 
179
180
  data: () => ({
180
181
  activeSorting: [],
@@ -202,8 +203,7 @@ export default {
202
203
  },
203
204
 
204
205
  filteredItems () {
205
- if (typeof this.filter === 'function') return this.tableItems.filter(this.filter)
206
- return this.tableItems
206
+ return typeof this.filter === 'function' ? this.tableItems.filter(this.filter) : this.tableItems
207
207
  },
208
208
 
209
209
  sortedItems () {
@@ -436,6 +436,10 @@ export default {
436
436
  // cell after resizing.
437
437
  // (releasing the mouse on table header triggers a click event captured by the sorting feature)
438
438
  setTimeout(() => {
439
+ // On Mouse up, emit an event containing all the new widths of the columns.
440
+ const widths = [...this.$refs.colgroup.childNodes].map(column => column.style?.width || column.offsetWidth)
441
+ this.$emit('column-resize', { index: this.colResizing.columnIndex, widths })
442
+
439
443
  this.colResizing.dragging = false
440
444
  this.colResizing.columnIndex = null
441
445
  this.colResizing.startCursorX = null
@@ -10,24 +10,3 @@ a {text-decoration: none;}
10
10
  padding-left: 3 * $base-increment;
11
11
  padding-right: 3 * $base-increment;
12
12
  }
13
-
14
- .nav-menu ~ .main-content {padding-left: 4em;}
15
-
16
- footer {
17
- margin-top: 5em;
18
-
19
- .nav-drawer ~ & {padding-left: 12px;}
20
-
21
- .heart:hover {animation: heartbeat 1s infinite;}
22
- small {font-size: 10px;}
23
- .caption {padding-top: 1px;}
24
- }
25
-
26
- @keyframes heartbeat {
27
- 0%, 30%, 60%, 100% {transform: scale(1);}
28
- 15%, 45% {transform: scale(1.2);}
29
- }
30
-
31
- @media screen and (max-width: 560px) {
32
- button.go-top {display: none;}
33
- }
@@ -57,3 +57,7 @@ $textarea-line-height: 1.2;
57
57
  $tooltip-bg-color: #fff;
58
58
  $tooltip-color: rgba(0, 0, 0, 0.7);
59
59
  // --------------------------------------------------------
60
+
61
+ // Mixins.
62
+ // --------------------------------------------------------
63
+ @import './mixins';
@@ -1,5 +1,4 @@
1
1
  @import './variables';
2
- @import './mixins';
3
2
  @import './base';
4
3
  @import './typography';
5
4
  @import './layout';