quasar 1.22.0 → 1.22.2

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.
Files changed (147) hide show
  1. package/dist/api/QDialog.json +11 -1
  2. package/dist/api/QList.json +12 -0
  3. package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
  4. package/dist/icon-set/eva-icons.umd.min.js +1 -1
  5. package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
  6. package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
  7. package/dist/icon-set/fontawesome-v6-pro.umd.min.js +1 -1
  8. package/dist/icon-set/fontawesome-v6.umd.min.js +1 -1
  9. package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
  10. package/dist/icon-set/line-awesome.umd.min.js +1 -1
  11. package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
  12. package/dist/icon-set/material-icons-round.umd.min.js +1 -1
  13. package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
  14. package/dist/icon-set/material-icons.umd.min.js +1 -1
  15. package/dist/icon-set/material-symbols-outlined.umd.min.js +1 -1
  16. package/dist/icon-set/material-symbols-rounded.umd.min.js +1 -1
  17. package/dist/icon-set/material-symbols-sharp.umd.min.js +1 -1
  18. package/dist/icon-set/mdi-v3.umd.min.js +1 -1
  19. package/dist/icon-set/mdi-v4.umd.min.js +1 -1
  20. package/dist/icon-set/mdi-v5.umd.min.js +1 -1
  21. package/dist/icon-set/mdi-v6.umd.min.js +1 -1
  22. package/dist/icon-set/mdi-v7.umd.min.js +6 -0
  23. package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
  24. package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
  25. package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
  26. package/dist/icon-set/svg-fontawesome-v6.umd.min.js +1 -1
  27. package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
  28. package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
  29. package/dist/icon-set/svg-ionicons-v6.umd.min.js +1 -1
  30. package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
  31. package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
  32. package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
  33. package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
  34. package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
  35. package/dist/icon-set/svg-material-symbols-outlined.umd.min.js +1 -1
  36. package/dist/icon-set/svg-material-symbols-rounded.umd.min.js +1 -1
  37. package/dist/icon-set/svg-material-symbols-sharp.umd.min.js +1 -1
  38. package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
  39. package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
  40. package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
  41. package/dist/icon-set/svg-mdi-v7.umd.min.js +6 -0
  42. package/dist/icon-set/svg-themify.umd.min.js +1 -1
  43. package/dist/icon-set/themify.umd.min.js +1 -1
  44. package/dist/lang/ar.umd.min.js +1 -1
  45. package/dist/lang/az-latn.umd.min.js +1 -1
  46. package/dist/lang/bg.umd.min.js +1 -1
  47. package/dist/lang/ca.umd.min.js +1 -1
  48. package/dist/lang/cs.umd.min.js +1 -1
  49. package/dist/lang/da.umd.min.js +1 -1
  50. package/dist/lang/de.umd.min.js +1 -1
  51. package/dist/lang/el.umd.min.js +1 -1
  52. package/dist/lang/en-gb.umd.min.js +1 -1
  53. package/dist/lang/en-us.umd.min.js +1 -1
  54. package/dist/lang/eo.umd.min.js +1 -1
  55. package/dist/lang/es.umd.min.js +1 -1
  56. package/dist/lang/et.umd.min.js +1 -1
  57. package/dist/lang/eu.umd.min.js +1 -1
  58. package/dist/lang/fa-ir.umd.min.js +1 -1
  59. package/dist/lang/fa.umd.min.js +1 -1
  60. package/dist/lang/fi.umd.min.js +1 -1
  61. package/dist/lang/fr.umd.min.js +1 -1
  62. package/dist/lang/gn.umd.min.js +1 -1
  63. package/dist/lang/he.umd.min.js +1 -1
  64. package/dist/lang/hr.umd.min.js +1 -1
  65. package/dist/lang/hu.umd.min.js +1 -1
  66. package/dist/lang/id.umd.min.js +1 -1
  67. package/dist/lang/is.umd.min.js +1 -1
  68. package/dist/lang/it.umd.min.js +1 -1
  69. package/dist/lang/ja.umd.min.js +1 -1
  70. package/dist/lang/km.umd.min.js +1 -1
  71. package/dist/lang/ko-kr.umd.min.js +1 -1
  72. package/dist/lang/kur-ckb.umd.min.js +1 -1
  73. package/dist/lang/kz.umd.min.js +1 -1
  74. package/dist/lang/lu.umd.min.js +1 -1
  75. package/dist/lang/lv.umd.min.js +1 -1
  76. package/dist/lang/ml.umd.min.js +1 -1
  77. package/dist/lang/mm.umd.min.js +1 -1
  78. package/dist/lang/ms.umd.min.js +1 -1
  79. package/dist/lang/my.umd.min.js +1 -1
  80. package/dist/lang/nb-no.umd.min.js +1 -1
  81. package/dist/lang/nl.umd.min.js +1 -1
  82. package/dist/lang/pl.umd.min.js +1 -1
  83. package/dist/lang/pt-br.umd.min.js +1 -1
  84. package/dist/lang/pt.umd.min.js +1 -1
  85. package/dist/lang/ro.umd.min.js +1 -1
  86. package/dist/lang/ru.umd.min.js +1 -1
  87. package/dist/lang/sk.umd.min.js +1 -1
  88. package/dist/lang/sl.umd.min.js +1 -1
  89. package/dist/lang/sm.umd.min.js +1 -1
  90. package/dist/lang/sr.umd.min.js +1 -1
  91. package/dist/lang/sv.umd.min.js +1 -1
  92. package/dist/lang/ta.umd.min.js +1 -1
  93. package/dist/lang/th.umd.min.js +1 -1
  94. package/dist/lang/tr.umd.min.js +1 -1
  95. package/dist/lang/ug.umd.min.js +1 -1
  96. package/dist/lang/uk.umd.min.js +1 -1
  97. package/dist/lang/uz-Cyrl.umd.min.js +1 -1
  98. package/dist/lang/uz-Latn.umd.min.js +1 -1
  99. package/dist/lang/vi.umd.min.js +1 -1
  100. package/dist/lang/zh-hans.umd.min.js +1 -1
  101. package/dist/lang/zh-hant.umd.min.js +1 -1
  102. package/dist/quasar.addon.css +1 -1
  103. package/dist/quasar.addon.rtl.css +1 -1
  104. package/dist/quasar.common.js +2 -2
  105. package/dist/quasar.css +4 -4
  106. package/dist/quasar.esm.js +2 -2
  107. package/dist/quasar.ie.polyfills.js +1 -1
  108. package/dist/quasar.ie.polyfills.umd.min.js +1 -1
  109. package/dist/quasar.min.css +1 -1
  110. package/dist/quasar.rtl.css +8 -5
  111. package/dist/quasar.rtl.min.css +1 -1
  112. package/dist/quasar.sass +5 -4
  113. package/dist/quasar.styl +5 -4
  114. package/dist/quasar.umd.js +124 -101
  115. package/dist/quasar.umd.min.js +2 -2
  116. package/dist/quasar.umd.modern.js +123 -96
  117. package/dist/quasar.umd.modern.min.js +2 -2
  118. package/dist/types/index.d.ts +6 -1
  119. package/dist/vetur/quasar-attributes.json +4 -0
  120. package/dist/vetur/quasar-tags.json +1 -0
  121. package/dist/web-types/web-types.json +11 -1
  122. package/icon-set/mdi-v7.js +141 -0
  123. package/icon-set/svg-mdi-v7.js +225 -0
  124. package/package.json +2 -2
  125. package/src/components/btn-dropdown/QBtnDropdown.js +0 -1
  126. package/src/components/date/QDate.js +3 -1
  127. package/src/components/dialog/QDialog.js +35 -30
  128. package/src/components/dialog/QDialog.json +9 -1
  129. package/src/components/dialog-bottom-sheet/BottomSheet.js +5 -4
  130. package/src/components/expansion-item/QExpansionItem.js +0 -1
  131. package/src/components/fab/QFab.js +3 -6
  132. package/src/components/fab/QFab.sass +2 -1
  133. package/src/components/fab/QFab.styl +2 -1
  134. package/src/components/form/QForm.js +3 -1
  135. package/src/components/inner-loading/QInnerLoading.js +1 -6
  136. package/src/components/input/QInput.js +6 -1
  137. package/src/components/item/QList.js +7 -5
  138. package/src/components/item/QList.json +8 -0
  139. package/src/components/menu/QMenu.js +11 -5
  140. package/src/components/scroll-area/QScrollArea.js +9 -3
  141. package/src/components/scroll-observer/QScrollObserver.js +4 -0
  142. package/src/components/select/QSelect.js +12 -8
  143. package/src/components/select/QSelect.sass +2 -2
  144. package/src/components/select/QSelect.styl +2 -2
  145. package/src/components/tooltip/QTooltip.js +1 -1
  146. package/src/mixins/mask.js +3 -1
  147. package/src/mixins/transition.js +14 -15
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.22.0
2
+ * Quasar Framework v1.22.2
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -12,7 +12,7 @@
12
12
 
13
13
  Vue = Vue && Object.prototype.hasOwnProperty.call(Vue, 'default') ? Vue['default'] : Vue;
14
14
 
15
- var version = "1.22.0";
15
+ var version = "1.22.2";
16
16
 
17
17
  /* eslint-disable no-useless-escape */
18
18
 
@@ -4028,23 +4028,22 @@
4028
4028
  }
4029
4029
  },
4030
4030
 
4031
- data () {
4032
- return {
4033
- transitionState: this.showing
4034
- }
4035
- },
4031
+ computed: {
4032
+ transitionProps () {
4033
+ const show = `q-transition--${this.transitionShow || this.defaultTransitionShow}`;
4034
+ const hide = `q-transition--${this.transitionHide || this.defaultTransitionHide}`;
4036
4035
 
4037
- watch: {
4038
- showing (val) {
4039
- this.transitionShow !== this.transitionHide && this.$nextTick(() => {
4040
- this.transitionState = val;
4041
- });
4042
- }
4043
- },
4036
+ return {
4037
+ appear: true,
4044
4038
 
4045
- computed: {
4046
- transition () {
4047
- return 'q-transition--' + (this.transitionState === true ? this.transitionHide : this.transitionShow)
4039
+ enterClass: `${show}-enter`,
4040
+ enterActiveClass: `${show}-enter-active`,
4041
+ enterToClass: `${show}-enter-to`,
4042
+
4043
+ leaveClass: `${hide}-leave`,
4044
+ leaveActiveClass: `${hide}-leave-active`,
4045
+ leaveToClass: `${hide}-leave-to`
4046
+ }
4048
4047
  }
4049
4048
  }
4050
4049
  };
@@ -5506,7 +5505,10 @@
5506
5505
  : void 0;
5507
5506
 
5508
5507
  if (node !== void 0 && node.contains(document.activeElement) !== true) {
5509
- node = node.querySelector('[autofocus], [data-autofocus]') || node;
5508
+ node = node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]') ||
5509
+ node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]') ||
5510
+ node.querySelector('[autofocus], [data-autofocus]') ||
5511
+ node;
5510
5512
  node.focus({ preventScroll: true });
5511
5513
  }
5512
5514
  });
@@ -5518,10 +5520,10 @@
5518
5520
  ? document.activeElement
5519
5521
  : void 0;
5520
5522
 
5521
- EscapeKey.register(this, () => {
5523
+ EscapeKey.register(this, escEvt => {
5522
5524
  if (this.persistent !== true) {
5523
5525
  this.$emit('escape-key');
5524
- this.hide();
5526
+ this.hide(escEvt);
5525
5527
  }
5526
5528
  });
5527
5529
 
@@ -5589,7 +5591,10 @@
5589
5591
  evt.qClickOutside !== true
5590
5592
  )
5591
5593
  ) {
5592
- this.__refocusTarget.focus();
5594
+ ((evt && evt.type.indexOf('key') === 0
5595
+ ? this.__refocusTarget.closest('[tabindex]:not([tabindex^="-"])')
5596
+ : void 0
5597
+ ) || this.__refocusTarget).focus();
5593
5598
  this.__refocusTarget = void 0;
5594
5599
  }
5595
5600
 
@@ -5687,7 +5692,7 @@
5687
5692
 
5688
5693
  __renderPortal (h) {
5689
5694
  return h('transition', {
5690
- props: { name: this.transition }
5695
+ props: { ...this.transitionProps }
5691
5696
  }, [
5692
5697
  this.showing === true ? h('div', {
5693
5698
  ref: 'inner',
@@ -5868,7 +5873,6 @@
5868
5873
  'aria-expanded': this.showing === true ? 'true' : 'false',
5869
5874
  'aria-haspopup': 'true',
5870
5875
  'aria-controls': this.targetUid,
5871
- 'aria-owns': this.targetUid,
5872
5876
  'aria-label': this.toggleAriaLabel || this.$q.lang.label[ this.showing === true ? 'collapse' : 'expand' ](this.label)
5873
5877
  };
5874
5878
 
@@ -13169,7 +13173,9 @@
13169
13173
  },
13170
13174
 
13171
13175
  view () {
13172
- this.$refs.blurTarget !== void 0 && this.$refs.blurTarget.focus();
13176
+ if (this.$refs.blurTarget !== void 0 && this.$el.contains(document.activeElement) === true) {
13177
+ this.$refs.blurTarget.focus();
13178
+ }
13173
13179
  },
13174
13180
 
13175
13181
  'viewModel.year' (year) {
@@ -14771,7 +14777,7 @@
14771
14777
  left: 'fixed-left items-center'
14772
14778
  };
14773
14779
 
14774
- const transitions = {
14780
+ const defaultTransitions = {
14775
14781
  standard: ['scale', 'scale'],
14776
14782
  top: ['slide-down', 'slide-up'],
14777
14783
  bottom: ['slide-up', 'slide-down'],
@@ -14779,11 +14785,17 @@
14779
14785
  left: ['slide-right', 'slide-left']
14780
14786
  };
14781
14787
 
14788
+ const backdropAttrs = {
14789
+ ...ariaHidden,
14790
+ tabindex: -1
14791
+ };
14792
+
14782
14793
  var QDialog = Vue.extend({
14783
14794
  name: 'QDialog',
14784
14795
 
14785
14796
  mixins: [
14786
14797
  AttrsMixin,
14798
+ TransitionMixin,
14787
14799
  HistoryMixin,
14788
14800
  TimeoutMixin,
14789
14801
  ModelToggleMixin,
@@ -14824,20 +14836,11 @@
14824
14836
 
14825
14837
  data () {
14826
14838
  return {
14827
- transitionState: this.showing,
14828
14839
  animating: false
14829
14840
  }
14830
14841
  },
14831
14842
 
14832
14843
  watch: {
14833
- showing (val) {
14834
- if (this.transitionShowComputed !== this.transitionHideComputed) {
14835
- this.$nextTick(() => {
14836
- this.transitionState = val;
14837
- });
14838
- }
14839
- },
14840
-
14841
14844
  maximized (state) {
14842
14845
  this.showing === true && this.__updateMaximized(state);
14843
14846
  },
@@ -14858,18 +14861,12 @@
14858
14861
  (this.square === true ? ' q-dialog__inner--square' : '')
14859
14862
  },
14860
14863
 
14861
- transitionShowComputed () {
14862
- return 'q-transition--' + (this.transitionShow === void 0 ? transitions[this.position][0] : this.transitionShow)
14863
- },
14864
-
14865
- transitionHideComputed () {
14866
- return 'q-transition--' + (this.transitionHide === void 0 ? transitions[this.position][1] : this.transitionHide)
14864
+ defaultTransitionShow () {
14865
+ return defaultTransitions[this.position][0]
14867
14866
  },
14868
14867
 
14869
- transition () {
14870
- return this.transitionState === true
14871
- ? this.transitionHideComputed
14872
- : this.transitionShowComputed
14868
+ defaultTransitionHide () {
14869
+ return defaultTransitions[this.position][1]
14873
14870
  },
14874
14871
 
14875
14872
  useBackdrop () {
@@ -14916,13 +14913,23 @@
14916
14913
  return
14917
14914
  }
14918
14915
 
14919
- node = node.querySelector(selector || '[autofocus], [data-autofocus]') || node;
14916
+ node = (selector !== '' ? node.querySelector(selector) : null) ||
14917
+ node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]') ||
14918
+ node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]') ||
14919
+ node.querySelector('[autofocus], [data-autofocus]') ||
14920
+ node;
14920
14921
  node.focus({ preventScroll: true });
14921
14922
  });
14922
14923
  },
14923
14924
 
14924
- shake () {
14925
- this.focus();
14925
+ shake (focusTarget) {
14926
+ if (focusTarget && typeof focusTarget.focus === 'function') {
14927
+ focusTarget.focus({ preventScroll: true });
14928
+ }
14929
+ else {
14930
+ this.focus();
14931
+ }
14932
+
14926
14933
  this.$emit('shake');
14927
14934
 
14928
14935
  const node = this.__getInnerNode();
@@ -14954,14 +14961,14 @@
14954
14961
  this.$el.dispatchEvent(create('popup-show', { bubbles: true }));
14955
14962
  this.__updateMaximized(this.maximized);
14956
14963
 
14957
- EscapeKey.register(this, () => {
14964
+ EscapeKey.register(this, escEvt => {
14958
14965
  if (this.seamless !== true) {
14959
14966
  if (this.persistent === true || this.noEscDismiss === true) {
14960
14967
  this.maximized !== true && this.noShake !== true && this.shake();
14961
14968
  }
14962
14969
  else {
14963
14970
  this.$emit('escape-key');
14964
- this.hide();
14971
+ this.hide(escEvt);
14965
14972
  }
14966
14973
  }
14967
14974
  });
@@ -15020,7 +15027,10 @@
15020
15027
 
15021
15028
  // check null for IE
15022
15029
  if (this.__refocusTarget !== void 0 && this.__refocusTarget !== null) {
15023
- this.__refocusTarget.focus(evt);
15030
+ ((evt && evt.type.indexOf('key') === 0
15031
+ ? this.__refocusTarget.closest('[tabindex]:not([tabindex^="-"])')
15032
+ : void 0
15033
+ ) || this.__refocusTarget).focus();
15024
15034
  this.__refocusTarget = void 0;
15025
15035
  }
15026
15036
 
@@ -15084,7 +15094,7 @@
15084
15094
  this.hide(e);
15085
15095
  }
15086
15096
  else if (this.noShake !== true) {
15087
- this.shake();
15097
+ this.shake(e.relatedTarget);
15088
15098
  }
15089
15099
  },
15090
15100
 
@@ -15111,15 +15121,15 @@
15111
15121
  }, this.useBackdrop === true ? [
15112
15122
  h('div', {
15113
15123
  staticClass: 'q-dialog__backdrop fixed-full',
15114
- attrs: ariaHidden,
15124
+ attrs: backdropAttrs,
15115
15125
  on: cache(this, 'bkdrop', {
15116
- click: this.__onBackdropClick
15126
+ focusin: this.__onBackdropClick
15117
15127
  })
15118
15128
  })
15119
15129
  ] : null),
15120
15130
 
15121
15131
  h('transition', {
15122
- props: { name: this.transition }
15132
+ props: { ...this.transitionProps }
15123
15133
  }, [
15124
15134
  this.showing === true ? h('div', {
15125
15135
  ref: 'inner',
@@ -16062,7 +16072,7 @@
16062
16072
 
16063
16073
  __renderPortal (h) {
16064
16074
  return h('transition', {
16065
- props: { name: this.transition }
16075
+ props: { ...this.transitionProps }
16066
16076
  }, [
16067
16077
  this.showing === true ? h('div', {
16068
16078
  staticClass: 'q-tooltip q-tooltip--style q-position-engine no-pointer-events',
@@ -16084,8 +16094,6 @@
16084
16094
  }
16085
16095
  });
16086
16096
 
16087
- const attrs$4 = { role: 'list' };
16088
-
16089
16097
  var QList = Vue.extend({
16090
16098
  name: 'QList',
16091
16099
 
@@ -16095,7 +16103,12 @@
16095
16103
  bordered: Boolean,
16096
16104
  dense: Boolean,
16097
16105
  separator: Boolean,
16098
- padding: Boolean
16106
+ padding: Boolean,
16107
+
16108
+ tag: {
16109
+ type: String,
16110
+ default: 'div'
16111
+ }
16099
16112
  },
16100
16113
 
16101
16114
  computed: {
@@ -16110,9 +16123,8 @@
16110
16123
  },
16111
16124
 
16112
16125
  render (h) {
16113
- return h('div', {
16126
+ return h(this.tag, {
16114
16127
  class: this.classes,
16115
- attrs: attrs$4,
16116
16128
  on: { ...this.qListeners }
16117
16129
  }, slot(this, 'default'))
16118
16130
  }
@@ -17937,7 +17949,6 @@
17937
17949
  return {
17938
17950
  role: 'button',
17939
17951
  'aria-expanded': this.showing === true ? 'true' : 'false',
17940
- 'aria-owns': this.targetUid,
17941
17952
  'aria-controls': this.targetUid,
17942
17953
  'aria-label': toggleAriaLabel
17943
17954
  }
@@ -18286,13 +18297,11 @@
18286
18297
 
18287
18298
  actionsAttrs () {
18288
18299
  const attrs = {
18289
- id: this.targetUid
18300
+ id: this.targetUid,
18301
+ role: 'menu'
18290
18302
  };
18291
18303
 
18292
- if (this.showing === true) {
18293
- attrs.role = 'menu';
18294
- }
18295
- else {
18304
+ if (this.showing !== true) {
18296
18305
  attrs['aria-hidden'] = 'true';
18297
18306
  }
18298
18307
 
@@ -18308,7 +18317,6 @@
18308
18317
  'aria-expanded': this.showing === true ? 'true' : 'false',
18309
18318
  'aria-haspopup': 'true',
18310
18319
  'aria-controls': this.targetUid,
18311
- 'aria-owns': this.targetUid,
18312
18320
  ...this.qAttrs
18313
18321
  }
18314
18322
  },
@@ -20219,7 +20227,9 @@
20219
20227
  addFocusFn(() => {
20220
20228
  if (!this.$el) { return }
20221
20229
 
20222
- const target = this.$el.querySelector('[autofocus], [data-autofocus]') ||
20230
+ const target = this.$el.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]') ||
20231
+ this.$el.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]') ||
20232
+ this.$el.querySelector('[autofocus], [data-autofocus]') ||
20223
20233
  Array.prototype.find.call(this.$el.querySelectorAll('[tabindex]'), el => el.tabIndex > -1);
20224
20234
 
20225
20235
  target !== null && target !== void 0 && target.focus({ preventScroll: true });
@@ -21054,12 +21064,7 @@
21054
21064
  },
21055
21065
 
21056
21066
  render (h) {
21057
- return h('transition', {
21058
- props: {
21059
- name: this.transition,
21060
- appear: true
21061
- }
21062
- }, this.__getContent(h))
21067
+ return h('transition', { props: { ...this.transitionProps } }, this.__getContent(h))
21063
21068
  }
21064
21069
  });
21065
21070
 
@@ -21253,7 +21258,7 @@
21253
21258
 
21254
21259
  this.computedMask = mask;
21255
21260
  this.computedUnmask = val => {
21256
- const unmaskMatch = unmaskMatcher.exec(val);
21261
+ const unmaskMatch = unmaskMatcher.exec(this.reverseFillMask === true ? val : val.slice(0, mask.length));
21257
21262
  if (unmaskMatch !== null) {
21258
21263
  val = unmaskMatch.slice(1).join('');
21259
21264
  }
@@ -21485,6 +21490,8 @@
21485
21490
  },
21486
21491
 
21487
21492
  __onMaskedKeydown (e) {
21493
+ this.qListeners.keydown !== void 0 && this.$emit('keydown', e);
21494
+
21488
21495
  if (shouldIgnoreKey(e) === true) {
21489
21496
  return
21490
21497
  }
@@ -21766,7 +21773,7 @@
21766
21773
  }
21767
21774
 
21768
21775
  if (this.autogrow === true) {
21769
- on.animationend = this.__adjustHeight;
21776
+ on.animationend = this.__onAnimationend;
21770
21777
  }
21771
21778
 
21772
21779
  return on
@@ -21863,6 +21870,11 @@
21863
21870
  this.autogrow === true && this.__adjustHeight();
21864
21871
  },
21865
21872
 
21873
+ __onAnimationend (e) {
21874
+ this.qListeners.animationend !== void 0 && this.$emit('animationend', e);
21875
+ this.__adjustHeight();
21876
+ },
21877
+
21866
21878
  __emitValue (val, stopWatcher) {
21867
21879
  this.emitValueFn = () => {
21868
21880
  if (
@@ -22504,6 +22516,10 @@
22504
22516
  scrollTarget () {
22505
22517
  this.__unconfigureScrollTarget();
22506
22518
  this.__configureScrollTarget();
22519
+ },
22520
+
22521
+ '$q.lang.rtl' () {
22522
+ this.__emit();
22507
22523
  }
22508
22524
  },
22509
22525
 
@@ -25866,7 +25882,7 @@
25866
25882
  horizontalScrollPercentage () {
25867
25883
  const diff = this.scroll.horizontal.size - this.container.horizontal;
25868
25884
  if (diff <= 0) { return 0 }
25869
- const p = between(this.scroll.horizontal.position / diff, 0, 1);
25885
+ const p = between(Math.abs(this.scroll.horizontal.position) / diff, 0, 1);
25870
25886
  return Math.round(p * 10000) / 10000
25871
25887
  },
25872
25888
 
@@ -25927,7 +25943,7 @@
25927
25943
  return {
25928
25944
  ...this.thumbStyle,
25929
25945
  ...this.horizontalThumbStyle,
25930
- left: `${this.horizontalThumbStart}px`,
25946
+ [ this.$q.lang.rtl === true ? 'right' : 'left' ]: `${this.horizontalThumbStart}px`,
25931
25947
  width: `${this.horizontalThumbSize}px`
25932
25948
  }
25933
25949
  },
@@ -26016,6 +26032,12 @@
26016
26032
  }
26017
26033
  },
26018
26034
 
26035
+ watch: {
26036
+ '$q.lang.rtl' (rtl) {
26037
+ this.setScrollPosition('horizontal', Math.abs(this.scroll.horizontal.position) * (rtl === true ? -1 : 1));
26038
+ }
26039
+ },
26040
+
26019
26041
  methods: {
26020
26042
  getScrollTarget () {
26021
26043
  return this.$refs.target
@@ -26095,7 +26117,7 @@
26095
26117
 
26096
26118
  this.setScrollPosition(
26097
26119
  axis,
26098
- percentage * (this.scroll[axis].size - this.container[axis]),
26120
+ percentage * (this.scroll[axis].size - this.container[axis]) * (axis === 'horizontal' && this.$q.lang.rtl === true ? -1 : 1),
26099
26121
  duration
26100
26122
  );
26101
26123
  },
@@ -27282,6 +27304,12 @@
27282
27304
  .join(', ')
27283
27305
  },
27284
27306
 
27307
+ ariaCurrentValue () {
27308
+ return this.displayValue !== void 0
27309
+ ? this.displayValue
27310
+ : this.selectedString
27311
+ },
27312
+
27285
27313
  sanitizeFn () {
27286
27314
  return this.optionsSanitize === true
27287
27315
  ? () => true
@@ -27460,7 +27488,6 @@
27460
27488
  'aria-readonly': this.readonly === true ? 'true' : 'false',
27461
27489
  'aria-autocomplete': this.useInput === true ? 'list' : 'none',
27462
27490
  'aria-expanded': this.menu === true ? 'true' : 'false',
27463
- 'aria-owns': `${this.targetUid}_lb`,
27464
27491
  'aria-controls': `${this.targetUid}_lb`
27465
27492
  };
27466
27493
 
@@ -27472,13 +27499,11 @@
27472
27499
  },
27473
27500
 
27474
27501
  listboxAttrs () {
27475
- const attrs = {
27502
+ return {
27476
27503
  id: `${this.targetUid}_lb`,
27477
27504
  role: 'listbox',
27478
27505
  'aria-multiselectable': this.multiple === true ? 'true' : 'false'
27479
- };
27480
-
27481
- return attrs
27506
+ }
27482
27507
  }
27483
27508
  },
27484
27509
 
@@ -27841,7 +27866,9 @@
27841
27866
  this.useInput !== true &&
27842
27867
  e.key !== void 0 &&
27843
27868
  e.key.length === 1 && // printable char
27844
- e.altKey === e.ctrlKey && // not kbd shortcut
27869
+ e.altKey === false && // not kbd shortcut
27870
+ e.ctrlKey === false && // not kbd shortcut
27871
+ e.metaKey === false && // not kbd shortcut, especially on macOS with Command key
27845
27872
  (e.keyCode !== 32 || this.searchBuffer.length > 0) // space in middle of search
27846
27873
  ) {
27847
27874
  this.menu !== true && this.showPopup(e);
@@ -27999,9 +28026,7 @@
27999
28026
  return [
28000
28027
  h('span', {
28001
28028
  domProps: {
28002
- [this.displayAsText ? 'textContent' : 'innerHTML']: this.displayValue !== void 0
28003
- ? this.displayValue
28004
- : this.selectedString
28029
+ [this.displayAsText ? 'textContent' : 'innerHTML']: this.ariaCurrentValue
28005
28030
  }
28006
28031
  })
28007
28032
  ]
@@ -28042,6 +28067,7 @@
28042
28067
  h('input', {
28043
28068
  key: 'autoinp',
28044
28069
  staticClass: 'q-select__autocomplete-input',
28070
+ domProps: { value: this.ariaCurrentValue },
28045
28071
  attrs: { autocomplete: this.autocomplete, tabindex: -1 },
28046
28072
  on: cache(this, 'autoinp', {
28047
28073
  keyup: this.__onTargetAutocomplete
@@ -31635,7 +31661,7 @@
31635
31661
  }
31636
31662
  });
31637
31663
 
31638
- const attrs$5 = { role: 'tabpanel' };
31664
+ const attrs$4 = { role: 'tabpanel' };
31639
31665
 
31640
31666
  const StepWrapper = Vue.extend({
31641
31667
  name: 'QStepWrapper',
@@ -31732,7 +31758,7 @@
31732
31758
  'div',
31733
31759
  {
31734
31760
  staticClass: 'q-stepper__step',
31735
- attrs: attrs$5,
31761
+ attrs: attrs$4,
31736
31762
  on: this.onEvents
31737
31763
  },
31738
31764
  vertical === true
@@ -34796,7 +34822,7 @@
34796
34822
  }
34797
34823
  });
34798
34824
 
34799
- const attrs$6 = { role: 'toolbar' };
34825
+ const attrs$5 = { role: 'toolbar' };
34800
34826
 
34801
34827
  var QToolbar = Vue.extend({
34802
34828
  name: 'QToolbar',
@@ -34811,7 +34837,7 @@
34811
34837
  return h('div', {
34812
34838
  staticClass: 'q-toolbar row no-wrap items-center',
34813
34839
  class: this.inset ? 'q-toolbar--inset' : null,
34814
- attrs: attrs$6,
34840
+ attrs: attrs$5,
34815
34841
  on: { ...this.qListeners }
34816
34842
  }, slot(this, 'default'))
34817
34843
  }
@@ -38695,7 +38721,9 @@
38695
38721
  class: action.classes,
38696
38722
  attrs: attrsGridItem,
38697
38723
  on: {
38698
- click: () => this.onOk(action),
38724
+ click: () => {
38725
+ this.onOk(action);
38726
+ },
38699
38727
  keyup: e => {
38700
38728
  e.keyCode === 13 && this.onOk(action);
38701
38729
  }
@@ -38734,9 +38762,8 @@
38734
38762
  dark: this.isDark
38735
38763
  },
38736
38764
  on: {
38737
- click: () => this.onOk(action),
38738
- keyup: e => {
38739
- e.keyCode === 13 && this.onOk(action);
38765
+ click: () => {
38766
+ this.onOk(action);
38740
38767
  }
38741
38768
  }
38742
38769
  }, [