@zeedhi/vuetify 1.45.0 → 1.47.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.
@@ -1,5 +1,5 @@
1
1
  import VueI18Next from '@panter/vue-i18next';
2
- import { Metadata, Mask, Config, I18n, Router, KeyMap, dayjs } from '@zeedhi/core';
2
+ import { Metadata, Mask, Config, I18n, DateHelper, Router, KeyMap, dayjs } from '@zeedhi/core';
3
3
  import VueApexCharts from 'vue-apexcharts';
4
4
  import SlVueTree from 'sl-vue-tree';
5
5
  import 'sl-vue-tree/dist/sl-vue-tree-minimal.css';
@@ -331,9 +331,7 @@ class Application extends Service {
331
331
  }
332
332
 
333
333
  register(uid, location, size) {
334
- this.application[location] = {
335
- [uid]: size
336
- };
334
+ this.application[location][uid] = size;
337
335
  this.update(location);
338
336
  }
339
337
 
@@ -658,13 +656,20 @@ function createSimpleFunctional(c, el = 'div', name) {
658
656
  return Vue.extend({
659
657
  name: name || c.replace(/__/g, '-'),
660
658
  functional: true,
659
+ props: {
660
+ tag: {
661
+ type: String,
662
+ default: el
663
+ }
664
+ },
661
665
 
662
666
  render(h, {
663
667
  data,
668
+ props,
664
669
  children
665
670
  }) {
666
671
  data.staticClass = `${c} ${data.staticClass || ''}`.trim();
667
- return h(el, data, children);
672
+ return h(props.tag, data, children);
668
673
  }
669
674
 
670
675
  });
@@ -963,12 +968,12 @@ function searchItems(items, search) {
963
968
  */
964
969
 
965
970
  function getSlotType(vm, name, split) {
966
- if (vm.$slots[name] && vm.$scopedSlots[name] && vm.$scopedSlots[name].name) {
971
+ if (vm.$slots.hasOwnProperty(name) && vm.$scopedSlots.hasOwnProperty(name) && vm.$scopedSlots[name].name) {
967
972
  return split ? 'v-slot' : 'scoped';
968
973
  }
969
974
 
970
- if (vm.$slots[name]) return 'normal';
971
- if (vm.$scopedSlots[name]) return 'scoped';
975
+ if (vm.$slots.hasOwnProperty(name)) return 'normal';
976
+ if (vm.$scopedSlots.hasOwnProperty(name)) return 'scoped';
972
977
  }
973
978
  function debounce(fn, delay) {
974
979
  let timeoutId = 0;
@@ -994,9 +999,9 @@ function getPrefixedScopedSlots(prefix, scopedSlots) {
994
999
  }, {});
995
1000
  }
996
1001
  function getSlot(vm, name = 'default', data, optional = false) {
997
- if (vm.$scopedSlots[name]) {
1002
+ if (vm.$scopedSlots.hasOwnProperty(name)) {
998
1003
  return vm.$scopedSlots[name](data instanceof Function ? data() : data);
999
- } else if (vm.$slots[name] && (!data || optional)) {
1004
+ } else if (vm.$slots.hasOwnProperty(name) && (!data || optional)) {
1000
1005
  return vm.$slots[name];
1001
1006
  }
1002
1007
 
@@ -2216,7 +2221,7 @@ class Vuetify {
2216
2221
  }
2217
2222
  Vuetify.install = install;
2218
2223
  Vuetify.installed = false;
2219
- Vuetify.version = "2.5.14";
2224
+ Vuetify.version = "2.6.4";
2220
2225
  Vuetify.config = {
2221
2226
  silent: false
2222
2227
  };
@@ -3478,10 +3483,6 @@ function transform(el, value) {
3478
3483
  el.style.webkitTransform = value;
3479
3484
  }
3480
3485
 
3481
- function opacity(el, value) {
3482
- el.style.opacity = value.toString();
3483
- }
3484
-
3485
3486
  function isTouchEvent(e) {
3486
3487
  return e.constructor.name === 'TouchEvent';
3487
3488
  }
@@ -3565,13 +3566,11 @@ const ripples = {
3565
3566
  animation.classList.add('v-ripple__animation--enter');
3566
3567
  animation.classList.add('v-ripple__animation--visible');
3567
3568
  transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
3568
- opacity(animation, 0);
3569
3569
  animation.dataset.activated = String(performance.now());
3570
3570
  setTimeout(() => {
3571
3571
  animation.classList.remove('v-ripple__animation--enter');
3572
3572
  animation.classList.add('v-ripple__animation--in');
3573
3573
  transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
3574
- opacity(animation, 0.25);
3575
3574
  }, 0);
3576
3575
  },
3577
3576
 
@@ -3586,7 +3585,6 @@ const ripples = {
3586
3585
  setTimeout(() => {
3587
3586
  animation.classList.remove('v-ripple__animation--in');
3588
3587
  animation.classList.add('v-ripple__animation--out');
3589
- opacity(animation, 0);
3590
3588
  setTimeout(() => {
3591
3589
  const ripples = el.getElementsByClassName('v-ripple__animation');
3592
3590
 
@@ -4062,10 +4060,10 @@ function factory$2(prop = 'value', event = 'input') {
4062
4060
  const Toggleable = factory$2();
4063
4061
 
4064
4062
  // Styles
4065
- const baseMixins$t = mixins(VToolbar, Scrollable, SSRBootable, Toggleable, applicationable('top', ['clippedLeft', 'clippedRight', 'computedHeight', 'invertedScroll', 'isExtended', 'isProminent', 'value']));
4063
+ const baseMixins$u = mixins(VToolbar, Scrollable, SSRBootable, Toggleable, applicationable('top', ['clippedLeft', 'clippedRight', 'computedHeight', 'invertedScroll', 'isExtended', 'isProminent', 'value']));
4066
4064
  /* @vue/component */
4067
4065
 
4068
- var VAppBar = baseMixins$t.extend({
4066
+ var VAppBar = baseMixins$u.extend({
4069
4067
  name: 'v-app-bar',
4070
4068
  directives: {
4071
4069
  Scroll
@@ -4847,10 +4845,6 @@ var Routable = Vue.extend({
4847
4845
  },
4848
4846
 
4849
4847
  methods: {
4850
- click(e) {
4851
- this.$emit('click', e);
4852
- },
4853
-
4854
4848
  generateRouteLink() {
4855
4849
  let exact = this.exact;
4856
4850
  let tag;
@@ -4866,7 +4860,9 @@ var Routable = Vue.extend({
4866
4860
  value: this.computedRipple
4867
4861
  }],
4868
4862
  [this.to ? 'nativeOn' : 'on']: { ...this.$listeners,
4869
- click: this.click
4863
+ ...('click' in this ? {
4864
+ click: this.click
4865
+ } : undefined)
4870
4866
  },
4871
4867
  ref: 'link'
4872
4868
  };
@@ -4910,8 +4906,8 @@ var Routable = Vue.extend({
4910
4906
 
4911
4907
  onRouteChange() {
4912
4908
  if (!this.to || !this.$refs.link || !this.$route) return;
4913
- const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim();
4914
- const exactActiveClass = `${this.exactActiveClass} ${this.proxyClass || ''}`.trim() || activeClass;
4909
+ const activeClass = `${this.activeClass || ''} ${this.proxyClass || ''}`.trim();
4910
+ const exactActiveClass = `${this.exactActiveClass || ''} ${this.proxyClass || ''}`.trim() || activeClass;
4915
4911
  const path = '_vnode.data.class.' + (this.exact ? exactActiveClass : activeClass);
4916
4912
  this.$nextTick(() => {
4917
4913
  /* istanbul ignore else */
@@ -4929,10 +4925,10 @@ var Routable = Vue.extend({
4929
4925
  });
4930
4926
 
4931
4927
  // Styles
4932
- const baseMixins$s = mixins(VSheet, Routable, Positionable, Sizeable, factory$1('btnToggle'), factory$2('inputValue')
4928
+ const baseMixins$t = mixins(VSheet, Routable, Positionable, Sizeable, factory$1('btnToggle'), factory$2('inputValue')
4933
4929
  /* @vue/component */
4934
4930
  );
4935
- var VBtn = baseMixins$s.extend().extend({
4931
+ var VBtn = baseMixins$t.extend().extend({
4936
4932
  name: 'v-btn',
4937
4933
  props: {
4938
4934
  activeClass: {
@@ -5831,10 +5827,10 @@ var Delayable = Vue.extend().extend({
5831
5827
  });
5832
5828
 
5833
5829
  // Mixins
5834
- const baseMixins$r = mixins(Delayable, Toggleable);
5830
+ const baseMixins$s = mixins(Delayable, Toggleable);
5835
5831
  /* @vue/component */
5836
5832
 
5837
- var Activatable = baseMixins$r.extend({
5833
+ var Activatable = baseMixins$s.extend({
5838
5834
  name: 'activatable',
5839
5835
  props: {
5840
5836
  activator: {
@@ -5845,6 +5841,10 @@ var Activatable = baseMixins$r.extend({
5845
5841
  },
5846
5842
  disabled: Boolean,
5847
5843
  internalActivator: Boolean,
5844
+ openOnClick: {
5845
+ type: Boolean,
5846
+ default: true
5847
+ },
5848
5848
  openOnHover: Boolean,
5849
5849
  openOnFocus: Boolean
5850
5850
  },
@@ -5897,7 +5897,7 @@ var Activatable = baseMixins$r.extend({
5897
5897
 
5898
5898
  genActivatorAttributes() {
5899
5899
  return {
5900
- role: 'button',
5900
+ role: this.openOnClick && !this.openOnHover ? 'button' : undefined,
5901
5901
  'aria-haspopup': true,
5902
5902
  'aria-expanded': String(this.isActive)
5903
5903
  };
@@ -5917,7 +5917,7 @@ var Activatable = baseMixins$r.extend({
5917
5917
  this.getActivator(e);
5918
5918
  this.runDelay('close');
5919
5919
  };
5920
- } else {
5920
+ } else if (this.openOnClick) {
5921
5921
  listeners.click = e => {
5922
5922
  const activator = this.getActivator(e);
5923
5923
  if (activator) activator.focus();
@@ -6321,10 +6321,10 @@ var Detachable = mixins(Bootable).extend({
6321
6321
  });
6322
6322
 
6323
6323
  // Mixins
6324
- const baseMixins$q = mixins(Stackable, factory$3(['top', 'right', 'bottom', 'left', 'absolute']), Activatable, Detachable);
6324
+ const baseMixins$r = mixins(Stackable, factory$3(['top', 'right', 'bottom', 'left', 'absolute']), Activatable, Detachable);
6325
6325
  /* @vue/component */
6326
6326
 
6327
- var Menuable = baseMixins$q.extend().extend({
6327
+ var Menuable = baseMixins$r.extend().extend({
6328
6328
  name: 'menuable',
6329
6329
  props: {
6330
6330
  allowOverflow: Boolean,
@@ -6356,7 +6356,6 @@ var Menuable = baseMixins$q.extend().extend({
6356
6356
  default: 0
6357
6357
  },
6358
6358
  offsetOverflow: Boolean,
6359
- openOnClick: Boolean,
6360
6359
  positionX: {
6361
6360
  type: Number,
6362
6361
  default: null
@@ -6416,7 +6415,8 @@ var Menuable = baseMixins$q.extend().extend({
6416
6415
  const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0;
6417
6416
  const minWidth = Math.max(a.width, c.width);
6418
6417
  let left = 0;
6419
- left += this.left ? activatorLeft - (minWidth - a.width) : activatorLeft;
6418
+ left += activatorLeft;
6419
+ if (this.left || this.$vuetify.rtl && !this.right) left -= minWidth - a.width;
6420
6420
 
6421
6421
  if (this.offsetX) {
6422
6422
  const maxWidth = isNaN(Number(this.maxWidth)) ? a.width : Math.min(a.width, Number(this.maxWidth));
@@ -6574,14 +6574,16 @@ var Menuable = baseMixins$q.extend().extend({
6574
6574
  const listeners = Activatable.options.methods.genActivatorListeners.call(this);
6575
6575
  const onClick = listeners.click;
6576
6576
 
6577
- listeners.click = e => {
6578
- if (this.openOnClick) {
6579
- onClick && onClick(e);
6580
- }
6577
+ if (onClick) {
6578
+ listeners.click = e => {
6579
+ if (this.openOnClick) {
6580
+ onClick && onClick(e);
6581
+ }
6581
6582
 
6582
- this.absoluteX = e.clientX;
6583
- this.absoluteY = e.clientY;
6584
- };
6583
+ this.absoluteX = e.clientX;
6584
+ this.absoluteY = e.clientY;
6585
+ };
6586
+ }
6585
6587
 
6586
6588
  return listeners;
6587
6589
  },
@@ -6730,10 +6732,10 @@ var Returnable = Vue.extend({
6730
6732
  });
6731
6733
 
6732
6734
  // Styles
6733
- const baseMixins$p = mixins(Dependent, Delayable, Menuable, Returnable, Roundable, Toggleable, Themeable);
6735
+ const baseMixins$q = mixins(Dependent, Delayable, Returnable, Roundable, Themeable, Menuable);
6734
6736
  /* @vue/component */
6735
6737
 
6736
- var VMenu = baseMixins$p.extend({
6738
+ var VMenu = baseMixins$q.extend({
6737
6739
  name: 'v-menu',
6738
6740
  directives: {
6739
6741
  ClickOutside,
@@ -6766,10 +6768,6 @@ var VMenu = baseMixins$p.extend({
6766
6768
  },
6767
6769
  offsetX: Boolean,
6768
6770
  offsetY: Boolean,
6769
- openOnClick: {
6770
- type: Boolean,
6771
- default: true
6772
- },
6773
6771
  openOnHover: Boolean,
6774
6772
  origin: {
6775
6773
  type: String,
@@ -7083,7 +7081,9 @@ var VMenu = baseMixins$p.extend({
7083
7081
  mouseLeaveHandler(e) {
7084
7082
  // Prevent accidental re-activation
7085
7083
  this.runDelay('close', () => {
7086
- if (this.$refs.content.contains(e.relatedTarget)) return;
7084
+ var _this$$refs$content;
7085
+
7086
+ if ((_this$$refs$content = this.$refs.content) != null && _this$$refs$content.contains(e.relatedTarget)) return;
7087
7087
  requestAnimationFrame(() => {
7088
7088
  this.isActive = false;
7089
7089
  this.callDeactivate();
@@ -7412,10 +7412,10 @@ var VList = VSheet.extend().extend({
7412
7412
  });
7413
7413
 
7414
7414
  // Styles
7415
- const baseMixins$o = mixins(Colorable, Routable, Themeable, factory$1('listItemGroup'), factory$2('inputValue'));
7415
+ const baseMixins$p = mixins(Colorable, Routable, Themeable, factory$1('listItemGroup'), factory$2('inputValue'));
7416
7416
  /* @vue/component */
7417
7417
 
7418
- var VListItem = baseMixins$o.extend().extend({
7418
+ var VListItem = baseMixins$p.extend().extend({
7419
7419
  name: 'v-list-item',
7420
7420
  directives: {
7421
7421
  Ripple
@@ -7576,8 +7576,8 @@ var VListItemIcon = Vue.extend({
7576
7576
  });
7577
7577
 
7578
7578
  // Styles
7579
- const baseMixins$n = mixins(BindsAttrs, Bootable, Colorable, inject('list'), Toggleable);
7580
- var VListGroup = baseMixins$n.extend().extend({
7579
+ const baseMixins$o = mixins(BindsAttrs, Bootable, Colorable, inject('list'), Toggleable);
7580
+ var VListGroup = baseMixins$o.extend().extend({
7581
7581
  name: 'v-list-group',
7582
7582
  directives: {
7583
7583
  ripple: Ripple
@@ -7734,6 +7734,16 @@ var VListGroup = baseMixins$n.extend().extend({
7734
7734
 
7735
7735
  });
7736
7736
 
7737
+ var Comparable = Vue.extend({
7738
+ name: 'comparable',
7739
+ props: {
7740
+ valueComparator: {
7741
+ type: Function,
7742
+ default: deepEqual
7743
+ }
7744
+ }
7745
+ });
7746
+
7737
7747
  function factory(prop = 'value', event = 'change') {
7738
7748
  return Vue.extend({
7739
7749
  name: 'proxyable',
@@ -7780,7 +7790,7 @@ function factory(prop = 'value', event = 'change') {
7780
7790
  const Proxyable = factory();
7781
7791
 
7782
7792
  // Styles
7783
- const BaseItemGroup = mixins(Proxyable, Themeable).extend({
7793
+ const BaseItemGroup = mixins(Comparable, Proxyable, Themeable).extend({
7784
7794
  name: 'base-item-group',
7785
7795
  props: {
7786
7796
  activeClass: {
@@ -7839,13 +7849,13 @@ const BaseItemGroup = mixins(Proxyable, Themeable).extend({
7839
7849
 
7840
7850
  toggleMethod() {
7841
7851
  if (!this.multiple) {
7842
- return v => this.internalValue === v;
7852
+ return v => this.valueComparator(this.internalValue, v);
7843
7853
  }
7844
7854
 
7845
7855
  const internalValue = this.internalValue;
7846
7856
 
7847
7857
  if (Array.isArray(internalValue)) {
7848
- return v => internalValue.includes(v);
7858
+ return v => internalValue.some(intern => this.valueComparator(intern, v));
7849
7859
  }
7850
7860
 
7851
7861
  return () => false;
@@ -7871,7 +7881,7 @@ const BaseItemGroup = mixins(Proxyable, Themeable).extend({
7871
7881
  },
7872
7882
 
7873
7883
  getValue(item, i) {
7874
- return item.value == null || item.value === '' ? i : item.value;
7884
+ return item.value === undefined ? i : item.value;
7875
7885
  },
7876
7886
 
7877
7887
  onClick(item) {
@@ -8458,10 +8468,10 @@ var VMessages = mixins(Colorable, Themeable).extend({
8458
8468
  });
8459
8469
 
8460
8470
  // Mixins
8461
- const baseMixins$m = mixins(Colorable, inject('form'), Themeable);
8471
+ const baseMixins$n = mixins(Colorable, inject('form'), Themeable);
8462
8472
  /* @vue/component */
8463
8473
 
8464
- var Validatable = baseMixins$m.extend({
8474
+ var Validatable = baseMixins$n.extend({
8465
8475
  name: 'validatable',
8466
8476
  props: {
8467
8477
  disabled: Boolean,
@@ -8710,10 +8720,10 @@ var Validatable = baseMixins$m.extend({
8710
8720
  });
8711
8721
 
8712
8722
  // Styles
8713
- const baseMixins$l = mixins(BindsAttrs, Validatable);
8723
+ const baseMixins$m = mixins(BindsAttrs, Validatable);
8714
8724
  /* @vue/component */
8715
8725
 
8716
- var VInput = baseMixins$l.extend().extend({
8726
+ var VInput = baseMixins$m.extend().extend({
8717
8727
  name: 'v-input',
8718
8728
  inheritAttrs: false,
8719
8729
  props: {
@@ -8725,6 +8735,7 @@ var VInput = baseMixins$l.extend().extend({
8725
8735
  dense: Boolean,
8726
8736
  height: [Number, String],
8727
8737
  hideDetails: [Boolean, String],
8738
+ hideSpinButtons: Boolean,
8728
8739
  hint: String,
8729
8740
  id: String,
8730
8741
  label: String,
@@ -8754,6 +8765,7 @@ var VInput = baseMixins$l.extend().extend({
8754
8765
  'v-input--is-loading': this.loading !== false && this.loading != null,
8755
8766
  'v-input--is-readonly': this.isReadonly,
8756
8767
  'v-input--dense': this.dense,
8768
+ 'v-input--hide-spin-buttons': this.hideSpinButtons,
8757
8769
  ...this.themeClasses
8758
8770
  };
8759
8771
  },
@@ -9061,10 +9073,10 @@ function intersectable(options) {
9061
9073
  });
9062
9074
  }
9063
9075
 
9064
- const baseMixins$k = mixins(Colorable, factory$3(['absolute', 'fixed', 'top', 'bottom']), Proxyable, Themeable);
9076
+ const baseMixins$l = mixins(Colorable, factory$3(['absolute', 'fixed', 'top', 'bottom']), Proxyable, Themeable);
9065
9077
  /* @vue/component */
9066
9078
 
9067
- var VProgressLinear = baseMixins$k.extend({
9079
+ var VProgressLinear = baseMixins$l.extend({
9068
9080
  name: 'v-progress-linear',
9069
9081
  directives: {
9070
9082
  intersect: Intersect
@@ -9339,13 +9351,13 @@ var Loadable = Vue.extend().extend({
9339
9351
  });
9340
9352
 
9341
9353
  // Styles
9342
- const baseMixins$j = mixins(VInput, intersectable({
9354
+ const baseMixins$k = mixins(VInput, intersectable({
9343
9355
  onVisible: ['onResize', 'tryAutofocus']
9344
9356
  }), Loadable);
9345
9357
  const dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
9346
9358
  /* @vue/component */
9347
9359
 
9348
- var VTextField = baseMixins$j.extend().extend({
9360
+ var VTextField = baseMixins$k.extend().extend({
9349
9361
  name: 'v-text-field',
9350
9362
  directives: {
9351
9363
  resize: Resize,
@@ -9850,16 +9862,6 @@ var VTextField = baseMixins$j.extend().extend({
9850
9862
  }
9851
9863
  });
9852
9864
 
9853
- var Comparable = Vue.extend({
9854
- name: 'comparable',
9855
- props: {
9856
- valueComparator: {
9857
- type: Function,
9858
- default: deepEqual
9859
- }
9860
- }
9861
- });
9862
-
9863
9865
  /* @vue/component */
9864
9866
 
9865
9867
  var Filterable = Vue.extend({
@@ -9881,10 +9883,10 @@ const defaultMenuProps$1 = {
9881
9883
  maxHeight: 304
9882
9884
  }; // Types
9883
9885
 
9884
- const baseMixins$i = mixins(VTextField, Comparable, Dependent, Filterable);
9886
+ const baseMixins$j = mixins(VTextField, Comparable, Dependent, Filterable);
9885
9887
  /* @vue/component */
9886
9888
 
9887
- var VSelect = baseMixins$i.extend().extend({
9889
+ var VSelect = baseMixins$j.extend().extend({
9888
9890
  name: 'v-select',
9889
9891
  directives: {
9890
9892
  ClickOutside
@@ -10081,6 +10083,14 @@ var VSelect = baseMixins$i.extend().extend({
10081
10083
  internalValue(val) {
10082
10084
  this.initialValue = val;
10083
10085
  this.setSelectedItems();
10086
+
10087
+ if (this.multiple) {
10088
+ this.$nextTick(() => {
10089
+ var _this$$refs$menu;
10090
+
10091
+ (_this$$refs$menu = this.$refs.menu) == null ? void 0 : _this$$refs$menu.updateDimensions();
10092
+ });
10093
+ }
10084
10094
  },
10085
10095
 
10086
10096
  isMenuActive(val) {
@@ -10140,7 +10150,12 @@ var VSelect = baseMixins$i.extend().extend({
10140
10150
  const uniqueValues = new Map();
10141
10151
 
10142
10152
  for (let index = 0; index < arr.length; ++index) {
10143
- const item = arr[index]; // Do not deduplicate headers or dividers (#12517)
10153
+ const item = arr[index]; // Do not return null values if existant (#14421)
10154
+
10155
+ if (item == null) {
10156
+ continue;
10157
+ } // Do not deduplicate headers or dividers (#12517)
10158
+
10144
10159
 
10145
10160
  if (item.header || item.divider) {
10146
10161
  uniqueValues.set(item, item);
@@ -10600,13 +10615,7 @@ var VSelect = baseMixins$i.extend().extend({
10600
10615
  i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item);
10601
10616
  this.setValue(internalValue.map(i => {
10602
10617
  return this.returnObject ? i : this.getValue(i);
10603
- })); // When selecting multiple
10604
- // adjust menu after each
10605
- // selection
10606
-
10607
- this.$nextTick(() => {
10608
- this.$refs.menu && this.$refs.menu.updateDimensions();
10609
- }); // There is no item to re-highlight
10618
+ })); // There is no item to re-highlight
10610
10619
  // when selections are hidden
10611
10620
 
10612
10621
  if (this.hideSelected) {
@@ -10969,6 +10978,7 @@ var VAutocomplete = VSelect.extend({
10969
10978
  const value = target.value; // If typing and menu is not currently active
10970
10979
 
10971
10980
  if (target.value) this.activateMenu();
10981
+ if (!this.multiple && value === '') this.deleteCurrentItem();
10972
10982
  this.internalSearch = value;
10973
10983
  this.badInput = target.validity && target.validity.badInput;
10974
10984
  },
@@ -11388,7 +11398,7 @@ mixins(VSheet, Mobile, Toggleable).extend({
11388
11398
  },
11389
11399
 
11390
11400
  render(h) {
11391
- return h(VExpandTransition, [h('div', this.setBackgroundColor(this.color, {
11401
+ const data = {
11392
11402
  staticClass: 'v-banner',
11393
11403
  attrs: this.attrs$,
11394
11404
  class: this.classes,
@@ -11397,7 +11407,8 @@ mixins(VSheet, Mobile, Toggleable).extend({
11397
11407
  name: 'show',
11398
11408
  value: this.isActive
11399
11409
  }]
11400
- }), [this.genWrapper()])]);
11410
+ };
11411
+ return h(VExpandTransition, [h('div', this.outlined ? data : this.setBackgroundColor(this.color, data), [this.genWrapper()])]);
11401
11412
  }
11402
11413
 
11403
11414
  });
@@ -11484,6 +11495,9 @@ mixins(applicationable('bottom', ['height', 'inputValue']), Colorable, Measurabl
11484
11495
  }
11485
11496
 
11486
11497
  },
11498
+ watch: {
11499
+ canScroll: 'onScroll'
11500
+ },
11487
11501
 
11488
11502
  created() {
11489
11503
  /* istanbul ignore next */
@@ -11494,8 +11508,13 @@ mixins(applicationable('bottom', ['height', 'inputValue']), Colorable, Measurabl
11494
11508
 
11495
11509
  methods: {
11496
11510
  thresholdMet() {
11497
- this.isActive = !this.isScrollingUp;
11498
- this.$emit('update:input-value', this.isActive);
11511
+ if (this.hideOnScroll) {
11512
+ this.isActive = !this.isScrollingUp || this.currentScroll > this.computedScrollThreshold;
11513
+ this.$emit('update:input-value', this.isActive);
11514
+ }
11515
+
11516
+ if (this.currentThreshold < this.computedScrollThreshold) return;
11517
+ this.savedScroll = this.currentScroll;
11499
11518
  },
11500
11519
 
11501
11520
  updateApplication() {
@@ -11809,10 +11828,10 @@ var Overlayable = Vue.extend().extend({
11809
11828
  });
11810
11829
 
11811
11830
  // Styles
11812
- const baseMixins$h = mixins(Activatable, Dependent, Detachable, Overlayable, Returnable, Stackable, Toggleable);
11831
+ const baseMixins$i = mixins(Dependent, Detachable, Overlayable, Returnable, Stackable, Activatable);
11813
11832
  /* @vue/component */
11814
11833
 
11815
- var VDialog = baseMixins$h.extend({
11834
+ var VDialog = baseMixins$i.extend({
11816
11835
  name: 'v-dialog',
11817
11836
  directives: {
11818
11837
  ClickOutside
@@ -11822,10 +11841,7 @@ var VDialog = baseMixins$h.extend({
11822
11841
  disabled: Boolean,
11823
11842
  fullscreen: Boolean,
11824
11843
  light: Boolean,
11825
- maxWidth: {
11826
- type: [String, Number],
11827
- default: 'none'
11828
- },
11844
+ maxWidth: [String, Number],
11829
11845
  noClickAnimation: Boolean,
11830
11846
  origin: {
11831
11847
  type: String,
@@ -11841,10 +11857,7 @@ var VDialog = baseMixins$h.extend({
11841
11857
  type: [String, Boolean],
11842
11858
  default: 'dialog-transition'
11843
11859
  },
11844
- width: {
11845
- type: [String, Number],
11846
- default: 'auto'
11847
- }
11860
+ width: [String, Number]
11848
11861
  },
11849
11862
 
11850
11863
  data() {
@@ -11852,7 +11865,6 @@ var VDialog = baseMixins$h.extend({
11852
11865
  activatedBy: null,
11853
11866
  animate: false,
11854
11867
  animateTimeout: -1,
11855
- isActive: !!this.value,
11856
11868
  stackMinZIndex: 200,
11857
11869
  previousActiveElement: null
11858
11870
  };
@@ -12033,8 +12045,9 @@ var VDialog = baseMixins$h.extend({
12033
12045
  }, [this.$createElement('div', {
12034
12046
  class: this.contentClasses,
12035
12047
  attrs: {
12036
- role: 'document',
12048
+ role: 'dialog',
12037
12049
  tabindex: this.isActive ? 0 : undefined,
12050
+ 'aria-modal': this.hideOverlay ? undefined : 'true',
12038
12051
  ...this.getScopeIdAttrs()
12039
12052
  },
12040
12053
  on: {
@@ -12081,8 +12094,8 @@ var VDialog = baseMixins$h.extend({
12081
12094
 
12082
12095
  if (!this.fullscreen) {
12083
12096
  data.style = { ...data.style,
12084
- maxWidth: this.maxWidth === 'none' ? undefined : convertToUnit(this.maxWidth),
12085
- width: this.width === 'auto' ? undefined : convertToUnit(this.width)
12097
+ maxWidth: convertToUnit(this.maxWidth),
12098
+ width: convertToUnit(this.width)
12086
12099
  };
12087
12100
  }
12088
12101
 
@@ -12096,9 +12109,6 @@ var VDialog = baseMixins$h.extend({
12096
12109
  staticClass: 'v-dialog__container',
12097
12110
  class: {
12098
12111
  'v-dialog__container--attached': this.attach === '' || this.attach === true || this.attach === 'attach'
12099
- },
12100
- attrs: {
12101
- role: 'dialog'
12102
12112
  }
12103
12113
  }, [this.genActivator(), this.genContent()]);
12104
12114
  }
@@ -12111,10 +12121,7 @@ var VBottomSheet = VDialog.extend({
12111
12121
  name: 'v-bottom-sheet',
12112
12122
  props: {
12113
12123
  inset: Boolean,
12114
- maxWidth: {
12115
- type: [String, Number],
12116
- default: 'auto'
12117
- },
12124
+ maxWidth: [String, Number],
12118
12125
  transition: {
12119
12126
  type: String,
12120
12127
  default: 'bottom-sheet-transition'
@@ -12355,11 +12362,16 @@ var Mouse = Vue.extend({
12355
12362
 
12356
12363
 
12357
12364
  if (e && 'touches' in e) {
12358
- var _e$target, _e$target2;
12365
+ var _e$currentTarget, _e$target;
12366
+
12367
+ const classSeparator = ' ';
12368
+ const eventTargetClasses = (_e$currentTarget = e.currentTarget) == null ? void 0 : _e$currentTarget.className.split(classSeparator);
12369
+ const currentTargets = document.elementsFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY); // Get "the same kind" current hovering target by checking
12370
+ // If element has the same class of initial touch start element (which has touch event listener registered)
12359
12371
 
12360
- const currentTarget = document.elementFromPoint(e.changedTouches[0].clientX, e.changedTouches[0].clientY);
12372
+ const currentTarget = currentTargets.find(t => t.className.split(classSeparator).some(c => eventTargetClasses.includes(c)));
12361
12373
 
12362
- if (currentTarget && !((_e$target = e.target) != null && _e$target.isSameNode(currentTarget)) && ((_e$target2 = e.target) == null ? void 0 : _e$target2.className) === currentTarget.className) {
12374
+ if (currentTarget && !((_e$target = e.target) != null && _e$target.isSameNode(currentTarget))) {
12363
12375
  currentTarget.dispatchEvent(new TouchEvent(e.type, {
12364
12376
  changedTouches: e.changedTouches,
12365
12377
  targetTouches: e.targetTouches,
@@ -12369,7 +12381,7 @@ var Mouse = Vue.extend({
12369
12381
  }
12370
12382
  }
12371
12383
 
12372
- this.$emit(event, getEvent(e));
12384
+ this.$emit(event, getEvent(e), e);
12373
12385
  }
12374
12386
 
12375
12387
  return eventOptions.result;
@@ -14049,9 +14061,12 @@ var CalendarWithEvents = CalendarBase.extend({
14049
14061
  name: 'ripple',
14050
14062
  value: (_this$eventRipple2 = this.eventRipple) != null ? _this$eventRipple2 : true
14051
14063
  }],
14052
- on: {
14053
- click: () => this.$emit('click:more', day)
14054
- },
14064
+ on: this.getDefaultMouseEventHandlers(':more', nativeEvent => {
14065
+ return {
14066
+ nativeEvent,
14067
+ ...day
14068
+ };
14069
+ }),
14055
14070
  style: {
14056
14071
  display: 'none',
14057
14072
  height: `${eventHeight}px`,
@@ -14304,7 +14319,12 @@ var VCalendarWeekly = CalendarBase.extend({
14304
14319
  key: day.date,
14305
14320
  staticClass: 'v-calendar-weekly__day',
14306
14321
  class: this.getRelativeClasses(day, outside),
14307
- on: this.getDefaultMouseEventHandlers(':day', _e => day)
14322
+ on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {
14323
+ return {
14324
+ nativeEvent,
14325
+ ...day
14326
+ };
14327
+ })
14308
14328
  }, [this.genDayLabel(day), ...(getSlot(this, 'day', () => ({
14309
14329
  outside,
14310
14330
  index,
@@ -14340,7 +14360,10 @@ var VCalendarWeekly = CalendarBase.extend({
14340
14360
  prevent: true,
14341
14361
  result: false
14342
14362
  }
14343
- }, _e => day)
14363
+ }, nativeEvent => ({
14364
+ nativeEvent,
14365
+ ...day
14366
+ }))
14344
14367
  }, hasMonth ? this.monthFormatter(day, this.shortMonths) + ' ' + this.dayFormatter(day, false) : this.dayFormatter(day, false));
14345
14368
  },
14346
14369
 
@@ -14613,8 +14636,11 @@ var VCalendarDaily = CalendarWithIntervals.extend({
14613
14636
  key: day.date,
14614
14637
  staticClass: 'v-calendar-daily_head-day',
14615
14638
  class: this.getRelativeClasses(day),
14616
- on: this.getDefaultMouseEventHandlers(':day', _e => {
14617
- return this.getSlotScope(day);
14639
+ on: this.getDefaultMouseEventHandlers(':day', nativeEvent => {
14640
+ return {
14641
+ nativeEvent,
14642
+ ...this.getSlotScope(day)
14643
+ };
14618
14644
  })
14619
14645
  }, [this.genHeadWeekday(day), this.genHeadDayLabel(day), ...this.genDayHeader(day, index)]);
14620
14646
  },
@@ -14659,8 +14685,11 @@ var VCalendarDaily = CalendarWithIntervals.extend({
14659
14685
  prevent: true,
14660
14686
  result: false
14661
14687
  }
14662
- }, _e => {
14663
- return day;
14688
+ }, nativeEvent => {
14689
+ return {
14690
+ nativeEvent,
14691
+ ...day
14692
+ };
14664
14693
  })
14665
14694
  }, this.dayFormatter(day, false));
14666
14695
  },
@@ -14703,8 +14732,11 @@ var VCalendarDaily = CalendarWithIntervals.extend({
14703
14732
  key: day.date,
14704
14733
  staticClass: 'v-calendar-daily__day',
14705
14734
  class: this.getRelativeClasses(day),
14706
- on: this.getDefaultMouseEventHandlers(':time', e => {
14707
- return this.getSlotScope(this.getTimestampAtEvent(e, day));
14735
+ on: this.getDefaultMouseEventHandlers(':time', nativeEvent => {
14736
+ return {
14737
+ nativeEvent,
14738
+ ...this.getSlotScope(this.getTimestampAtEvent(nativeEvent, day))
14739
+ };
14708
14740
  })
14709
14741
  }, [...this.genDayIntervals(index), ...this.genDayBody(day)]);
14710
14742
  },
@@ -14739,8 +14771,11 @@ var VCalendarDaily = CalendarWithIntervals.extend({
14739
14771
  style: {
14740
14772
  width
14741
14773
  },
14742
- on: this.getDefaultMouseEventHandlers(':interval', e => {
14743
- return this.getTimestampAtEvent(e, this.parsedStart);
14774
+ on: this.getDefaultMouseEventHandlers(':interval', nativeEvent => {
14775
+ return {
14776
+ nativeEvent,
14777
+ ...this.getTimestampAtEvent(nativeEvent, this.parsedStart)
14778
+ };
14744
14779
  })
14745
14780
  };
14746
14781
  return this.$createElement('div', data, this.genIntervalLabels());
@@ -14936,7 +14971,7 @@ var VCalendarCategory = VCalendarDaily.extend({
14936
14971
  // Styles
14937
14972
  /* @vue/component */
14938
14973
 
14939
- CalendarWithEvents.extend({
14974
+ var VCalendar = CalendarWithEvents.extend({
14940
14975
  name: 'v-calendar',
14941
14976
  props: { ...props.calendar,
14942
14977
  ...props.weeks,
@@ -15307,13 +15342,13 @@ CalendarWithEvents.extend({
15307
15342
  value: this.updateEventVisibility
15308
15343
  }],
15309
15344
  on: { ...this.$listeners,
15310
- 'click:date': day => {
15345
+ 'click:date': (day, e) => {
15311
15346
  if (this.$listeners.input) {
15312
15347
  this.$emit('input', day.date);
15313
15348
  }
15314
15349
 
15315
15350
  if (this.$listeners['click:date']) {
15316
- this.$emit('click:date', day);
15351
+ this.$emit('click:date', day, e);
15317
15352
  }
15318
15353
  }
15319
15354
  },
@@ -15862,8 +15897,8 @@ VWindow.extend({
15862
15897
  });
15863
15898
 
15864
15899
  // Mixins
15865
- const baseMixins$g = mixins(Bootable, factory$1('windowGroup', 'v-window-item', 'v-window'));
15866
- var VWindowItem = baseMixins$g.extend().extend().extend({
15900
+ const baseMixins$h = mixins(Bootable, factory$1('windowGroup', 'v-window-item', 'v-window'));
15901
+ var VWindowItem = baseMixins$h.extend().extend().extend({
15867
15902
  name: 'v-window-item',
15868
15903
  directives: {
15869
15904
  Touch
@@ -16000,10 +16035,10 @@ var VWindowItem = baseMixins$g.extend().extend().extend({
16000
16035
 
16001
16036
  // Extensions
16002
16037
 
16003
- const baseMixins$f = mixins(VWindowItem, Routable);
16038
+ const baseMixins$g = mixins(VWindowItem, Routable);
16004
16039
  /* @vue/component */
16005
16040
 
16006
- baseMixins$f.extend().extend({
16041
+ baseMixins$g.extend().extend({
16007
16042
  name: 'v-carousel-item',
16008
16043
  inject: {
16009
16044
  parentTheme: {
@@ -16339,6 +16374,13 @@ var VCheckbox = Selectable.extend({
16339
16374
  });
16340
16375
 
16341
16376
  // Styles
16377
+
16378
+ function bias(val) {
16379
+ const c = 0.501;
16380
+ const x = Math.abs(val);
16381
+ return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1));
16382
+ }
16383
+
16342
16384
  function calculateUpdatedOffset(selectedElement, widths, rtl, currentScrollOffset) {
16343
16385
  const clientWidth = selectedElement.clientWidth;
16344
16386
  const offsetLeft = rtl ? widths.content - selectedElement.offsetLeft - clientWidth : selectedElement.offsetLeft;
@@ -16482,7 +16524,10 @@ const BaseSlideGroup = mixins(BaseItemGroup, Mobile).extend({
16482
16524
  isOverflowing: 'setWidths',
16483
16525
 
16484
16526
  scrollOffset(val) {
16485
- this.$refs.content.style.transform = `translateX(${-val}px)`;
16527
+ if (this.$vuetify.rtl) val = -val;
16528
+ let scroll = val <= 0 ? bias(-val) : val > this.widths.content - this.widths.wrapper ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val) : -val;
16529
+ if (this.$vuetify.rtl) scroll = -scroll;
16530
+ this.$refs.content.style.transform = `translateX(${scroll}px)`;
16486
16531
  }
16487
16532
 
16488
16533
  },
@@ -16723,10 +16768,9 @@ const BaseSlideGroup = mixins(BaseItemGroup, Mobile).extend({
16723
16768
  }, this.$vuetify.rtl, this.scrollOffset);
16724
16769
  },
16725
16770
 
16726
- setWidths
16727
- /* istanbul ignore next */
16728
- () {
16771
+ setWidths() {
16729
16772
  window.requestAnimationFrame(() => {
16773
+ if (this._isDestroyed) return;
16730
16774
  const {
16731
16775
  content,
16732
16776
  wrapper
@@ -18640,7 +18684,7 @@ VAutocomplete.extend({
18640
18684
  },
18641
18685
 
18642
18686
  setValue(value) {
18643
- VSelect.options.methods.setValue.call(this, value != null ? value : this.internalSearch);
18687
+ VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value);
18644
18688
  },
18645
18689
 
18646
18690
  updateEditing() {
@@ -18743,12 +18787,10 @@ var VData = Vue.extend({
18743
18787
  default: () => ({})
18744
18788
  },
18745
18789
  sortBy: {
18746
- type: [String, Array],
18747
- default: () => []
18790
+ type: [String, Array]
18748
18791
  },
18749
18792
  sortDesc: {
18750
- type: [Boolean, Array],
18751
- default: () => []
18793
+ type: [Boolean, Array]
18752
18794
  },
18753
18795
  customSort: {
18754
18796
  type: Function,
@@ -19912,7 +19954,7 @@ var VDataTableHeaderDesktop = mixins(header).extend({
19912
19954
  return this.$createElement('th', data, [this.genSelectAll()]);
19913
19955
  }
19914
19956
 
19915
- children.push(this.$scopedSlots[header.value] ? this.$scopedSlots[header.value]({
19957
+ children.push(this.$scopedSlots.hasOwnProperty(header.value) ? this.$scopedSlots[header.value]({
19916
19958
  header
19917
19959
  }) : this.$createElement('span', [header.text]));
19918
19960
 
@@ -20020,6 +20062,13 @@ var VDataTableHeader = Vue.extend({
20020
20062
  });
20021
20063
 
20022
20064
  // Types
20065
+
20066
+ function needsTd(slot) {
20067
+ var _slot$;
20068
+
20069
+ return slot.length !== 1 || !['td', 'th'].includes((_slot$ = slot[0]) == null ? void 0 : _slot$.tag);
20070
+ }
20071
+
20023
20072
  var Row = Vue.extend({
20024
20073
  name: 'row',
20025
20074
  functional: true,
@@ -20040,29 +20089,29 @@ var Row = Vue.extend({
20040
20089
  const children = [];
20041
20090
  const value = getObjectValueByPath(props.item, header.value);
20042
20091
  const slotName = header.value;
20043
- const scopedSlot = data.scopedSlots && data.scopedSlots[slotName];
20044
- const regularSlot = computedSlots[slotName];
20092
+ const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName];
20093
+ const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName];
20045
20094
 
20046
20095
  if (scopedSlot) {
20047
- children.push(scopedSlot({
20096
+ children.push(...wrapInArray(scopedSlot({
20048
20097
  item: props.item,
20049
20098
  isMobile: false,
20050
20099
  header,
20051
20100
  index: props.index,
20052
20101
  value
20053
- }));
20102
+ })));
20054
20103
  } else if (regularSlot) {
20055
- children.push(regularSlot);
20104
+ children.push(...wrapInArray(regularSlot));
20056
20105
  } else {
20057
20106
  children.push(value == null ? value : String(value));
20058
20107
  }
20059
20108
 
20060
20109
  const textAlign = `text-${header.align || 'start'}`;
20061
- return h('td', {
20110
+ return needsTd(children) ? h('td', {
20062
20111
  class: [textAlign, header.cellClass, {
20063
20112
  'v-data-table__divider': header.divider
20064
20113
  }]
20065
- }, children);
20114
+ }, children) : children;
20066
20115
  });
20067
20116
  return h('tr', data, columns);
20068
20117
  }
@@ -20183,8 +20232,8 @@ var MobileRow = Vue.extend({
20183
20232
  const children = [];
20184
20233
  const value = getObjectValueByPath(props.item, header.value);
20185
20234
  const slotName = header.value;
20186
- const scopedSlot = data.scopedSlots && data.scopedSlots[slotName];
20187
- const regularSlot = computedSlots[slotName];
20235
+ const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName];
20236
+ const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName];
20188
20237
 
20189
20238
  if (scopedSlot) {
20190
20239
  children.push(scopedSlot({
@@ -20947,8 +20996,8 @@ mixins(Returnable, Themeable).extend({
20947
20996
 
20948
20997
  });
20949
20998
 
20950
- const baseMixins$e = mixins(VSimpleTable);
20951
- baseMixins$e.extend().extend({
20999
+ const baseMixins$f = mixins(VSimpleTable);
21000
+ baseMixins$f.extend().extend({
20952
21001
  name: 'v-virtual-table',
20953
21002
  props: {
20954
21003
  chunkSize: {
@@ -21485,7 +21534,7 @@ var DatePickerTable = mixins(Colorable, Localable, Themeable
21485
21534
  },
21486
21535
 
21487
21536
  methods: {
21488
- genButtonClasses(isAllowed, isFloating, isSelected, isCurrent) {
21537
+ genButtonClasses(isAllowed, isFloating, isSelected, isCurrent, isFirst, isLast) {
21489
21538
  return {
21490
21539
  'v-size--default': !isFloating,
21491
21540
  'v-date-picker-table__current': isCurrent,
@@ -21495,6 +21544,8 @@ var DatePickerTable = mixins(Colorable, Localable, Themeable
21495
21544
  'v-btn--rounded': isFloating,
21496
21545
  'v-btn--disabled': !isAllowed || this.disabled,
21497
21546
  'v-btn--outlined': isCurrent && !isSelected,
21547
+ 'v-date-picker--first-in-range': isFirst,
21548
+ 'v-date-picker--last-in-range': isLast,
21498
21549
  ...this.themeClasses
21499
21550
  };
21500
21551
  },
@@ -21514,9 +21565,17 @@ var DatePickerTable = mixins(Colorable, Localable, Themeable
21514
21565
  const isCurrent = value === this.current;
21515
21566
  const setColor = isSelected ? this.setBackgroundColor : this.setTextColor;
21516
21567
  const color = (isSelected || isCurrent) && (this.color || 'accent');
21568
+ let isFirst = false;
21569
+ let isLast = false;
21570
+
21571
+ if (this.range && !!this.value && Array.isArray(this.value)) {
21572
+ isFirst = value === this.value[0];
21573
+ isLast = value === this.value[this.value.length - 1];
21574
+ }
21575
+
21517
21576
  return this.$createElement('button', setColor(color, {
21518
21577
  staticClass: 'v-btn',
21519
- class: this.genButtonClasses(isAllowed && !isOtherMonth, isFloating, isSelected, isCurrent),
21578
+ class: this.genButtonClasses(isAllowed && !isOtherMonth, isFloating, isSelected, isCurrent, isFirst, isLast),
21520
21579
  attrs: {
21521
21580
  type: 'button'
21522
21581
  },
@@ -22715,10 +22774,10 @@ var VExpansionPanel = mixins(factory$1('expansionPanels', 'v-expansion-panel', '
22715
22774
 
22716
22775
  });
22717
22776
 
22718
- const baseMixins$d = mixins(Bootable, Colorable, inject('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel'));
22777
+ const baseMixins$e = mixins(Bootable, Colorable, inject('expansionPanel', 'v-expansion-panel-content', 'v-expansion-panel'));
22719
22778
  /* @vue/component */
22720
22779
 
22721
- var VExpansionPanelContent = baseMixins$d.extend().extend({
22780
+ var VExpansionPanelContent = baseMixins$e.extend().extend({
22722
22781
  name: 'v-expansion-panel-content',
22723
22782
  data: () => ({
22724
22783
  isActive: false
@@ -22764,8 +22823,8 @@ var VExpansionPanelContent = baseMixins$d.extend().extend({
22764
22823
  });
22765
22824
 
22766
22825
  // Components
22767
- const baseMixins$c = mixins(Colorable, inject('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel'));
22768
- var VExpansionPanelHeader = baseMixins$c.extend().extend({
22826
+ const baseMixins$d = mixins(Colorable, inject('expansionPanel', 'v-expansion-panel-header', 'v-expansion-panel'));
22827
+ var VExpansionPanelHeader = baseMixins$d.extend().extend({
22769
22828
  name: 'v-expansion-panel-header',
22770
22829
  directives: {
22771
22830
  ripple: Ripple
@@ -23925,10 +23984,10 @@ mixins(Measurable, Toggleable).extend({
23925
23984
  });
23926
23985
 
23927
23986
  // Styles
23928
- const baseMixins$b = mixins(applicationable('left', ['isActive', 'isMobile', 'miniVariant', 'expandOnHover', 'permanent', 'right', 'temporary', 'width']), Colorable, Dependent, Mobile, Overlayable, SSRBootable, Themeable);
23987
+ const baseMixins$c = mixins(applicationable('left', ['isActive', 'isMobile', 'miniVariant', 'expandOnHover', 'permanent', 'right', 'temporary', 'width']), Colorable, Dependent, Mobile, Overlayable, SSRBootable, Themeable);
23929
23988
  /* @vue/component */
23930
23989
 
23931
- var VNavigationDrawer = baseMixins$b.extend({
23990
+ var VNavigationDrawer = baseMixins$c.extend({
23932
23991
  name: 'v-navigation-drawer',
23933
23992
  directives: {
23934
23993
  ClickOutside,
@@ -24205,6 +24264,8 @@ var VNavigationDrawer = baseMixins$b.extend({
24205
24264
 
24206
24265
  genListeners() {
24207
24266
  const on = {
24267
+ mouseenter: () => this.isMouseover = true,
24268
+ mouseleave: () => this.isMouseover = false,
24208
24269
  transitionend: e => {
24209
24270
  if (e.target !== e.currentTarget) return;
24210
24271
  this.$emit('transitionend', e); // IE11 does not support new Event('resize')
@@ -24219,12 +24280,6 @@ var VNavigationDrawer = baseMixins$b.extend({
24219
24280
  on.click = () => this.$emit('update:mini-variant', false);
24220
24281
  }
24221
24282
 
24222
- if (this.expandOnHover) {
24223
- on.mouseenter = () => this.isMouseover = true;
24224
-
24225
- on.mouseleave = () => this.isMouseover = false;
24226
- }
24227
-
24228
24283
  return on;
24229
24284
  },
24230
24285
 
@@ -24287,12 +24342,12 @@ var VNavigationDrawer = baseMixins$b.extend({
24287
24342
  */
24288
24343
  updateApplication() {
24289
24344
  if (!this.isActive || this.isMobile || this.temporary || !this.$el) return 0;
24290
- const width = Number(this.computedWidth);
24345
+ const width = Number(this.miniVariant ? this.miniVariantWidth : this.width);
24291
24346
  return isNaN(width) ? this.$el.clientWidth : width;
24292
24347
  },
24293
24348
 
24294
24349
  updateMiniVariant(val) {
24295
- if (this.miniVariant !== val) this.$emit('update:mini-variant', val);
24350
+ if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val);
24296
24351
  }
24297
24352
 
24298
24353
  },
@@ -24310,6 +24365,338 @@ var VNavigationDrawer = baseMixins$b.extend({
24310
24365
 
24311
24366
  });
24312
24367
 
24368
+ // Styles
24369
+ const baseMixins$b = mixins(VInput);
24370
+ /* @vue/component */
24371
+
24372
+ var VOtpInput = baseMixins$b.extend().extend({
24373
+ name: 'v-otp-input',
24374
+ directives: {
24375
+ ripple: Ripple
24376
+ },
24377
+ inheritAttrs: false,
24378
+ props: {
24379
+ length: {
24380
+ type: [Number, String],
24381
+ default: 6
24382
+ },
24383
+ type: {
24384
+ type: String,
24385
+ default: 'text'
24386
+ },
24387
+ plain: Boolean
24388
+ },
24389
+ data: () => ({
24390
+ badInput: false,
24391
+ initialValue: null,
24392
+ isBooted: false,
24393
+ otp: []
24394
+ }),
24395
+ computed: {
24396
+ outlined() {
24397
+ return !this.plain;
24398
+ },
24399
+
24400
+ classes() {
24401
+ return { ...VInput.options.computed.classes.call(this),
24402
+ ...VTextField.options.computed.classes.call(this),
24403
+ 'v-otp-input--plain': this.plain
24404
+ };
24405
+ },
24406
+
24407
+ isDirty() {
24408
+ return VInput.options.computed.isDirty.call(this) || this.badInput;
24409
+ }
24410
+
24411
+ },
24412
+ watch: {
24413
+ isFocused: 'updateValue',
24414
+
24415
+ value(val) {
24416
+ this.lazyValue = val;
24417
+ this.otp = (val == null ? void 0 : val.split('')) || [];
24418
+ }
24419
+
24420
+ },
24421
+
24422
+ created() {
24423
+ var _this$internalValue;
24424
+
24425
+ /* istanbul ignore next */
24426
+ if (this.$attrs.hasOwnProperty('browser-autocomplete')) {
24427
+ breaking('browser-autocomplete', 'autocomplete', this);
24428
+ }
24429
+
24430
+ this.otp = ((_this$internalValue = this.internalValue) == null ? void 0 : _this$internalValue.split('')) || [];
24431
+ },
24432
+
24433
+ mounted() {
24434
+ requestAnimationFrame(() => this.isBooted = true);
24435
+ },
24436
+
24437
+ methods: {
24438
+ /** @public */
24439
+ focus(e, otpIdx) {
24440
+ this.onFocus(e, otpIdx || 0);
24441
+ },
24442
+
24443
+ genInputSlot(otpIdx) {
24444
+ return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {
24445
+ staticClass: 'v-input__slot',
24446
+ style: {
24447
+ height: convertToUnit(this.height)
24448
+ },
24449
+ on: {
24450
+ click: () => this.onClick(otpIdx),
24451
+ mousedown: e => this.onMouseDown(e, otpIdx),
24452
+ mouseup: e => this.onMouseUp(e, otpIdx)
24453
+ }
24454
+ }), [this.genDefaultSlot(otpIdx)]);
24455
+ },
24456
+
24457
+ genControl(otpIdx) {
24458
+ return this.$createElement('div', {
24459
+ staticClass: 'v-input__control'
24460
+ }, [this.genInputSlot(otpIdx)]);
24461
+ },
24462
+
24463
+ genDefaultSlot(otpIdx) {
24464
+ return [this.genFieldset(), this.genTextFieldSlot(otpIdx)];
24465
+ },
24466
+
24467
+ genContent() {
24468
+ return Array.from({
24469
+ length: +this.length
24470
+ }, (_, i) => {
24471
+ return this.$createElement('div', this.setTextColor(this.validationState, {
24472
+ staticClass: 'v-input',
24473
+ class: this.classes
24474
+ }), [this.genControl(i)]);
24475
+ });
24476
+ },
24477
+
24478
+ genFieldset() {
24479
+ return this.$createElement('fieldset', {
24480
+ attrs: {
24481
+ 'aria-hidden': true
24482
+ }
24483
+ }, [this.genLegend()]);
24484
+ },
24485
+
24486
+ genLegend() {
24487
+ const span = this.$createElement('span', {
24488
+ domProps: {
24489
+ innerHTML: '&#8203;'
24490
+ }
24491
+ });
24492
+ return this.$createElement('legend', {
24493
+ style: {
24494
+ width: '0px'
24495
+ }
24496
+ }, [span]);
24497
+ },
24498
+
24499
+ genInput(otpIdx) {
24500
+ const listeners = Object.assign({}, this.listeners$);
24501
+ delete listeners.change; // Change should not be bound externally
24502
+
24503
+ return this.$createElement('input', {
24504
+ style: {},
24505
+ domProps: {
24506
+ value: this.otp[otpIdx],
24507
+ min: this.type === 'number' ? 0 : null
24508
+ },
24509
+ attrs: { ...this.attrs$,
24510
+ disabled: this.isDisabled,
24511
+ readonly: this.isReadonly,
24512
+ type: this.type,
24513
+ id: `${this.computedId}--${otpIdx}`,
24514
+ class: `otp-field-box--${otpIdx}`,
24515
+ maxlength: 1
24516
+ },
24517
+ on: Object.assign(listeners, {
24518
+ blur: this.onBlur,
24519
+ input: e => this.onInput(e, otpIdx),
24520
+ focus: e => this.onFocus(e, otpIdx),
24521
+ paste: e => this.onPaste(e, otpIdx),
24522
+ keydown: this.onKeyDown,
24523
+ keyup: e => this.onKeyUp(e, otpIdx)
24524
+ }),
24525
+ ref: 'input',
24526
+ refInFor: true
24527
+ });
24528
+ },
24529
+
24530
+ genTextFieldSlot(otpIdx) {
24531
+ return this.$createElement('div', {
24532
+ staticClass: 'v-text-field__slot'
24533
+ }, [this.genInput(otpIdx)]);
24534
+ },
24535
+
24536
+ onBlur(e) {
24537
+ this.isFocused = false;
24538
+ e && this.$nextTick(() => this.$emit('blur', e));
24539
+ },
24540
+
24541
+ onClick(otpIdx) {
24542
+ if (this.isFocused || this.isDisabled || !this.$refs.input[otpIdx]) return;
24543
+ this.onFocus(undefined, otpIdx);
24544
+ },
24545
+
24546
+ onFocus(e, otpIdx) {
24547
+ e == null ? void 0 : e.preventDefault();
24548
+ e == null ? void 0 : e.stopPropagation();
24549
+ const elements = this.$refs.input;
24550
+ const ref = this.$refs.input && elements[otpIdx || 0];
24551
+ if (!ref) return;
24552
+
24553
+ if (document.activeElement !== ref) {
24554
+ ref.focus();
24555
+ return ref.select();
24556
+ }
24557
+
24558
+ if (!this.isFocused) {
24559
+ this.isFocused = true;
24560
+ ref.select();
24561
+ e && this.$emit('focus', e);
24562
+ }
24563
+ },
24564
+
24565
+ onInput(e, otpIdx) {
24566
+ const target = e.target;
24567
+ const value = target.value;
24568
+ this.applyValue(otpIdx, target.value, () => {
24569
+ this.internalValue = this.otp.join('');
24570
+ });
24571
+ this.badInput = target.validity && target.validity.badInput;
24572
+ const nextIndex = otpIdx + 1;
24573
+
24574
+ if (value) {
24575
+ if (nextIndex < +this.length) {
24576
+ this.changeFocus(nextIndex);
24577
+ } else {
24578
+ this.clearFocus(otpIdx);
24579
+ this.onCompleted();
24580
+ }
24581
+ }
24582
+ },
24583
+
24584
+ clearFocus(index) {
24585
+ const input = this.$refs.input[index];
24586
+ input.blur();
24587
+ },
24588
+
24589
+ onKeyDown(e) {
24590
+ if (e.keyCode === keyCodes.enter) {
24591
+ this.$emit('change', this.internalValue);
24592
+ }
24593
+
24594
+ this.$emit('keydown', e);
24595
+ },
24596
+
24597
+ onMouseDown(e, otpIdx) {
24598
+ // Prevent input from being blurred
24599
+ if (e.target !== this.$refs.input[otpIdx]) {
24600
+ e.preventDefault();
24601
+ e.stopPropagation();
24602
+ }
24603
+
24604
+ VInput.options.methods.onMouseDown.call(this, e);
24605
+ },
24606
+
24607
+ onMouseUp(e, otpIdx) {
24608
+ if (this.hasMouseDown) this.focus(e, otpIdx);
24609
+ VInput.options.methods.onMouseUp.call(this, e);
24610
+ },
24611
+
24612
+ onPaste(event, index) {
24613
+ var _event$clipboardData;
24614
+
24615
+ const maxCursor = +this.length - 1;
24616
+ const inputVal = event == null ? void 0 : (_event$clipboardData = event.clipboardData) == null ? void 0 : _event$clipboardData.getData('Text');
24617
+ const inputDataArray = (inputVal == null ? void 0 : inputVal.split('')) || [];
24618
+ event.preventDefault();
24619
+ const newOtp = [...this.otp];
24620
+
24621
+ for (let i = 0; i < inputDataArray.length; i++) {
24622
+ const appIdx = index + i;
24623
+ if (appIdx > maxCursor) break;
24624
+ newOtp[appIdx] = inputDataArray[i].toString();
24625
+ }
24626
+
24627
+ this.otp = newOtp;
24628
+ this.internalValue = this.otp.join('');
24629
+ const targetFocus = Math.min(index + inputDataArray.length, maxCursor);
24630
+ this.changeFocus(targetFocus);
24631
+
24632
+ if (newOtp.length === +this.length) {
24633
+ this.onCompleted();
24634
+ this.clearFocus(targetFocus);
24635
+ }
24636
+ },
24637
+
24638
+ applyValue(index, inputVal, next) {
24639
+ const newOtp = [...this.otp];
24640
+ newOtp[index] = inputVal;
24641
+ this.otp = newOtp;
24642
+ next();
24643
+ },
24644
+
24645
+ changeFocus(index) {
24646
+ this.onFocus(undefined, index || 0);
24647
+ },
24648
+
24649
+ updateValue(val) {
24650
+ // Sets validationState from validatable
24651
+ this.hasColor = val;
24652
+
24653
+ if (val) {
24654
+ this.initialValue = this.lazyValue;
24655
+ } else if (this.initialValue !== this.lazyValue) {
24656
+ this.$emit('change', this.lazyValue);
24657
+ }
24658
+ },
24659
+
24660
+ onKeyUp(event, index) {
24661
+ event.preventDefault();
24662
+ const eventKey = event.key;
24663
+
24664
+ if (['Tab', 'Shift', 'Meta', 'Control', 'Alt'].includes(eventKey)) {
24665
+ return;
24666
+ }
24667
+
24668
+ if (['Delete'].includes(eventKey)) {
24669
+ return;
24670
+ }
24671
+
24672
+ if (eventKey === 'ArrowLeft' || eventKey === 'Backspace' && !this.otp[index]) {
24673
+ return index > 0 && this.changeFocus(index - 1);
24674
+ }
24675
+
24676
+ if (eventKey === 'ArrowRight') {
24677
+ return index + 1 < +this.length && this.changeFocus(index + 1);
24678
+ }
24679
+ },
24680
+
24681
+ onCompleted() {
24682
+ const rsp = this.otp.join('');
24683
+
24684
+ if (rsp.length === +this.length) {
24685
+ this.$emit('finish', rsp);
24686
+ }
24687
+ }
24688
+
24689
+ },
24690
+
24691
+ render(h) {
24692
+ return h('div', {
24693
+ staticClass: 'v-otp-input',
24694
+ class: this.themeClasses
24695
+ }, this.genContent());
24696
+ }
24697
+
24698
+ });
24699
+
24313
24700
  // Styles
24314
24701
  /* @vue/component */
24315
24702
 
@@ -24515,13 +24902,14 @@ var VPagination = mixins(Colorable, intersectable({
24515
24902
 
24516
24903
  },
24517
24904
 
24518
- mounted() {
24905
+ beforeMount() {
24519
24906
  this.init();
24520
24907
  },
24521
24908
 
24522
24909
  methods: {
24523
24910
  init() {
24524
24911
  this.selected = null;
24912
+ this.onResize();
24525
24913
  this.$nextTick(this.onResize); // TODO: Change this (f75dee3a, cbdf7caa)
24526
24914
 
24527
24915
  setTimeout(() => this.selected = this.value, 100);
@@ -24773,7 +25161,7 @@ baseMixins$a.extend().extend({
24773
25161
  });
24774
25162
 
24775
25163
  // Styles
24776
- const baseMixins$9 = mixins(Comparable, BaseItemGroup, VInput);
25164
+ const baseMixins$9 = mixins(BaseItemGroup, VInput);
24777
25165
  /* @vue/component */
24778
25166
 
24779
25167
  var VRadioGroup = baseMixins$9.extend({
@@ -25699,9 +26087,7 @@ var VSnackbar = mixins(VSheet, Colorable, Toggleable, factory$3(['absolute', 'bo
25699
26087
  },
25700
26088
 
25701
26089
  styles() {
25702
- // Styles are not needed when
25703
- // using the absolute prop.
25704
- if (this.absolute) return {};
26090
+ if (this.absolute || !this.app) return {};
25705
26091
  const {
25706
26092
  bar,
25707
26093
  bottom,
@@ -25710,13 +26096,11 @@ var VSnackbar = mixins(VSheet, Colorable, Toggleable, factory$3(['absolute', 'bo
25710
26096
  left,
25711
26097
  right,
25712
26098
  top
25713
- } = this.$vuetify.application; // Should always move for y-axis
25714
- // applicationable components.
25715
-
26099
+ } = this.$vuetify.application;
25716
26100
  return {
25717
26101
  paddingBottom: convertToUnit(bottom + footer + insetFooter),
25718
- paddingLeft: !this.app ? undefined : convertToUnit(left),
25719
- paddingRight: !this.app ? undefined : convertToUnit(right),
26102
+ paddingLeft: convertToUnit(left),
26103
+ paddingRight: convertToUnit(right),
25720
26104
  paddingTop: convertToUnit(bar + top)
25721
26105
  };
25722
26106
  }
@@ -26592,6 +26976,12 @@ var VStepperStep = baseMixins$6.extend().extend({
26592
26976
  return children;
26593
26977
  },
26594
26978
 
26979
+ keyboardClick(e) {
26980
+ if (e.keyCode === keyCodes.space) {
26981
+ this.click(e);
26982
+ }
26983
+ },
26984
+
26595
26985
  toggle(step) {
26596
26986
  this.isActive = step.toString() === this.step.toString();
26597
26987
  this.isInactive = Number(step) < Number(this.step);
@@ -26601,6 +26991,9 @@ var VStepperStep = baseMixins$6.extend().extend({
26601
26991
 
26602
26992
  render(h) {
26603
26993
  return h('div', {
26994
+ attrs: {
26995
+ tabindex: this.editable ? 0 : -1
26996
+ },
26604
26997
  staticClass: 'v-stepper__step',
26605
26998
  class: this.classes,
26606
26999
  directives: [{
@@ -26608,7 +27001,8 @@ var VStepperStep = baseMixins$6.extend().extend({
26608
27001
  value: this.editable
26609
27002
  }],
26610
27003
  on: {
26611
- click: this.click
27004
+ click: this.click,
27005
+ keydown: this.keyboardClick
26612
27006
  }
26613
27007
  }, [this.genStep(), this.genLabel()]);
26614
27008
  }
@@ -27340,7 +27734,8 @@ var VTab = baseMixins$3.extend().extend().extend({
27340
27734
  },
27341
27735
 
27342
27736
  value() {
27343
- let to = this.to || this.href || '';
27737
+ let to = this.to || this.href;
27738
+ if (to == null) return to;
27344
27739
 
27345
27740
  if (this.$router && this.to === Object(this.to)) {
27346
27741
  const resolve = this.$router.resolve(this.to, this.$route, this.append);
@@ -27372,7 +27767,7 @@ var VTab = baseMixins$3.extend().extend().extend({
27372
27767
 
27373
27768
  toggle() {
27374
27769
  // VItemGroup treats a change event as a click
27375
- if (!this.isActive) {
27770
+ if (!this.isActive || !this.tabsBar.mandatory && !this.to) {
27376
27771
  this.$emit('change');
27377
27772
  }
27378
27773
  }
@@ -27387,7 +27782,7 @@ var VTab = baseMixins$3.extend().extend().extend({
27387
27782
  data.attrs = { ...data.attrs,
27388
27783
  'aria-selected': String(this.isActive),
27389
27784
  role: 'tab',
27390
- tabindex: 0
27785
+ tabindex: this.disabled ? -1 : 0
27391
27786
  };
27392
27787
  data.on = { ...data.on,
27393
27788
  keydown: e => {
@@ -27519,7 +27914,7 @@ var VTextarea = baseMixins$2.extend({
27519
27914
  });
27520
27915
 
27521
27916
  // Styles
27522
- mixins(Themeable
27917
+ var VTimeline = mixins(Themeable
27523
27918
  /* @vue/component */
27524
27919
  ).extend({
27525
27920
  name: 'v-timeline',
@@ -27560,7 +27955,7 @@ mixins(Themeable
27560
27955
  const baseMixins$1 = mixins(Colorable, Themeable
27561
27956
  /* @vue/component */
27562
27957
  );
27563
- baseMixins$1.extend().extend({
27958
+ var VTimelineItem = baseMixins$1.extend().extend({
27564
27959
  name: 'v-timeline-item',
27565
27960
  inject: ['timeline'],
27566
27961
  props: {
@@ -28328,11 +28723,11 @@ var VTimePicker = mixins(Picker, PickerButton
28328
28723
 
28329
28724
  // Components
28330
28725
  createSimpleFunctional('v-toolbar__title');
28331
- createSimpleFunctional('v-toolbar__items');
28726
+ const VToolbarItems = createSimpleFunctional('v-toolbar__items');
28332
28727
 
28333
28728
  /* @vue/component */
28334
28729
 
28335
- var VTooltip = mixins(Colorable, Delayable, Dependent, Menuable, Toggleable).extend({
28730
+ var VTooltip = mixins(Colorable, Delayable, Dependent, Menuable).extend({
28336
28731
  name: 'v-tooltip',
28337
28732
  props: {
28338
28733
  closeDelay: {
@@ -28348,6 +28743,10 @@ var VTooltip = mixins(Colorable, Delayable, Dependent, Menuable, Toggleable).ext
28348
28743
  type: Boolean,
28349
28744
  default: true
28350
28745
  },
28746
+ openOnFocus: {
28747
+ type: Boolean,
28748
+ default: true
28749
+ },
28351
28750
  tag: {
28352
28751
  type: String,
28353
28752
  default: 'span'
@@ -28427,7 +28826,6 @@ var VTooltip = mixins(Colorable, Delayable, Dependent, Menuable, Toggleable).ext
28427
28826
  left: this.calculatedLeft,
28428
28827
  maxWidth: convertToUnit(this.maxWidth),
28429
28828
  minWidth: convertToUnit(this.minWidth),
28430
- opacity: this.isActive ? 0.9 : 0,
28431
28829
  top: this.calculatedTop,
28432
28830
  zIndex: this.zIndex || this.activeZIndex
28433
28831
  };
@@ -28463,15 +28861,17 @@ var VTooltip = mixins(Colorable, Delayable, Dependent, Menuable, Toggleable).ext
28463
28861
  genActivatorListeners() {
28464
28862
  const listeners = Activatable.options.methods.genActivatorListeners.call(this);
28465
28863
 
28466
- listeners.focus = e => {
28467
- this.getActivator(e);
28468
- this.runDelay('open');
28469
- };
28864
+ if (this.openOnFocus) {
28865
+ listeners.focus = e => {
28866
+ this.getActivator(e);
28867
+ this.runDelay('open');
28868
+ };
28470
28869
 
28471
- listeners.blur = e => {
28472
- this.getActivator(e);
28473
- this.runDelay('close');
28474
- };
28870
+ listeners.blur = e => {
28871
+ this.getActivator(e);
28872
+ this.runDelay('close');
28873
+ };
28874
+ }
28475
28875
 
28476
28876
  listeners.keydown = e => {
28477
28877
  if (e.keyCode === keyCodes.esc) {
@@ -28541,6 +28941,7 @@ const VTreeviewNodeProps = {
28541
28941
  type: String,
28542
28942
  default: 'primary'
28543
28943
  },
28944
+ disablePerNode: Boolean,
28544
28945
  expandIcon: {
28545
28946
  type: String,
28546
28947
  default: '$subgroup'
@@ -28621,7 +29022,7 @@ const VTreeviewNode = baseMixins.extend().extend({
28621
29022
  }),
28622
29023
  computed: {
28623
29024
  disabled() {
28624
- return getObjectValueByPath(this.item, this.itemDisabled) || this.parentIsDisabled && this.selectionType === 'leaf';
29025
+ return getObjectValueByPath(this.item, this.itemDisabled) || !this.disablePerNode && this.parentIsDisabled && this.selectionType === 'leaf';
28625
29026
  },
28626
29027
 
28627
29028
  key() {
@@ -28805,6 +29206,7 @@ const VTreeviewNode = baseMixins.extend().extend({
28805
29206
  selectable: this.selectable,
28806
29207
  selectedColor: this.selectedColor,
28807
29208
  color: this.color,
29209
+ disablePerNode: this.disablePerNode,
28808
29210
  expandIcon: this.expandIcon,
28809
29211
  indeterminateIcon: this.indeterminateIcon,
28810
29212
  offIcon: this.offIcon,
@@ -28907,6 +29309,7 @@ mixins(provide('treeview'), Themeable
28907
29309
  default: () => []
28908
29310
  },
28909
29311
  dense: Boolean,
29312
+ disabled: Boolean,
28910
29313
  filter: Function,
28911
29314
  hoverable: Boolean,
28912
29315
  items: {
@@ -29257,7 +29660,7 @@ mixins(provide('treeview'), Themeable
29257
29660
  return !this.isExcluded(getObjectValueByPath(item, this.itemKey));
29258
29661
  }).map(item => {
29259
29662
  const genChild = VTreeviewNode.options.methods.genChild.bind(this);
29260
- return genChild(item, getObjectValueByPath(item, this.itemDisabled));
29663
+ return genChild(item, this.disabled || getObjectValueByPath(item, this.itemDisabled));
29261
29664
  })
29262
29665
  /* istanbul ignore next */
29263
29666
  : this.$slots.default; // TODO: remove type annotation with TS 3.2
@@ -29989,7 +30392,12 @@ var __vue_render__$1m = function () {
29989
30392
  },
29990
30393
  ],
29991
30394
  ref: "instance",
29992
- class: ["zd-apex-chart", _vm.instance.cssClass],
30395
+ class: [
30396
+ "zd-apex-chart",
30397
+ _vm.instance.cssClass,
30398
+ { "theme--dark": _vm.$isDark(this) },
30399
+ { "theme--light": _vm.$isLight(this) },
30400
+ ],
29993
30401
  style: _vm.instance.cssStyle,
29994
30402
  attrs: {
29995
30403
  type: _vm.instance.chartType,
@@ -29998,6 +30406,13 @@ var __vue_render__$1m = function () {
29998
30406
  height: _vm.instance.height,
29999
30407
  name: _vm.instance.name,
30000
30408
  width: _vm.instance.width,
30409
+ dark: _vm.instance.dark,
30410
+ light: _vm.instance.light,
30411
+ },
30412
+ on: {
30413
+ updated: function ($event) {
30414
+ return _vm.setApexChartTheme()
30415
+ },
30001
30416
  },
30002
30417
  }),
30003
30418
  _vm._v(" "),
@@ -30028,7 +30443,7 @@ __vue_render__$1m._withStripped = true;
30028
30443
  /* style */
30029
30444
  const __vue_inject_styles__$1m = function (inject) {
30030
30445
  if (!inject) return
30031
- inject("data-v-7fa8aa32_0", { source: ".zd-apex-chart .apexcharts-toolbar {\n z-index: 0;\n}\n.zd-apex-chart .apexcharts-toolbar > div {\n transform: scale(0.8) !important;\n}\n.zd-apex-chart .apexcharts-tooltip {\n z-index: 1;\n}\n.apexcharts-overlay {\n z-index: 0 !important;\n}\n.apexcharts-container {\n height: 100%;\n}", map: undefined, media: undefined });
30446
+ inject("data-v-02c50976_0", { source: ".zd-apex-chart .apexcharts-toolbar {\n z-index: 0;\n}\n.zd-apex-chart .apexcharts-toolbar > div {\n transform: scale(0.8) !important;\n}\n.zd-apex-chart.theme--light .apexcharts-toolbar > div > .v-icon {\n color: #3b3b3b !important;\n}\n.zd-apex-chart.theme--light .apexcharts-tooltip {\n background: #fdfdfd !important;\n border: 1px solid #fdfdfd !important;\n color: #3b3b3b !important;\n z-index: 1;\n}\n.zd-apex-chart.theme--light .apexcharts-tooltip .apexcharts-tooltip-title {\n background: #eee !important;\n color: #3b3b3b !important;\n border-bottom: none !important;\n}\n.zd-apex-chart.theme--light .apexcharts-text {\n fill: #3b3b3b !important;\n}\n.zd-apex-chart.theme--light .apexcharts-title-text {\n fill: #3b3b3b !important;\n}\n.zd-apex-chart.theme--light .apexcharts-xaxistooltip {\n background: #eee !important;\n border: 1px solid #d4d4d4 !important;\n}\n.zd-apex-chart.theme--light .apexcharts-xaxistooltip .apexcharts-xaxistooltip-text {\n color: #3b3b3b !important;\n}\n.zd-apex-chart.theme--light .apexcharts-xaxistooltip-bottom::before {\n border-bottom-color: #d4d4d4 !important;\n}\n.zd-apex-chart.theme--light .apexcharts-xaxistooltip-bottom::after {\n border-bottom-color: #d4d4d4 !important;\n}\n.zd-apex-chart.theme--dark .apexcharts-toolbar > div > .v-icon {\n color: #b8b8b8 !important;\n}\n.zd-apex-chart.theme--dark .apexcharts-tooltip {\n background: #1e1e1e !important;\n border: 1px solid #1e1e1e !important;\n color: #b8b8b8 !important;\n z-index: 1;\n}\n.zd-apex-chart.theme--dark .apexcharts-tooltip .apexcharts-tooltip-title {\n background: #101010 !important;\n color: #b8b8b8 !important;\n border-bottom: none !important;\n}\n.zd-apex-chart.theme--dark .apexcharts-text {\n fill: #b8b8b8 !important;\n}\n.zd-apex-chart.theme--dark .apexcharts-title-text {\n fill: #b8b8b8 !important;\n}\n.zd-apex-chart.theme--dark .apexcharts-xaxistooltip {\n background: #101010 !important;\n border: 1px solid #252525 !important;\n}\n.zd-apex-chart.theme--dark .apexcharts-xaxistooltip .apexcharts-xaxistooltip-text {\n color: #b8b8b8 !important;\n}\n.zd-apex-chart.theme--dark .apexcharts-xaxistooltip-bottom::before {\n border-bottom-color: #252525 !important;\n}\n.zd-apex-chart.theme--dark .apexcharts-xaxistooltip-bottom::after {\n border-bottom-color: #252525 !important;\n}\n.apexcharts-overlay {\n z-index: 0 !important;\n}\n.apexcharts-container {\n height: 100%;\n}", map: undefined, media: undefined });
30032
30447
 
30033
30448
  };
30034
30449
  /* scoped */
@@ -31530,8 +31945,10 @@ let ZdInput = class ZdInput extends ZdComponentRender$1 {
31530
31945
  }
31531
31946
  mounted() {
31532
31947
  this.inputRef = this.$refs.instance;
31533
- this.instance.setViewValidate(this.inputRef.validate);
31534
- this.instance.setViewResetValidation(this.inputRef.resetValidation);
31948
+ if (this.inputRef) {
31949
+ this.instance.setViewValidate(this.inputRef.validate);
31950
+ this.instance.setViewResetValidation(this.inputRef.resetValidation);
31951
+ }
31535
31952
  }
31536
31953
  input(value) {
31537
31954
  this.$emit('update:value', value);
@@ -33919,7 +34336,6 @@ let ZdDate = class ZdDate extends __vue_component__$18 {
33919
34336
  }
33920
34337
  onSelectDate(date, event) {
33921
34338
  this.instance.selectDate(date, event, this.$el);
33922
- this.instance.change(event, this.$refs.instance.$el);
33923
34339
  }
33924
34340
  getAllowedDates(date) {
33925
34341
  if (typeof this.instance.allowedDates === 'function') {
@@ -33976,6 +34392,18 @@ let ZdDate = class ZdDate extends __vue_component__$18 {
33976
34392
  get getDateMask() {
33977
34393
  return this.instance.updateMask();
33978
34394
  }
34395
+ helperValuesOptionClick({ component }) {
34396
+ const helper = component.name.split('_helpervalue_')[1];
34397
+ const value = DateHelper.getValue(helper, this.instance.dateFormat);
34398
+ this.instance.value = value;
34399
+ this.instance.helperValue = helper;
34400
+ this.instance.change(undefined, this.$el);
34401
+ this.instance.helperValue = helper; // o change remove o valor, por isso precisa adicionar novamente
34402
+ this.instance.updateHelperHint();
34403
+ }
34404
+ getLabel(name) {
34405
+ return DateHelper.getLabel(name);
34406
+ }
33979
34407
  };
33980
34408
  __decorate([
33981
34409
  PropWatch({
@@ -34056,6 +34484,14 @@ __decorate([
34056
34484
  PropWatch({ type: String }),
34057
34485
  __metadata("design:type", Object)
34058
34486
  ], ZdDate.prototype, "inputFormat", void 0);
34487
+ __decorate([
34488
+ PropWatch({ type: [String, Array], default: () => [] }),
34489
+ __metadata("design:type", Object)
34490
+ ], ZdDate.prototype, "helperOptions", void 0);
34491
+ __decorate([
34492
+ PropWatch({ type: String, default: '' }),
34493
+ __metadata("design:type", String)
34494
+ ], ZdDate.prototype, "helperValue", void 0);
34059
34495
  ZdDate = __decorate([
34060
34496
  Component
34061
34497
  ], ZdDate);
@@ -34070,104 +34506,154 @@ var __vue_render__$14 = function () {
34070
34506
  var _h = _vm.$createElement;
34071
34507
  var _c = _vm._self._c || _h;
34072
34508
  return _c(
34073
- "v-menu",
34509
+ "zd-tag",
34074
34510
  {
34075
- directives: [
34076
- {
34077
- name: "show",
34078
- rawName: "v-show",
34079
- value: _vm.instance.isVisible,
34080
- expression: "instance.isVisible",
34081
- },
34082
- ],
34083
- staticClass: "zd-date-menu-activator",
34084
34511
  attrs: {
34085
- id: _vm.instance.name,
34086
- "offset-overflow": "",
34087
- "offset-y": "",
34088
- "min-width": _vm.instance.width,
34089
- transition: "scale-transition",
34090
- disabled: _vm.instance.disabled || _vm.instance.readonly,
34091
- "close-on-content-click": false,
34092
- },
34093
- scopedSlots: _vm._u([
34094
- {
34095
- key: "activator",
34096
- fn: function (ref) {
34097
- var on = ref.on;
34098
- return [
34099
- _c("zd-text-input", {
34100
- ref: "instance",
34101
- attrs: {
34102
- name: _vm.instance.name + "_text-input",
34103
- mask: _vm.getDateMask,
34104
- "instance-object": _vm.instance,
34105
- events: _vm.getEvents(on),
34106
- autofill: false,
34107
- },
34108
- }),
34109
- ]
34110
- },
34111
- },
34112
- ]),
34113
- model: {
34114
- value: _vm.instance.showDatePicker,
34115
- callback: function ($$v) {
34116
- _vm.$set(_vm.instance, "showDatePicker", $$v);
34117
- },
34118
- expression: "instance.showDatePicker",
34512
+ name: _vm.instance.name + "_helperspan",
34513
+ tag: "span",
34514
+ cssClass: "zd-display-flex",
34515
+ grid: _vm.instance.grid,
34119
34516
  },
34120
34517
  },
34121
34518
  [
34122
- _vm._v(" "),
34123
34519
  _c(
34124
- "v-date-picker",
34125
- _vm._b(
34126
- {
34127
- directives: [
34128
- {
34129
- name: "show",
34130
- rawName: "v-show",
34131
- value: _vm.instance.isVisible,
34132
- expression: "instance.isVisible",
34133
- },
34134
- ],
34135
- ref: "picker",
34136
- attrs: { "no-title": "" },
34137
- on: {
34138
- "hook:mounted": _vm.pickerMounted,
34139
- "hook:destroyed": _vm.pickerDestroyed,
34140
- "click:date": _vm.onSelectDate,
34141
- change: function ($event) {
34142
- return _vm.onChangeDatePicker()
34143
- },
34520
+ "v-menu",
34521
+ {
34522
+ directives: [
34523
+ {
34524
+ name: "show",
34525
+ rawName: "v-show",
34526
+ value: _vm.instance.isVisible,
34527
+ expression: "instance.isVisible",
34144
34528
  },
34145
- model: {
34146
- value: _vm.instance.isoValue,
34147
- callback: function ($$v) {
34148
- _vm.$set(_vm.instance, "isoValue", $$v);
34529
+ ],
34530
+ staticClass: "zd-date-menu-activator",
34531
+ attrs: {
34532
+ id: _vm.instance.name,
34533
+ "offset-overflow": "",
34534
+ "offset-y": "",
34535
+ "min-width": _vm.instance.width,
34536
+ transition: "scale-transition",
34537
+ disabled: _vm.instance.disabled || _vm.instance.readonly,
34538
+ "close-on-content-click": false,
34539
+ },
34540
+ scopedSlots: _vm._u([
34541
+ {
34542
+ key: "activator",
34543
+ fn: function (ref) {
34544
+ var on = ref.on;
34545
+ return [
34546
+ _c("zd-text-input", {
34547
+ ref: "instance",
34548
+ attrs: {
34549
+ name: _vm.instance.name + "_text-input",
34550
+ mask: _vm.getDateMask,
34551
+ "instance-object": _vm.instance,
34552
+ events: _vm.getEvents(on),
34553
+ autofill: false,
34554
+ },
34555
+ }),
34556
+ ]
34149
34557
  },
34150
- expression: "instance.isoValue",
34151
34558
  },
34559
+ ]),
34560
+ model: {
34561
+ value: _vm.instance.showDatePicker,
34562
+ callback: function ($$v) {
34563
+ _vm.$set(_vm.instance, "showDatePicker", $$v);
34564
+ },
34565
+ expression: "instance.showDatePicker",
34152
34566
  },
34153
- "v-date-picker",
34154
- {
34155
- allowedDates: _vm.getAllowedDates,
34156
- color: _vm.instance.color,
34157
- dark: _vm.instance.dark,
34158
- firstDayOfWeek: _vm.instance.firstDayOfWeek,
34159
- fullWidth: _vm.instance.fullWidth,
34160
- light: _vm.instance.light,
34161
- locale: _vm.instance.locale,
34162
- scrollable: _vm.instance.scrollable,
34163
- showDatePicker: _vm.instance.showDatePicker,
34164
- showWeek: _vm.instance.showWeek,
34165
- type: _vm.instance.pickerType,
34166
- width: _vm.instance.width,
34167
- },
34168
- false
34169
- )
34567
+ },
34568
+ [
34569
+ _vm._v(" "),
34570
+ _c(
34571
+ "v-date-picker",
34572
+ _vm._b(
34573
+ {
34574
+ directives: [
34575
+ {
34576
+ name: "show",
34577
+ rawName: "v-show",
34578
+ value: _vm.instance.isVisible,
34579
+ expression: "instance.isVisible",
34580
+ },
34581
+ ],
34582
+ ref: "picker",
34583
+ attrs: { "no-title": "" },
34584
+ on: {
34585
+ "hook:mounted": _vm.pickerMounted,
34586
+ "hook:destroyed": _vm.pickerDestroyed,
34587
+ "click:date": _vm.onSelectDate,
34588
+ change: function ($event) {
34589
+ return _vm.onChangeDatePicker()
34590
+ },
34591
+ },
34592
+ model: {
34593
+ value: _vm.instance.isoValue,
34594
+ callback: function ($$v) {
34595
+ _vm.$set(_vm.instance, "isoValue", $$v);
34596
+ },
34597
+ expression: "instance.isoValue",
34598
+ },
34599
+ },
34600
+ "v-date-picker",
34601
+ {
34602
+ allowedDates: _vm.getAllowedDates,
34603
+ color: _vm.instance.color,
34604
+ dark: _vm.instance.dark,
34605
+ firstDayOfWeek: _vm.instance.firstDayOfWeek,
34606
+ fullWidth: _vm.instance.fullWidth,
34607
+ light: _vm.instance.light,
34608
+ locale: _vm.instance.locale,
34609
+ scrollable: _vm.instance.scrollable,
34610
+ showDatePicker: _vm.instance.showDatePicker,
34611
+ showWeek: _vm.instance.showWeek,
34612
+ type: _vm.instance.pickerType,
34613
+ width: _vm.instance.width,
34614
+ },
34615
+ false
34616
+ )
34617
+ ),
34618
+ ],
34619
+ 1
34170
34620
  ),
34621
+ _vm._v(" "),
34622
+ _vm.instance.helperOptions && _vm.instance.helperOptions.length
34623
+ ? _c(
34624
+ "zd-dropdown",
34625
+ {
34626
+ attrs: {
34627
+ name: _vm.instance.name + "_helperdropdown",
34628
+ "offset-y": "",
34629
+ activator: {
34630
+ name: _vm.instance.name + "_helperbutton",
34631
+ component: "ZdButton",
34632
+ iconName: "magnify",
34633
+ icon: true,
34634
+ small: true,
34635
+ cssClass:
34636
+ "date-helper-values-button " +
34637
+ (_vm.instance.showLabel !== false ? "with-label" : ""),
34638
+ },
34639
+ },
34640
+ },
34641
+ _vm._l(_vm.instance.helperOptions, function (value) {
34642
+ return _c("zd-text", {
34643
+ key: value,
34644
+ attrs: {
34645
+ name: _vm.instance.name + "_helpervalue_" + value,
34646
+ cssClass: "date-helper-values-option zd-dropdown-component",
34647
+ text: _vm.getLabel(value),
34648
+ events: {
34649
+ click: _vm.helperValuesOptionClick,
34650
+ },
34651
+ },
34652
+ })
34653
+ }),
34654
+ 1
34655
+ )
34656
+ : _vm._e(),
34171
34657
  ],
34172
34658
  1
34173
34659
  )
@@ -34178,7 +34664,7 @@ __vue_render__$14._withStripped = true;
34178
34664
  /* style */
34179
34665
  const __vue_inject_styles__$14 = function (inject) {
34180
34666
  if (!inject) return
34181
- inject("data-v-0b715682_0", { source: "div.v-picker--date .v-picker__body {\n background: transparent;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header {\n padding: var(--spacing-2) var(--spacing-4) var(--spacing-1) var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) > div {\n color: var(--zd-primary-base) !important;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) > div button:not(:hover):not(:focus) {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header button.v-btn {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-btn--icon {\n height: var(--icon-size);\n width: var(--icon-size);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value button {\n padding: 0;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table {\n margin-bottom: 12px;\n padding: 0 var(--spacing-4);\n height: 200px;\n margin-bottom: var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table .v-btn.v-btn--active {\n color: var(--v-secondary-lighten4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--date .v-btn {\n width: 24px;\n height: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month {\n padding-top: var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month .v-btn {\n padding: 4px 0 7px 0;\n height: 24px;\n width: 56px;\n min-width: 56px;\n border-radius: var(--border);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month td {\n height: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month tr:not(:last-child) td {\n padding-bottom: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table thead th {\n color: var(--zd-font-disabled-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn.accent--text {\n color: var(--zd-primary-base) !important;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn.accent {\n background: var(--zd-primary-base) !important;\n color: white !important;\n}\ndiv.v-picker--date .v-picker__body ul.v-date-picker-years li {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body ul.v-date-picker-years li.primary--text {\n color: var(--zd-primary-base) !important;\n}\n.zd-date-menu-activator .v-menu__activator.v-menu__activator--disabled {\n cursor: default;\n}", map: undefined, media: undefined });
34667
+ inject("data-v-5275ad42_0", { source: "div.v-picker--date .v-picker__body {\n background: transparent;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header {\n padding: var(--spacing-2) var(--spacing-4) var(--spacing-1) var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) > div {\n color: var(--zd-primary-base) !important;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) > div button:not(:hover):not(:focus) {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header button.v-btn {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-btn--icon {\n height: var(--icon-size);\n width: var(--icon-size);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value button {\n padding: 0;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table {\n margin-bottom: 12px;\n padding: 0 var(--spacing-4);\n height: 200px;\n margin-bottom: var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table .v-btn.v-btn--active {\n color: var(--v-secondary-lighten4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--date .v-btn {\n width: 24px;\n height: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month {\n padding-top: var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month .v-btn {\n padding: 4px 0 7px 0;\n height: 24px;\n width: 56px;\n min-width: 56px;\n border-radius: var(--border);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month td {\n height: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month tr:not(:last-child) td {\n padding-bottom: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table thead th {\n color: var(--zd-font-disabled-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn.accent--text {\n color: var(--zd-primary-base) !important;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn.accent {\n background: var(--zd-primary-base) !important;\n color: white !important;\n}\ndiv.v-picker--date .v-picker__body ul.v-date-picker-years li {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body ul.v-date-picker-years li.primary--text {\n color: var(--zd-primary-base) !important;\n}\n.zd-date-menu-activator .v-menu__activator.v-menu__activator--disabled {\n cursor: default;\n}\n.date-helper-values-button {\n height: 24px !important;\n margin-left: 5px;\n margin-top: 0;\n}\n.date-helper-values-button.with-label {\n margin-top: 20px;\n}\n.date-helper-values-option {\n cursor: pointer;\n}\n.date-helper-values-option:hover {\n background-color: rgba(0, 0, 0, 0.03);\n}", map: undefined, media: undefined });
34182
34668
 
34183
34669
  };
34184
34670
  /* scoped */
@@ -34325,6 +34811,18 @@ let ZdDateRange = class ZdDateRange extends __vue_component__$18 {
34325
34811
  get getDateMask() {
34326
34812
  return this.instance.updateMask();
34327
34813
  }
34814
+ helperValuesOptionClick({ component }) {
34815
+ const helper = component.name.split('_helpervalue_')[1];
34816
+ const value = DateHelper.getValue(helper, this.instance.dateFormat);
34817
+ this.instance.value = value;
34818
+ this.instance.helperValue = helper;
34819
+ this.instance.change(undefined, this.$el);
34820
+ this.instance.helperValue = helper; // o change remove o valor, por isso precisa adicionar novamente
34821
+ this.instance.updateHelperHint();
34822
+ }
34823
+ getLabel(name) {
34824
+ return DateHelper.getLabel(name);
34825
+ }
34328
34826
  };
34329
34827
  __decorate([
34330
34828
  PropWatch({ type: String, default: 'calendar' }),
@@ -34402,6 +34900,14 @@ __decorate([
34402
34900
  PropWatch({ type: String }),
34403
34901
  __metadata("design:type", Object)
34404
34902
  ], ZdDateRange.prototype, "inputFormat", void 0);
34903
+ __decorate([
34904
+ PropWatch({ type: [String, Array], default: () => [] }),
34905
+ __metadata("design:type", Object)
34906
+ ], ZdDateRange.prototype, "helperOptions", void 0);
34907
+ __decorate([
34908
+ PropWatch({ type: String, default: '' }),
34909
+ __metadata("design:type", String)
34910
+ ], ZdDateRange.prototype, "helperValue", void 0);
34405
34911
  ZdDateRange = __decorate([
34406
34912
  Component
34407
34913
  ], ZdDateRange);
@@ -34416,102 +34922,153 @@ var __vue_render__$13 = function () {
34416
34922
  var _h = _vm.$createElement;
34417
34923
  var _c = _vm._self._c || _h;
34418
34924
  return _c(
34419
- "v-menu",
34925
+ "zd-tag",
34420
34926
  {
34421
- directives: [
34422
- {
34423
- name: "show",
34424
- rawName: "v-show",
34425
- value: _vm.instance.isVisible,
34426
- expression: "instance.isVisible",
34427
- },
34428
- ],
34429
- staticClass: "zd-date-menu-activator",
34430
34927
  attrs: {
34431
- id: _vm.instance.name,
34432
- "offset-overflow": "",
34433
- "offset-y": "",
34434
- "min-width": _vm.instance.width,
34435
- transition: "scale-transition",
34436
- disabled: _vm.instance.disabled || _vm.instance.readonly,
34437
- "close-on-content-click": false,
34438
- },
34439
- scopedSlots: _vm._u([
34440
- {
34441
- key: "activator",
34442
- fn: function (ref) {
34443
- var on = ref.on;
34444
- return [
34445
- _c("zd-text-input", {
34446
- ref: "instance",
34447
- attrs: {
34448
- name: _vm.instance.name + "_text-input",
34449
- mask: _vm.getDateMask,
34450
- "instance-object": _vm.instance,
34451
- events: _vm.getEvents(on),
34452
- autofill: false,
34453
- },
34454
- }),
34455
- ]
34456
- },
34457
- },
34458
- ]),
34459
- model: {
34460
- value: _vm.instance.showDatePicker,
34461
- callback: function ($$v) {
34462
- _vm.$set(_vm.instance, "showDatePicker", $$v);
34463
- },
34464
- expression: "instance.showDatePicker",
34928
+ name: _vm.instance.name + "_helperspan",
34929
+ tag: "span",
34930
+ cssClass: "zd-display-flex",
34931
+ grid: _vm.instance.grid,
34465
34932
  },
34466
34933
  },
34467
34934
  [
34468
- _vm._v(" "),
34469
34935
  _c(
34470
- "v-date-picker",
34471
- _vm._b(
34472
- {
34473
- directives: [
34474
- {
34475
- name: "show",
34476
- rawName: "v-show",
34477
- value: _vm.instance.isVisible,
34478
- expression: "instance.isVisible",
34479
- },
34480
- ],
34481
- ref: "picker",
34482
- attrs: { "no-title": "", range: "" },
34483
- on: {
34484
- "hook:mounted": _vm.pickerMounted,
34485
- "hook:destroyed": _vm.pickerDestroyed,
34486
- change: function ($event) {
34487
- return _vm.onChangeDatePicker()
34488
- },
34936
+ "v-menu",
34937
+ {
34938
+ directives: [
34939
+ {
34940
+ name: "show",
34941
+ rawName: "v-show",
34942
+ value: _vm.instance.isVisible,
34943
+ expression: "instance.isVisible",
34489
34944
  },
34490
- model: {
34491
- value: _vm.instance.isoRangeValue,
34492
- callback: function ($$v) {
34493
- _vm.$set(_vm.instance, "isoRangeValue", $$v);
34945
+ ],
34946
+ staticClass: "zd-date-menu-activator",
34947
+ attrs: {
34948
+ id: _vm.instance.name,
34949
+ "offset-overflow": "",
34950
+ "offset-y": "",
34951
+ "min-width": _vm.instance.width,
34952
+ transition: "scale-transition",
34953
+ disabled: _vm.instance.disabled || _vm.instance.readonly,
34954
+ "close-on-content-click": false,
34955
+ },
34956
+ scopedSlots: _vm._u([
34957
+ {
34958
+ key: "activator",
34959
+ fn: function (ref) {
34960
+ var on = ref.on;
34961
+ return [
34962
+ _c("zd-text-input", {
34963
+ ref: "instance",
34964
+ attrs: {
34965
+ name: _vm.instance.name + "_text-input",
34966
+ mask: _vm.getDateMask,
34967
+ "instance-object": _vm.instance,
34968
+ events: _vm.getEvents(on),
34969
+ autofill: false,
34970
+ },
34971
+ }),
34972
+ ]
34494
34973
  },
34495
- expression: "instance.isoRangeValue",
34496
34974
  },
34975
+ ]),
34976
+ model: {
34977
+ value: _vm.instance.showDatePicker,
34978
+ callback: function ($$v) {
34979
+ _vm.$set(_vm.instance, "showDatePicker", $$v);
34980
+ },
34981
+ expression: "instance.showDatePicker",
34497
34982
  },
34498
- "v-date-picker",
34499
- {
34500
- color: _vm.instance.color,
34501
- dark: _vm.instance.dark,
34502
- firstDayOfWeek: _vm.instance.firstDayOfWeek,
34503
- fullWidth: _vm.instance.fullWidth,
34504
- light: _vm.instance.light,
34505
- locale: _vm.instance.locale,
34506
- scrollable: _vm.instance.scrollable,
34507
- showDatePicker: _vm.instance.showDatePicker,
34508
- showWeek: _vm.instance.showWeek,
34509
- type: _vm.instance.pickerType,
34510
- width: _vm.instance.width,
34511
- },
34512
- false
34513
- )
34983
+ },
34984
+ [
34985
+ _vm._v(" "),
34986
+ _c(
34987
+ "v-date-picker",
34988
+ _vm._b(
34989
+ {
34990
+ directives: [
34991
+ {
34992
+ name: "show",
34993
+ rawName: "v-show",
34994
+ value: _vm.instance.isVisible,
34995
+ expression: "instance.isVisible",
34996
+ },
34997
+ ],
34998
+ ref: "picker",
34999
+ attrs: { "no-title": "", range: "" },
35000
+ on: {
35001
+ "hook:mounted": _vm.pickerMounted,
35002
+ "hook:destroyed": _vm.pickerDestroyed,
35003
+ change: function ($event) {
35004
+ return _vm.onChangeDatePicker()
35005
+ },
35006
+ },
35007
+ model: {
35008
+ value: _vm.instance.isoRangeValue,
35009
+ callback: function ($$v) {
35010
+ _vm.$set(_vm.instance, "isoRangeValue", $$v);
35011
+ },
35012
+ expression: "instance.isoRangeValue",
35013
+ },
35014
+ },
35015
+ "v-date-picker",
35016
+ {
35017
+ color: _vm.instance.color,
35018
+ dark: _vm.instance.dark,
35019
+ firstDayOfWeek: _vm.instance.firstDayOfWeek,
35020
+ fullWidth: _vm.instance.fullWidth,
35021
+ light: _vm.instance.light,
35022
+ locale: _vm.instance.locale,
35023
+ scrollable: _vm.instance.scrollable,
35024
+ showDatePicker: _vm.instance.showDatePicker,
35025
+ showWeek: _vm.instance.showWeek,
35026
+ type: _vm.instance.pickerType,
35027
+ width: _vm.instance.width,
35028
+ },
35029
+ false
35030
+ )
35031
+ ),
35032
+ ],
35033
+ 1
34514
35034
  ),
35035
+ _vm._v(" "),
35036
+ _vm.instance.helperOptions && _vm.instance.helperOptions.length
35037
+ ? _c(
35038
+ "zd-dropdown",
35039
+ {
35040
+ attrs: {
35041
+ name: _vm.instance.name + "_helperdropdown",
35042
+ "offset-y": "",
35043
+ activator: {
35044
+ name: _vm.instance.name + "_helperbutton",
35045
+ component: "ZdButton",
35046
+ iconName: "magnify",
35047
+ icon: true,
35048
+ small: true,
35049
+ cssClass:
35050
+ "date-range-helper-values-button " +
35051
+ (_vm.instance.showLabel !== false ? "with-label" : ""),
35052
+ },
35053
+ },
35054
+ },
35055
+ _vm._l(_vm.instance.helperOptions, function (value) {
35056
+ return _c("zd-text", {
35057
+ key: value,
35058
+ attrs: {
35059
+ name: _vm.instance.name + "_helpervalue_" + value,
35060
+ cssClass:
35061
+ "date-range-helper-values-option zd-dropdown-component",
35062
+ text: _vm.getLabel(value),
35063
+ events: {
35064
+ click: _vm.helperValuesOptionClick,
35065
+ },
35066
+ },
35067
+ })
35068
+ }),
35069
+ 1
35070
+ )
35071
+ : _vm._e(),
34515
35072
  ],
34516
35073
  1
34517
35074
  )
@@ -34522,7 +35079,7 @@ __vue_render__$13._withStripped = true;
34522
35079
  /* style */
34523
35080
  const __vue_inject_styles__$13 = function (inject) {
34524
35081
  if (!inject) return
34525
- inject("data-v-cff9acb0_0", { source: "div.v-picker--date .v-picker__body {\n background: transparent;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header {\n padding: var(--spacing-2) var(--spacing-4) var(--spacing-1) var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) > div {\n color: var(--zd-primary-base) !important;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) > div button:not(:hover):not(:focus) {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header button.v-btn {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-btn--icon {\n height: var(--icon-size);\n width: var(--icon-size);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value button {\n padding: 0;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table {\n margin-bottom: 12px;\n padding: 0 var(--spacing-4);\n height: 200px;\n margin-bottom: var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table .v-btn.v-btn--active {\n color: var(--v-secondary-lighten4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--date .v-btn {\n width: 24px;\n height: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month {\n padding-top: var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month .v-btn {\n padding: 4px 0 7px 0;\n height: 24px;\n width: 56px;\n min-width: 56px;\n border-radius: var(--border);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month td {\n height: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month tr:not(:last-child) td {\n padding-bottom: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table thead th {\n color: var(--zd-font-disabled-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn.accent--text {\n color: var(--zd-primary-base) !important;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn.accent {\n background: var(--zd-primary-base) !important;\n color: white !important;\n}\ndiv.v-picker--date .v-picker__body ul.v-date-picker-years li {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body ul.v-date-picker-years li.primary--text {\n color: var(--zd-primary-base) !important;\n}\n.zd-date-menu-activator .v-menu__activator.v-menu__activator--disabled {\n cursor: default;\n}", map: undefined, media: undefined });
35082
+ inject("data-v-1ca32689_0", { source: "div.v-picker--date .v-picker__body {\n background: transparent;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header {\n padding: var(--spacing-2) var(--spacing-4) var(--spacing-1) var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) > div {\n color: var(--zd-primary-base) !important;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) > div button:not(:hover):not(:focus) {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header button.v-btn {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-btn--icon {\n height: var(--icon-size);\n width: var(--icon-size);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-header .v-date-picker-header__value button {\n padding: 0;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table {\n margin-bottom: 12px;\n padding: 0 var(--spacing-4);\n height: 200px;\n margin-bottom: var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table .v-btn.v-btn--active {\n color: var(--v-secondary-lighten4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--date .v-btn {\n width: 24px;\n height: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month {\n padding-top: var(--spacing-4);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month .v-btn {\n padding: 4px 0 7px 0;\n height: 24px;\n width: 56px;\n min-width: 56px;\n border-radius: var(--border);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month td {\n height: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table.v-date-picker-table--month tr:not(:last-child) td {\n padding-bottom: 24px;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table thead th {\n color: var(--zd-font-disabled-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn.accent--text {\n color: var(--zd-primary-base) !important;\n}\ndiv.v-picker--date .v-picker__body .v-date-picker-table table tbody button.v-btn.accent {\n background: var(--zd-primary-base) !important;\n color: white !important;\n}\ndiv.v-picker--date .v-picker__body ul.v-date-picker-years li {\n color: var(--zd-font-default-color);\n}\ndiv.v-picker--date .v-picker__body ul.v-date-picker-years li.primary--text {\n color: var(--zd-primary-base) !important;\n}\n.zd-date-menu-activator .v-menu__activator.v-menu__activator--disabled {\n cursor: default;\n}\n.date-range-helper-values-button {\n height: 24px !important;\n margin-left: 5px;\n margin-top: 0;\n}\n.date-range-helper-values-button.with-label {\n margin-top: 20px;\n}\n.date-range-helper-values-option {\n cursor: pointer;\n}\n.date-range-helper-values-option:hover {\n background-color: rgba(0, 0, 0, 0.03);\n}", map: undefined, media: undefined });
34526
35083
 
34527
35084
  };
34528
35085
  /* scoped */
@@ -40221,7 +40778,7 @@ let ZdSelect = class ZdSelect extends __vue_component__$18 {
40221
40778
  this.originalOnScroll(event);
40222
40779
  if (this.instance.datasource.loadAll)
40223
40780
  return;
40224
- if (this.instance.datasource.data.length === this.instance.datasource.total)
40781
+ if (!this.instance.showLoadMore())
40225
40782
  return;
40226
40783
  const elem = event.target;
40227
40784
  if (!elem)
@@ -40289,7 +40846,7 @@ let ZdSelect = class ZdSelect extends __vue_component__$18 {
40289
40846
  if (!this.componentRef || !this.componentRef.updateMenuDimensions)
40290
40847
  return;
40291
40848
  // Update menu position
40292
- this.componentRef.updateMenuDimensions();
40849
+ this.$nextTick(this.componentRef.updateMenuDimensions);
40293
40850
  }
40294
40851
  };
40295
40852
  __decorate([
@@ -40610,14 +41167,6 @@ var __vue_render__$K = function () {
40610
41167
  _c(
40611
41168
  "div",
40612
41169
  {
40613
- directives: [
40614
- {
40615
- name: "show",
40616
- rawName: "v-show",
40617
- value: _vm.instance.showLoadMore(),
40618
- expression: "instance.showLoadMore()",
40619
- },
40620
- ],
40621
41170
  staticClass: "zd-select-append-item",
40622
41171
  on: {
40623
41172
  mousedown: function ($event) {
@@ -40665,7 +41214,7 @@ __vue_render__$K._withStripped = true;
40665
41214
  /* style */
40666
41215
  const __vue_inject_styles__$K = function (inject) {
40667
41216
  if (!inject) return
40668
- inject("data-v-52fccbb0_0", { source: ".zd-select .v-input__control .v-input__slot .v-select__slot {\n position: static;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-top: 5px;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-inner, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-inner {\n padding-left: 0;\n padding-right: 0;\n}\n.zd-select.zd-select-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.zd-select.zd-select-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.zd-select.zd-select-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}\n.zd-select .v-select__selections {\n padding: 0;\n width: 172px;\n overflow: hidden;\n white-space: nowrap;\n flex-wrap: nowrap;\n text-overflow: ellipsis;\n}\n.zd-select .v-select__selections .v-select__selection {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n color: var(--zd-font-color);\n margin: 0;\n max-width: none;\n}\n.zd-select .v-select__selections .v-select__selection--disabled {\n opacity: 0.5;\n}\n.zd-select.zd-dense .v-input__append-inner, .zd-select.zd-dense .v-input__prepend-inner {\n margin-top: 0;\n}\n.zd-select-append-item .v-list-item__content {\n font-size: var(--zd-font-body2-size);\n font-weight: var(--zd-font-body2-size);\n color: var(--v-primary-base);\n}\n.v-menu__content.zd-select-menu {\n box-shadow: var(--shadow-2);\n}\n.v-menu__content.zd-select-menu .v-select-list {\n padding: 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item {\n height: auto;\n min-height: 40px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__content {\n padding: var(--spacing-2) 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item:not(.theme--dark) {\n color: var(--zd-font-color);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__title {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n height: auto;\n line-height: unset;\n white-space: unset;\n overflow: auto;\n text-overflow: unset;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled .v-list-item__title {\n opacity: 0.5;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled.primary--text .v-list-item__title {\n color: inherit;\n}\n.v-menu__content.zd-select-menu.zd-dense .v-list-item {\n height: auto;\n min-height: 24px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu.zd-select-align-left .v-list-item__content .v-list-item__title {\n text-align: left;\n}\n.v-menu__content.zd-select-menu.zd-select-align-center .v-list-item__content .v-list-item__title {\n text-align: center;\n}\n.v-menu__content.zd-select-menu.zd-select-align-right .v-list-item__content .v-list-item__title {\n text-align: right;\n}", map: undefined, media: undefined });
41217
+ inject("data-v-b1b2a69a_0", { source: ".zd-select .v-input__control .v-input__slot .v-select__slot {\n position: static;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer {\n margin-right: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-left: var(--spacing-1);\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-outer, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-outer {\n margin-top: 5px;\n}\n.zd-select .v-input__control .v-input__slot .v-select__slot .v-input__append-inner, .zd-select .v-input__control .v-input__slot .v-select__slot .v-input__prepend-inner {\n padding-left: 0;\n padding-right: 0;\n}\n.zd-select.zd-select-align-left > .v-input__control > .v-input__slot input {\n text-align: left;\n}\n.zd-select.zd-select-align-center > .v-input__control > .v-input__slot input {\n text-align: center;\n}\n.zd-select.zd-select-align-right > .v-input__control > .v-input__slot input {\n text-align: right;\n}\n.zd-select .v-select__selections {\n padding: 0;\n width: 172px;\n overflow: hidden;\n white-space: nowrap;\n flex-wrap: nowrap;\n text-overflow: ellipsis;\n}\n.zd-select .v-select__selections .v-select__selection {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n color: var(--zd-font-color);\n margin: 0;\n max-width: none;\n}\n.zd-select .v-select__selections .v-select__selection--disabled {\n opacity: 0.5;\n}\n.zd-select.zd-dense .v-input__append-inner, .zd-select.zd-dense .v-input__prepend-inner {\n margin-top: 0;\n}\n.zd-select-append-item .v-list-item__content {\n font-size: var(--zd-font-body2-size);\n font-weight: var(--zd-font-body2-size);\n color: var(--v-primary-base);\n}\n.v-menu__content.zd-select-menu {\n box-shadow: var(--shadow-2);\n}\n.v-menu__content.zd-select-menu .v-select-list {\n padding: 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item {\n height: auto;\n min-height: 40px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__content {\n padding: var(--spacing-2) 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item:not(.theme--dark) {\n color: var(--zd-font-color);\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item__title {\n font-size: var(--zd-font-body1-size);\n font-weight: var(--zd-font-body1-weight);\n height: auto;\n line-height: unset;\n white-space: unset;\n overflow: auto;\n text-overflow: unset;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled .v-list-item__title {\n opacity: 0.5;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item.v-list-item--disabled.primary--text .v-list-item__title {\n color: inherit;\n}\n.v-menu__content.zd-select-menu.zd-dense .v-list-item {\n height: auto;\n min-height: 24px;\n padding: 0 var(--spacing-4);\n}\n.v-menu__content.zd-select-menu.zd-select-align-left .v-list-item__content .v-list-item__title {\n text-align: left;\n}\n.v-menu__content.zd-select-menu.zd-select-align-center .v-list-item__content .v-list-item__title {\n text-align: center;\n}\n.v-menu__content.zd-select-menu.zd-select-align-right .v-list-item__content .v-list-item__title {\n text-align: right;\n}", map: undefined, media: undefined });
40669
41218
 
40670
41219
  };
40671
41220
  /* scoped */
@@ -42158,10 +42707,7 @@ let ZdMenu = class ZdMenu extends ZdComponentRender$1 {
42158
42707
  KeyMap.unbind(this.navigationKeyMapping, this);
42159
42708
  }
42160
42709
  showSlotOnHover() {
42161
- if (this.instance.miniState && this.$children.length >= 2 && this.$children[1].$el.matches(':hover')) {
42162
- return this.instance.miniState;
42163
- }
42164
- return !this.instance.miniState;
42710
+ return (this.instance.miniState && this.instance.mouseOver) || (!this.instance.miniState || this.instance.mini);
42165
42711
  }
42166
42712
  doSearch({ component }) {
42167
42713
  this.instance.search = component.value;
@@ -42414,11 +42960,13 @@ var __vue_render__$z = function () {
42414
42960
  floating: _vm.instance.floating,
42415
42961
  "mini-variant-width": _vm.instance.miniWidth,
42416
42962
  "mini-variant":
42417
- (_vm.instance.mini ||
42418
- (_vm.instance.miniState &&
42419
- _vm.$refs.ZdMenu &&
42420
- !_vm.$refs.ZdMenu.isMobile)) &&
42421
- !_vm.instance.mouseOver,
42963
+ (!_vm.instance.opened && _vm.instance.mini) ||
42964
+ (_vm.instance.miniState &&
42965
+ !_vm.instance.mouseOver &&
42966
+ _vm.instance.miniState &&
42967
+ _vm.$refs.ZdMenu &&
42968
+ !_vm.$refs.ZdMenu.isMobile) ||
42969
+ (_vm.instance.miniState && _vm.instance.mini),
42422
42970
  "mobile-breakpoint": _vm.instance.mobileBreakpoint,
42423
42971
  temporary: _vm.instance.temporary,
42424
42972
  width: _vm.instance.width,
@@ -42521,7 +43069,7 @@ __vue_render__$z._withStripped = true;
42521
43069
  /* style */
42522
43070
  const __vue_inject_styles__$z = function (inject) {
42523
43071
  if (!inject) return
42524
- inject("data-v-368f7c97_0", { source: ".zd-menu .v-list .v-list-item .v-list-item__title {\n font-weight: var(--zd-font-body1-weight);\n font-size: var(--zd-font-body1-size);\n color: var(--zd-font-color);\n text-align: left;\n}\n.zd-menu .v-list .v-list-item .v-list-item__icon .v-icon {\n color: var(--zd-font-color);\n}\n.zd-menu .v-list .v-list-item.selected .v-list-item__title {\n font-weight: var(--zd-font-body2-weight);\n color: var(--v-primary-base);\n}\n.zd-menu .v-list .v-list-item.selected .v-list-item__icon .v-icon {\n color: var(--v-primary-base);\n}\n.zd-menu .v-list .v-list-item.v-list-item--active:not(.focus-visible):not(:focus):not([data-focus-visible-added]):not(:hover):before {\n opacity: 0;\n}\n.zd-menu .v-list .v-list-group.selected > .v-list-group__header .v-list-item__title {\n font-weight: var(--zd-font-body2-weight);\n color: var(--v-primary-base);\n}\n.zd-menu .v-list .v-list-group.selected > .v-list-group__header .v-list-item__icon .v-icon {\n color: var(--v-primary-base);\n}\n.zd-menu .v-list .zd-menu-top-slot {\n margin-bottom: 10px;\n display: block;\n}\n.zd-menu.v-navigation-drawer--mini-variant .v-list-item {\n justify-content: inherit;\n}\n.zd-menu.v-navigation-drawer--is-mobile div > .zd-menu-top-slot {\n display: block !important;\n}\n.zd-menu.theme--dark .v-list .v-list-item .v-list-item__title {\n color: var(--v--grey-lighten5);\n}\n.zd-menu.theme--dark .v-list .v-list-item .v-list-item__icon .v-icon {\n color: var(--v--grey-lighten5);\n}", map: undefined, media: undefined });
43072
+ inject("data-v-13b6f89c_0", { source: ".zd-menu .v-list .v-list-item .v-list-item__title {\n font-weight: var(--zd-font-body1-weight);\n font-size: var(--zd-font-body1-size);\n color: var(--zd-font-color);\n text-align: left;\n}\n.zd-menu .v-list .v-list-item .v-list-item__icon .v-icon {\n color: var(--zd-font-color);\n}\n.zd-menu .v-list .v-list-item.selected .v-list-item__title {\n font-weight: var(--zd-font-body2-weight);\n color: var(--v-primary-base);\n}\n.zd-menu .v-list .v-list-item.selected .v-list-item__icon .v-icon {\n color: var(--v-primary-base);\n}\n.zd-menu .v-list .v-list-item.v-list-item--active:not(.focus-visible):not(:focus):not([data-focus-visible-added]):not(:hover):before {\n opacity: 0;\n}\n.zd-menu .v-list .v-list-group.selected > .v-list-group__header .v-list-item__title {\n font-weight: var(--zd-font-body2-weight);\n color: var(--v-primary-base);\n}\n.zd-menu .v-list .v-list-group.selected > .v-list-group__header .v-list-item__icon .v-icon {\n color: var(--v-primary-base);\n}\n.zd-menu .v-list .zd-menu-top-slot {\n margin-bottom: 10px;\n display: block;\n}\n.zd-menu.v-navigation-drawer--mini-variant .v-list-item {\n justify-content: inherit;\n}\n.zd-menu.v-navigation-drawer--is-mobile div > .zd-menu-top-slot {\n display: block !important;\n}\n.zd-menu.theme--dark .v-list .v-list-item .v-list-item__title {\n color: var(--v--grey-lighten5);\n}\n.zd-menu.theme--dark .v-list .v-list-item .v-list-item__icon .v-icon {\n color: var(--v--grey-lighten5);\n}", map: undefined, media: undefined });
42525
43073
 
42526
43074
  };
42527
43075
  /* scoped */
@@ -44462,56 +45010,63 @@ let ZdSelectMultiple = class ZdSelectMultiple extends __vue_component__$K {
44462
45010
  constructor() {
44463
45011
  super(...arguments);
44464
45012
  this.instanceType = SelectMultiple;
44465
- this.oneLineMode = true;
45013
+ this.expandedMode = false;
45014
+ this.rows = 1;
44466
45015
  this.lastDisplayedChip = 0;
44467
45016
  this.allSelected = false;
45017
+ this.hasHiddenRows = false;
45018
+ }
45019
+ get maxRowsNumber() {
45020
+ return Number(this.instance.maxRows || Infinity);
44468
45021
  }
44469
45022
  mounted() {
44470
45023
  this.componentRef = this.$refs.instance;
44471
45024
  this.element = this.componentRef.$el;
44472
- this.initialHeight = this.element.offsetHeight;
44473
45025
  this.listener = () => this.handleResize();
44474
45026
  window.addEventListener('resize', this.listener);
44475
- if (this.value) {
44476
- this.unwatchValue = this.$watch('instance.value', this.onValueChange);
44477
- }
45027
+ this.initialHeight = this.element.offsetHeight;
45028
+ }
45029
+ onValueChange() {
45030
+ if (this.componentRef.isFocused)
45031
+ return;
45032
+ this.refreshDisplay();
44478
45033
  }
44479
45034
  beforeDestroy() {
44480
45035
  window.removeEventListener('resize', this.listener);
44481
45036
  }
44482
- onValueChange() {
44483
- const prevMode = this.oneLineMode;
44484
- this.oneLineMode = false;
44485
- this.$nextTick(() => {
44486
- this.calcDisplay(true);
44487
- this.oneLineMode = prevMode;
45037
+ initChipConfig() {
45038
+ this.refreshDisplay(() => {
45039
+ this.$nextTick(() => {
45040
+ this.initialHeight = this.element.offsetHeight;
45041
+ });
44488
45042
  if (this.componentRef.isFocused) {
44489
45043
  this.updateMenu();
44490
45044
  }
44491
45045
  });
44492
- this.unwatchValue();
44493
45046
  }
44494
45047
  calcDisplay(force = false) {
44495
45048
  var _a;
44496
45049
  const chips = this.getChips();
44497
- if (chips.length > 0) {
44498
- if (this.element.offsetHeight > this.initialHeight || force) {
44499
- this.lastDisplayedChip = this.getLastChipIndex(chips);
44500
- }
44501
- else {
44502
- this.lastDisplayedChip = ((_a = this.instance.value) === null || _a === void 0 ? void 0 : _a.length) || 0;
44503
- }
45050
+ if (chips.length === 0)
45051
+ return;
45052
+ if (this.element.offsetHeight > this.initialHeight || force) {
45053
+ this.lastDisplayedChip = this.getLastChipIndex(chips);
45054
+ return;
44504
45055
  }
45056
+ this.lastDisplayedChip = ((_a = this.instance.value) === null || _a === void 0 ? void 0 : _a.length) || 0;
44505
45057
  }
44506
45058
  getLastChipIndex(chips) {
44507
45059
  let lastIndex = -1;
44508
45060
  let filledWidth = 0;
44509
45061
  const firstChip = chips[0];
44510
- const baseTop = firstChip.offsetTop;
45062
+ let baseTop = firstChip.offsetTop;
44511
45063
  const marginX = this.getMarginX(firstChip);
45064
+ if (!firstChip.parentElement)
45065
+ return 0;
44512
45066
  let inputWidth = firstChip.parentElement.offsetWidth;
44513
45067
  inputWidth -= this.getPaddingX(firstChip.parentElement);
44514
- const hasSecondRow = chips.some((chip, index) => {
45068
+ let rowCount = 1;
45069
+ this.hasHiddenRows = chips.some((chip, index) => {
44515
45070
  if (chip.offsetTop === baseTop) {
44516
45071
  const chipWidth = chip.offsetWidth + marginX;
44517
45072
  filledWidth += chipWidth;
@@ -44520,9 +45075,16 @@ let ZdSelectMultiple = class ZdSelectMultiple extends __vue_component__$K {
44520
45075
  }
44521
45076
  return false;
44522
45077
  }
45078
+ rowCount += 1;
45079
+ if (rowCount <= this.rows) {
45080
+ baseTop = chip.offsetTop;
45081
+ filledWidth = chip.offsetWidth + marginX;
45082
+ lastIndex = index;
45083
+ return false;
45084
+ }
44523
45085
  return true;
44524
45086
  });
44525
- if (!hasSecondRow) {
45087
+ if (!this.hasHiddenRows) {
44526
45088
  lastIndex = this.instance.value.length - 1;
44527
45089
  }
44528
45090
  return lastIndex;
@@ -44552,7 +45114,7 @@ let ZdSelectMultiple = class ZdSelectMultiple extends __vue_component__$K {
44552
45114
  const { input, menu } = this.componentRef.$refs;
44553
45115
  input.focus();
44554
45116
  menu.isActive = !this.instance.readonly && !this.instance.disabled && !menu.isActive;
44555
- this.oneLineMode = !menu.isActive;
45117
+ this.rows = menu.isActive ? this.maxRowsNumber : 1;
44556
45118
  this.$nextTick(() => { this.componentRef.isFocused = true; });
44557
45119
  }
44558
45120
  /**
@@ -44572,20 +45134,18 @@ let ZdSelectMultiple = class ZdSelectMultiple extends __vue_component__$K {
44572
45134
  }
44573
45135
  selectClick(event) {
44574
45136
  const { menu } = this.componentRef.$refs;
44575
- if (!menu.isActive)
44576
- this.oneLineMode = false;
45137
+ if (!menu.isActive) {
45138
+ this.rows = this.maxRowsNumber;
45139
+ if (this.instance.maxRows) {
45140
+ this.$nextTick(() => {
45141
+ this.calcDisplay(true);
45142
+ });
45143
+ }
45144
+ }
44577
45145
  this.instance.click(event, this.$el);
44578
45146
  }
44579
45147
  handleResize() {
44580
- if (this.oneLineMode) {
44581
- this.oneLineMode = false;
44582
- this.$nextTick(() => {
44583
- if (!this.checkOverflow()) {
44584
- this.calcDisplay(true);
44585
- }
44586
- this.oneLineMode = true;
44587
- });
44588
- }
45148
+ this.refreshDisplay();
44589
45149
  }
44590
45150
  get moreItemsText() {
44591
45151
  this.instance.moreChip = this.instance.value.length - this.lastDisplayedChip - 1;
@@ -44594,19 +45154,36 @@ let ZdSelectMultiple = class ZdSelectMultiple extends __vue_component__$K {
44594
45154
  selectChange(value, event) {
44595
45155
  this.instance.selectChange(value.map((item) => item.originalRow), event, this.$el);
44596
45156
  this.changeSelectAllItemsValue();
45157
+ const { menu } = this.componentRef.$refs;
45158
+ if (menu.isActive && this.instance.maxRows) {
45159
+ this.refreshDisplay();
45160
+ }
44597
45161
  }
44598
45162
  selectBlur(event) {
44599
- if (!this.oneLineMode) {
44600
- this.oneLineMode = true;
45163
+ if (this.rows !== 1) {
45164
+ this.rows = 1;
44601
45165
  this.calcDisplay();
44602
45166
  this.$nextTick(() => this.checkOverflow());
44603
45167
  }
44604
45168
  this.superMethods(__vue_component__$K).selectBlur.call(this, event);
44605
45169
  }
44606
45170
  selectFocus(event) {
44607
- this.oneLineMode = false;
45171
+ this.rows = this.maxRowsNumber;
45172
+ this.refreshDisplay();
44608
45173
  this.superMethods(__vue_component__$K).selectFocus.call(this, event);
44609
45174
  }
45175
+ refreshDisplay(cb) {
45176
+ const prevMode = this.expandedMode;
45177
+ this.expandedMode = true;
45178
+ this.$nextTick(() => {
45179
+ this.expandedMode = prevMode;
45180
+ if (!this.checkOverflow()) {
45181
+ this.calcDisplay(true);
45182
+ }
45183
+ if (cb)
45184
+ cb();
45185
+ });
45186
+ }
44610
45187
  onSelectAll(event) {
44611
45188
  this.allSelected = !this.allSelected;
44612
45189
  this.$nextTick(() => {
@@ -44657,6 +45234,16 @@ __decorate([
44657
45234
  PropWatch({ type: [Boolean, String], default: false }),
44658
45235
  __metadata("design:type", Boolean)
44659
45236
  ], ZdSelectMultiple.prototype, "showSelectAll", void 0);
45237
+ __decorate([
45238
+ PropWatch({ type: [String, Number], default: undefined }),
45239
+ __metadata("design:type", Object)
45240
+ ], ZdSelectMultiple.prototype, "maxRows", void 0);
45241
+ __decorate([
45242
+ Watch('instance.value'),
45243
+ __metadata("design:type", Function),
45244
+ __metadata("design:paramtypes", []),
45245
+ __metadata("design:returntype", void 0)
45246
+ ], ZdSelectMultiple.prototype, "onValueChange", null);
44660
45247
  ZdSelectMultiple = __decorate([
44661
45248
  Component$2
44662
45249
  ], ZdSelectMultiple);
@@ -44698,7 +45285,6 @@ var __vue_render__$k = function () {
44698
45285
  ),
44699
45286
  "zd-no-border": !_vm.instance.showBorder,
44700
45287
  "zd-dense": _vm.instance.dense,
44701
- "zd-select-multiple--one-line": _vm.oneLineMode,
44702
45288
  "zd-select-multiple-autocomplete": _vm.instance.autocomplete,
44703
45289
  "zd-input-required": _vm.instance.validations.required,
44704
45290
  },
@@ -44710,7 +45296,6 @@ var __vue_render__$k = function () {
44710
45296
  id: _vm.instance.name,
44711
45297
  "return-object": "",
44712
45298
  "validate-on-blur": "",
44713
- "no-filter": "",
44714
45299
  multiple: "",
44715
45300
  name: _vm.instance.name,
44716
45301
  loading: _vm.instance.datasource.loading,
@@ -44747,6 +45332,7 @@ var __vue_render__$k = function () {
44747
45332
  fixed: true,
44748
45333
  "max-width": _vm.parentWidth,
44749
45334
  closeOnContentClick: false,
45335
+ maxHeight: _vm.instance.menuMaxHeight,
44750
45336
  },
44751
45337
  "search-input": _vm.instance.search,
44752
45338
  "append-icon": _vm.$getIcon(_vm.instance.appendIcon),
@@ -44926,7 +45512,9 @@ var __vue_render__$k = function () {
44926
45512
  key: "selection",
44927
45513
  fn: function (props) {
44928
45514
  return [
44929
- !_vm.oneLineMode || props.index <= _vm.lastDisplayedChip
45515
+ _vm.expandedMode ||
45516
+ !_vm.hasHiddenRows ||
45517
+ props.index <= _vm.lastDisplayedChip
44930
45518
  ? _c(
44931
45519
  "v-chip",
44932
45520
  {
@@ -44950,7 +45538,9 @@ var __vue_render__$k = function () {
44950
45538
  )
44951
45539
  : _vm._e(),
44952
45540
  _vm._v(" "),
44953
- _vm.oneLineMode && props.index === _vm.lastDisplayedChip + 1
45541
+ !_vm.expandedMode &&
45542
+ _vm.hasHiddenRows &&
45543
+ props.index === _vm.lastDisplayedChip + 1
44954
45544
  ? _c("span", { staticClass: "more-items grey--text caption" }, [
44955
45545
  _vm._v(_vm._s(_vm.moreItemsText)),
44956
45546
  ])
@@ -45018,14 +45608,6 @@ var __vue_render__$k = function () {
45018
45608
  _c(
45019
45609
  "div",
45020
45610
  {
45021
- directives: [
45022
- {
45023
- name: "show",
45024
- rawName: "v-show",
45025
- value: _vm.instance.showLoadMore(),
45026
- expression: "instance.showLoadMore()",
45027
- },
45028
- ],
45029
45611
  staticClass: "zd-select-append-item",
45030
45612
  on: {
45031
45613
  mousedown: function ($event) {
@@ -45073,7 +45655,7 @@ __vue_render__$k._withStripped = true;
45073
45655
  /* style */
45074
45656
  const __vue_inject_styles__$k = function (inject) {
45075
45657
  if (!inject) return
45076
- inject("data-v-dfbdd716_0", { source: ".zd-select-multiple--one-line .v-select__slot .v-select__selections {\n flex-wrap: nowrap;\n}\n.zd-select-multiple:not(.zd-select-multiple--one-line) .v-select__slot .v-select__selections {\n flex-wrap: wrap;\n padding-bottom: 0 !important;\n}\n.zd-select-multiple:not(.zd-select-multiple--one-line) .v-select__slot .v-select__selections .v-chip {\n margin-bottom: 0.2rem;\n margin-top: 0.2rem;\n}\n.zd-select-multiple:not(.zd-select-multiple--one-line) .v-select__slot .v-select__selections input {\n position: relative;\n top: -2px;\n}\n.zd-select-multiple .v-input > .v-input__control > .v-input__slot > .v-select__slot input {\n padding: 0;\n}\n.zd-select-multiple-autocomplete.v-input > .v-input__control > .v-input__slot > .v-select__slot input {\n padding: 0 var(--spacing-1);\n}\n.zd-select-multiple .v-select__slot .v-select__selections {\n padding: 0px 7px 0px 7px;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .v-chip {\n margin: 0 var(--spacing-1) 0 0;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .v-chip.v-size--x-small {\n height: 15px;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .v-chip.v-size--x-small .chip-text {\n font-size: 12px;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .v-chip--removable.v-size--x-small .v-chip__content .v-chip__close {\n font-size: 14px !important;\n margin-left: var(--spacing-2);\n margin-right: -6px;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .more-items {\n line-height: 15px;\n}\n.zd-select-multiple .v-input__slot {\n min-height: 24px;\n}\n.zd-select-multiple.zd-dense .v-input__slot {\n min-height: 24px;\n}\n.zd-select-multiple.zd-dense .v-select__slot .v-select__selections {\n padding: 0 var(--spacing-1);\n}\n.zd-select-multiple.zd-dense .v-select__slot .v-select__selections .v-chip {\n margin-bottom: 0.2rem;\n margin-top: 0.2rem;\n}\n.zd-select-multiple.v-input--is-focused .v-select__slot .v-select__selections .v-chip .v-chip__content .chip-text {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.v-menu__content.zd-select-menu .v-select-list div.v-list-item__action {\n margin: 0 var(--zd-default-padding) 0 0;\n}\n.v-menu__content.zd-select-menu .v-select-list > .v-list-item .v-input--selection-controls__ripple {\n margin: 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item--disabled .v-simple-checkbox .v-icon {\n opacity: 0.5;\n}", map: undefined, media: undefined });
45658
+ inject("data-v-9f031bd2_0", { source: ".zd-select-multiple .v-select__slot .v-select__selections {\n flex-wrap: wrap;\n padding-bottom: 0 !important;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .v-chip {\n margin-bottom: 0.2rem;\n margin-top: 0.2rem;\n}\n.zd-select-multiple .v-select__slot .v-select__selections input {\n position: relative;\n top: -2px;\n}\n.zd-select-multiple-autocomplete.v-input:not(.v-input--is-focused) > .v-input__control > .v-input__slot > .v-select__slot input {\n padding: 0;\n}\n.zd-select-multiple .v-input > .v-input__control > .v-input__slot > .v-select__slot input {\n padding: 0;\n}\n.zd-select-multiple-autocomplete.v-input > .v-input__control > .v-input__slot > .v-select__slot input {\n padding: 0 var(--spacing-1);\n}\n.zd-select-multiple .v-select__slot .v-select__selections {\n padding: 0px 7px 0px 7px;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .v-chip {\n margin: 0 var(--spacing-1) 0 0;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .v-chip.v-size--x-small {\n height: 15px;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .v-chip.v-size--x-small .chip-text {\n font-size: 12px;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .v-chip--removable.v-size--x-small .v-chip__content .v-chip__close {\n font-size: 14px !important;\n margin-left: var(--spacing-2);\n margin-right: -6px;\n}\n.zd-select-multiple .v-select__slot .v-select__selections .more-items {\n line-height: 15px;\n}\n.zd-select-multiple .v-input__slot {\n min-height: 24px;\n}\n.zd-select-multiple.zd-dense .v-input__slot {\n min-height: 24px;\n}\n.zd-select-multiple.zd-dense .v-select__slot .v-select__selections {\n padding: 0 var(--spacing-1);\n}\n.zd-select-multiple.zd-dense .v-select__slot .v-select__selections .v-chip {\n margin-bottom: 0.2rem;\n margin-top: 0.2rem;\n}\n.zd-select-multiple.v-input--is-focused .v-select__slot .v-select__selections .v-chip .v-chip__content .chip-text {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n.v-menu__content.zd-select-menu .v-select-list div.v-list-item__action {\n margin: 0 var(--zd-default-padding) 0 0;\n}\n.v-menu__content.zd-select-menu .v-select-list > .v-list-item .v-input--selection-controls__ripple {\n margin: 0;\n}\n.v-menu__content.zd-select-menu .v-select-list .v-list-item--disabled .v-simple-checkbox .v-icon {\n opacity: 0.5;\n}", map: undefined, media: undefined });
45077
45659
 
45078
45660
  };
45079
45661
  /* scoped */
@@ -46768,8 +47350,10 @@ var __vue_render__$c = function () {
46768
47350
  {
46769
47351
  name: "show",
46770
47352
  rawName: "v-show",
46771
- value: tab.isVisible,
46772
- expression: "tab.isVisible",
47353
+ value:
47354
+ tab.isVisible && index === _vm.instance.activeTab,
47355
+ expression:
47356
+ "tab.isVisible && index === instance.activeTab",
46773
47357
  },
46774
47358
  ],
46775
47359
  key: index,
@@ -46801,11 +47385,11 @@ __vue_render__$c._withStripped = true;
46801
47385
  /* style */
46802
47386
  const __vue_inject_styles__$c = function (inject) {
46803
47387
  if (!inject) return
46804
- inject("data-v-0214eb88_0", { source: ".zd-tabs[data-v-0214eb88] {\n display: flex;\n flex-direction: column;\n}\n.zd-tabs[data-v-0214eb88] .v-tabs-bar,\n.zd-tabs[data-v-0214eb88] .v-tabs-items {\n background-color: transparent;\n}\n.zd-tabs[data-v-0214eb88] .v-tabs-bar {\n height: auto;\n}\n.zd-tabs[data-v-0214eb88] .v-tabs-bar .v-tabs-slider-wrapper {\n bottom: -1px;\n}\n.zd-tabs[data-v-0214eb88] .v-tabs-bar__content {\n border-bottom: solid 1px var(--v-grey-lighten4);\n}\n.zd-tabs[data-v-0214eb88] .v-tabs {\n margin-bottom: var(--spacing-4);\n}\n.zd-tabs[data-v-0214eb88] .v-tabs .v-slide-group__next,\n.zd-tabs[data-v-0214eb88] .v-tabs .v-slide-group__prev {\n flex-basis: 30px;\n min-width: 30px;\n}\n.zd-tabs[data-v-0214eb88] .v-tabs .v-slide-group__next .v-icon,\n.zd-tabs[data-v-0214eb88] .v-tabs .v-slide-group__prev .v-icon {\n font-size: 18px;\n}\n.zd-tabs[data-v-0214eb88] .v-tabs {\n flex-grow: 0;\n}\n.zd-tabs[data-v-0214eb88] .v-tabs-items {\n flex-grow: 1;\n}\n.zd-tabs[data-v-0214eb88] .v-tabs-items .v-window__container {\n height: 100% !important;\n}", map: undefined, media: undefined });
47388
+ inject("data-v-62da8a0f_0", { source: ".zd-tabs[data-v-62da8a0f] {\n display: flex;\n flex-direction: column;\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs-bar,\n.zd-tabs[data-v-62da8a0f] .v-tabs-items {\n background-color: transparent;\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs-bar {\n height: auto;\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs-bar .v-tabs-slider-wrapper {\n bottom: -1px;\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs-bar__content {\n border-bottom: solid 1px var(--v-grey-lighten4);\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs {\n margin-bottom: var(--spacing-4);\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs .v-slide-group__next,\n.zd-tabs[data-v-62da8a0f] .v-tabs .v-slide-group__prev {\n flex-basis: 30px;\n min-width: 30px;\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs .v-slide-group__next .v-icon,\n.zd-tabs[data-v-62da8a0f] .v-tabs .v-slide-group__prev .v-icon {\n font-size: 18px;\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs {\n flex-grow: 0;\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs-items {\n flex-grow: 1;\n}\n.zd-tabs[data-v-62da8a0f] .v-tabs-items .v-window__container {\n height: 100% !important;\n}", map: undefined, media: undefined });
46805
47389
 
46806
47390
  };
46807
47391
  /* scoped */
46808
- const __vue_scope_id__$c = "data-v-0214eb88";
47392
+ const __vue_scope_id__$c = "data-v-62da8a0f";
46809
47393
  /* module identifier */
46810
47394
  const __vue_module_identifier__$c = undefined;
46811
47395
  /* functional template */
@@ -48022,26 +48606,30 @@ __vue_render__$5._withStripped = true;
48022
48606
  let ZdTreeCheckbox = class ZdTreeCheckbox extends Vue {
48023
48607
  get childrenCheck() {
48024
48608
  var _a;
48025
- return (_a = this.node.children) === null || _a === void 0 ? void 0 : _a.every((child) => child.isChecked);
48609
+ return (_a = this.node.children) === null || _a === void 0 ? void 0 : _a.every((child) => child.data && child.data[this.checkedField]);
48026
48610
  }
48027
48611
  check() {
48028
- this.node.isChecked = this.childrenCheck;
48612
+ if (!this.node.data)
48613
+ return;
48614
+ this.node.data[this.checkedField] = this.childrenCheck;
48029
48615
  }
48030
48616
  get isIndeterminate() {
48031
48617
  var _a, _b;
48032
48618
  let count = 0;
48033
48619
  (_a = this.node.children) === null || _a === void 0 ? void 0 : _a.forEach((child) => {
48034
- if (child.isChecked)
48620
+ if (child.data && child.data[this.checkedField])
48035
48621
  count += 1;
48036
48622
  });
48037
48623
  return (count > 0) && (count < (((_b = this.node.children) === null || _b === void 0 ? void 0 : _b.length) || 0));
48038
48624
  }
48039
48625
  checkboxToggle(node) {
48040
- this.toggleChildren([node], !!node.isChecked);
48626
+ this.toggleChildren([node], !!(node.data && node.data[this.checkedField]));
48041
48627
  }
48042
48628
  toggleChildren(nodes, value) {
48043
48629
  nodes.forEach((node) => {
48044
- node.isChecked = value;
48630
+ if (!node.data)
48631
+ return;
48632
+ node.data[this.checkedField] = value;
48045
48633
  if (node.children && node.children.length > 0)
48046
48634
  this.toggleChildren(node.children, value);
48047
48635
  });
@@ -48055,6 +48643,10 @@ __decorate([
48055
48643
  Prop({ type: [Object], default: () => [] }),
48056
48644
  __metadata("design:type", Object)
48057
48645
  ], ZdTreeCheckbox.prototype, "node", void 0);
48646
+ __decorate([
48647
+ Prop({ type: [String], default: 'checked' }),
48648
+ __metadata("design:type", String)
48649
+ ], ZdTreeCheckbox.prototype, "checkedField", void 0);
48058
48650
  __decorate([
48059
48651
  Watch('childrenCheck'),
48060
48652
  __metadata("design:type", Function),
@@ -48082,7 +48674,7 @@ var __vue_render__$4 = function () {
48082
48674
  "on-icon": _vm.$getIcon("checkboxOn"),
48083
48675
  "off-icon": _vm.$getIcon("checkboxOff"),
48084
48676
  "indeterminate-icon": _vm.$getIcon("checkboxIndeterminate"),
48085
- "input-value": _vm.node.isChecked,
48677
+ "input-value": _vm.node.data[_vm.checkedField],
48086
48678
  indeterminate: _vm.isIndeterminate,
48087
48679
  },
48088
48680
  on: {
@@ -48091,11 +48683,11 @@ var __vue_render__$4 = function () {
48091
48683
  },
48092
48684
  },
48093
48685
  model: {
48094
- value: _vm.node.isChecked,
48686
+ value: _vm.node.data[_vm.checkedField],
48095
48687
  callback: function ($$v) {
48096
- _vm.$set(_vm.node, "isChecked", $$v);
48688
+ _vm.$set(_vm.node.data, _vm.checkedField, $$v);
48097
48689
  },
48098
- expression: "node.isChecked",
48690
+ expression: "node.data[checkedField]",
48099
48691
  },
48100
48692
  })
48101
48693
  };
@@ -48105,7 +48697,7 @@ __vue_render__$4._withStripped = true;
48105
48697
  /* style */
48106
48698
  const __vue_inject_styles__$4 = function (inject) {
48107
48699
  if (!inject) return
48108
- inject("data-v-6000ad85_0", { source: ".zd-tree-checkbox {\n display: inline-block;\n top: 50%;\n transform: translate(0, -50%);\n}\n.zd-tree-checkbox > .v-input--selection-controls__input {\n margin-right: 0;\n}", map: undefined, media: undefined });
48700
+ inject("data-v-130a7c09_0", { source: ".zd-tree-checkbox {\n display: inline-block;\n top: 50%;\n transform: translate(0, -50%);\n}\n.zd-tree-checkbox > .v-input--selection-controls__input {\n margin-right: 0;\n}", map: undefined, media: undefined });
48109
48701
 
48110
48702
  };
48111
48703
  /* scoped */
@@ -48227,26 +48819,8 @@ let ZdTree = class ZdTree extends ZdComponentRender$1 {
48227
48819
  mounted() {
48228
48820
  this.instance.setTree(this.$refs.tree);
48229
48821
  this.setAfterTitleMargin();
48230
- document.addEventListener('click', this.unselect);
48231
- }
48232
- destroy() {
48233
- document.removeEventListener('click', this.unselect);
48234
- }
48235
- unselect(event) {
48236
- var _a;
48237
- const tree = (_a = this.$refs.tree) === null || _a === void 0 ? void 0 : _a.$el;
48238
- if (!tree)
48239
- return;
48240
- if (tree.contains(event.target))
48241
- return;
48242
- this.instance.selectedNodes.forEach((node) => {
48243
- if (!node.path)
48244
- return;
48245
- const instanceNode = this.instance.getNode(node.path);
48246
- if (!instanceNode)
48247
- return;
48248
- instanceNode.isSelected = false;
48249
- });
48822
+ this.nodeChange();
48823
+ this.$watch('$refs.tree.nodes', this.nodeChange, { deep: true });
48250
48824
  }
48251
48825
  dataChange() {
48252
48826
  this.instance.createNodesFromDatasource();
@@ -48376,6 +48950,10 @@ __decorate([
48376
48950
  Prop({ type: String, default: '' }),
48377
48951
  __metadata("design:type", String)
48378
48952
  ], ZdTree.prototype, "dataField", void 0);
48953
+ __decorate([
48954
+ Prop({ type: String, default: 'checked' }),
48955
+ __metadata("design:type", String)
48956
+ ], ZdTree.prototype, "checkedField", void 0);
48379
48957
  __decorate([
48380
48958
  Prop({ type: [Boolean, String], default: false }),
48381
48959
  __metadata("design:type", Boolean)
@@ -48390,12 +48968,6 @@ __decorate([
48390
48968
  __metadata("design:paramtypes", []),
48391
48969
  __metadata("design:returntype", void 0)
48392
48970
  ], ZdTree.prototype, "dataChange", null);
48393
- __decorate([
48394
- Watch('instance.nodes', { deep: true }),
48395
- __metadata("design:type", Function),
48396
- __metadata("design:paramtypes", []),
48397
- __metadata("design:returntype", void 0)
48398
- ], ZdTree.prototype, "nodeChange", null);
48399
48971
  ZdTree = __decorate([
48400
48972
  Component({
48401
48973
  components: { ZdTreeCheckbox: __vue_component__$4, ZdTreeAfterTitle: __vue_component__$3 },
@@ -48485,7 +49057,10 @@ var __vue_render__$2 = function () {
48485
49057
  return [
48486
49058
  _vm.instance.checkbox
48487
49059
  ? _c("zd-tree-checkbox", {
48488
- attrs: { node: _vm.instanceNode(node) },
49060
+ attrs: {
49061
+ node: _vm.instanceNode(node),
49062
+ checkedField: _vm.instance.checkedField,
49063
+ },
48489
49064
  on: {
48490
49065
  click: function ($event) {
48491
49066
  return _vm.nodeCheck(node, $event)
@@ -48687,7 +49262,7 @@ __vue_render__$2._withStripped = true;
48687
49262
  /* style */
48688
49263
  const __vue_inject_styles__$2 = function (inject) {
48689
49264
  if (!inject) return
48690
- inject("data-v-71da43d2_0", { source: ".zd-tree {\n color: var(--zd-font-color);\n font-size: var(--zd-font-body1-size);\n font-weight: normal;\n}\n.zd-tree.theme--light .sl-vue-tree-title {\n color: var(--zd-font-color);\n}\n.zd-tree.theme--light .sl-vue-tree-nodes-list .sl-vue-tree-node .sl-vue-tree-node-item:hover {\n background: #eee;\n}\n.zd-tree.theme--dark .sl-vue-tree-title {\n color: #fff;\n}\n.zd-tree.theme--dark .sl-vue-tree-nodes-list .sl-vue-tree-node .sl-vue-tree-node-item:hover {\n background: #616161;\n}\n.zd-tree .sl-vue-tree-title {\n display: flex;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node {\n padding-top: 3px;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node .sl-vue-tree-node-item {\n height: 30px;\n line-height: 30px;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node.sl-vue-tree-selected > .sl-vue-tree-node-item {\n background-color: var(--current-row-color);\n color: var(--zd-font-color);\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node.sl-vue-tree-selected > .sl-vue-tree-node-item:hover {\n background: var(--current-row-hover-color) !important;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node.sl-vue-tree-selected > .sl-vue-tree-node-item .sl-vue-tree-toggle .v-icon {\n color: var(--zd-font-color);\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node .sl-vue-tree-toggle span .v-icon {\n margin-right: -6px;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-gap {\n width: 32px;\n}\n.zd-tree .item-title {\n padding-left: 6px;\n}\n.zd-tree .item-title.has-children {\n font-weight: 700;\n}\n.zd-tree .item-title.is-clickable {\n cursor: pointer;\n}", map: undefined, media: undefined });
49265
+ inject("data-v-58bd8c74_0", { source: ".zd-tree {\n color: var(--zd-font-color);\n font-size: var(--zd-font-body1-size);\n font-weight: normal;\n}\n.zd-tree.theme--light .sl-vue-tree-title {\n color: var(--zd-font-color);\n}\n.zd-tree.theme--light .sl-vue-tree-nodes-list .sl-vue-tree-node .sl-vue-tree-node-item:hover {\n background: #eee;\n}\n.zd-tree.theme--dark .sl-vue-tree-title {\n color: #fff;\n}\n.zd-tree.theme--dark .sl-vue-tree-nodes-list .sl-vue-tree-node .sl-vue-tree-node-item:hover {\n background: #616161;\n}\n.zd-tree .sl-vue-tree-title {\n display: flex;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node {\n padding-top: 3px;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node .sl-vue-tree-node-item {\n height: 30px;\n line-height: 30px;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node.sl-vue-tree-selected > .sl-vue-tree-node-item {\n background-color: var(--current-row-color);\n color: var(--zd-font-color);\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node.sl-vue-tree-selected > .sl-vue-tree-node-item:hover {\n background: var(--current-row-hover-color) !important;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node.sl-vue-tree-selected > .sl-vue-tree-node-item .sl-vue-tree-toggle .v-icon {\n color: var(--zd-font-color);\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-node .sl-vue-tree-toggle span .v-icon {\n margin-right: -6px;\n}\n.zd-tree .sl-vue-tree-nodes-list .sl-vue-tree-gap {\n width: 32px;\n}\n.zd-tree .item-title {\n padding-left: 6px;\n}\n.zd-tree .item-title.has-children {\n font-weight: 700;\n}\n.zd-tree .item-title.is-clickable {\n cursor: pointer;\n}", map: undefined, media: undefined });
48691
49266
 
48692
49267
  };
48693
49268
  /* scoped */
@@ -50950,6 +51525,7 @@ const Zeedhi = {
50950
51525
  VBreadcrumbs,
50951
51526
  VBtn,
50952
51527
  VBtnToggle,
51528
+ VCalendar,
50953
51529
  VCard,
50954
51530
  VCardActions,
50955
51531
  VCardText,
@@ -50985,6 +51561,7 @@ const Zeedhi = {
50985
51561
  VMenu,
50986
51562
  VNavigationDrawer,
50987
51563
  VOverlay,
51564
+ VOtpInput,
50988
51565
  VPagination,
50989
51566
  VProgressCircular,
50990
51567
  VProgressLinear,
@@ -51014,8 +51591,12 @@ const Zeedhi = {
51014
51591
  VTabsItems,
51015
51592
  VTextarea,
51016
51593
  VTextField,
51594
+ VTimeline,
51595
+ VTimelineItem,
51017
51596
  VTimePicker,
51018
51597
  VTooltip,
51598
+ VToolbar,
51599
+ VToolbarItems,
51019
51600
  VSimpleCheckbox,
51020
51601
  },
51021
51602
  });