wave-ui 1.50.1 → 1.52.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.
@@ -675,13 +675,6 @@ const __vue2_script$P = {
675
675
  [item[this.itemColorKey]]: item[this.itemColorKey]
676
676
  };
677
677
  }
678
- },
679
- watch: {
680
- value(array) {
681
- this.accordionItems.forEach((item, i) => {
682
- this.$set(item, "expanded", Array.isArray(array) && array[i] || false);
683
- });
684
- }
685
678
  }
686
679
  };
687
680
  const __cssModules$P = {};
@@ -1315,7 +1308,7 @@ var render$I = function() {
1315
1308
  var _vm = this;
1316
1309
  var _h = _vm.$createElement;
1317
1310
  var _c = _vm._self._c || _h;
1318
- return _c("div", { staticClass: "w-card", class: _vm.classes, style: _vm.styles }, [_vm.$slots.title ? _c("div", { staticClass: "w-card__title", class: Object.assign({}, { "w-card__title--has-toolbar": _vm.titleHasToolbar }, _vm.titleClasses) }, [_vm._t("title")], 2) : _vm.title ? _c("div", { staticClass: "w-card__title", class: _vm.titleClasses, domProps: { "innerHTML": _vm._s(_vm.title) } }) : _vm._e(), _vm.image ? _c("w-image", _vm._b({ staticClass: "w-card__image", attrs: { "src": _vm.image } }, "w-image", _vm.imgProps, false), [_vm._t("image-content")], 2) : _vm._e(), _c("div", { staticClass: "w-card__content", class: _vm.contentClasses }, [_vm._t("default")], 2), _vm.$slots.actions ? _c("div", { staticClass: "w-card__actions", class: { "w-card__actions--has-toolbar": _vm.actionsHasToolbar } }, [_vm._t("actions")], 2) : _vm._e()], 1);
1311
+ return _c("div", { staticClass: "w-card", class: _vm.classes }, [_vm.$slots.title ? _c("div", { staticClass: "w-card__title", class: Object.assign({}, { "w-card__title--has-toolbar": _vm.titleHasToolbar }, _vm.titleClasses) }, [_vm._t("title")], 2) : _vm.title ? _c("div", { staticClass: "w-card__title", class: _vm.titleClasses, domProps: { "innerHTML": _vm._s(_vm.title) } }) : _vm._e(), _vm.image ? _c("w-image", _vm._b({ staticClass: "w-card__image", attrs: { "src": _vm.image } }, "w-image", _vm.imgProps, false), [_vm._t("image-content")], 2) : _vm._e(), _c("div", { staticClass: "w-card__content", class: _vm.contentClasses }, [_vm._t("default")], 2), _vm.$slots.actions ? _c("div", { staticClass: "w-card__actions", class: { "w-card__actions--has-toolbar": _vm.actionsHasToolbar } }, [_vm._t("actions")], 2) : _vm._e()], 1);
1319
1312
  };
1320
1313
  var staticRenderFns$I = [];
1321
1314
  var wCard_vue_vue_type_style_index_0_lang = "";
@@ -1363,9 +1356,6 @@ const __vue2_script$I = {
1363
1356
  "w-card--tile": this.tile,
1364
1357
  "w-card--shadow": this.shadow
1365
1358
  };
1366
- },
1367
- styles() {
1368
- return false;
1369
1359
  }
1370
1360
  }
1371
1361
  };
@@ -1745,7 +1735,9 @@ var render$D = function() {
1745
1735
  var _vm = this;
1746
1736
  var _h = _vm.$createElement;
1747
1737
  var _c = _vm._self._c || _h;
1748
- return _c("w-overlay", { staticClass: "w-dialog", class: _vm.classes, attrs: { "value": _vm.showWrapper, "persistent": _vm.persistent, "persistent-no-animation": _vm.persistentNoAnimation, "bg-color": _vm.overlayColor, "opacity": _vm.overlayOpacity }, on: { "click": _vm.onOutsideClick } }, [_c("transition", { attrs: { "name": _vm.transition, "appear": "" }, on: { "after-leave": _vm.onClose } }, [_c("w-card", { directives: [{ name: "show", rawName: "v-show", value: _vm.showContent, expression: "showContent" }], staticClass: "w-dialog__content", class: _vm.dialogClass, style: _vm.contentStyles, attrs: { "no-border": "", "color": _vm.color, "bg-color": _vm.bgColor, "title-class": _vm.titleClass, "content-class": _vm.contentClass, "title": _vm.title || void 0 }, scopedSlots: _vm._u([_vm.$slots.title ? { key: "title", fn: function() {
1738
+ return _c("w-overlay", { staticClass: "w-dialog", class: _vm.classes, attrs: { "value": _vm.showWrapper, "persistent": _vm.persistent, "persistent-no-animation": _vm.persistentNoAnimation, "bg-color": _vm.overlayColor, "opacity": _vm.overlayOpacity }, on: { "click": _vm.onOutsideClick, "closed": function($event) {
1739
+ return _vm.$emit("closed");
1740
+ } } }, [_c("transition", { attrs: { "name": _vm.transition, "appear": "" }, on: { "after-leave": _vm.onClose } }, [_c("w-card", { directives: [{ name: "show", rawName: "v-show", value: _vm.showContent, expression: "showContent" }], staticClass: "w-dialog__content", class: _vm.dialogClass, style: _vm.contentStyles, attrs: { "no-border": "", "color": _vm.color, "bg-color": _vm.bgColor, "title-class": _vm.titleClass, "content-class": _vm.contentClass, "title": _vm.title || void 0 }, scopedSlots: _vm._u([_vm.$slots.title ? { key: "title", fn: function() {
1749
1741
  return [_vm._t("title")];
1750
1742
  }, proxy: true } : null, _vm.$slots.actions ? { key: "actions", fn: function() {
1751
1743
  return [_vm._t("actions")];
@@ -1772,7 +1764,7 @@ const __vue2_script$D = {
1772
1764
  bgColor: { type: String },
1773
1765
  overlayOpacity: { type: [Number, String, Boolean] }
1774
1766
  },
1775
- emits: ["input", "update:modelValue", "close"],
1767
+ emits: ["input", "update:modelValue", "close", "closed"],
1776
1768
  data() {
1777
1769
  return {
1778
1770
  showWrapper: this.value,
@@ -1809,7 +1801,7 @@ const __vue2_script$D = {
1809
1801
  this.showWrapper = false;
1810
1802
  this.$emit("update:modelValue", false);
1811
1803
  this.$emit("input", false);
1812
- this.$emit("close", false);
1804
+ this.$emit("close");
1813
1805
  }
1814
1806
  },
1815
1807
  watch: {
@@ -1849,7 +1841,7 @@ const __vue2_script$C = {
1849
1841
  classes() {
1850
1842
  return {
1851
1843
  [`w-divider--has-color ${this.color}`]: this.color,
1852
- "w-divider--vertical": this.vertical,
1844
+ [`w-divider--${this.vertical ? "vertical" : "horizontal"}`]: true,
1853
1845
  "w-divider--has-content": this.$slots.default
1854
1846
  };
1855
1847
  }
@@ -3168,10 +3160,10 @@ var DetachableMixin = {
3168
3160
  alignRight: { type: Boolean },
3169
3161
  noPosition: { type: Boolean },
3170
3162
  zIndex: { type: [Number, String, Boolean] },
3171
- activator: { type: String }
3163
+ activator: { type: [String, Object, HTMLElement] }
3172
3164
  },
3173
3165
  data: () => ({
3174
- docAEventListenersHandlers: []
3166
+ docEventListenersHandlers: []
3175
3167
  }),
3176
3168
  computed: {
3177
3169
  appendToTarget() {
@@ -3202,12 +3194,22 @@ var DetachableMixin = {
3202
3194
  return this.appendToTarget;
3203
3195
  },
3204
3196
  hasSeparateActivator() {
3205
- return !this.$scopedSlots.activator && typeof this.activator === "string";
3197
+ var _a;
3198
+ if (this.$scopedSlots.activator)
3199
+ return false;
3200
+ const activatorIsString = typeof this.activator === "string";
3201
+ const activatorIsDomEl = (((_a = this.activator) == null ? void 0 : _a.$el) || this.activator) instanceof HTMLElement;
3202
+ return activatorIsString || activatorIsDomEl;
3206
3203
  },
3207
3204
  activatorEl: {
3208
3205
  get() {
3209
- if (this.hasSeparateActivator)
3206
+ var _a;
3207
+ if (this.hasSeparateActivator) {
3208
+ const activator = ((_a = this.activator) == null ? void 0 : _a.$el) || this.activator;
3209
+ if (activator instanceof HTMLElement)
3210
+ return activator;
3210
3211
  return document.querySelector(this.activator);
3212
+ }
3211
3213
  return this.$el.firstElementChild;
3212
3214
  },
3213
3215
  set() {
@@ -3221,8 +3223,29 @@ var DetachableMixin = {
3221
3223
  }
3222
3224
  },
3223
3225
  methods: {
3224
- getActivatorCoordinates(e) {
3225
- const { top, left, width, height } = (e ? e.target : this.activatorEl).getBoundingClientRect();
3226
+ async open(e) {
3227
+ if (this.delay)
3228
+ await new Promise((resolve) => setTimeout(resolve, this.delay));
3229
+ this.detachableVisible = true;
3230
+ if (this.activator)
3231
+ this.activatorEl = e.target;
3232
+ await this.insertInDOM();
3233
+ if (this.minWidth === "activator")
3234
+ this.activatorWidth = this.activatorEl.offsetWidth;
3235
+ if (!this.noPosition)
3236
+ this.computeDetachableCoords();
3237
+ this.timeoutId = setTimeout(() => {
3238
+ this.$emit("update:modelValue", true);
3239
+ this.$emit("input", true);
3240
+ this.$emit("open");
3241
+ }, 0);
3242
+ if (!this.persistent)
3243
+ document.addEventListener("mousedown", this.onOutsideMousedown);
3244
+ if (!this.noPosition)
3245
+ window.addEventListener("resize", this.onResize);
3246
+ },
3247
+ getActivatorCoordinates() {
3248
+ const { top, left, width, height } = this.activatorEl.getBoundingClientRect();
3226
3249
  let coords = { top, left, width, height };
3227
3250
  if (!this.fixed) {
3228
3251
  const { top: targetTop, left: targetLeft } = this.detachableParentEl.getBoundingClientRect();
@@ -3234,8 +3257,8 @@ var DetachableMixin = {
3234
3257
  }
3235
3258
  return coords;
3236
3259
  },
3237
- computeDetachableCoords(e) {
3238
- let { top, left, width, height } = this.getActivatorCoordinates(e);
3260
+ computeDetachableCoords() {
3261
+ let { top, left, width, height } = this.getActivatorCoordinates();
3239
3262
  this.detachableEl.style.visibility = "hidden";
3240
3263
  this.detachableEl.style.display = "flex";
3241
3264
  const computedStyles2 = window.getComputedStyle(this.detachableEl, null);
@@ -3312,6 +3335,21 @@ var DetachableMixin = {
3312
3335
  this.detachableEl.remove();
3313
3336
  this.detachableEl = null;
3314
3337
  }
3338
+ },
3339
+ bindActivatorEvents() {
3340
+ const activatorIsString = typeof this.activator === "string";
3341
+ Object.entries(this.activatorEventHandlers).forEach(([eventName, handler]) => {
3342
+ eventName = eventName.replace("mouseenter", "mouseover").replace("mouseleave", "mouseout");
3343
+ const handlerWrap = (e) => {
3344
+ var _a;
3345
+ if (activatorIsString && ((_a = e.target) == null ? void 0 : _a.matches) && e.target.matches(this.activator))
3346
+ handler(e);
3347
+ else if (e.target === this.activatorEl || this.activatorEl.contains(e.target))
3348
+ handler(e);
3349
+ };
3350
+ document.addEventListener(eventName, handlerWrap);
3351
+ this.docEventListenersHandlers.push({ eventName, handler: handlerWrap });
3352
+ });
3315
3353
  }
3316
3354
  },
3317
3355
  mounted() {
@@ -3319,31 +3357,28 @@ var DetachableMixin = {
3319
3357
  const wrapper = this.$el;
3320
3358
  if (this.$scopedSlots.activator)
3321
3359
  wrapper.parentNode.insertBefore(this.activatorEl, wrapper);
3322
- else if (this.activator) {
3323
- Object.entries(this.activatorEventHandlers).forEach(([eventName, handler]) => {
3324
- eventName = eventName.replace("mouseenter", "mouseover").replace("mouseleave", "mouseout");
3325
- const handlerWrap = (e) => {
3326
- var _a2;
3327
- if (((_a2 = e.target) == null ? void 0 : _a2.matches) && e.target.matches(this.activator))
3328
- handler(e);
3329
- };
3330
- document.addEventListener(eventName, handlerWrap);
3331
- this.docAEventListenersHandlers.push({ eventName, handler: handlerWrap });
3360
+ else if (this.activator)
3361
+ this.bindActivatorEvents();
3362
+ else {
3363
+ this.$nextTick(() => {
3364
+ this.activator && this.bindActivatorEvents();
3365
+ if (this.value)
3366
+ this.toggle({ type: "click", target: this.activatorEl });
3332
3367
  });
3333
3368
  }
3334
3369
  if (this.overlay) {
3335
3370
  this.overlayEl = (_a = this.$refs.overlay) == null ? void 0 : _a.$el;
3336
3371
  wrapper.parentNode.insertBefore(this.overlayEl, wrapper);
3337
3372
  }
3338
- if (this.value)
3339
- this.toggleMenu({ type: "click", target: this.activatorEl });
3373
+ if (this.value && this.activator)
3374
+ this.toggle({ type: "click", target: this.activatorEl });
3340
3375
  },
3341
3376
  beforeDestroy() {
3342
3377
  var _a;
3343
3378
  this.close();
3344
3379
  this.removeFromDOM();
3345
- if (this.docAEventListenersHandlers.length) {
3346
- this.docAEventListenersHandlers.forEach(({ eventName, handler }) => {
3380
+ if (this.docEventListenersHandlers.length) {
3381
+ this.docEventListenersHandlers.forEach(({ eventName, handler }) => {
3347
3382
  document.removeEventListener(eventName, handler);
3348
3383
  });
3349
3384
  }
@@ -3371,13 +3406,13 @@ var render$s = function() {
3371
3406
  var _vm = this;
3372
3407
  var _h = _vm.$createElement;
3373
3408
  var _c = _vm._self._c || _h;
3374
- return _c("div", { staticClass: "w-menu-wrap" }, [_vm._t("activator", null, { "on": _vm.activatorEventHandlers }), _c("transition", { attrs: { "name": _vm.transitionName, "appear": "" } }, [_vm.custom && _vm.detachableVisible ? _c("div", { ref: "detachable", staticClass: "w-menu", class: _vm.classes, style: _vm.styles, on: { "click": function($event) {
3409
+ return _c("div", { staticClass: "w-menu-wrap" }, [_vm._t("activator", null, { "on": _vm.activatorEventHandlers }), _c("transition", { attrs: { "name": _vm.transitionName, "appear": "" } }, [_vm.custom && _vm.detachableVisible ? _c("div", _vm._g({ ref: "detachable", staticClass: "w-menu", class: _vm.classes, style: _vm.styles, on: { "click": function($event) {
3375
3410
  _vm.hideOnMenuClick && _vm.close(true);
3376
3411
  }, "mouseenter": function($event) {
3377
3412
  _vm.showOnHover && (_vm.hoveringMenu = true);
3378
3413
  }, "mouseleave": function($event) {
3379
3414
  _vm.showOnHover && (_vm.hoveringMenu = false, _vm.close());
3380
- } } }, [_vm._t("default")], 2) : _vm.detachableVisible ? _c("w-card", { ref: "detachable", staticClass: "w-menu", class: _vm.classes, style: _vm.styles, attrs: { "tile": _vm.tile, "title-class": _vm.titleClasses, "content-class": _vm.contentClasses, "shadow": _vm.shadow, "no-border": _vm.noBorder }, nativeOn: { "click": function($event) {
3415
+ } } }, _vm.$listeners), [_vm._t("default")], 2) : _vm.detachableVisible ? _c("w-card", _vm._g({ ref: "detachable", staticClass: "w-menu", class: _vm.classes, style: _vm.styles, attrs: { "tile": _vm.tile, "title-class": _vm.titleClasses, "content-class": _vm.contentClasses, "shadow": _vm.shadow, "no-border": _vm.noBorder }, nativeOn: { "click": function($event) {
3381
3416
  _vm.hideOnMenuClick && _vm.close(true);
3382
3417
  }, "mouseenter": function($event) {
3383
3418
  _vm.showOnHover && (_vm.hoveringMenu = true);
@@ -3387,7 +3422,7 @@ var render$s = function() {
3387
3422
  return [_vm._t("title")];
3388
3423
  }, proxy: true } : null, _vm.$slots.actions ? { key: "actions", fn: function() {
3389
3424
  return [_vm._t("actions")];
3390
- }, proxy: true } : null], null, true) }, [_vm._t("default")], 2) : _vm._e()], 1), _vm.overlay ? _c("w-overlay", _vm._b({ ref: "overlay", class: _vm.overlayClasses, attrs: { "value": _vm.detachableVisible, "persistent": _vm.persistent, "z-index": (_vm.zIndex || 200) - 1 }, on: { "input": function($event) {
3425
+ }, proxy: true } : null], null, true) }, _vm.$listeners), [_vm._t("default")], 2) : _vm._e()], 1), _vm.overlay ? _c("w-overlay", _vm._b({ ref: "overlay", class: _vm.overlayClasses, attrs: { "value": _vm.detachableVisible, "persistent": _vm.persistent, "z-index": (_vm.zIndex || 200) - 1 }, on: { "input": function($event) {
3391
3426
  _vm.detachableVisible = false;
3392
3427
  } } }, "w-overlay", _vm.overlayProps, false)) : _vm._e()], 2);
3393
3428
  };
@@ -3452,7 +3487,9 @@ const __vue2_script$s = {
3452
3487
  return objectifyClasses(this.contentClass);
3453
3488
  },
3454
3489
  overlayClasses() {
3455
- return objectifyClasses(this.overlayClass);
3490
+ return __spreadProps(__spreadValues({}, objectifyClasses(this.overlayClass)), {
3491
+ "w-overlay--no-pointer-event": this.showOnHover
3492
+ });
3456
3493
  },
3457
3494
  classes() {
3458
3495
  return __spreadProps(__spreadValues({
@@ -3507,7 +3544,7 @@ const __vue2_script$s = {
3507
3544
  methods: {
3508
3545
  toggle(e) {
3509
3546
  let shouldShowMenu = this.detachableVisible;
3510
- if ("ontouchstart" in window && this.showOnHover && e.type === "click") {
3547
+ if (typeof window !== "undefined" && "ontouchstart" in window && this.showOnHover && e.type === "click") {
3511
3548
  shouldShowMenu = !shouldShowMenu;
3512
3549
  } else if (e.type === "click" && !this.showOnHover)
3513
3550
  shouldShowMenu = !shouldShowMenu;
@@ -3524,27 +3561,6 @@ const __vue2_script$s = {
3524
3561
  else
3525
3562
  this.close();
3526
3563
  },
3527
- async open(e) {
3528
- if (this.delay)
3529
- await new Promise((resolve) => setTimeout(resolve, this.delay));
3530
- this.detachableVisible = true;
3531
- if (this.activator)
3532
- this.activatorEl = e.target;
3533
- await this.insertInDOM();
3534
- if (this.minWidth === "activator")
3535
- this.activatorWidth = this.activatorEl.offsetWidth;
3536
- if (!this.noPosition)
3537
- this.computeDetachableCoords(e);
3538
- this.timeoutId = setTimeout(() => {
3539
- this.$emit("update:modelValue", true);
3540
- this.$emit("input", true);
3541
- this.$emit("open");
3542
- }, 0);
3543
- if (!this.persistent)
3544
- document.addEventListener("mousedown", this.onOutsideMousedown);
3545
- if (!this.noPosition)
3546
- window.addEventListener("resize", this.onResize);
3547
- },
3548
3564
  async close(force = false) {
3549
3565
  if (!this.detachableVisible)
3550
3566
  return;
@@ -3727,7 +3743,7 @@ var render$q = function() {
3727
3743
  var _vm = this;
3728
3744
  var _h = _vm.$createElement;
3729
3745
  var _c = _vm._self._c || _h;
3730
- return _c("transition", { attrs: { "name": "fade", "mode": "out-in", "appear": "" } }, [_vm.value ? _c("div", { directives: [{ name: "focus", rawName: "v-focus" }], staticClass: "w-overlay", class: _vm.classes, style: _vm.value && _vm.styles || null, attrs: { "tabindex": "0" }, on: { "keydown": function($event) {
3746
+ return _c("transition", { attrs: { "name": "fade", "appear": "" }, on: { "after-leave": _vm.onClosed } }, [_vm.showOverlay ? _c("div", { directives: [{ name: "show", rawName: "v-show", value: _vm.value, expression: "value" }, { name: "focus", rawName: "v-focus" }], staticClass: "w-overlay", class: _vm.classes, style: _vm.value && _vm.styles || null, attrs: { "tabindex": "0" }, on: { "keydown": function($event) {
3731
3747
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "escape", void 0, $event.key, void 0)) {
3732
3748
  return null;
3733
3749
  }
@@ -3747,9 +3763,10 @@ const __vue2_script$q = {
3747
3763
  persistent: { type: Boolean },
3748
3764
  persistentNoAnimation: { type: Boolean }
3749
3765
  },
3750
- emits: ["input", "update:modelValue", "click", "close"],
3766
+ emits: ["input", "update:modelValue", "click", "close", "closed"],
3751
3767
  data: () => ({
3752
- persistentAnimate: false
3768
+ persistentAnimate: false,
3769
+ showOverlay: false
3753
3770
  }),
3754
3771
  computed: {
3755
3772
  backgroundColor() {
@@ -3777,9 +3794,22 @@ const __vue2_script$q = {
3777
3794
  } else if (!this.persistent) {
3778
3795
  this.$emit("update:modelValue", false);
3779
3796
  this.$emit("input", false);
3780
- this.$emit("close", false);
3797
+ this.$emit("close");
3781
3798
  }
3782
3799
  this.$emit("click", e);
3800
+ },
3801
+ onClosed() {
3802
+ this.showOverlay = false;
3803
+ this.$emit("closed");
3804
+ }
3805
+ },
3806
+ created() {
3807
+ this.showOverlay = this.value;
3808
+ },
3809
+ watch: {
3810
+ value(bool) {
3811
+ if (bool)
3812
+ this.showOverlay = true;
3783
3813
  }
3784
3814
  }
3785
3815
  };
@@ -4222,10 +4252,14 @@ var render$k = function() {
4222
4252
  var _c = _vm._self._c || _h;
4223
4253
  return _c(_vm.formRegister ? "w-form-element" : "div", _vm._b({ ref: "formEl", tag: "component", class: _vm.classes, attrs: { "valid": _vm.valid, "wrap": _vm.hasLabel && _vm.labelPosition !== "inside" }, on: { "update:valid": function($event) {
4224
4254
  _vm.valid = $event;
4225
- }, "reset": _vm.onReset } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.selectionString, disabled: _vm.isDisabled, readonly: _vm.isReadonly }, false), [_vm.labelPosition === "left" ? [_vm.$slots.default ? _c("label", { staticClass: "w-select__label w-select__label--left w-form-el-shakable", attrs: { "for": "w-select--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-select__label w-select__label--left w-form-el-shakable", attrs: { "for": "w-select--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("w-menu", _vm._b({ attrs: { "menu-class": "w-select__menu " + (_vm.menuClass || ""), "transition": "slide-fade-down", "append-to": (_vm.menuProps || {}).appendTo !== void 0 ? (_vm.menuProps || {}).appendTo : ".w-app", "align-left": "", "custom": "", "min-width": "activator" }, scopedSlots: _vm._u([{ key: "activator", fn: function(ref) {
4255
+ }, "reset": _vm.onReset } }, "component", _vm.formRegister && { validators: _vm.validators, inputValue: _vm.selectionString, disabled: _vm.isDisabled, readonly: _vm.isReadonly }, false), [_vm.labelPosition === "left" ? [_vm.$slots.default ? _c("label", { staticClass: "w-select__label w-select__label--left w-form-el-shakable", attrs: { "for": "w-select--" + _vm._uid } }, [_vm._t("default")], 2) : _vm.label ? _c("label", { staticClass: "w-select__label w-select__label--left w-form-el-shakable", attrs: { "for": "w-select--" + _vm._uid }, domProps: { "innerHTML": _vm._s(_vm.label) } }) : _vm._e()] : _vm._e(), _c("w-menu", _vm._b({ attrs: { "menu-class": "w-select__menu " + (_vm.menuClass || ""), "transition": "slide-fade-down", "append-to": (_vm.menuProps || {}).appendTo !== void 0 ? (_vm.menuProps || {}).appendTo : ".w-app", "align-left": "", "custom": "", "min-width": "activator" }, on: { "mousedown": function($event) {
4256
+ _vm.isFocused = true, _vm.selectingItem = true;
4257
+ }, "mouseup": function($event) {
4258
+ _vm.isFocused = true, _vm.selectingItem = false;
4259
+ } }, scopedSlots: _vm._u([{ key: "activator", fn: function(ref) {
4226
4260
  var _obj, _obj$1;
4227
4261
  ref.on;
4228
- return [_c("div", { ref: "selection-wrap", staticClass: "w-select__selection-wrap", class: _vm.inputWrapClasses, attrs: { "role": "button", "aria-haspopup": "listbox", "aria-expanded": _vm.showMenu ? "true" : "false", "aria-owns": "w-select-menu--" + _vm._uid, "aria-activedescendant": "w-select-menu--" + _vm._uid + "_item-1" }, on: { "click": function($event) {
4262
+ return [_c("div", { staticClass: "w-select__selection-wrap", class: _vm.inputWrapClasses, attrs: { "role": "button", "aria-haspopup": "listbox", "aria-expanded": _vm.showMenu ? "true" : "false", "aria-owns": "w-select-menu--" + _vm._uid, "aria-activedescendant": "w-select-menu--" + _vm._uid + "_item-1" }, on: { "click": function($event) {
4229
4263
  !_vm.isDisabled && !_vm.isReadonly && (_vm.showMenu ? _vm.closeMenu : _vm.openMenu)();
4230
4264
  } } }, [_vm.innerIconLeft ? _c("w-icon", { staticClass: "w-select__icon w-select__icon--inner-left", attrs: { "tag": "label" }, on: { "click": function($event) {
4231
4265
  return _vm.$emit("click:inner-icon-left", $event);
@@ -4299,7 +4333,9 @@ const __vue2_script$k = {
4299
4333
  inputValue: [],
4300
4334
  showMenu: false,
4301
4335
  menuMinWidth: 0,
4302
- isFocused: false
4336
+ isFocused: false,
4337
+ selectingItem: false,
4338
+ selectionWrapRef: void 0
4303
4339
  }),
4304
4340
  computed: {
4305
4341
  selectItems() {
@@ -4328,7 +4364,7 @@ const __vue2_script$k = {
4328
4364
  "w-select--disabled": this.isDisabled,
4329
4365
  "w-select--readonly": this.isReadonly,
4330
4366
  [`w-select--${this.hasValue ? "filled" : "empty"}`]: true,
4331
- "w-select--focused": this.isFocused && !this.isReadonly,
4367
+ "w-select--focused": (this.isFocused || this.selectingItem) && !this.isReadonly,
4332
4368
  "w-select--dark": this.dark,
4333
4369
  "w-select--floating-label": this.hasLabel && this.labelPosition === "inside" && !this.staticLabel,
4334
4370
  "w-select--no-padding": !this.outline && !this.bgColor && !this.shadow && !this.round,
@@ -5609,7 +5645,7 @@ var render$a = function() {
5609
5645
  var _c = _vm._self._c || _h;
5610
5646
  return _c("ul", { staticClass: "w-timeline" }, _vm._l(_vm.items, function(item, i) {
5611
5647
  var _obj;
5612
- return _c("li", { key: i, staticClass: "w-timeline-item" }, [_c(item[_vm.itemIconKey] || _vm.icon ? "w-icon" : "div", { tag: "div", 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() {
5648
+ 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() {
5613
5649
  var _obj2;
5614
5650
  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]) } })];
5615
5651
  }, { "item": item, "index": i + 1 }) : _vm._t("item." + (i + 1), null, { "item": item, "index": i + 1 })], 2);
@@ -5656,6 +5692,10 @@ const __vue2_script$9 = {
5656
5692
  absolute: { type: Boolean },
5657
5693
  fixed: { type: Boolean },
5658
5694
  bottom: { type: Boolean },
5695
+ vertical: { type: Boolean },
5696
+ left: { type: Boolean },
5697
+ right: { type: Boolean },
5698
+ width: { type: [Number, String], default: null },
5659
5699
  height: { type: [Number, String], default: null },
5660
5700
  noBorder: { type: Boolean },
5661
5701
  shadow: { type: Boolean }
@@ -5666,19 +5706,27 @@ const __vue2_script$9 = {
5666
5706
  const h = this.height;
5667
5707
  return h && parseInt(h) == h ? h + "px" : h;
5668
5708
  },
5709
+ toolbarWidth() {
5710
+ const w = this.width;
5711
+ return w && parseInt(w) == w ? w + "px" : w;
5712
+ },
5669
5713
  classes() {
5670
5714
  return {
5671
5715
  [this.color]: !!this.color,
5672
5716
  [`${this.bgColor}--bg`]: !!this.bgColor,
5673
5717
  "w-toolbar--absolute": !!this.absolute,
5674
5718
  "w-toolbar--fixed": !!this.fixed,
5675
- [`w-toolbar--${this.bottom ? "bottom" : "top"}`]: true,
5719
+ [`w-toolbar--${this.bottom ? "bottom" : "top"}`]: !this.vertical,
5720
+ [`w-toolbar--vertical w-toolbar--${this.right ? "right" : "left"}`]: this.vertical,
5676
5721
  "w-toolbar--no-border": this.noBorder,
5677
5722
  "w-toolbar--shadow": !!this.shadow
5678
5723
  };
5679
5724
  },
5680
5725
  styles() {
5681
- return this.height ? `height: ${this.toolbarHeight}` : false;
5726
+ return {
5727
+ height: this.height && !this.vertical ? this.toolbarHeight : null,
5728
+ width: this.width && this.vertical ? this.toolbarWidth : null
5729
+ };
5682
5730
  }
5683
5731
  }
5684
5732
  };
@@ -5696,7 +5744,7 @@ var render$8 = function() {
5696
5744
  var _vm = this;
5697
5745
  var _h = _vm.$createElement;
5698
5746
  var _c = _vm._self._c || _h;
5699
- return _c("div", { staticClass: "w-tooltip-wrap" }, [_vm._t("activator", null, { "on": _vm.activatorEventHandlers }), _c("transition", { attrs: { "name": _vm.transitionName, "appear": "" } }, [_vm.detachableVisible ? _c("div", { ref: "detachable", staticClass: "w-tooltip", class: _vm.classes, style: _vm.styles }, [_vm._t("default")], 2) : _vm._e()])], 2);
5747
+ return _c("div", { staticClass: "w-tooltip-wrap" }, [_vm._t("activator", null, { "on": _vm.activatorEventHandlers }), _c("transition", { attrs: { "name": _vm.transitionName, "appear": "" } }, [_vm.detachableVisible ? _c("div", { key: _vm._uid, ref: "detachable", staticClass: "w-tooltip", class: _vm.classes, style: _vm.styles }, [_vm._t("default")], 2) : _vm._e()])], 2);
5700
5748
  };
5701
5749
  var staticRenderFns$8 = [];
5702
5750
  var wTooltip_vue_vue_type_style_index_0_lang = "";
@@ -5800,27 +5848,6 @@ const __vue2_script$8 = {
5800
5848
  else
5801
5849
  this.close();
5802
5850
  },
5803
- async open(e) {
5804
- if (this.delay)
5805
- await new Promise((resolve) => setTimeout(resolve, this.delay));
5806
- this.detachableVisible = true;
5807
- if (this.activator)
5808
- this.activatorEl = e.target;
5809
- await this.insertInDOM();
5810
- if (this.minWidth === "activator")
5811
- this.activatorWidth = this.activatorEl.offsetWidth;
5812
- if (!this.noPosition)
5813
- this.computeDetachableCoords(e);
5814
- this.timeoutId = setTimeout(() => {
5815
- this.$emit("update:modelValue", true);
5816
- this.$emit("input", true);
5817
- this.$emit("open");
5818
- }, 0);
5819
- if (!this.persistent)
5820
- document.addEventListener("mousedown", this.onOutsideMousedown);
5821
- if (!this.noPosition)
5822
- window.addEventListener("resize", this.onResize);
5823
- },
5824
5851
  async close(force = false) {
5825
5852
  if (!this.detachableVisible)
5826
5853
  return;