wave-ui 1.58.0 → 1.60.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.
@@ -422,8 +422,6 @@ var colors = [
422
422
  ]
423
423
  }
424
424
  ];
425
- const consoleWarn = (message) => console.warn(`Wave UI: ${message}`);
426
- const consoleError = (message) => console.error(`Wave UI: ${message}`);
427
425
  const shadeColor = (col, amt) => {
428
426
  return "#" + col.slice(1).match(/../g).map((x) => (x = +`0x${x}` + amt, x < 0 ? 0 : x > 255 ? 255 : x).toString(16).padStart(2, 0)).join("");
429
427
  };
@@ -476,7 +474,7 @@ const _WaveUI = class {
476
474
  }
477
475
  static install(Vue2, options = {}) {
478
476
  Vue2.directive("focus", {
479
- inserted: (el) => el.focus()
477
+ inserted: (el) => setTimeout(() => el.focus(), 0)
480
478
  });
481
479
  Vue2.directive("scroll", {
482
480
  inserted: (el, binding) => {
@@ -502,7 +500,7 @@ let WaveUI = _WaveUI;
502
500
  _notificationManager = new WeakMap();
503
501
  __publicField(WaveUI, "instance", null);
504
502
  __publicField(WaveUI, "vueInstance", null);
505
- var render$P = function() {
503
+ var render$Q = function() {
506
504
  var _vm = this;
507
505
  var _h = _vm.$createElement;
508
506
  var _c = _vm._self._c || _h;
@@ -516,14 +514,14 @@ var render$P = function() {
516
514
  return null;
517
515
  }
518
516
  !item._disabled && _vm.toggleItem(item, $event);
519
- } } }, [_vm.expandIcon && !_vm.expandIconRight ? _c("w-button", { staticClass: "w-accordion__expand-icon", class: { "w-accordion__expand-icon--expanded": item._expanded }, attrs: { "icon": item._expanded && _vm.collapseIcon || _vm.expandIcon, "disabled": item._disabled || null, "tabindex": -1, "text": "" }, on: { "keypress": function($event) {
517
+ } } }, [_vm.expandIcon && !_vm.expandIconRight ? _c("w-button", { staticClass: "w-accordion__expand-icon", class: { "w-accordion__expand-icon--expanded": item._expanded, "w-accordion__expand-icon--rotate90": _vm.expandIconRotate90 }, attrs: { "icon": item._expanded && _vm.collapseIcon || _vm.expandIcon, "icon-props": _vm.expandIconProps, "disabled": item._disabled || null, "tabindex": -1, "text": "" }, on: { "keypress": function($event) {
520
518
  $event.stopPropagation();
521
519
  }, "click": function($event) {
522
520
  $event.stopPropagation();
523
521
  !item._disabled && _vm.toggleItem(item, $event);
524
522
  } } }) : _vm._e(), _vm.$scopedSlots["item-title." + (item.id || i + 1)] ? _vm._t("item-title." + (item.id || i + 1), null, { "item": _vm.getOriginalItem(item), "expanded": item._expanded, "index": i + 1 }) : _vm._t("item-title", function() {
525
523
  return [_c("div", { staticClass: "grow", domProps: { "innerHTML": _vm._s(item[_vm.itemTitleKey]) } })];
526
- }, { "item": _vm.getOriginalItem(item), "expanded": item._expanded, "index": i + 1 }), _vm.expandIcon && _vm.expandIconRight ? _c("w-button", { staticClass: "w-accordion__expand-icon", class: { "w-accordion__expand-icon--expanded": item._expanded }, attrs: { "icon": item._expanded && _vm.collapseIcon || _vm.expandIcon, "text": "" }, on: { "keypress": function($event) {
524
+ }, { "item": _vm.getOriginalItem(item), "expanded": item._expanded, "index": i + 1 }), _vm.expandIcon && _vm.expandIconRight ? _c("w-button", { staticClass: "w-accordion__expand-icon", class: { "w-accordion__expand-icon--expanded": item._expanded, "w-accordion__expand-icon--rotate90": _vm.expandIconRotate90 }, attrs: { "icon": item._expanded && _vm.collapseIcon || _vm.expandIcon, "text": "" }, on: { "keypress": function($event) {
527
525
  $event.stopPropagation();
528
526
  }, "click": function($event) {
529
527
  $event.stopPropagation();
@@ -535,7 +533,7 @@ var render$P = function() {
535
533
  }, { "item": _vm.getOriginalItem(item), "expanded": item._expanded, "index": i + 1 })], 2) : _vm._e()])], 1);
536
534
  }), 0);
537
535
  };
538
- var staticRenderFns$P = [];
536
+ var staticRenderFns$Q = [];
539
537
  var wAccordion_vue_vue_type_style_index_0_lang = "";
540
538
  function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
541
539
  var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
@@ -591,7 +589,7 @@ function normalizeComponent(scriptExports, render2, staticRenderFns2, functional
591
589
  options
592
590
  };
593
591
  }
594
- const __vue2_script$P = {
592
+ const __vue2_script$Q = {
595
593
  name: "w-accordion",
596
594
  props: {
597
595
  value: { type: Array },
@@ -606,6 +604,8 @@ const __vue2_script$P = {
606
604
  contentClass: { type: String },
607
605
  expandIcon: { type: [String, Boolean], default: "wi-triangle-down" },
608
606
  expandIconRight: { type: Boolean },
607
+ expandIconRotate90: { type: Boolean },
608
+ expandIconProps: { type: Object, default: () => ({}) },
609
609
  expandSingle: { type: Boolean },
610
610
  collapseIcon: { type: String },
611
611
  shadow: { type: Boolean },
@@ -678,26 +678,26 @@ const __vue2_script$P = {
678
678
  }
679
679
  }
680
680
  };
681
- const __cssModules$P = {};
682
- var __component__$P = /* @__PURE__ */ normalizeComponent(
683
- __vue2_script$P,
684
- render$P,
685
- staticRenderFns$P,
681
+ const __cssModules$Q = {};
682
+ var __component__$Q = /* @__PURE__ */ normalizeComponent(
683
+ __vue2_script$Q,
684
+ render$Q,
685
+ staticRenderFns$Q,
686
686
  false,
687
- __vue2_injectStyles$P,
687
+ __vue2_injectStyles$Q,
688
688
  null,
689
689
  null,
690
690
  null
691
691
  );
692
- function __vue2_injectStyles$P(context) {
693
- for (let o in __cssModules$P) {
694
- this[o] = __cssModules$P[o];
692
+ function __vue2_injectStyles$Q(context) {
693
+ for (let o in __cssModules$Q) {
694
+ this[o] = __cssModules$Q[o];
695
695
  }
696
696
  }
697
697
  var wAccordion = /* @__PURE__ */ function() {
698
- return __component__$P.exports;
698
+ return __component__$Q.exports;
699
699
  }();
700
- var render$O = function() {
700
+ var render$P = function() {
701
701
  var _vm = this;
702
702
  var _h = _vm.$createElement;
703
703
  var _c = _vm._self._c || _h;
@@ -707,9 +707,9 @@ var render$O = function() {
707
707
  _vm.$emit("close", false);
708
708
  } } }) : _vm._e()] : _vm._t("default")], 2) : _vm._e();
709
709
  };
710
- var staticRenderFns$O = [];
710
+ var staticRenderFns$P = [];
711
711
  var wAlert_vue_vue_type_style_index_0_lang = "";
712
- const __vue2_script$O = {
712
+ const __vue2_script$P = {
713
713
  name: "w-alert",
714
714
  props: {
715
715
  value: { default: true },
@@ -785,26 +785,26 @@ const __vue2_script$O = {
785
785
  }
786
786
  }
787
787
  };
788
- const __cssModules$O = {};
789
- var __component__$O = /* @__PURE__ */ normalizeComponent(
790
- __vue2_script$O,
791
- render$O,
792
- staticRenderFns$O,
788
+ const __cssModules$P = {};
789
+ var __component__$P = /* @__PURE__ */ normalizeComponent(
790
+ __vue2_script$P,
791
+ render$P,
792
+ staticRenderFns$P,
793
793
  false,
794
- __vue2_injectStyles$O,
794
+ __vue2_injectStyles$P,
795
795
  null,
796
796
  null,
797
797
  null
798
798
  );
799
- function __vue2_injectStyles$O(context) {
800
- for (let o in __cssModules$O) {
801
- this[o] = __cssModules$O[o];
799
+ function __vue2_injectStyles$P(context) {
800
+ for (let o in __cssModules$P) {
801
+ this[o] = __cssModules$P[o];
802
802
  }
803
803
  }
804
804
  var wAlert = /* @__PURE__ */ function() {
805
- return __component__$O.exports;
805
+ return __component__$P.exports;
806
806
  }();
807
- var render$N = function() {
807
+ var render$O = function() {
808
808
  var _vm = this;
809
809
  var _h = _vm.$createElement;
810
810
  var _c = _vm._self._c || _h;
@@ -816,9 +816,9 @@ var render$N = function() {
816
816
  }, expression: "notif._value" } }, "w-alert", _vm.notifProps(notif), false), [_c("div", { domProps: { "innerHTML": _vm._s(notif.message) } })]) : _vm._e()];
817
817
  })], 2);
818
818
  };
819
- var staticRenderFns$N = [];
819
+ var staticRenderFns$O = [];
820
820
  var wNotificationManager_vue_vue_type_style_index_0_lang = "";
821
- const __vue2_script$N = {
821
+ const __vue2_script$O = {
822
822
  name: "w-notification-manager",
823
823
  data: () => ({
824
824
  notifManager: null
@@ -849,24 +849,24 @@ const __vue2_script$N = {
849
849
  delete this.notifManager;
850
850
  }
851
851
  };
852
- const __cssModules$N = {};
853
- var __component__$N = /* @__PURE__ */ normalizeComponent(
854
- __vue2_script$N,
855
- render$N,
856
- staticRenderFns$N,
852
+ const __cssModules$O = {};
853
+ var __component__$O = /* @__PURE__ */ normalizeComponent(
854
+ __vue2_script$O,
855
+ render$O,
856
+ staticRenderFns$O,
857
857
  false,
858
- __vue2_injectStyles$N,
858
+ __vue2_injectStyles$O,
859
859
  null,
860
860
  null,
861
861
  null
862
862
  );
863
- function __vue2_injectStyles$N(context) {
864
- for (let o in __cssModules$N) {
865
- this[o] = __cssModules$N[o];
863
+ function __vue2_injectStyles$O(context) {
864
+ for (let o in __cssModules$O) {
865
+ this[o] = __cssModules$O[o];
866
866
  }
867
867
  }
868
868
  var NotificationManager = /* @__PURE__ */ function() {
869
- return __component__$N.exports;
869
+ return __component__$O.exports;
870
870
  }();
871
871
  const cssVars = {
872
872
  cssScope: ".w-app",
@@ -980,16 +980,16 @@ var dynamicCSS = (config2) => {
980
980
  styles += genBreakpointLayoutClasses(breakpointsDef2);
981
981
  return styles;
982
982
  };
983
- var render$M = function() {
983
+ var render$N = function() {
984
984
  var _vm = this;
985
985
  var _h = _vm.$createElement;
986
986
  var _c = _vm._self._c || _h;
987
987
  return _c("div", { staticClass: "w-app", class: _vm.classes }, [_vm._t("default"), _c("notification-manager")], 2);
988
988
  };
989
- var staticRenderFns$M = [];
989
+ var staticRenderFns$N = [];
990
990
  var wApp_vue_vue_type_style_index_0_lang = "";
991
991
  let breakpointsDef = { keys: [], values: [] };
992
- const __vue2_script$M = {
992
+ const __vue2_script$N = {
993
993
  name: "w-app",
994
994
  props: {
995
995
  dark: { type: Boolean },
@@ -1070,26 +1070,26 @@ const __vue2_script$M = {
1070
1070
  window.removeEventListener("resize", this.getBreakpoint);
1071
1071
  }
1072
1072
  };
1073
- const __cssModules$M = {};
1074
- var __component__$M = /* @__PURE__ */ normalizeComponent(
1075
- __vue2_script$M,
1076
- render$M,
1077
- staticRenderFns$M,
1073
+ const __cssModules$N = {};
1074
+ var __component__$N = /* @__PURE__ */ normalizeComponent(
1075
+ __vue2_script$N,
1076
+ render$N,
1077
+ staticRenderFns$N,
1078
1078
  false,
1079
- __vue2_injectStyles$M,
1079
+ __vue2_injectStyles$N,
1080
1080
  null,
1081
1081
  null,
1082
1082
  null
1083
1083
  );
1084
- function __vue2_injectStyles$M(context) {
1085
- for (let o in __cssModules$M) {
1086
- this[o] = __cssModules$M[o];
1084
+ function __vue2_injectStyles$N(context) {
1085
+ for (let o in __cssModules$N) {
1086
+ this[o] = __cssModules$N[o];
1087
1087
  }
1088
1088
  }
1089
1089
  var wApp = /* @__PURE__ */ function() {
1090
- return __component__$M.exports;
1090
+ return __component__$N.exports;
1091
1091
  }();
1092
- var render$L = function() {
1092
+ var render$M = function() {
1093
1093
  var _vm = this;
1094
1094
  var _h = _vm.$createElement;
1095
1095
  var _c = _vm._self._c || _h;
@@ -1097,9 +1097,9 @@ var render$L = function() {
1097
1097
  return [_vm._v(_vm._s(_vm.value === true ? "" : _vm.value || ""))];
1098
1098
  }) : _vm._e()], 2) : _vm._e()])], 2);
1099
1099
  };
1100
- var staticRenderFns$L = [];
1100
+ var staticRenderFns$M = [];
1101
1101
  var wBadge_vue_vue_type_style_index_0_lang = "";
1102
- const __vue2_script$L = {
1102
+ const __vue2_script$M = {
1103
1103
  name: "w-badge",
1104
1104
  props: {
1105
1105
  value: { default: true },
@@ -1161,26 +1161,26 @@ const __vue2_script$L = {
1161
1161
  }
1162
1162
  }
1163
1163
  };
1164
- const __cssModules$L = {};
1165
- var __component__$L = /* @__PURE__ */ normalizeComponent(
1166
- __vue2_script$L,
1167
- render$L,
1168
- staticRenderFns$L,
1164
+ const __cssModules$M = {};
1165
+ var __component__$M = /* @__PURE__ */ normalizeComponent(
1166
+ __vue2_script$M,
1167
+ render$M,
1168
+ staticRenderFns$M,
1169
1169
  false,
1170
- __vue2_injectStyles$L,
1170
+ __vue2_injectStyles$M,
1171
1171
  null,
1172
1172
  null,
1173
1173
  null
1174
1174
  );
1175
- function __vue2_injectStyles$L(context) {
1176
- for (let o in __cssModules$L) {
1177
- this[o] = __cssModules$L[o];
1175
+ function __vue2_injectStyles$M(context) {
1176
+ for (let o in __cssModules$M) {
1177
+ this[o] = __cssModules$M[o];
1178
1178
  }
1179
1179
  }
1180
1180
  var wBadge = /* @__PURE__ */ function() {
1181
- return __component__$L.exports;
1181
+ return __component__$M.exports;
1182
1182
  }();
1183
- var render$K = function() {
1183
+ var render$L = function() {
1184
1184
  var _vm = this;
1185
1185
  var _h = _vm.$createElement;
1186
1186
  var _c = _vm._self._c || _h;
@@ -1188,9 +1188,9 @@ var render$K = function() {
1188
1188
  return [i && _vm.$scopedSlots.separator ? _c("span", { key: i + "a", staticClass: "w-breadcrumbs__separator", class: _vm.separatorColor }, [_vm._t("separator", null, { "index": i })], 2) : i ? _c("w-icon", { key: i + "b", staticClass: "w-breadcrumbs__separator", class: _vm.separatorColor }, [_vm._v(_vm._s(_vm.icon))]) : _vm._e(), item[_vm.itemRouteKey] && (i < _vm.items.length - 1 || _vm.linkLastItem) ? [_vm.$scopedSlots.item ? _c(_vm.hasRouter ? "router-link" : "a", { key: i + "c", tag: "component", staticClass: "w-breadcrumbs__item", class: _vm.color || null, attrs: { "to": _vm.hasRouter && item[_vm.itemRouteKey], "href": item[_vm.itemRouteKey] } }, [_vm._t("item", null, { "item": item, "index": i + 1, "isLast": i === _vm.items.length - 1 })], 2) : _c(_vm.hasRouter ? "router-link" : "a", { key: i + "d", tag: "component", staticClass: "w-breadcrumbs__item", class: _vm.color || null, attrs: { "to": _vm.hasRouter && item[_vm.itemRouteKey], "href": item[_vm.itemRouteKey] }, domProps: { "innerHTML": _vm._s(item[_vm.itemLabelKey]) } })] : _vm.$scopedSlots.item ? _vm._t("item", null, { "item": item, "index": i + 1, "isLast": i === _vm.items.length - 1 }) : _c("span", { key: i + "f", domProps: { "innerHTML": _vm._s(item[_vm.itemLabelKey]) } })];
1189
1189
  })], 2);
1190
1190
  };
1191
- var staticRenderFns$K = [];
1191
+ var staticRenderFns$L = [];
1192
1192
  var wBreadcrumbs_vue_vue_type_style_index_0_lang = "";
1193
- const __vue2_script$K = {
1193
+ const __vue2_script$L = {
1194
1194
  name: "w-breadcrumbs",
1195
1195
  props: {
1196
1196
  items: { type: Array, required: true },
@@ -1221,37 +1221,36 @@ const __vue2_script$K = {
1221
1221
  }
1222
1222
  }
1223
1223
  };
1224
- const __cssModules$K = {};
1225
- var __component__$K = /* @__PURE__ */ normalizeComponent(
1226
- __vue2_script$K,
1227
- render$K,
1228
- staticRenderFns$K,
1224
+ const __cssModules$L = {};
1225
+ var __component__$L = /* @__PURE__ */ normalizeComponent(
1226
+ __vue2_script$L,
1227
+ render$L,
1228
+ staticRenderFns$L,
1229
1229
  false,
1230
- __vue2_injectStyles$K,
1230
+ __vue2_injectStyles$L,
1231
1231
  null,
1232
1232
  null,
1233
1233
  null
1234
1234
  );
1235
- function __vue2_injectStyles$K(context) {
1236
- for (let o in __cssModules$K) {
1237
- this[o] = __cssModules$K[o];
1235
+ function __vue2_injectStyles$L(context) {
1236
+ for (let o in __cssModules$L) {
1237
+ this[o] = __cssModules$L[o];
1238
1238
  }
1239
1239
  }
1240
1240
  var wBreadcrumbs = /* @__PURE__ */ function() {
1241
- return __component__$K.exports;
1241
+ return __component__$L.exports;
1242
1242
  }();
1243
- var render$J = function() {
1243
+ var render$K = function() {
1244
1244
  var _vm = this;
1245
1245
  var _h = _vm.$createElement;
1246
1246
  var _c = _vm._self._c || _h;
1247
- return _c(_vm.route ? "a" : "button", _vm._g(_vm._b({ tag: "component", staticClass: "w-button", class: _vm.classes, style: _vm.styles, attrs: { "type": !_vm.route && _vm.type, "href": _vm.route && (_vm.externalLink ? _vm.route : _vm.resolvedRoute) || null, "disabled": !!_vm.disabled || null } }, "component", _vm.$attrs, false), _vm.listeners), [_vm.icon ? _c("w-icon", _vm._b({}, "w-icon", _vm.iconProps || {}, false), [_vm._v(_vm._s(_vm.icon))]) : _vm._t("default"), _c("transition", { attrs: { "name": "scale-fade" } }, [_vm.loading ? _c("div", { staticClass: "w-button__loader" }, [_vm._t("loading", function() {
1247
+ return _c(_vm.route ? "a" : "button", _vm._g({ tag: "component", staticClass: "w-button", class: _vm.classes, style: _vm.styles, attrs: { "type": !_vm.route && _vm.type, "href": _vm.route && (_vm.externalLink ? _vm.route : _vm.resolvedRoute) || null, "disabled": !!_vm.disabled || null } }, _vm.listeners), [_vm.icon ? _c("w-icon", _vm._b({}, "w-icon", _vm.iconProps || {}, false), [_vm._v(_vm._s(_vm.icon))]) : _vm._t("default"), _c("transition", { attrs: { "name": "scale-fade" } }, [_vm.loading ? _c("div", { staticClass: "w-button__loader" }, [_vm._t("loading", function() {
1248
1248
  return [_c("svg", { attrs: { "viewBox": "0 0 40 40" } }, [_c("circle", { attrs: { "cx": "20", "cy": "20", "r": "18", "fill": "transparent", "stroke": "currentColor", "stroke-width": "4", "stroke-linecap": "round" } })])];
1249
1249
  })], 2) : _vm._e()])], 2);
1250
1250
  };
1251
- var staticRenderFns$J = [];
1252
- var wButton_vue_vue_type_style_index_0_lang = "";
1253
- const __vue2_script$J = {
1254
- name: "w-button",
1251
+ var staticRenderFns$K = [];
1252
+ var button_vue_vue_type_style_index_0_lang = "";
1253
+ const __vue2_script$K = {
1255
1254
  props: {
1256
1255
  color: { type: String },
1257
1256
  bgColor: { type: String },
@@ -1344,6 +1343,80 @@ const __vue2_script$J = {
1344
1343
  }
1345
1344
  }
1346
1345
  };
1346
+ const __cssModules$K = {};
1347
+ var __component__$K = /* @__PURE__ */ normalizeComponent(
1348
+ __vue2_script$K,
1349
+ render$K,
1350
+ staticRenderFns$K,
1351
+ false,
1352
+ __vue2_injectStyles$K,
1353
+ null,
1354
+ null,
1355
+ null
1356
+ );
1357
+ function __vue2_injectStyles$K(context) {
1358
+ for (let o in __cssModules$K) {
1359
+ this[o] = __cssModules$K[o];
1360
+ }
1361
+ }
1362
+ var ButtonPartial = /* @__PURE__ */ function() {
1363
+ return __component__$K.exports;
1364
+ }();
1365
+ var render$J = function() {
1366
+ var _vm = this;
1367
+ var _h = _vm.$createElement;
1368
+ var _c = _vm._self._c || _h;
1369
+ return _vm.tooltip ? _c("w-tooltip", _vm._b({ tag: "component", scopedSlots: _vm._u([{ key: "activator", fn: function(ref) {
1370
+ var on = ref.on;
1371
+ return [_c("button-partial", _vm._g(_vm._b({}, "button-partial", _vm.buttonProps, false), Object.assign({}, _vm.$listeners, on)), [_vm._t("default")], 2)];
1372
+ } }], null, true) }, "component", _vm.tooltipProps || {}, false), [_c("div", { domProps: { "innerHTML": _vm._s(_vm.tooltip) } })]) : _c("button-partial", _vm._g(_vm._b({}, "button-partial", _vm.buttonProps, false), _vm.$listeners), [_vm._t("default")], 2);
1373
+ };
1374
+ var staticRenderFns$J = [];
1375
+ const __vue2_script$J = {
1376
+ name: "w-button",
1377
+ inheritAttrs: false,
1378
+ props: {
1379
+ color: { type: String },
1380
+ bgColor: { type: String },
1381
+ dark: { type: Boolean },
1382
+ outline: { type: Boolean },
1383
+ text: { type: Boolean },
1384
+ round: { type: Boolean },
1385
+ shadow: { type: Boolean },
1386
+ tile: { type: Boolean },
1387
+ tooltip: { type: String },
1388
+ tooltipProps: { type: Object, default: () => ({}) },
1389
+ route: { type: [String, Object] },
1390
+ forceLink: { type: Boolean },
1391
+ type: { type: String, default: "button" },
1392
+ disabled: { type: Boolean },
1393
+ loading: { type: Boolean },
1394
+ icon: { type: String, default: null },
1395
+ iconProps: { type: Object, default: () => ({}) },
1396
+ absolute: { type: Boolean },
1397
+ fixed: { type: Boolean },
1398
+ top: { type: Boolean },
1399
+ bottom: { type: Boolean },
1400
+ left: { type: Boolean },
1401
+ right: { type: Boolean },
1402
+ zIndex: { type: [Number, String] },
1403
+ width: { type: [Number, String] },
1404
+ height: { type: [Number, String] },
1405
+ xs: { type: Boolean },
1406
+ sm: { type: Boolean },
1407
+ md: { type: Boolean },
1408
+ lg: { type: Boolean },
1409
+ xl: { type: Boolean }
1410
+ },
1411
+ components: { ButtonPartial },
1412
+ emits: [],
1413
+ computed: {
1414
+ buttonProps() {
1415
+ const { tooltip, tooltipProps, ...props } = this.$props;
1416
+ return { ...props, ...this.$attrs };
1417
+ }
1418
+ }
1419
+ };
1347
1420
  const __cssModules$J = {};
1348
1421
  var __component__$J = /* @__PURE__ */ normalizeComponent(
1349
1422
  __vue2_script$J,
@@ -1360,7 +1433,7 @@ function __vue2_injectStyles$J(context) {
1360
1433
  this[o] = __cssModules$J[o];
1361
1434
  }
1362
1435
  }
1363
- var wButton = /* @__PURE__ */ function() {
1436
+ var index$1 = /* @__PURE__ */ function() {
1364
1437
  return __component__$J.exports;
1365
1438
  }();
1366
1439
  const objectifyClasses = (classes = {}) => {
@@ -1507,14 +1580,14 @@ var render$H = function() {
1507
1580
  return null;
1508
1581
  }
1509
1582
  return _vm.onInput.apply(null, arguments);
1510
- } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pr2", class: _vm.labelClasses, attrs: { "for": "w-checkbox--" + _vm._uid } }, [_vm._t("default", function() {
1583
+ } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pr2", class: _vm.labelClasses, attrs: { "for": "w-checkbox--" + _vm._uid } }, [_vm._t("default", function() {
1511
1584
  return [_vm._v(_vm._s(_vm.label))];
1512
- })], 2) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-checkbox__input", class: this.color, on: { "click": function($event) {
1585
+ })], 2) : _vm.label ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pr2", class: _vm.labelClasses, attrs: { "for": "w-checkbox--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-checkbox__input", class: this.color, on: { "click": function($event) {
1513
1586
  _vm.$refs.input.focus();
1514
1587
  _vm.$refs.input.click();
1515
- } } }, [_c("svg", { attrs: { "width": "11px", "height": "9px", "viewbox": "0 0 12 9" } }, [_c("polyline", { attrs: { "points": "1 5 4 8 10 2" } })])]), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pl2", class: _vm.labelClasses, attrs: { "for": "w-checkbox--" + _vm._uid } }, [_vm._t("default", function() {
1588
+ } } }, [_c("svg", { attrs: { "viewBox": "-0.5 0 12 10" } }, [_c("polyline", { attrs: { "points": "1 5 4 8 10 2" } })])]), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pl2", class: _vm.labelClasses, attrs: { "for": "w-checkbox--" + _vm._uid } }, [_vm._t("default", function() {
1516
1589
  return [_vm._v(_vm._s(_vm.label))];
1517
- })], 2) : _vm._e()] : _vm._e()], 2);
1590
+ })], 2) : _vm.label ? _c("label", { staticClass: "w-checkbox__label w-form-el-shakable pl2", class: _vm.labelClasses, attrs: { "for": "w-checkbox--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e()], 2);
1518
1591
  };
1519
1592
  var staticRenderFns$H = [];
1520
1593
  var wCheckbox_vue_vue_type_style_index_0_lang = "";
@@ -1617,7 +1690,7 @@ var render$G = function() {
1617
1690
  return _vm.toggleCheck(item, $event);
1618
1691
  }, "focus": function($event) {
1619
1692
  return _vm.$emit("focus", $event);
1620
- } } }, "w-checkbox", { label: item.label, color: item.color, labelOnLeft: _vm.labelOnLeft, labelColor: _vm.labelColor, round: _vm.round }, false), [_vm.$slots["item." + (i + 1)] || _vm.$slots.item ? _vm._t(_vm.$slots["item." + (i + 1)] ? "item." + (i + 1) : "item", null, { "item": _vm.getOriginalItem(item), "checked": !!item._isChecked, "index": i + 1 }) : _vm._e()], 2);
1693
+ } } }, "w-checkbox", { label: item.label, color: item.color, labelOnLeft: _vm.labelOnLeft, labelColor: _vm.labelColor, round: _vm.round }, false), [_vm.$scopedSlots["item." + (i + 1)] || _vm.$scopedSlots.item ? _vm._t(_vm.$scopedSlots["item." + (i + 1)] ? "item." + (i + 1) : "item", null, { "item": _vm.getOriginalItem(item), "checked": !!item._isChecked, "index": i + 1 }) : _vm._e()], 2);
1621
1694
  }), 1);
1622
1695
  };
1623
1696
  var staticRenderFns$G = [];
@@ -1709,9 +1782,19 @@ var render$F = function() {
1709
1782
  _vm.showPopup = $$v;
1710
1783
  }, expression: "showPopup" } }, "w-menu", _vm.wMenuProps, false), [_c("w-flex", { attrs: { "column": !_vm.inline, "align-center": "" } }, [_c("div", [_vm._t("question", function() {
1711
1784
  return [_vm._v(_vm._s(_vm.question))];
1712
- })], 2), _c("div", { staticClass: "w-flex justify-end", class: _vm.inline ? "ml2" : "mt2" }, [_vm.cancel !== false ? _c("w-button", _vm._b({ staticClass: "mr2", attrs: { "bg-color": (_vm.cancelButton || {}).bgColor || "error" }, on: { "click": _vm.onCancel } }, "w-button", _vm.cancelButtonProps, false), [_vm._t("cancel", function() {
1785
+ })], 2), _c("div", { staticClass: "w-flex justify-end", class: _vm.inline ? "ml2" : "mt2" }, [_vm.cancel !== false ? _c("w-button", _vm._b({ staticClass: "mr2", attrs: { "bg-color": (_vm.cancelButton || {}).bgColor || "error" }, on: { "keyup": function($event) {
1786
+ if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "escape", void 0, $event.key, void 0)) {
1787
+ return null;
1788
+ }
1789
+ !_vm.persistent && _vm.onCancel();
1790
+ }, "click": _vm.onCancel } }, "w-button", _vm.cancelButtonProps, false), [_vm._t("cancel", function() {
1713
1791
  return [_vm._v(_vm._s(_vm.cancelButton.label))];
1714
- })], 2) : _vm._e(), _c("w-button", _vm._b({ attrs: { "bg-color": (_vm.confirmButton || {}).bgColor || "success" }, on: { "click": _vm.onConfirm } }, "w-button", _vm.confirmButtonProps, false), [_vm._t("confirm", function() {
1792
+ })], 2) : _vm._e(), _c("w-button", _vm._b({ directives: [{ name: "focus", rawName: "v-focus" }], attrs: { "bg-color": (_vm.confirmButton || {}).bgColor || "success" }, on: { "keyup": function($event) {
1793
+ if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "escape", void 0, $event.key, void 0)) {
1794
+ return null;
1795
+ }
1796
+ !_vm.persistent && _vm.onCancel();
1797
+ }, "click": _vm.onConfirm } }, "w-button", _vm.confirmButtonProps, false), [_vm._t("confirm", function() {
1715
1798
  return [_vm._v(_vm._s(_vm.confirmButton.label))];
1716
1799
  })], 2)], 1)])], 1)], 1);
1717
1800
  };
@@ -1727,7 +1810,8 @@ const __vue2_script$F = {
1727
1810
  cancel: { type: [Boolean, Object, String], default: void 0 },
1728
1811
  confirm: { type: [Object, String] },
1729
1812
  inline: { type: Boolean },
1730
- menu: { type: Object },
1813
+ menu: { type: Object, default: () => ({}) },
1814
+ tooltip: { type: [Boolean, Object, String] },
1731
1815
  noArrow: { type: Boolean },
1732
1816
  top: { type: Boolean },
1733
1817
  bottom: { type: Boolean },
@@ -1782,11 +1866,20 @@ const __vue2_script$F = {
1782
1866
  ...this.menu
1783
1867
  };
1784
1868
  },
1869
+ tooltipObject() {
1870
+ let tooltip = { label: typeof this.tooltip === "string" ? this.tooltip : "" };
1871
+ if (typeof this.tooltip === "object")
1872
+ tooltip = Object.assign({}, tooltip, this.tooltip);
1873
+ return tooltip;
1874
+ },
1785
1875
  buttonProps() {
1876
+ const { label, ...tooltipProps } = this.tooltipObject;
1786
1877
  return {
1787
1878
  bgColor: this.bgColor,
1788
1879
  color: this.color,
1789
1880
  icon: this.icon,
1881
+ tooltip: label,
1882
+ tooltipProps,
1790
1883
  ...this.mainButton
1791
1884
  };
1792
1885
  }
@@ -2390,7 +2483,7 @@ var render$y = function() {
2390
2483
  var _vm = this;
2391
2484
  var _h = _vm.$createElement;
2392
2485
  var _c = _vm._self._c || _h;
2393
- return _c("div", { class: _vm.classes }, [_c("div", { staticClass: "w-flex grow", class: [_vm.column ? "column" : "align-center", _vm.wrap ? "wrap" : ""] }, [_vm._t("default")], 2), _c("w-transition-expand", { attrs: { "y": "" } }, [_vm.Validation.message ? [_vm.$slots["error-message"] ? _c("div", { staticClass: "w-form-el__error", class: _vm.formProps.validationColor }, [_vm._t("error-message", null, { "message": _vm.Validation.message })], 2) : _c("div", { staticClass: "w-form-el__error error", class: _vm.formProps.validationColor, domProps: { "innerHTML": _vm._s(_vm.Validation.message) } })] : _vm._e()], 2)], 1);
2486
+ return _c("div", { class: _vm.classes }, [_c("div", { staticClass: "w-flex grow", class: [_vm.column ? "column" : "align-center", _vm.wrap ? "wrap" : ""] }, [_vm._t("default")], 2), _c("w-transition-expand", { attrs: { "y": "" } }, [_vm.Validation.message ? [_vm.$scopedSlots["error-message"] ? _c("div", { staticClass: "w-form-el__error", class: _vm.formProps.validationColor }, [_vm._t("error-message", null, { "message": _vm.Validation.message })], 2) : _c("div", { staticClass: "w-form-el__error error", class: _vm.formProps.validationColor, domProps: { "innerHTML": _vm._s(_vm.Validation.message) } })] : _vm._e()], 2)], 1);
2394
2487
  };
2395
2488
  var staticRenderFns$y = [];
2396
2489
  var wFormElement_vue_vue_type_style_index_0_lang = "";
@@ -2676,6 +2769,8 @@ function __vue2_injectStyles$w(context) {
2676
2769
  var wIcon = /* @__PURE__ */ function() {
2677
2770
  return __component__$w.exports;
2678
2771
  }();
2772
+ const consoleWarn = (message) => console.warn(`Wave UI: ${message}`);
2773
+ const consoleError = (message) => console.error(`Wave UI: ${message}`);
2679
2774
  var render$v = function() {
2680
2775
  var _vm = this;
2681
2776
  var _h = _vm.$createElement;
@@ -2924,8 +3019,8 @@ const __vue2_script$u = {
2924
3019
  },
2925
3020
  computed: {
2926
3021
  attrs() {
2927
- const { class: classes, ...attrs } = this.$attrs;
2928
- return attrs;
3022
+ const { class: classes, ...htmlAttrs } = this.$attrs;
3023
+ return htmlAttrs;
2929
3024
  },
2930
3025
  listeners() {
2931
3026
  const { input, focus, blur, ...listeners } = this.$listeners;
@@ -3684,6 +3779,7 @@ var wMenu_vue_vue_type_style_index_0_lang = "";
3684
3779
  const __vue2_script$s = {
3685
3780
  name: "w-menu",
3686
3781
  mixins: [DetachableMixin],
3782
+ inheritAttrs: false,
3687
3783
  props: {
3688
3784
  value: {},
3689
3785
  showOnHover: { type: Boolean },
@@ -4044,6 +4140,7 @@ const __vue2_script$q = {
4044
4140
  value: {},
4045
4141
  opacity: { type: [Number, String, Boolean] },
4046
4142
  bgColor: { type: String },
4143
+ absolute: { type: Boolean },
4047
4144
  zIndex: { type: [Number, String, Boolean] },
4048
4145
  persistent: { type: Boolean },
4049
4146
  persistentNoAnimation: { type: Boolean }
@@ -4064,7 +4161,8 @@ const __vue2_script$q = {
4064
4161
  },
4065
4162
  classes() {
4066
4163
  return {
4067
- "w-overlay--persistent-animate": this.persistentAnimate
4164
+ "w-overlay--persistent-animate": this.persistentAnimate,
4165
+ "w-overlay--absolute": this.absolute
4068
4166
  };
4069
4167
  },
4070
4168
  styles() {
@@ -4159,9 +4257,9 @@ var render$o = function() {
4159
4257
  var _vm = this;
4160
4258
  var _h = _vm.$createElement;
4161
4259
  var _c = _vm._self._c || _h;
4162
- return _c("div", { staticClass: "w-progress", class: _vm.classes, style: _vm.styles }, [!_vm.circle ? _c("div", { staticClass: "w-progress__progress", class: { full: _vm.progressValue === 100 }, style: "width: " + _vm.progressValue + "%" }) : [_c("svg", { attrs: { "viewBox": _vm.circleCenter / 2 + " " + _vm.circleCenter / 2 + " " + _vm.circleCenter + " " + _vm.circleCenter } }, [_vm.bgColor || this.progressValue > -1 ? _c("circle", { staticClass: "bg", class: _vm.bgColor, attrs: { "cx": _vm.circleCenter, "cy": _vm.circleCenter, "r": _vm.circleRadius, "fill": "transparent", "stroke-dasharray": _vm.circleCircumference, "stroke-width": _vm.stroke } }) : _vm._e()]), _c("svg", { staticClass: "w-progress__progress", style: "stroke-dashoffset: " + (1 - _vm.progressValue / 100) * _vm.circleCircumference, attrs: { "viewBox": _vm.circleCenter / 2 + " " + _vm.circleCenter / 2 + " " + _vm.circleCenter + " " + _vm.circleCenter } }, [_c("circle", { attrs: { "cx": _vm.circleCenter, "cy": _vm.circleCenter, "r": _vm.circleRadius, "fill": "transparent", "stroke-width": _vm.stroke, "stroke-linecap": _vm.roundCap && "round", "stroke-dasharray": _vm.circleCircumference } })])], _vm.label || _vm.$slots.default ? _c("div", { staticClass: "w-progress__label", class: _vm.labelColor || false }, [_vm._t("default", function() {
4260
+ return _c("div", { staticClass: "w-progress", class: _vm.classes, style: _vm.styles }, [!_vm.circle ? _c("div", { staticClass: "w-progress__progress", class: { full: _vm.progressValue === 100 }, style: "width: " + _vm.progressValue + "%" }) : _c("svg", { attrs: { "viewBox": _vm.circleCenter / 2 + " " + _vm.circleCenter / 2 + " " + _vm.circleCenter + " " + _vm.circleCenter } }, [_vm.bgColor || this.progressValue > -1 ? _c("circle", { staticClass: "bg", class: _vm.bgColor, attrs: { "cx": _vm.circleCenter, "cy": _vm.circleCenter, "r": _vm.circleRadius, "fill": "transparent", "stroke-dasharray": _vm.circleCircumference, "stroke-width": _vm.stroke } }) : _vm._e(), _c("circle", { staticClass: "w-progress__progress", style: "stroke-dashoffset: " + (1 - _vm.progressValue / 100) * _vm.circleCircumference, attrs: { "cx": _vm.circleCenter, "cy": _vm.circleCenter, "r": _vm.circleRadius, "fill": "transparent", "stroke-width": _vm.stroke, "stroke-linecap": _vm.roundCap && "round", "stroke-dasharray": _vm.circleCircumference } })]), _vm.label || _vm.$slots.default ? _c("div", { staticClass: "w-progress__label", class: _vm.labelColor || false }, [_vm._t("default", function() {
4163
4261
  return [_vm._v(_vm._s(Math.round(_vm.progressValue)) + _vm._s(_vm.circle ? "" : "%"))];
4164
- })], 2) : _vm._e()], 2);
4262
+ })], 2) : _vm._e()]);
4165
4263
  };
4166
4264
  var staticRenderFns$o = [];
4167
4265
  var wProgress_vue_vue_type_style_index_0_lang = "";
@@ -4267,14 +4365,14 @@ var render$n = function() {
4267
4365
  return _vm.$emit("focus", $event);
4268
4366
  }, "change": function($event) {
4269
4367
  _vm.onInput($event);
4270
- } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pr2", class: _vm.labelClasses, attrs: { "for": "w-radio--" + _vm._uid } }, [_vm._t("default", function() {
4368
+ } } }), _vm.hasLabel && _vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pr2", class: _vm.labelClasses, attrs: { "for": "w-radio--" + _vm._uid } }, [_vm._t("default", function() {
4271
4369
  return [_vm._v(_vm._s(_vm.label))];
4272
- })], 2) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-radio__input", class: this.color, on: { "click": function($event) {
4370
+ })], 2) : _vm.label ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pr2", class: _vm.labelClasses, attrs: { "for": "w-radio--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("div", { staticClass: "w-radio__input", class: this.color, on: { "click": function($event) {
4273
4371
  _vm.$refs.input.focus();
4274
4372
  _vm.$refs.input.click();
4275
- } } }), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pl2", class: _vm.labelClasses, attrs: { "for": "w-radio--" + _vm._uid } }, [_vm._t("default", function() {
4373
+ } } }), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pl2", class: _vm.labelClasses, attrs: { "for": "w-radio--" + _vm._uid } }, [_vm._t("default", function() {
4276
4374
  return [_vm._v(_vm._s(_vm.label))];
4277
- })], 2) : _vm._e()] : _vm._e()], 2);
4375
+ })], 2) : _vm.label ? _c("label", { staticClass: "w-radio__label w-form-el-shakable pl2", class: _vm.labelClasses, attrs: { "for": "w-radio--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e()], 2);
4278
4376
  };
4279
4377
  var staticRenderFns$n = [];
4280
4378
  var wRadio_vue_vue_type_style_index_0_lang = "";
@@ -4380,7 +4478,7 @@ var render$m = function() {
4380
4478
  return _vm.onInput(item);
4381
4479
  }, "focus": function($event) {
4382
4480
  return _vm.$emit("focus", $event);
4383
- } } }, "w-radio", { label: item.label, color: item.color, labelOnLeft: _vm.labelOnLeft, labelColor: _vm.labelColor }, false), [_vm.$slots["item." + (i + 1)] || _vm.$slots.item ? _vm._t(_vm.$slots["item." + (i + 1)] ? "item." + (i + 1) : "item", null, { "item": _vm.getOriginalItem(item), "index": i + 1, "checked": item.value === _vm.value }) : _vm._e()], 2);
4481
+ } } }, "w-radio", { label: item.label, color: item.color, labelOnLeft: _vm.labelOnLeft, labelColor: _vm.labelColor }, false), [_vm.$scopedSlots["item." + (i + 1)] || _vm.$scopedSlots.item ? _vm._t(_vm.$scopedSlots["item." + (i + 1)] ? "item." + (i + 1) : "item", null, { "item": _vm.getOriginalItem(item), "index": i + 1, "checked": item.value === _vm.value }) : _vm._e()], 2);
4384
4482
  }), 1);
4385
4483
  };
4386
4484
  var staticRenderFns$m = [];
@@ -5184,7 +5282,7 @@ var render$g = function() {
5184
5282
  })], 2) : _vm._e()] : _vm._e(), _c("div", _vm._g({ staticClass: "w-switch__input", class: _vm.inputClasses, on: { "click": function($event) {
5185
5283
  _vm.$refs.input.focus();
5186
5284
  _vm.$refs.input.click();
5187
- } } }, _vm.$listeners), [_vm.$slots.track ? _c("div", { staticClass: "w-switch__track" }, [_vm._t("track")], 2) : _vm._e(), _vm.$slots.thumb ? _c("div", { staticClass: "w-switch__thumb" }, [_vm._t("thumb")], 2) : _vm._e()]), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-switch__label w-switch__label--right w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-switch--" + _vm._uid } }, [_vm._t("default", function() {
5285
+ } } }, _vm.$listeners), [_vm.$slots.track ? _c("div", { staticClass: "w-switch__track" }, [_vm._t("track")], 2) : _vm._e(), _vm.$slots.thumb || _vm.loading ? _c("div", { staticClass: "w-switch__thumb" }, [_vm.loading ? _c("w-progress", _vm._b({ attrs: { "circle": "", "color": "inherit" } }, "w-progress", typeof _vm.loading === "number" ? { "model-value": _vm.loading } : {}, false)) : _vm._t("thumb")], 2) : _vm._e()]), _vm.hasLabel && !_vm.labelOnLeft ? [_vm.$slots.default || _vm.label ? _c("label", { staticClass: "w-switch__label w-switch__label--right w-form-el-shakable", class: _vm.labelClasses, attrs: { "for": "w-switch--" + _vm._uid } }, [_vm._t("default", function() {
5188
5286
  return [_vm._v(_vm._s(_vm.label))];
5189
5287
  })], 2) : _vm._e()] : _vm._e()], 2);
5190
5288
  };
@@ -5200,7 +5298,8 @@ const __vue2_script$g = {
5200
5298
  color: { type: String, default: "primary" },
5201
5299
  labelColor: { type: String, default: "primary" },
5202
5300
  thin: { type: Boolean },
5203
- noRipple: { type: Boolean }
5301
+ noRipple: { type: Boolean },
5302
+ loading: { type: [Boolean, Number], default: false }
5204
5303
  },
5205
5304
  emits: ["input", "update:modelValue", "focus"],
5206
5305
  data() {
@@ -5226,6 +5325,7 @@ const __vue2_script$g = {
5226
5325
  "w-switch--ripple": this.ripple.start,
5227
5326
  "w-switch--custom-thumb": this.$slots.thumb,
5228
5327
  "w-switch--custom-track": this.$slots.track,
5328
+ "w-switch--loading": this.loading,
5229
5329
  "w-switch--rippled": this.ripple.end
5230
5330
  };
5231
5331
  },
@@ -5438,8 +5538,10 @@ const __vue2_script$e = {
5438
5538
  }
5439
5539
  if (!this.fillBar && this.activeTabEl) {
5440
5540
  const { left, width } = this.activeTabEl.getBoundingClientRect();
5441
- const { left: parentLeft } = this.activeTabEl.parentNode.getBoundingClientRect();
5442
- this.slider.left = `${left - parentLeft + this.activeTabEl.parentNode.scrollLeft}px`;
5541
+ const tabsBar = this.activeTabEl.parentNode;
5542
+ const { left: parentLeft } = tabsBar.getBoundingClientRect();
5543
+ const { borderLeftWidth } = getComputedStyle(tabsBar);
5544
+ this.slider.left = `${left - parentLeft - parseInt(borderLeftWidth) + tabsBar.scrollLeft}px`;
5443
5545
  this.slider.width = `${width}px`;
5444
5546
  } else {
5445
5547
  this.slider.left = `${this.activeTab._index * 100 / this.tabsItems.length}%`;
@@ -5532,11 +5634,11 @@ var render$d = function() {
5532
5634
  }, { "header": header, "label": header.label, "index": i + 1 }) : _c("span", { domProps: { "innerHTML": _vm._s(header.label || "") } })] : _vm._e(), header.sortable !== false && header.align !== "right" ? _c("w-icon", { staticClass: "w-table__header-sort", class: _vm.headerSortClasses(header) }, [_vm._v("wi-arrow-down")]) : _vm._e(), i < _vm.headers.length - 1 && _vm.resizableColumns ? _c("span", { staticClass: "w-table__col-resizer", class: { "w-table__col-resizer--hover": _vm.colResizing.hover === i, "w-table__col-resizer--active": _vm.colResizing.columnIndex === i }, on: { "click": function($event) {
5533
5635
  $event.stopPropagation();
5534
5636
  } } }) : _vm._e()], 2);
5535
- }), 0)]) : _vm._e(), _c("tbody", [_vm.loading ? _c("tr", { staticClass: "w-table__progress-bar" }, [_c("td", { attrs: { "colspan": _vm.headers.length } }, [_c("w-progress", { attrs: { "tile": "" } }), _c("div", { staticClass: "w-table__loading-text" }, [_vm._t("loading", function() {
5637
+ }), 0), _c("w-transition-fade", [_vm.loading === "header" ? _c("tr", { staticClass: "w-table__progress-bar" }, [_c("td", { attrs: { "colspan": _vm.headers.length } }, [_c("w-progress", { attrs: { "tile": "" } })], 1)]) : _vm._e()])], 1) : _vm._e(), _c("tbody", [_vm.loading === true ? _c("tr", { staticClass: "w-table__progress-bar" }, [_c("td", { attrs: { "colspan": _vm.headers.length } }, [_c("w-progress", { attrs: { "tile": "" } }), _c("div", { staticClass: "w-table__loading-text" }, [_vm._t("loading", function() {
5536
5638
  return [_vm._v("Loading...")];
5537
5639
  })], 2)], 1)]) : !_vm.tableItems.length ? _c("tr", { staticClass: "no-data" }, [_c("td", { staticClass: "w-table__cell text-center", attrs: { "colspan": _vm.headers.length } }, [_vm._t("no-data", function() {
5538
5640
  return [_vm._v("No data to show.")];
5539
- })], 2)]) : [_vm._l(_vm.sortedItems, function(item, i) {
5641
+ })], 2)]) : _vm._e(), _vm.tableItems.length && _vm.loading !== true ? [_vm._l(_vm.sortedItems, function(item, i) {
5540
5642
  return [_vm.$scopedSlots["item"] ? _vm._t("item", null, { "item": item, "index": i + 1, "select": function() {
5541
5643
  return _vm.doSelectRow(item, i);
5542
5644
  }, "classes": { "w-table__row": true, "w-table__row--selected": _vm.selectedRowsByUid[item._uid] !== void 0, "w-table__row--expanded": _vm.expandedRowsByUid[item._uid] !== void 0 } }) : _c("tr", { key: i, staticClass: "w-table__row", class: { "w-table__row--selected": _vm.selectedRowsByUid[item._uid] !== void 0, "w-table__row--expanded": _vm.expandedRowsByUid[item._uid] !== void 0 }, on: { "click": function($event) {
@@ -5545,7 +5647,7 @@ var render$d = function() {
5545
5647
  var _obj, _obj$1;
5546
5648
  return [_vm.$scopedSlots["item-cell." + header.key] || _vm.$scopedSlots["item-cell." + (j + 1)] || _vm.$scopedSlots["item-cell"] ? _c("td", { key: j + "-a", staticClass: "w-table__cell", class: (_obj = {}, _obj["text-" + (header.align || "left")] = true, _obj["w-table__cell--sticky"] = header.sticky, _obj), attrs: { "data-label": header.label } }, [_vm.$scopedSlots["item-cell." + header.key] ? _vm._t("item-cell." + header.key, null, { "header": header, "item": item, "label": item[header.key] || "", "index": i + 1 }) : _vm.$scopedSlots["item-cell." + (j + 1)] ? _vm._t("item-cell." + (j + 1), null, { "header": header, "item": item, "label": item[header.key] || "", "index": i + 1 }) : _vm.$scopedSlots["item-cell"] ? _vm._t("item-cell", null, { "header": header, "item": item, "label": item[header.key] || "", "index": i + 1 }) : _vm._e(), j < _vm.headers.length - 1 && _vm.resizableColumns ? _c("span", { staticClass: "w-table__col-resizer", class: { "w-table__col-resizer--hover": _vm.colResizing.hover === j, "w-table__col-resizer--active": _vm.colResizing.columnIndex === j } }) : _vm._e()], 2) : _c("td", { key: j + "-b", staticClass: "w-table__cell", class: (_obj$1 = {}, _obj$1["text-" + (header.align || "left")] = true, _obj$1["w-table__cell--sticky"] = header.sticky, _obj$1), attrs: { "data-label": header.label } }, [_c("div", { domProps: { "innerHTML": _vm._s(item[header.key] || "") } }), j < _vm.headers.length - 1 && _vm.resizableColumns ? _c("span", { staticClass: "w-table__col-resizer", class: { "w-table__col-resizer--hover": _vm.colResizing.hover === j, "w-table__col-resizer--active": _vm.colResizing.columnIndex === j } }) : _vm._e()])];
5547
5649
  })], 2), _vm.expandedRowsByUid[item._uid] ? _c("tr", { staticClass: "w-table__row w-table__row--expansion" }, [_c("td", { staticClass: "w-table__cell", attrs: { "colspan": _vm.headers.length } }, [_c("w-transition-expand", { attrs: { "y": "" } }, [_vm.expandedRowsByUid[item._uid] ? _c("div", [_vm._t("row-expansion", null, { "item": item, "index": i + 1 })], 2) : _vm._e(), i < _vm.headers.length - 1 && _vm.resizableColumns ? _c("span", { staticClass: "w-table__col-resizer", class: { "w-table__col-resizer--hover": _vm.colResizing.hover === i, "w-table__col-resizer--active": _vm.colResizing.columnIndex === _vm.j } }) : _vm._e()])], 1)]) : _vm._e()];
5548
- })], _vm.$slots["extra-row"] ? _c("div", { staticClass: "w-table__extra-row" }, [_vm._t("extra-row")], 2) : _vm._e()], 2), _vm.$slots.footer || _vm.$slots["footer-row"] ? _c("tfoot", { staticClass: "w-table__footer" }, [_vm.$slots["footer-row"] ? _vm._t("footer-row") : _c("tr", { staticClass: "w-table__row" }, [_c("td", { staticClass: "w-table__cell", attrs: { "colspan": _vm.headers.length } }, [_vm._t("footer")], 2)])], 2) : _vm._e()])]);
5650
+ })] : _vm._e(), _vm.$slots["extra-row"] ? _c("div", { staticClass: "w-table__extra-row" }, [_vm._t("extra-row")], 2) : _vm._e()], 2), _vm.$slots.footer || _vm.$slots["footer-row"] ? _c("tfoot", { staticClass: "w-table__footer" }, [_vm.$slots["footer-row"] ? _vm._t("footer-row") : _c("tr", { staticClass: "w-table__row" }, [_c("td", { staticClass: "w-table__cell", attrs: { "colspan": _vm.headers.length } }, [_vm._t("footer")], 2)])], 2) : _vm._e()])]);
5549
5651
  };
5550
5652
  var staticRenderFns$d = [];
5551
5653
  var wTable_vue_vue_type_style_index_0_lang = "";
@@ -5559,7 +5661,7 @@ const __vue2_script$d = {
5559
5661
  fixedLayout: { type: Boolean },
5560
5662
  fixedHeaders: { type: Boolean },
5561
5663
  fixedFooter: { type: Boolean },
5562
- loading: { type: Boolean },
5664
+ loading: { type: [Boolean, String] },
5563
5665
  sort: { type: [String, Array] },
5564
5666
  expandableRows: {
5565
5667
  validator: (value) => {
@@ -5586,6 +5688,7 @@ const __vue2_script$d = {
5586
5688
  forceSelection: { type: Boolean },
5587
5689
  uidKey: { type: String, default: "id" },
5588
5690
  filter: { type: Function },
5691
+ sortFunction: { type: Function },
5589
5692
  mobileBreakpoint: { type: Number, default: 0 },
5590
5693
  resizableColumns: { type: Boolean }
5591
5694
  },
@@ -5624,7 +5727,7 @@ const __vue2_script$d = {
5624
5727
  return typeof this.filter === "function" ? this.tableItems.filter(this.filter) : this.tableItems;
5625
5728
  },
5626
5729
  sortedItems() {
5627
- if (!this.activeSorting.length)
5730
+ if (!this.activeSorting.length || this.sortFunction)
5628
5731
  return this.filteredItems;
5629
5732
  const sortKey1 = this.activeSorting[0].replace(/^[+-]/, "");
5630
5733
  const sortDesc1 = this.activeSorting[0][0] === "-";
@@ -5690,14 +5793,16 @@ const __vue2_script$d = {
5690
5793
  `m${header.align === "right" ? "r" : "l"}1`
5691
5794
  ];
5692
5795
  },
5693
- sortTable(header) {
5796
+ async sortTable(header) {
5694
5797
  const alreadySortingThis = this.activeSortingKeys[header.key];
5695
5798
  if (alreadySortingThis && this.activeSortingKeys[header.key] === "-") {
5696
5799
  this.activeSorting = [];
5697
- return this.$emit("update:sort");
5698
5800
  } else
5699
5801
  this.$set(this.activeSorting, 0, (alreadySortingThis ? "-" : "+") + header.key);
5700
5802
  this.$emit("update:sort", this.activeSorting);
5803
+ if (typeof this.sortFunction === "function") {
5804
+ await this.sortFunction(this.activeSorting);
5805
+ }
5701
5806
  },
5702
5807
  doSelectRow(item, index2) {
5703
5808
  const expandable = this.expandableRows === "" ? true : this.expandableRows;
@@ -6141,7 +6246,7 @@ var render$a = function() {
6141
6246
  var _c = _vm._self._c || _h;
6142
6247
  return _c("ul", { staticClass: "w-timeline" }, _vm._l(_vm.items, function(item, i) {
6143
6248
  var _obj;
6144
- return _c("li", { key: i, staticClass: "w-timeline-item" }, [_c(item[_vm.itemIconKey] || _vm.icon ? "w-icon" : "div", { tag: "component", staticClass: "w-timeline-item__bullet", class: (_obj = {}, _obj[item[_vm.itemColorKey] || _vm.color] = item[_vm.itemColorKey] || _vm.color, _obj) }, [_vm._v(_vm._s(item[_vm.itemIconKey] || _vm.icon))]), !_vm.$slots["item." + (i + 1)] ? _vm._t("item", function() {
6249
+ return _c("li", { key: i, staticClass: "w-timeline-item" }, [_c(item[_vm.itemIconKey] || _vm.icon ? "w-icon" : "div", { tag: "component", staticClass: "w-timeline-item__bullet", class: (_obj = {}, _obj[item[_vm.itemColorKey] || _vm.color] = item[_vm.itemColorKey] || _vm.color, _obj) }, [_vm._v(_vm._s(item[_vm.itemIconKey] || _vm.icon))]), !_vm.$scopedSlots["item." + (i + 1)] ? _vm._t("item", function() {
6145
6250
  var _obj2;
6146
6251
  return [_c("div", { staticClass: "w-timeline-item__title", class: (_obj2 = {}, _obj2[item[_vm.itemColorKey] || _vm.color] = item[_vm.itemColorKey] || _vm.color, _obj2), domProps: { "innerHTML": _vm._s(item[_vm.itemTitleKey]) } }), _c("div", { staticClass: "w-timeline-item__content", domProps: { "innerHTML": _vm._s(item[_vm.itemContentKey]) } })];
6147
6252
  }, { "item": item, "index": i + 1 }) : _vm._t("item." + (i + 1), null, { "item": item, "index": i + 1 })], 2);
@@ -6845,7 +6950,7 @@ var components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProp
6845
6950
  WApp: wApp,
6846
6951
  WBadge: wBadge,
6847
6952
  WBreadcrumbs: wBreadcrumbs,
6848
- WButton: wButton,
6953
+ WButton: index$1,
6849
6954
  WCard: wCard,
6850
6955
  WCheckbox: wCheckbox,
6851
6956
  WCheckboxes: wCheckboxes,