quasar 1.18.4 → 1.18.7

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 (172) hide show
  1. package/dist/api/BottomSheet.json +1 -1
  2. package/dist/api/Notify.json +205 -5
  3. package/dist/api/QAvatar.json +1 -1
  4. package/dist/api/QBreadcrumbsEl.json +1 -1
  5. package/dist/api/QBtn.json +2 -2
  6. package/dist/api/QBtnDropdown.json +3 -3
  7. package/dist/api/QCarousel.json +3 -3
  8. package/dist/api/QChip.json +4 -4
  9. package/dist/api/QExpansionItem.json +2 -2
  10. package/dist/api/QFab.json +2 -2
  11. package/dist/api/QFabAction.json +1 -1
  12. package/dist/api/QIcon.json +4 -2
  13. package/dist/api/QKnob.json +5 -0
  14. package/dist/api/QPagination.json +4 -4
  15. package/dist/api/QRouteTab.json +1 -1
  16. package/dist/api/QSelect.json +1 -1
  17. package/dist/api/QStep.json +4 -4
  18. package/dist/api/QStepper.json +4 -4
  19. package/dist/api/QTab.json +1 -1
  20. package/dist/api/QTimelineEntry.json +1 -1
  21. package/dist/api/QToggle.json +1 -1
  22. package/dist/api/QTree.json +1 -1
  23. package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
  24. package/dist/icon-set/eva-icons.umd.min.js +1 -1
  25. package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
  26. package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
  27. package/dist/icon-set/fontawesome-v6-pro.umd.min.js +6 -0
  28. package/dist/icon-set/fontawesome-v6.umd.min.js +6 -0
  29. package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
  30. package/dist/icon-set/line-awesome.umd.min.js +1 -1
  31. package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
  32. package/dist/icon-set/material-icons-round.umd.min.js +1 -1
  33. package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
  34. package/dist/icon-set/material-icons.umd.min.js +1 -1
  35. package/dist/icon-set/mdi-v3.umd.min.js +1 -1
  36. package/dist/icon-set/mdi-v4.umd.min.js +1 -1
  37. package/dist/icon-set/mdi-v5.umd.min.js +1 -1
  38. package/dist/icon-set/mdi-v6.umd.min.js +1 -1
  39. package/dist/icon-set/svg-bootstrap-icons.umd.min.js +2 -2
  40. package/dist/icon-set/svg-eva-icons.umd.min.js +2 -2
  41. package/dist/icon-set/svg-fontawesome-v5.umd.min.js +2 -2
  42. package/dist/icon-set/svg-fontawesome-v6.umd.min.js +6 -0
  43. package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
  44. package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
  45. package/dist/icon-set/svg-ionicons-v6.umd.min.js +2 -2
  46. package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
  47. package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
  48. package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
  49. package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
  50. package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
  51. package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
  52. package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
  53. package/dist/icon-set/svg-mdi-v6.umd.min.js +2 -2
  54. package/dist/icon-set/svg-themify.umd.min.js +1 -1
  55. package/dist/icon-set/themify.umd.min.js +1 -1
  56. package/dist/lang/ar.umd.min.js +1 -1
  57. package/dist/lang/az-latn.umd.min.js +1 -1
  58. package/dist/lang/bg.umd.min.js +1 -1
  59. package/dist/lang/ca.umd.min.js +1 -1
  60. package/dist/lang/cs.umd.min.js +1 -1
  61. package/dist/lang/da.umd.min.js +1 -1
  62. package/dist/lang/de.umd.min.js +1 -1
  63. package/dist/lang/el.umd.min.js +1 -1
  64. package/dist/lang/en-gb.umd.min.js +1 -1
  65. package/dist/lang/en-us.umd.min.js +1 -1
  66. package/dist/lang/eo.umd.min.js +1 -1
  67. package/dist/lang/es.umd.min.js +1 -1
  68. package/dist/lang/et.umd.min.js +1 -1
  69. package/dist/lang/eu.umd.min.js +6 -0
  70. package/dist/lang/fa-ir.umd.min.js +1 -1
  71. package/dist/lang/fa.umd.min.js +1 -1
  72. package/dist/lang/fi.umd.min.js +1 -1
  73. package/dist/lang/fr.umd.min.js +1 -1
  74. package/dist/lang/gn.umd.min.js +1 -1
  75. package/dist/lang/he.umd.min.js +1 -1
  76. package/dist/lang/hr.umd.min.js +1 -1
  77. package/dist/lang/hu.umd.min.js +1 -1
  78. package/dist/lang/id.umd.min.js +1 -1
  79. package/dist/lang/is.umd.min.js +1 -1
  80. package/dist/lang/it.umd.min.js +1 -1
  81. package/dist/lang/ja.umd.min.js +1 -1
  82. package/dist/lang/km.umd.min.js +1 -1
  83. package/dist/lang/ko-kr.umd.min.js +1 -1
  84. package/dist/lang/kur-ckb.umd.min.js +1 -1
  85. package/dist/lang/kz.umd.min.js +6 -0
  86. package/dist/lang/lu.umd.min.js +1 -1
  87. package/dist/lang/lv.umd.min.js +1 -1
  88. package/dist/lang/ml.umd.min.js +1 -1
  89. package/dist/lang/ms.umd.min.js +1 -1
  90. package/dist/lang/my.umd.min.js +1 -1
  91. package/dist/lang/nb-no.umd.min.js +1 -1
  92. package/dist/lang/nl.umd.min.js +1 -1
  93. package/dist/lang/pl.umd.min.js +1 -1
  94. package/dist/lang/pt-br.umd.min.js +1 -1
  95. package/dist/lang/pt.umd.min.js +1 -1
  96. package/dist/lang/ro.umd.min.js +1 -1
  97. package/dist/lang/ru.umd.min.js +1 -1
  98. package/dist/lang/sk.umd.min.js +1 -1
  99. package/dist/lang/sl.umd.min.js +1 -1
  100. package/dist/lang/sr.umd.min.js +1 -1
  101. package/dist/lang/sv.umd.min.js +1 -1
  102. package/dist/lang/ta.umd.min.js +1 -1
  103. package/dist/lang/th.umd.min.js +1 -1
  104. package/dist/lang/tr.umd.min.js +1 -1
  105. package/dist/lang/ug.umd.min.js +2 -2
  106. package/dist/lang/uk.umd.min.js +1 -1
  107. package/dist/lang/vi.umd.min.js +1 -1
  108. package/dist/lang/zh-hans.umd.min.js +1 -1
  109. package/dist/lang/zh-hant.umd.min.js +1 -1
  110. package/dist/quasar.addon.css +1 -1
  111. package/dist/quasar.addon.rtl.css +1 -1
  112. package/dist/quasar.common.js +2 -2
  113. package/dist/quasar.css +6 -3
  114. package/dist/quasar.esm.js +2 -2
  115. package/dist/quasar.ie.polyfills.js +1 -1
  116. package/dist/quasar.ie.polyfills.umd.min.js +1 -1
  117. package/dist/quasar.min.css +1 -1
  118. package/dist/quasar.rtl.css +8 -3
  119. package/dist/quasar.rtl.min.css +1 -1
  120. package/dist/quasar.sass +4 -1
  121. package/dist/quasar.styl +4 -1
  122. package/dist/quasar.umd.js +176 -97
  123. package/dist/quasar.umd.min.js +2 -2
  124. package/dist/quasar.umd.modern.js +176 -97
  125. package/dist/quasar.umd.modern.min.js +2 -2
  126. package/dist/types/extras/icon-set.d.ts +2 -0
  127. package/dist/types/index.d.ts +114 -44
  128. package/dist/vetur/quasar-attributes.json +42 -38
  129. package/dist/vetur/quasar-tags.json +1 -0
  130. package/dist/web-types/web-types.json +49 -39
  131. package/icon-set/fontawesome-v6-pro.js +128 -0
  132. package/icon-set/fontawesome-v6.js +128 -0
  133. package/icon-set/svg-fontawesome-v6.js +198 -0
  134. package/lang/eu.js +93 -0
  135. package/lang/index.json +8 -0
  136. package/lang/kz.js +97 -0
  137. package/lang/ug.js +49 -52
  138. package/package.json +1 -1
  139. package/src/api.extends.json +1 -1
  140. package/src/components/btn/QBtn.js +30 -22
  141. package/src/components/date/QDate.js +2 -1
  142. package/src/components/dialog-plugin/DialogPlugin.js +6 -5
  143. package/src/components/fab/QFab.js +1 -1
  144. package/src/components/field/QField.js +17 -9
  145. package/src/components/file/QFile.js +1 -0
  146. package/src/components/icon/QIcon.js +6 -2
  147. package/src/components/icon/QIcon.json +1 -3
  148. package/src/components/input/QInput.js +4 -1
  149. package/src/components/knob/QKnob.js +5 -2
  150. package/src/components/knob/QKnob.json +6 -0
  151. package/src/components/linear-progress/QLinearProgress.sass +1 -0
  152. package/src/components/linear-progress/QLinearProgress.styl +1 -0
  153. package/src/components/select/QSelect.js +23 -8
  154. package/src/components/slide-transition/QSlideTransition.js +4 -4
  155. package/src/components/slider/slider-utils.js +4 -4
  156. package/src/components/stepper/QStep.json +3 -0
  157. package/src/components/stepper/QStepper.json +3 -0
  158. package/src/components/stepper/QStepper.sass +2 -0
  159. package/src/components/stepper/QStepper.styl +2 -0
  160. package/src/components/stepper/StepHeader.js +23 -8
  161. package/src/components/table/table-sort.js +2 -2
  162. package/src/components/uploader/QUploaderBase.js +4 -1
  163. package/src/mixins/datetime.js +3 -1
  164. package/src/mixins/file.js +3 -2
  165. package/src/plugins/Loading.js +3 -2
  166. package/src/plugins/LoadingBar.js +15 -10
  167. package/src/plugins/Notify.js +8 -5
  168. package/src/plugins/Notify.json +100 -0
  169. package/src/utils/extend.js +2 -2
  170. package/src/utils/is.js +4 -14
  171. package/src/utils/morph.js +4 -3
  172. package/src/utils/web-storage.js +3 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.18.4
2
+ * Quasar Framework v1.18.7
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.18.4";
15
+ var version = "1.18.7";
16
16
 
17
17
  /* eslint-disable no-useless-escape */
18
18
 
@@ -2410,6 +2410,7 @@
2410
2410
  var svgUseRE = /^svguse:/;
2411
2411
  var ionRE = /^ion-/;
2412
2412
  var faLaRE = /^[lf]a[srlbdk]? /;
2413
+ var fa6RE = /^fa-(solid|regular|light|brands|duotone|thin)/;
2413
2414
 
2414
2415
  var QIcon = Vue.extend({
2415
2416
  name: 'QIcon',
@@ -2442,7 +2443,7 @@
2442
2443
  var cls;
2443
2444
  var icon = this.name;
2444
2445
 
2445
- if (!icon) {
2446
+ if (icon === 'none' || !icon) {
2446
2447
  return { none: true }
2447
2448
  }
2448
2449
 
@@ -2451,6 +2452,9 @@
2451
2452
  if (res !== void 0) {
2452
2453
  if (res.icon !== void 0) {
2453
2454
  icon = res.icon;
2455
+ if (icon === 'none' || !icon) {
2456
+ return { none: true }
2457
+ }
2454
2458
  }
2455
2459
  else {
2456
2460
  return {
@@ -2509,7 +2513,7 @@
2509
2513
  if (matches !== null) {
2510
2514
  cls = libMap[ matches[ 1 ] ](icon);
2511
2515
  }
2512
- else if (faLaRE.test(icon) === true) {
2516
+ else if (faLaRE.test(icon) === true || fa6RE.test(icon) === true) {
2513
2517
  cls = icon;
2514
2518
  }
2515
2519
  else if (ionRE.test(icon) === true) {
@@ -3767,34 +3771,41 @@
3767
3771
  },
3768
3772
 
3769
3773
  __onKeydown: function __onKeydown (e) {
3770
- if (isKeyCode(e, [ 13, 32 ]) === true) {
3771
- stopAndPrevent(e);
3774
+ this.$emit('keydown', e);
3772
3775
 
3776
+ if (isKeyCode(e, [ 13, 32 ]) === true) {
3773
3777
  if (keyboardTarget !== this.$el) {
3774
3778
  keyboardTarget !== void 0 && this.__cleanup();
3775
3779
 
3776
- // focus external button if the focus helper was focused before
3777
- this.$el.focus();
3780
+ if (e.defaultPrevented !== true) {
3781
+ // focus external button if the focus helper was focused before
3782
+ this.$el.focus();
3778
3783
 
3779
- keyboardTarget = this.$el;
3780
- this.$el.classList.add('q-btn--active');
3781
- document.addEventListener('keyup', this.__onPressEnd, true);
3782
- this.$el.addEventListener('blur', this.__onPressEnd, passiveCapture);
3784
+ keyboardTarget = this.$el;
3785
+ this.$el.classList.add('q-btn--active');
3786
+ document.addEventListener('keyup', this.__onPressEnd, true);
3787
+ this.$el.addEventListener('blur', this.__onPressEnd, passiveCapture);
3788
+ }
3783
3789
  }
3784
- }
3785
3790
 
3786
- this.$emit('keydown', e);
3791
+ stopAndPrevent(e);
3792
+ }
3787
3793
  },
3788
3794
 
3789
3795
  __onTouchstart: function __onTouchstart (e) {
3790
3796
  var this$1 = this;
3791
3797
 
3798
+ this.$emit('touchstart', e);
3799
+
3792
3800
  if (touchTarget !== this.$el) {
3793
3801
  touchTarget !== void 0 && this.__cleanup();
3794
- touchTarget = this.$el;
3795
- var target = this.touchTargetEl = e.target;
3796
- target.addEventListener('touchcancel', this.__onPressEnd, passiveCapture);
3797
- target.addEventListener('touchend', this.__onPressEnd, passiveCapture);
3802
+
3803
+ if (e.defaultPrevented !== true) {
3804
+ touchTarget = this.$el;
3805
+ var target = this.touchTargetEl = e.target;
3806
+ target.addEventListener('touchcancel', this.__onPressEnd, passiveCapture);
3807
+ target.addEventListener('touchend', this.__onPressEnd, passiveCapture);
3808
+ }
3798
3809
  }
3799
3810
 
3800
3811
  // avoid duplicated mousedown event
@@ -3804,20 +3815,21 @@
3804
3815
  this.mouseTimer = setTimeout(function () {
3805
3816
  this$1.avoidMouseRipple = false;
3806
3817
  }, 200);
3807
-
3808
- this.$emit('touchstart', e);
3809
3818
  },
3810
3819
 
3811
3820
  __onMousedown: function __onMousedown (e) {
3821
+ e.qSkipRipple = this.avoidMouseRipple === true;
3822
+ this.$emit('mousedown', e);
3823
+
3812
3824
  if (mouseTarget !== this.$el) {
3813
3825
  mouseTarget !== void 0 && this.__cleanup();
3814
- mouseTarget = this.$el;
3815
- this.$el.classList.add('q-btn--active');
3816
- document.addEventListener('mouseup', this.__onPressEnd, passiveCapture);
3817
- }
3818
3826
 
3819
- e.qSkipRipple = this.avoidMouseRipple === true;
3820
- this.$emit('mousedown', e);
3827
+ if (e.defaultPrevented !== true) {
3828
+ mouseTarget = this.$el;
3829
+ this.$el.classList.add('q-btn--active');
3830
+ document.addEventListener('mouseup', this.__onPressEnd, passiveCapture);
3831
+ }
3832
+ }
3821
3833
  },
3822
3834
 
3823
3835
  __onPressEnd: function __onPressEnd (e) {
@@ -6996,10 +7008,21 @@
6996
7008
  return a !== a && b !== b // eslint-disable-line no-self-compare
6997
7009
  }
6998
7010
 
7011
+ // not perfect, but what we ARE interested is for Arrays not to slip in
7012
+ // as spread operator will mess things up in various areas
7013
+ // see https://jsbench.me/tbl0iliyax/1
7014
+ function isObject (v) {
7015
+ return v !== null && typeof v === 'object' && Array.isArray(v) !== true
7016
+ }
7017
+
6999
7018
  function isDate (v) {
7000
7019
  return Object.prototype.toString.call(v) === '[object Date]'
7001
7020
  }
7002
7021
 
7022
+ function isRegexp (v) {
7023
+ return Object.prototype.toString.call(v) === '[object RegExp]'
7024
+ }
7025
+
7003
7026
  function isNumber (v) {
7004
7027
  return typeof v === 'number' && isFinite(v)
7005
7028
  }
@@ -9034,7 +9057,7 @@
9034
9057
  if (typeof def === 'function') {
9035
9058
  return this.markerTicks.map(function (value) {
9036
9059
  var item = def(value);
9037
- return Object(item) === item ? Object.assign({}, item, {value: value}) : { value: value, label: item }
9060
+ return isObject(item) === true ? Object.assign({}, item, {value: value}) : { value: value, label: item }
9038
9061
  })
9039
9062
  }
9040
9063
 
@@ -9046,14 +9069,14 @@
9046
9069
 
9047
9070
  if (Array.isArray(def) === true) {
9048
9071
  return def
9049
- .map(function (item) { return (Object(item) === item ? item : { value: item }); })
9072
+ .map(function (item) { return (isObject(item) === true ? item : { value: item }); })
9050
9073
  .filter(filterFn)
9051
9074
  }
9052
9075
 
9053
9076
  return Object.keys(def).map(function (key) {
9054
9077
  var item = def[ key ];
9055
9078
  var value = Number(key);
9056
- return Object(item) === item ? Object.assign({}, item, {value: value}) : { value: value, label: item }
9079
+ return isObject(item) === true ? Object.assign({}, item, {value: value}) : { value: value, label: item }
9057
9080
  }).filter(filterFn)
9058
9081
  },
9059
9082
 
@@ -11764,7 +11787,9 @@
11764
11787
 
11765
11788
  methods: {
11766
11789
  __getLocale: function __getLocale () {
11767
- return this.locale || this.$q.lang.date
11790
+ return this.locale !== void 0
11791
+ ? Object.assign({}, this.$q.lang.date, this.locale)
11792
+ : this.$q.lang.date
11768
11793
  },
11769
11794
 
11770
11795
  __getCurrentDate: function __getCurrentDate (dateOnly) {
@@ -12977,7 +13002,7 @@
12977
13002
 
12978
13003
  var fn = function (date) { return this$1.__decodeString(date, this$1.innerMask, this$1.innerLocale); };
12979
13004
  return this.normalizedModel
12980
- .filter(function (date) { return Object(date) === date && date.from !== void 0 && date.to !== void 0; })
13005
+ .filter(function (date) { return isObject(date) === true && date.from !== void 0 && date.to !== void 0; })
12981
13006
  .map(function (range) { return ({ from: fn(range.from), to: fn(range.to) }); })
12982
13007
  .filter(function (range) { return range.from.dateHash !== null && range.to.dateHash !== null && range.from.dateHash < range.to.dateHash; })
12983
13008
  },
@@ -16828,13 +16853,13 @@
16828
16853
  continue
16829
16854
  }
16830
16855
 
16831
- if (deep && copy && (isPlainObject(copy) || (copyIsArray = type(copy) === 'array'))) {
16856
+ if (deep && copy && (isPlainObject(copy) === true || (copyIsArray = type(copy) === 'array'))) {
16832
16857
  if (copyIsArray) {
16833
16858
  copyIsArray = false;
16834
16859
  clone = src && type(src) === 'array' ? src : [];
16835
16860
  }
16836
16861
  else {
16837
- clone = src && isPlainObject(src) ? src : {};
16862
+ clone = src && isPlainObject(src) === true ? src : {};
16838
16863
  }
16839
16864
 
16840
16865
  target[name] = extend(deep, clone, copy);
@@ -17509,8 +17534,8 @@
17509
17534
 
17510
17535
  this$1.timer = setTimeout(function () {
17511
17536
  el.style.height = (el.scrollHeight) + "px";
17512
- this$1.animListener = function (ev) {
17513
- if (Object(ev) !== ev || ev.target === el) {
17537
+ this$1.animListener = function (evt) {
17538
+ if (Object(evt) !== evt || evt.target === el) {
17514
17539
  this$1.__end(el, 'show');
17515
17540
  }
17516
17541
  };
@@ -17535,8 +17560,8 @@
17535
17560
 
17536
17561
  this$1.timer = setTimeout(function () {
17537
17562
  el.style.height = 0;
17538
- this$1.animListener = function (ev) {
17539
- if (Object(ev) !== ev || ev.target === el) {
17563
+ this$1.animListener = function (evt) {
17564
+ if (Object(evt) !== evt || evt.target === el) {
17540
17565
  this$1.__end(el, 'hide');
17541
17566
  }
17542
17567
  };
@@ -18095,7 +18120,7 @@
18095
18120
  var staticClass = "q-fab__" + kebab + " absolute-full";
18096
18121
 
18097
18122
  return slotFn === void 0
18098
- ? h(QIcon, { staticClass: staticClass, props: { name: this[kebab] || this.$q.iconSet.fab[camel] } })
18123
+ ? h(QIcon, { staticClass: staticClass, props: { name: this[camel] || this.$q.iconSet.fab[camel] } })
18099
18124
  : h('div', { staticClass: staticClass }, slotFn(this.slotScope))
18100
18125
  }
18101
18126
  },
@@ -18809,14 +18834,6 @@
18809
18834
  }, this.__getControlContainer(h))
18810
18835
  );
18811
18836
 
18812
- this.$scopedSlots.append !== void 0 && node.push(
18813
- h('div', {
18814
- staticClass: 'q-field__append q-field__marginal row no-wrap items-center',
18815
- key: 'append',
18816
- on: this.slotsEvents
18817
- }, this.$scopedSlots.append())
18818
- );
18819
-
18820
18837
  this.hasError === true && this.noErrorIcon === false && node.push(
18821
18838
  this.__getInnerAppendNode(h, 'error', [
18822
18839
  h(QIcon, { props: { name: this.$q.iconSet.field.error, color: 'negative' } })
@@ -18847,6 +18864,14 @@
18847
18864
  );
18848
18865
  }
18849
18866
 
18867
+ this.$scopedSlots.append !== void 0 && node.push(
18868
+ h('div', {
18869
+ staticClass: 'q-field__append q-field__marginal row no-wrap items-center',
18870
+ key: 'append',
18871
+ on: this.slotsEvents
18872
+ }, this.$scopedSlots.append())
18873
+ );
18874
+
18850
18875
  this.__getInnerAppend !== void 0 && node.push(
18851
18876
  this.__getInnerAppendNode(h, 'inner-append', this.__getInnerAppend(h))
18852
18877
  );
@@ -19062,10 +19087,16 @@
19062
19087
  this.__onPreRender !== void 0 && this.__onPreRender();
19063
19088
  this.__onPostRender !== void 0 && this.$nextTick(this.__onPostRender);
19064
19089
 
19090
+ var attrs = this.__getControl === void 0 && this.$scopedSlots.control === void 0
19091
+ ? Object.assign({}, this.qAttrs,
19092
+ {'data-autofocus': this.autofocus},
19093
+ this.attrs)
19094
+ : this.attrs;
19095
+
19065
19096
  return h('label', {
19066
19097
  staticClass: 'q-field q-validation-component row no-wrap items-start',
19067
19098
  class: this.classes,
19068
- attrs: this.attrs
19099
+ attrs: attrs
19069
19100
  }, [
19070
19101
  this.$scopedSlots.before !== void 0 ? h('div', {
19071
19102
  staticClass: 'q-field__before q-field__marginal row no-wrap items-center',
@@ -19251,7 +19282,7 @@
19251
19282
  // Cordova/iOS allows selecting multiple files even when the
19252
19283
  // multiple attribute is not specified. We also normalize drag'n'dropped
19253
19284
  // files here:
19254
- if (this.multiple !== true) {
19285
+ if (this.multiple !== true && files.length > 0) {
19255
19286
  files = [ files[0] ];
19256
19287
  }
19257
19288
 
@@ -19315,7 +19346,7 @@
19315
19346
 
19316
19347
  __onDragLeave: function __onDragLeave (e) {
19317
19348
  stopAndPrevent(e);
19318
- this.dnd = false;
19349
+ e.relatedTarget !== this.$refs.dnd && (this.dnd = false);
19319
19350
  },
19320
19351
 
19321
19352
  __onDrop: function __onDrop (e) {
@@ -19333,6 +19364,7 @@
19333
19364
  if (this.dnd === true) {
19334
19365
  return h('div', {
19335
19366
  staticClass: ("q-" + type + "__dnd absolute-full"),
19367
+ ref: 'dnd',
19336
19368
  on: cache(this, 'dnd', {
19337
19369
  dragenter: stopAndPreventDrag,
19338
19370
  dragover: stopAndPreventDrag,
@@ -19538,6 +19570,7 @@
19538
19570
  if (this.editable === true) {
19539
19571
  data.on = cache(this, 'native', {
19540
19572
  dragover: this.__onDragOver,
19573
+ dragleave: this.__onDragLeave,
19541
19574
  keydown: this.__onKeydown,
19542
19575
  keyup: this.__onKeyup
19543
19576
  });
@@ -21488,7 +21521,10 @@
21488
21521
  if (this.hasMask === true) {
21489
21522
  if (this.stopValueWatcher === true) {
21490
21523
  this.stopValueWatcher = false;
21491
- return
21524
+
21525
+ if (String(v) === this.emitCachedValue) {
21526
+ return
21527
+ }
21492
21528
  }
21493
21529
 
21494
21530
  this.__updateMaskValue(v);
@@ -22221,11 +22257,14 @@
22221
22257
  angle = center.left < pos.left ? angle + 90 : 270 - angle;
22222
22258
  }
22223
22259
 
22224
- if (this.angle) {
22260
+ if (this.$q.lang.rtl === true) {
22261
+ angle = normalizeToInterval(-angle - this.angle, 0, 360);
22262
+ }
22263
+ else if (this.angle) {
22225
22264
  angle = normalizeToInterval(angle - this.angle, 0, 360);
22226
22265
  }
22227
22266
 
22228
- if (this.$q.lang.rtl === true) {
22267
+ if (this.reverse === true) {
22229
22268
  angle = 360 - angle;
22230
22269
  }
22231
22270
 
@@ -26998,6 +27037,20 @@
26998
27037
 
26999
27038
  menu: function menu (show) {
27000
27039
  this.__updateMenu(show);
27040
+ },
27041
+
27042
+ virtualScrollLength: function virtualScrollLength () {
27043
+ var this$1 = this;
27044
+
27045
+ if (this.menu === true && this.innerLoading === false) {
27046
+ this.reset();
27047
+
27048
+ this.$nextTick(function () {
27049
+ if (this$1.menu === true && this$1.innerLoading === false) {
27050
+ this$1.__updateMenu(true);
27051
+ }
27052
+ });
27053
+ }
27001
27054
  }
27002
27055
  },
27003
27056
 
@@ -27448,9 +27501,7 @@
27448
27501
 
27449
27502
  return typeof val === 'function'
27450
27503
  ? val
27451
- : function (opt) { return Object(opt) === opt && val in opt
27452
- ? opt[val]
27453
- : opt; }
27504
+ : function (opt) { return (opt !== null && typeof opt === 'object' && val in opt ? opt[ val ] : opt); }
27454
27505
  },
27455
27506
 
27456
27507
  isOptionSelected: function isOptionSelected (opt) {
@@ -27815,6 +27866,8 @@
27815
27866
  }
27816
27867
  // there can be only one (when dialog is opened the control in dialog should be target)
27817
27868
  else if (this.editable === true) {
27869
+ var attrs$1 = isTarget === true ? this.comboboxAttrs : void 0;
27870
+
27818
27871
  child.push(
27819
27872
  h('div', {
27820
27873
  ref: isTarget === true ? 'target' : void 0,
@@ -27822,7 +27875,7 @@
27822
27875
  staticClass: 'q-select__focus-target',
27823
27876
  attrs: Object.assign({}, {id: isTarget === true ? this.targetUid : void 0,
27824
27877
  tabindex: this.tabindex},
27825
- this.comboboxAttrs),
27878
+ attrs$1),
27826
27879
  on: cache(this, 'f-tget', {
27827
27880
  keydown: this.__onTargetKeydown,
27828
27881
  keyup: this.__onTargetKeyup,
@@ -27860,7 +27913,9 @@
27860
27913
  );
27861
27914
  }
27862
27915
 
27863
- return h('div', { staticClass: 'q-field__native row items-center', attrs: this.qAttrs }, child)
27916
+ var attrs = this.useInput === true || isTarget !== true ? void 0 : this.qAttrs;
27917
+
27918
+ return h('div', { staticClass: 'q-field__native row items-center', attrs: attrs }, child)
27864
27919
  },
27865
27920
 
27866
27921
  __getOptions: function __getOptions (h) {
@@ -27927,6 +27982,8 @@
27927
27982
  },
27928
27983
 
27929
27984
  __getInput: function __getInput (h, fromDialog, isTarget) {
27985
+ var attrs = isTarget === true ? Object.assign({}, this.comboboxAttrs, this.qAttrs) : void 0;
27986
+
27930
27987
  var options = {
27931
27988
  ref: isTarget === true ? 'target' : void 0,
27932
27989
  key: 'i_t',
@@ -27935,15 +27992,14 @@
27935
27992
  class: this.computedInputClass,
27936
27993
  domProps: { value: this.inputValue !== void 0 ? this.inputValue : '' },
27937
27994
  attrs: Object.assign({}, {type: 'search'},
27938
- this.qAttrs,
27995
+ attrs,
27939
27996
  {id: isTarget === true ? this.targetUid : void 0,
27940
27997
  maxlength: this.maxlength, // this is converted to prop by QField
27941
27998
  tabindex: this.tabindex,
27942
27999
  autocomplete: this.autocomplete,
27943
28000
  'data-autofocus': fromDialog === true ? false : this.autofocus,
27944
28001
  disabled: this.disable === true,
27945
- readonly: this.readonly === true},
27946
- this.comboboxAttrs),
28002
+ readonly: this.readonly === true}),
27947
28003
  on: this.inputControlEvents
27948
28004
  };
27949
28005
 
@@ -31307,23 +31363,36 @@
31307
31363
 
31308
31364
  hasPrefix: function hasPrefix () {
31309
31365
  return this.step.prefix &&
31310
- this.isActive === false &&
31311
- this.isError === false &&
31312
- this.isDone === false
31366
+ (this.isActive === false || this.stepper.activeIcon === 'none') &&
31367
+ (this.isError === false || this.stepper.errorIcon === 'none') &&
31368
+ (this.isDone === false || this.stepper.doneIcon === 'none')
31313
31369
  },
31314
31370
 
31315
31371
  icon: function icon () {
31372
+ var defaultIcon = this.step.icon || this.stepper.inactiveIcon;
31373
+
31316
31374
  if (this.isActive === true) {
31317
- return this.step.activeIcon || this.stepper.activeIcon || this.$q.iconSet.stepper.active
31375
+ var icon = this.step.activeIcon || this.stepper.activeIcon;
31376
+ return icon === 'none'
31377
+ ? defaultIcon
31378
+ : icon || this.$q.iconSet.stepper.active
31318
31379
  }
31380
+
31319
31381
  if (this.isError === true) {
31320
- return this.step.errorIcon || this.stepper.errorIcon || this.$q.iconSet.stepper.error
31382
+ var icon$1 = this.step.errorIcon || this.stepper.errorIcon;
31383
+ return icon$1 === 'none'
31384
+ ? defaultIcon
31385
+ : icon$1 || this.$q.iconSet.stepper.error
31321
31386
  }
31387
+
31322
31388
  if (this.isDisable === false && this.isDone === true) {
31323
- return this.step.doneIcon || this.stepper.doneIcon || this.$q.iconSet.stepper.done
31389
+ var icon$2 = this.step.doneIcon || this.stepper.doneIcon;
31390
+ return icon$2 === 'none'
31391
+ ? defaultIcon
31392
+ : icon$2 || this.$q.iconSet.stepper.done
31324
31393
  }
31325
31394
 
31326
- return this.step.icon || this.stepper.inactiveIcon
31395
+ return defaultIcon
31327
31396
  },
31328
31397
 
31329
31398
  color: function color () {
@@ -31350,7 +31419,9 @@
31350
31419
  classes: function classes () {
31351
31420
  return "q-stepper__tab col-grow flex items-center no-wrap relative-position" +
31352
31421
  (this.color !== void 0 ? (" text-" + (this.color)) : '') +
31353
- (this.isError === true ? ' q-stepper__tab--error' : '') +
31422
+ (this.isError === true
31423
+ ? ' q-stepper__tab--error q-stepper__tab--error-with-' + (this.hasPrefix === true ? 'prefix' : 'icon')
31424
+ : '') +
31354
31425
  (this.isActive === true ? ' q-stepper__tab--active' : '') +
31355
31426
  (this.isDone === true ? ' q-stepper__tab--done' : '') +
31356
31427
  (this.headerNav === true ? ' q-stepper__tab--navigation q-focusable q-hoverable' : '') +
@@ -32644,7 +32715,7 @@
32644
32715
  sort: function sort (col /* String(col name) or Object(col definition) */) {
32645
32716
  var sortOrder = this.columnSortOrder;
32646
32717
 
32647
- if (col === Object(col)) {
32718
+ if (isObject(col) === true) {
32648
32719
  if (col.sortOrder) {
32649
32720
  sortOrder = col.sortOrder;
32650
32721
  }
@@ -35999,7 +36070,10 @@
35999
36070
  'disabled q-uploader--disable': this.disable
36000
36071
  },
36001
36072
  on: this.canAddFiles === true
36002
- ? cache(this, 'drag', { dragover: this.__onDragOver })
36073
+ ? cache(this, 'drag', {
36074
+ dragover: this.__onDragOver,
36075
+ dragleave: this.__onDragLeave
36076
+ })
36003
36077
  : null
36004
36078
  }, children)
36005
36079
  }
@@ -37043,7 +37117,7 @@
37043
37117
  if (typeof options.style === 'string') {
37044
37118
  elTo.style.cssText += ' ' + options.style;
37045
37119
  }
37046
- else if (options.style === Object(options.style)) {
37120
+ else if (isObject(options.style) === true) {
37047
37121
  for (var prop in options.style) {
37048
37122
  elTo.style[prop] = options.style[prop];
37049
37123
  }
@@ -37362,8 +37436,8 @@
37362
37436
  elToClone.style.animation = (options.duration) + "ms " + (options.easing) + " " + (options.delay) + "ms " + animationDirection + " " + (options.fill) + " " + qAnimId + "-to";
37363
37437
  elTo.style.animation = (options.duration) + "ms " + (options.easing) + " " + (options.delay) + "ms " + animationDirection + " " + (options.fill) + " " + qAnimId;
37364
37438
 
37365
- var cleanup$1 = function (ev) {
37366
- if (ev === Object(ev) && ev.animationName !== qAnimId) {
37439
+ var cleanup$1 = function (evt) {
37440
+ if (evt === Object(evt) && evt.animationName !== qAnimId) {
37367
37441
  return
37368
37442
  }
37369
37443
 
@@ -39188,7 +39262,7 @@
39188
39262
 
39189
39263
  spinner: function spinner () {
39190
39264
  if (this.progress !== false) {
39191
- return Object(this.progress) === this.progress
39265
+ return isObject(this.progress) === true
39192
39266
  ? {
39193
39267
  component: this.progress.spinner || QSpinner,
39194
39268
  props: { color: this.progress.color || this.vmColor }
@@ -39205,7 +39279,7 @@
39205
39279
  },
39206
39280
 
39207
39281
  okLabel: function okLabel () {
39208
- return Object(this.ok) === this.ok
39282
+ return isObject(this.ok) === true
39209
39283
  ? this.$q.lang.label.ok
39210
39284
  : (
39211
39285
  this.ok === true
@@ -39215,7 +39289,7 @@
39215
39289
  },
39216
39290
 
39217
39291
  cancelLabel: function cancelLabel () {
39218
- return Object(this.cancel) === this.cancel
39292
+ return isObject(this.cancel) === true
39219
39293
  ? this.$q.lang.label.cancel
39220
39294
  : (
39221
39295
  this.cancel === true
@@ -39244,14 +39318,14 @@
39244
39318
  label: this.okLabel,
39245
39319
  ripple: false,
39246
39320
  disable: this.okDisabled},
39247
- (Object(this.ok) === this.ok ? this.ok : { flat: true }))
39321
+ (isObject(this.ok) === true ? this.ok : { flat: true }))
39248
39322
  },
39249
39323
 
39250
39324
  cancelProps: function cancelProps () {
39251
39325
  return Object.assign({}, {color: this.vmColor,
39252
39326
  label: this.cancelLabel,
39253
39327
  ripple: false},
39254
- (Object(this.cancel) === this.cancel ? this.cancel : { flat: true }))
39328
+ (isObject(this.cancel) === true ? this.cancel : { flat: true }))
39255
39329
  }
39256
39330
  },
39257
39331
 
@@ -39478,6 +39552,15 @@
39478
39552
  var props = cfg.loadingBar !== void 0
39479
39553
  ? Object.assign({}, cfg.loadingBar)
39480
39554
  : {};
39555
+ var on = {
39556
+ start: function () {
39557
+ this$1.isActive = true;
39558
+ },
39559
+
39560
+ stop: function () {
39561
+ this$1.isActive = false;
39562
+ }
39563
+ };
39481
39564
 
39482
39565
  var bar = new Vue({
39483
39566
  name: 'LoadingBar',
@@ -39492,22 +39575,17 @@
39492
39575
 
39493
39576
  render: function (h) { return h(QAjaxBar, {
39494
39577
  ref: 'bar',
39495
- props: props
39578
+ props: props,
39579
+ on: on
39496
39580
  }); }
39497
39581
  }).$mount().$refs.bar;
39498
39582
 
39499
39583
  Object.assign(this, {
39500
- start: function (speed) {
39501
- bar.start(speed);
39502
- this$1.isActive = bar.isActive = true;
39503
- },
39504
- stop: function () {
39505
- var sessions = bar.stop();
39506
- this$1.isActive = bar.isActive = sessions > 0;
39507
- },
39584
+ start: bar.start,
39585
+ stop: bar.stop,
39508
39586
  increment: bar.increment,
39509
39587
  setDefaults: function (opts) {
39510
- opts === Object(opts) && Object.assign(props, opts);
39588
+ isObject(opts) === true && Object.assign(props, opts);
39511
39589
  bar.$parent.$forceUpdate();
39512
39590
  }
39513
39591
  });
@@ -39546,7 +39624,7 @@
39546
39624
 
39547
39625
  if (isSSR === true) { return }
39548
39626
 
39549
- props$1 = opts === Object(opts) && opts.ignoreDefaults === true
39627
+ props$1 = isObject(opts) === true && opts.ignoreDefaults === true
39550
39628
  ? Object.assign({}, originalDefaults, opts)
39551
39629
  : Object.assign({}, defaults, opts);
39552
39630
 
@@ -39642,7 +39720,7 @@
39642
39720
  },
39643
39721
 
39644
39722
  setDefaults: function setDefaults (opts) {
39645
- opts === Object(opts) && Object.assign(defaults, opts);
39723
+ isObject(opts) === true && Object.assign(defaults, opts);
39646
39724
  },
39647
39725
 
39648
39726
  install: function install (ref) {
@@ -40037,7 +40115,7 @@
40037
40115
  Object.assign(notif, defaults$1);
40038
40116
  }
40039
40117
 
40040
- if (Object(config) !== config) {
40118
+ if (isObject(config) === false) {
40041
40119
  if (notif.type) {
40042
40120
  Object.assign(notif, notifTypes[notif.type]);
40043
40121
  }
@@ -40387,7 +40465,8 @@
40387
40465
  if (notif.spinner !== false) {
40388
40466
  mainChild.push(
40389
40467
  h(notif.spinner, {
40390
- staticClass: 'q-notification__spinner q-notification__spinner--' + meta.leftClass
40468
+ staticClass: 'q-notification__spinner q-notification__spinner--' + meta.leftClass,
40469
+ props: { color: notif.spinnerColor, size: notif.spinnerSize }
40391
40470
  })
40392
40471
  );
40393
40472
  }
@@ -40396,7 +40475,7 @@
40396
40475
  h(QIcon, {
40397
40476
  staticClass: 'q-notification__icon q-notification__icon--' + meta.leftClass,
40398
40477
  attrs: { role: 'img' },
40399
- props: { name: notif.icon }
40478
+ props: { name: notif.icon, color: notif.iconColor, size: notif.iconSize }
40400
40479
  })
40401
40480
  );
40402
40481
  }
@@ -40500,13 +40579,13 @@
40500
40579
 
40501
40580
  var Notify = {
40502
40581
  setDefaults: function setDefaults (opts) {
40503
- if (isSSR !== true && opts === Object(opts)) {
40582
+ if (isSSR !== true && isObject(opts) === true) {
40504
40583
  Object.assign(defaults$1, opts);
40505
40584
  }
40506
40585
  },
40507
40586
 
40508
40587
  registerType: function registerType (typeName, typeOpts) {
40509
- if (isSSR !== true && typeOpts === Object(typeOpts)) {
40588
+ if (isSSR !== true && isObject(typeOpts) === true) {
40510
40589
  notifTypes[typeName] = typeOpts;
40511
40590
  }
40512
40591
  },
@@ -40547,10 +40626,10 @@
40547
40626
  };
40548
40627
 
40549
40628
  function encode$1 (value) {
40550
- if (Object.prototype.toString.call(value) === '[object Date]') {
40629
+ if (isDate(value) === true) {
40551
40630
  return '__q_date|' + value.toUTCString()
40552
40631
  }
40553
- if (Object.prototype.toString.call(value) === '[object RegExp]') {
40632
+ if (isRegexp(value) === true) {
40554
40633
  return '__q_expr|' + value.source
40555
40634
  }
40556
40635
  if (typeof value === 'number') {