quasar 1.18.3 → 1.18.6

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 (175) 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 +23 -0
  14. package/dist/api/QPagination.json +4 -4
  15. package/dist/api/QRange.json +1 -1
  16. package/dist/api/QRouteTab.json +1 -1
  17. package/dist/api/QSelect.json +1 -1
  18. package/dist/api/QSlider.json +1 -1
  19. package/dist/api/QStep.json +4 -4
  20. package/dist/api/QStepper.json +4 -4
  21. package/dist/api/QTab.json +1 -1
  22. package/dist/api/QTimelineEntry.json +1 -1
  23. package/dist/api/QToggle.json +1 -1
  24. package/dist/api/QTree.json +1 -1
  25. package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
  26. package/dist/icon-set/eva-icons.umd.min.js +1 -1
  27. package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
  28. package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
  29. package/dist/icon-set/fontawesome-v6-pro.umd.min.js +6 -0
  30. package/dist/icon-set/fontawesome-v6.umd.min.js +6 -0
  31. package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
  32. package/dist/icon-set/line-awesome.umd.min.js +1 -1
  33. package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
  34. package/dist/icon-set/material-icons-round.umd.min.js +1 -1
  35. package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
  36. package/dist/icon-set/material-icons.umd.min.js +1 -1
  37. package/dist/icon-set/mdi-v3.umd.min.js +1 -1
  38. package/dist/icon-set/mdi-v4.umd.min.js +1 -1
  39. package/dist/icon-set/mdi-v5.umd.min.js +1 -1
  40. package/dist/icon-set/mdi-v6.umd.min.js +1 -1
  41. package/dist/icon-set/svg-bootstrap-icons.umd.min.js +2 -2
  42. package/dist/icon-set/svg-eva-icons.umd.min.js +2 -2
  43. package/dist/icon-set/svg-fontawesome-v5.umd.min.js +2 -2
  44. package/dist/icon-set/svg-fontawesome-v6.umd.min.js +6 -0
  45. package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
  46. package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
  47. package/dist/icon-set/svg-ionicons-v6.umd.min.js +2 -2
  48. package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
  49. package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
  50. package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
  51. package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
  52. package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
  53. package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
  54. package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
  55. package/dist/icon-set/svg-mdi-v6.umd.min.js +2 -2
  56. package/dist/icon-set/svg-themify.umd.min.js +1 -1
  57. package/dist/icon-set/themify.umd.min.js +1 -1
  58. package/dist/lang/ar.umd.min.js +1 -1
  59. package/dist/lang/az-latn.umd.min.js +1 -1
  60. package/dist/lang/bg.umd.min.js +1 -1
  61. package/dist/lang/ca.umd.min.js +1 -1
  62. package/dist/lang/cs.umd.min.js +1 -1
  63. package/dist/lang/da.umd.min.js +1 -1
  64. package/dist/lang/de.umd.min.js +1 -1
  65. package/dist/lang/el.umd.min.js +1 -1
  66. package/dist/lang/en-gb.umd.min.js +1 -1
  67. package/dist/lang/en-us.umd.min.js +1 -1
  68. package/dist/lang/eo.umd.min.js +1 -1
  69. package/dist/lang/es.umd.min.js +1 -1
  70. package/dist/lang/et.umd.min.js +1 -1
  71. package/dist/lang/eu.umd.min.js +6 -0
  72. package/dist/lang/fa-ir.umd.min.js +1 -1
  73. package/dist/lang/fa.umd.min.js +1 -1
  74. package/dist/lang/fi.umd.min.js +1 -1
  75. package/dist/lang/fr.umd.min.js +1 -1
  76. package/dist/lang/gn.umd.min.js +1 -1
  77. package/dist/lang/he.umd.min.js +1 -1
  78. package/dist/lang/hr.umd.min.js +1 -1
  79. package/dist/lang/hu.umd.min.js +1 -1
  80. package/dist/lang/id.umd.min.js +1 -1
  81. package/dist/lang/is.umd.min.js +1 -1
  82. package/dist/lang/it.umd.min.js +1 -1
  83. package/dist/lang/ja.umd.min.js +1 -1
  84. package/dist/lang/km.umd.min.js +1 -1
  85. package/dist/lang/ko-kr.umd.min.js +1 -1
  86. package/dist/lang/kur-ckb.umd.min.js +1 -1
  87. package/dist/lang/kz.umd.min.js +6 -0
  88. package/dist/lang/lu.umd.min.js +1 -1
  89. package/dist/lang/lv.umd.min.js +1 -1
  90. package/dist/lang/ml.umd.min.js +1 -1
  91. package/dist/lang/ms.umd.min.js +1 -1
  92. package/dist/lang/my.umd.min.js +1 -1
  93. package/dist/lang/nb-no.umd.min.js +1 -1
  94. package/dist/lang/nl.umd.min.js +1 -1
  95. package/dist/lang/pl.umd.min.js +1 -1
  96. package/dist/lang/pt-br.umd.min.js +1 -1
  97. package/dist/lang/pt.umd.min.js +1 -1
  98. package/dist/lang/ro.umd.min.js +1 -1
  99. package/dist/lang/ru.umd.min.js +1 -1
  100. package/dist/lang/sk.umd.min.js +1 -1
  101. package/dist/lang/sl.umd.min.js +1 -1
  102. package/dist/lang/sr.umd.min.js +1 -1
  103. package/dist/lang/sv.umd.min.js +1 -1
  104. package/dist/lang/ta.umd.min.js +1 -1
  105. package/dist/lang/th.umd.min.js +1 -1
  106. package/dist/lang/tr.umd.min.js +1 -1
  107. package/dist/lang/ug.umd.min.js +2 -2
  108. package/dist/lang/uk.umd.min.js +1 -1
  109. package/dist/lang/vi.umd.min.js +1 -1
  110. package/dist/lang/zh-hans.umd.min.js +1 -1
  111. package/dist/lang/zh-hant.umd.min.js +1 -1
  112. package/dist/quasar.addon.css +1 -1
  113. package/dist/quasar.addon.rtl.css +1 -1
  114. package/dist/quasar.common.js +2 -2
  115. package/dist/quasar.css +6 -3
  116. package/dist/quasar.esm.js +2 -2
  117. package/dist/quasar.ie.polyfills.js +1 -1
  118. package/dist/quasar.ie.polyfills.umd.min.js +1 -1
  119. package/dist/quasar.min.css +1 -1
  120. package/dist/quasar.rtl.css +8 -3
  121. package/dist/quasar.rtl.min.css +1 -1
  122. package/dist/quasar.sass +4 -1
  123. package/dist/quasar.styl +4 -1
  124. package/dist/quasar.umd.js +212 -159
  125. package/dist/quasar.umd.min.js +2 -2
  126. package/dist/quasar.umd.modern.js +214 -159
  127. package/dist/quasar.umd.modern.min.js +2 -2
  128. package/dist/types/extras/icon-set.d.ts +2 -0
  129. package/dist/types/index.d.ts +122 -44
  130. package/dist/vetur/quasar-attributes.json +50 -38
  131. package/dist/vetur/quasar-tags.json +3 -0
  132. package/dist/web-types/web-types.json +69 -41
  133. package/icon-set/fontawesome-v6-pro.js +128 -0
  134. package/icon-set/fontawesome-v6.js +128 -0
  135. package/icon-set/svg-fontawesome-v6.js +198 -0
  136. package/lang/eu.js +93 -0
  137. package/lang/index.json +8 -0
  138. package/lang/kz.js +97 -0
  139. package/lang/ug.js +49 -52
  140. package/package.json +1 -1
  141. package/src/api.extends.json +1 -1
  142. package/src/components/btn/QBtn.js +30 -22
  143. package/src/components/date/QDate.js +2 -1
  144. package/src/components/dialog-plugin/DialogPlugin.js +6 -5
  145. package/src/components/field/QField.js +17 -9
  146. package/src/components/file/QFile.js +1 -0
  147. package/src/components/icon/QIcon.js +6 -2
  148. package/src/components/icon/QIcon.json +1 -3
  149. package/src/components/input/QInput.js +4 -1
  150. package/src/components/knob/QKnob.js +46 -25
  151. package/src/components/knob/QKnob.json +22 -0
  152. package/src/components/linear-progress/QLinearProgress.sass +1 -0
  153. package/src/components/linear-progress/QLinearProgress.styl +1 -0
  154. package/src/components/select/QSelect.js +12 -9
  155. package/src/components/slide-transition/QSlideTransition.js +4 -4
  156. package/src/components/slider/slider-utils.js +4 -4
  157. package/src/components/slider/slider-utils.json +1 -1
  158. package/src/components/stepper/QStep.json +3 -0
  159. package/src/components/stepper/QStepper.json +3 -0
  160. package/src/components/stepper/QStepper.sass +2 -0
  161. package/src/components/stepper/QStepper.styl +2 -0
  162. package/src/components/stepper/StepHeader.js +23 -8
  163. package/src/components/table/table-sort.js +2 -2
  164. package/src/components/uploader/QUploaderBase.js +4 -1
  165. package/src/mixins/datetime.js +3 -1
  166. package/src/mixins/file.js +2 -1
  167. package/src/mixins/mask.js +1 -1
  168. package/src/plugins/Loading.js +3 -2
  169. package/src/plugins/LoadingBar.js +15 -10
  170. package/src/plugins/Notify.js +8 -5
  171. package/src/plugins/Notify.json +100 -0
  172. package/src/utils/extend.js +12 -40
  173. package/src/utils/is.js +4 -14
  174. package/src/utils/morph.js +4 -3
  175. package/src/utils/web-storage.js +3 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.18.3
2
+ * Quasar Framework v1.18.6
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.3";
15
+ var version = "1.18.6";
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-(brand|regular|solid)/;
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
  },
@@ -16763,53 +16788,23 @@
16763
16788
 
16764
16789
  Object.defineProperties( Caret.prototype, prototypeAccessors );
16765
16790
 
16766
- var
16767
- toString = Object.prototype.toString,
16768
- hasOwn = Object.prototype.hasOwnProperty,
16769
- class2type = {};
16770
-
16771
- 'Boolean Number String Function Array Date RegExp Object'.split(' ').forEach(function (name) {
16772
- class2type['[object ' + name + ']'] = name.toLowerCase();
16773
- });
16774
-
16775
- function type (obj) {
16776
- return obj === null ? String(obj) : class2type[toString.call(obj)] || 'object'
16777
- }
16778
-
16779
- function isPlainObject (obj) {
16780
- if (!obj || type(obj) !== 'object') {
16781
- return false
16782
- }
16783
-
16784
- if (obj.constructor &&
16785
- !hasOwn.call(obj, 'constructor') &&
16786
- !hasOwn.call(obj.constructor.prototype, 'isPrototypeOf')) {
16787
- return false
16788
- }
16789
-
16790
- var key;
16791
- for (key in obj) {}
16792
-
16793
- return key === void 0 || hasOwn.call(obj, key)
16794
- }
16795
-
16796
16791
  function extend () {
16797
16792
  var arguments$1 = arguments;
16798
16793
 
16799
16794
  var
16800
16795
  options, name, src, copy, copyIsArray, clone,
16801
- target = arguments[0] || {},
16796
+ target = arguments[ 0 ] || {},
16802
16797
  i = 1,
16803
16798
  deep = false;
16804
16799
  var length = arguments.length;
16805
16800
 
16806
16801
  if (typeof target === 'boolean') {
16807
16802
  deep = target;
16808
- target = arguments[1] || {};
16803
+ target = arguments[ 1 ] || {};
16809
16804
  i = 2;
16810
16805
  }
16811
16806
 
16812
- if (Object(target) !== target && type(target) !== 'function') {
16807
+ if (Object(target) !== target && typeof target !== 'function') {
16813
16808
  target = {};
16814
16809
  }
16815
16810
 
@@ -16819,28 +16814,28 @@
16819
16814
  }
16820
16815
 
16821
16816
  for (; i < length; i++) {
16822
- if ((options = arguments$1[i]) !== null) {
16817
+ if ((options = arguments$1[ i ]) !== null) {
16823
16818
  for (name in options) {
16824
- src = target[name];
16825
- copy = options[name];
16819
+ src = target[ name ];
16820
+ copy = options[ name ];
16826
16821
 
16827
16822
  if (target === copy) {
16828
16823
  continue
16829
16824
  }
16830
16825
 
16831
- if (deep && copy && (isPlainObject(copy) || (copyIsArray = type(copy) === 'array'))) {
16826
+ if (deep && copy && (isObject(copy) === true || (copyIsArray = Array.isArray(copy) === true))) {
16832
16827
  if (copyIsArray) {
16833
16828
  copyIsArray = false;
16834
- clone = src && type(src) === 'array' ? src : [];
16829
+ clone = src && Array.isArray(src) === true ? src : [];
16835
16830
  }
16836
16831
  else {
16837
- clone = src && isPlainObject(src) ? src : {};
16832
+ clone = src && isObject(src) === true ? src : {};
16838
16833
  }
16839
16834
 
16840
- target[name] = extend(deep, clone, copy);
16835
+ target[ name ] = extend(deep, clone, copy);
16841
16836
  }
16842
16837
  else if (copy !== void 0) {
16843
- target[name] = copy;
16838
+ target[ name ] = copy;
16844
16839
  }
16845
16840
  }
16846
16841
  }
@@ -17509,8 +17504,8 @@
17509
17504
 
17510
17505
  this$1.timer = setTimeout(function () {
17511
17506
  el.style.height = (el.scrollHeight) + "px";
17512
- this$1.animListener = function (ev) {
17513
- if (Object(ev) !== ev || ev.target === el) {
17507
+ this$1.animListener = function (evt) {
17508
+ if (Object(evt) !== evt || evt.target === el) {
17514
17509
  this$1.__end(el, 'show');
17515
17510
  }
17516
17511
  };
@@ -17535,8 +17530,8 @@
17535
17530
 
17536
17531
  this$1.timer = setTimeout(function () {
17537
17532
  el.style.height = 0;
17538
- this$1.animListener = function (ev) {
17539
- if (Object(ev) !== ev || ev.target === el) {
17533
+ this$1.animListener = function (evt) {
17534
+ if (Object(evt) !== evt || evt.target === el) {
17540
17535
  this$1.__end(el, 'hide');
17541
17536
  }
17542
17537
  };
@@ -18809,14 +18804,6 @@
18809
18804
  }, this.__getControlContainer(h))
18810
18805
  );
18811
18806
 
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
18807
  this.hasError === true && this.noErrorIcon === false && node.push(
18821
18808
  this.__getInnerAppendNode(h, 'error', [
18822
18809
  h(QIcon, { props: { name: this.$q.iconSet.field.error, color: 'negative' } })
@@ -18847,6 +18834,14 @@
18847
18834
  );
18848
18835
  }
18849
18836
 
18837
+ this.$scopedSlots.append !== void 0 && node.push(
18838
+ h('div', {
18839
+ staticClass: 'q-field__append q-field__marginal row no-wrap items-center',
18840
+ key: 'append',
18841
+ on: this.slotsEvents
18842
+ }, this.$scopedSlots.append())
18843
+ );
18844
+
18850
18845
  this.__getInnerAppend !== void 0 && node.push(
18851
18846
  this.__getInnerAppendNode(h, 'inner-append', this.__getInnerAppend(h))
18852
18847
  );
@@ -19062,10 +19057,16 @@
19062
19057
  this.__onPreRender !== void 0 && this.__onPreRender();
19063
19058
  this.__onPostRender !== void 0 && this.$nextTick(this.__onPostRender);
19064
19059
 
19060
+ var attrs = this.__getControl === void 0 && this.$scopedSlots.control === void 0
19061
+ ? Object.assign({}, this.qAttrs,
19062
+ {'data-autofocus': this.autofocus},
19063
+ this.attrs)
19064
+ : this.attrs;
19065
+
19065
19066
  return h('label', {
19066
19067
  staticClass: 'q-field q-validation-component row no-wrap items-start',
19067
19068
  class: this.classes,
19068
- attrs: this.attrs
19069
+ attrs: attrs
19069
19070
  }, [
19070
19071
  this.$scopedSlots.before !== void 0 ? h('div', {
19071
19072
  staticClass: 'q-field__before q-field__marginal row no-wrap items-center',
@@ -19315,7 +19316,7 @@
19315
19316
 
19316
19317
  __onDragLeave: function __onDragLeave (e) {
19317
19318
  stopAndPrevent(e);
19318
- this.dnd = false;
19319
+ e.relatedTarget !== this.$refs.dnd && (this.dnd = false);
19319
19320
  },
19320
19321
 
19321
19322
  __onDrop: function __onDrop (e) {
@@ -19333,6 +19334,7 @@
19333
19334
  if (this.dnd === true) {
19334
19335
  return h('div', {
19335
19336
  staticClass: ("q-" + type + "__dnd absolute-full"),
19337
+ ref: 'dnd',
19336
19338
  on: cache(this, 'dnd', {
19337
19339
  dragenter: stopAndPreventDrag,
19338
19340
  dragover: stopAndPreventDrag,
@@ -19538,6 +19540,7 @@
19538
19540
  if (this.editable === true) {
19539
19541
  data.on = cache(this, 'native', {
19540
19542
  dragover: this.__onDragOver,
19543
+ dragleave: this.__onDragLeave,
19541
19544
  keydown: this.__onKeydown,
19542
19545
  keyup: this.__onKeyup
19543
19546
  });
@@ -21186,7 +21189,7 @@
21186
21189
  ? this.__unmask(masked)
21187
21190
  : masked;
21188
21191
 
21189
- this.value !== val && this.__emitValue(val, true);
21192
+ String(this.value) !== val && this.__emitValue(val, true);
21190
21193
  },
21191
21194
 
21192
21195
  __moveCursorForPaste: function __moveCursorForPaste (inp, start, end) {
@@ -21488,7 +21491,10 @@
21488
21491
  if (this.hasMask === true) {
21489
21492
  if (this.stopValueWatcher === true) {
21490
21493
  this.stopValueWatcher = false;
21491
- return
21494
+
21495
+ if (String(v) === this.emitCachedValue) {
21496
+ return
21497
+ }
21492
21498
  }
21493
21499
 
21494
21500
  this.__updateMaskValue(v);
@@ -22020,6 +22026,9 @@
22020
22026
  },
22021
22027
 
22022
22028
  props: {
22029
+ innerMin: Number,
22030
+ innerMax: Number,
22031
+
22023
22032
  step: {
22024
22033
  type: Number,
22025
22034
  default: 1,
@@ -22036,31 +22045,22 @@
22036
22045
  },
22037
22046
 
22038
22047
  data: function data () {
22048
+ var innerMin = this.__getInnerMin(this.innerMin);
22049
+ var innerMax = this.__getInnerMax(this.innerMax);
22050
+
22039
22051
  return {
22040
- model: this.value,
22052
+ model: this.value === null ? innerMin : between(this.value, innerMin, innerMax),
22041
22053
  dragging: false
22042
22054
  }
22043
22055
  },
22044
22056
 
22045
22057
  watch: {
22046
- value: function value (value$1) {
22047
- if (value$1 < this.min) {
22048
- this.model = this.min;
22049
- }
22050
- else if (value$1 > this.max) {
22051
- this.model = this.max;
22052
- }
22053
- else {
22054
- if (value$1 !== this.model) {
22055
- this.model = value$1;
22056
- }
22057
- return
22058
- }
22058
+ modelUpdate: function modelUpdate () {
22059
+ this.model = this.value === null
22060
+ ? this.computedInnerMin
22061
+ : between(this.value, this.computedInnerMin, this.computedInnerMax);
22059
22062
 
22060
- if (this.model !== this.value) {
22061
- this.$emit('input', this.model);
22062
- this.$emit('change', this.model);
22063
- }
22063
+ this.__updateValue(true);
22064
22064
  }
22065
22065
  },
22066
22066
 
@@ -22073,6 +22073,18 @@
22073
22073
  )
22074
22074
  },
22075
22075
 
22076
+ computedInnerMin: function computedInnerMin () {
22077
+ return this.__getInnerMin(this.innerMin)
22078
+ },
22079
+
22080
+ computedInnerMax: function computedInnerMax () {
22081
+ return this.__getInnerMax(this.innerMax)
22082
+ },
22083
+
22084
+ modelUpdate: function modelUpdate () {
22085
+ return ((this.value) + "|" + (this.computedInnerMin) + "|" + (this.computedInnerMax))
22086
+ },
22087
+
22076
22088
  editable: function editable () {
22077
22089
  return this.disable === false && this.readonly === false
22078
22090
  },
@@ -22104,8 +22116,8 @@
22104
22116
  attrs: function attrs () {
22105
22117
  var attrs = {
22106
22118
  role: 'slider',
22107
- 'aria-valuemin': this.min,
22108
- 'aria-valuemax': this.max,
22119
+ 'aria-valuemin': this.computedInnerMin,
22120
+ 'aria-valuemax': this.computedInnerMax,
22109
22121
  'aria-valuenow': this.value
22110
22122
  };
22111
22123
 
@@ -22121,6 +22133,18 @@
22121
22133
  },
22122
22134
 
22123
22135
  methods: {
22136
+ __getInnerMin: function __getInnerMin (val) {
22137
+ return isNaN(val) === true || this.innerMin < this.min
22138
+ ? this.min
22139
+ : this.innerMin
22140
+ },
22141
+
22142
+ __getInnerMax: function __getInnerMax (val) {
22143
+ return isNaN(val) === true || val > this.max
22144
+ ? this.max
22145
+ : this.innerMax
22146
+ },
22147
+
22124
22148
  __updateCenterPosition: function __updateCenterPosition () {
22125
22149
  var ref = this.$el.getBoundingClientRect();
22126
22150
  var top = ref.top;
@@ -22166,8 +22190,8 @@
22166
22190
 
22167
22191
  this.model = between(
22168
22192
  parseFloat((this.model + offset).toFixed(this.decimals)),
22169
- this.min,
22170
- this.max
22193
+ this.computedInnerMin,
22194
+ this.computedInnerMax
22171
22195
  );
22172
22196
 
22173
22197
  this.__updateValue();
@@ -22203,11 +22227,14 @@
22203
22227
  angle = center.left < pos.left ? angle + 90 : 270 - angle;
22204
22228
  }
22205
22229
 
22206
- if (this.angle) {
22230
+ if (this.$q.lang.rtl === true) {
22231
+ angle = normalizeToInterval(-angle - this.angle, 0, 360);
22232
+ }
22233
+ else if (this.angle) {
22207
22234
  angle = normalizeToInterval(angle - this.angle, 0, 360);
22208
22235
  }
22209
22236
 
22210
- if (this.$q.lang.rtl === true) {
22237
+ if (this.reverse === true) {
22211
22238
  angle = 360 - angle;
22212
22239
  }
22213
22240
 
@@ -22224,7 +22251,7 @@
22224
22251
  model = parseFloat(model.toFixed(this.decimals));
22225
22252
  }
22226
22253
 
22227
- model = between(model, this.min, this.max);
22254
+ model = between(model, this.computedInnerMin, this.computedInnerMax);
22228
22255
 
22229
22256
  this.$emit('drag-value', model);
22230
22257
 
@@ -27132,7 +27159,7 @@
27132
27159
  };
27133
27160
 
27134
27161
  if (this$1.$q.platform.is.desktop === true) {
27135
- itemEvents.mousemove = function () { this$1.setOptionIndex(index); };
27162
+ itemEvents.mousemove = function () { this$1.menu === true && this$1.setOptionIndex(index); };
27136
27163
  }
27137
27164
 
27138
27165
  var option = {
@@ -27430,9 +27457,7 @@
27430
27457
 
27431
27458
  return typeof val === 'function'
27432
27459
  ? val
27433
- : function (opt) { return Object(opt) === opt && val in opt
27434
- ? opt[val]
27435
- : opt; }
27460
+ : function (opt) { return (opt !== null && typeof opt === 'object' && val in opt ? opt[ val ] : opt); }
27436
27461
  },
27437
27462
 
27438
27463
  isOptionSelected: function isOptionSelected (opt) {
@@ -27797,6 +27822,8 @@
27797
27822
  }
27798
27823
  // there can be only one (when dialog is opened the control in dialog should be target)
27799
27824
  else if (this.editable === true) {
27825
+ var attrs$1 = isTarget === true ? this.comboboxAttrs : void 0;
27826
+
27800
27827
  child.push(
27801
27828
  h('div', {
27802
27829
  ref: isTarget === true ? 'target' : void 0,
@@ -27804,7 +27831,7 @@
27804
27831
  staticClass: 'q-select__focus-target',
27805
27832
  attrs: Object.assign({}, {id: isTarget === true ? this.targetUid : void 0,
27806
27833
  tabindex: this.tabindex},
27807
- this.comboboxAttrs),
27834
+ attrs$1),
27808
27835
  on: cache(this, 'f-tget', {
27809
27836
  keydown: this.__onTargetKeydown,
27810
27837
  keyup: this.__onTargetKeyup,
@@ -27842,7 +27869,9 @@
27842
27869
  );
27843
27870
  }
27844
27871
 
27845
- return h('div', { staticClass: 'q-field__native row items-center', attrs: this.qAttrs }, child)
27872
+ var attrs = this.useInput === true || isTarget !== true ? void 0 : this.qAttrs;
27873
+
27874
+ return h('div', { staticClass: 'q-field__native row items-center', attrs: attrs }, child)
27846
27875
  },
27847
27876
 
27848
27877
  __getOptions: function __getOptions (h) {
@@ -27909,6 +27938,8 @@
27909
27938
  },
27910
27939
 
27911
27940
  __getInput: function __getInput (h, fromDialog, isTarget) {
27941
+ var attrs = isTarget === true ? Object.assign({}, this.comboboxAttrs, this.qAttrs) : void 0;
27942
+
27912
27943
  var options = {
27913
27944
  ref: isTarget === true ? 'target' : void 0,
27914
27945
  key: 'i_t',
@@ -27917,15 +27948,14 @@
27917
27948
  class: this.computedInputClass,
27918
27949
  domProps: { value: this.inputValue !== void 0 ? this.inputValue : '' },
27919
27950
  attrs: Object.assign({}, {type: 'search'},
27920
- this.qAttrs,
27951
+ attrs,
27921
27952
  {id: isTarget === true ? this.targetUid : void 0,
27922
27953
  maxlength: this.maxlength, // this is converted to prop by QField
27923
27954
  tabindex: this.tabindex,
27924
27955
  autocomplete: this.autocomplete,
27925
27956
  'data-autofocus': fromDialog === true ? false : this.autofocus,
27926
27957
  disabled: this.disable === true,
27927
- readonly: this.readonly === true},
27928
- this.comboboxAttrs),
27958
+ readonly: this.readonly === true}),
27929
27959
  on: this.inputControlEvents
27930
27960
  };
27931
27961
 
@@ -31289,23 +31319,36 @@
31289
31319
 
31290
31320
  hasPrefix: function hasPrefix () {
31291
31321
  return this.step.prefix &&
31292
- this.isActive === false &&
31293
- this.isError === false &&
31294
- this.isDone === false
31322
+ (this.isActive === false || this.stepper.activeIcon === 'none') &&
31323
+ (this.isError === false || this.stepper.errorIcon === 'none') &&
31324
+ (this.isDone === false || this.stepper.doneIcon === 'none')
31295
31325
  },
31296
31326
 
31297
31327
  icon: function icon () {
31328
+ var defaultIcon = this.step.icon || this.stepper.inactiveIcon;
31329
+
31298
31330
  if (this.isActive === true) {
31299
- return this.step.activeIcon || this.stepper.activeIcon || this.$q.iconSet.stepper.active
31331
+ var icon = this.step.activeIcon || this.stepper.activeIcon;
31332
+ return icon === 'none'
31333
+ ? defaultIcon
31334
+ : icon || this.$q.iconSet.stepper.active
31300
31335
  }
31336
+
31301
31337
  if (this.isError === true) {
31302
- return this.step.errorIcon || this.stepper.errorIcon || this.$q.iconSet.stepper.error
31338
+ var icon$1 = this.step.errorIcon || this.stepper.errorIcon;
31339
+ return icon$1 === 'none'
31340
+ ? defaultIcon
31341
+ : icon$1 || this.$q.iconSet.stepper.error
31303
31342
  }
31343
+
31304
31344
  if (this.isDisable === false && this.isDone === true) {
31305
- return this.step.doneIcon || this.stepper.doneIcon || this.$q.iconSet.stepper.done
31345
+ var icon$2 = this.step.doneIcon || this.stepper.doneIcon;
31346
+ return icon$2 === 'none'
31347
+ ? defaultIcon
31348
+ : icon$2 || this.$q.iconSet.stepper.done
31306
31349
  }
31307
31350
 
31308
- return this.step.icon || this.stepper.inactiveIcon
31351
+ return defaultIcon
31309
31352
  },
31310
31353
 
31311
31354
  color: function color () {
@@ -31332,7 +31375,9 @@
31332
31375
  classes: function classes () {
31333
31376
  return "q-stepper__tab col-grow flex items-center no-wrap relative-position" +
31334
31377
  (this.color !== void 0 ? (" text-" + (this.color)) : '') +
31335
- (this.isError === true ? ' q-stepper__tab--error' : '') +
31378
+ (this.isError === true
31379
+ ? ' q-stepper__tab--error q-stepper__tab--error-with-' + (this.hasPrefix === true ? 'prefix' : 'icon')
31380
+ : '') +
31336
31381
  (this.isActive === true ? ' q-stepper__tab--active' : '') +
31337
31382
  (this.isDone === true ? ' q-stepper__tab--done' : '') +
31338
31383
  (this.headerNav === true ? ' q-stepper__tab--navigation q-focusable q-hoverable' : '') +
@@ -32626,7 +32671,7 @@
32626
32671
  sort: function sort (col /* String(col name) or Object(col definition) */) {
32627
32672
  var sortOrder = this.columnSortOrder;
32628
32673
 
32629
- if (col === Object(col)) {
32674
+ if (isObject(col) === true) {
32630
32675
  if (col.sortOrder) {
32631
32676
  sortOrder = col.sortOrder;
32632
32677
  }
@@ -35981,7 +36026,10 @@
35981
36026
  'disabled q-uploader--disable': this.disable
35982
36027
  },
35983
36028
  on: this.canAddFiles === true
35984
- ? cache(this, 'drag', { dragover: this.__onDragOver })
36029
+ ? cache(this, 'drag', {
36030
+ dragover: this.__onDragOver,
36031
+ dragleave: this.__onDragLeave
36032
+ })
35985
36033
  : null
35986
36034
  }, children)
35987
36035
  }
@@ -37025,7 +37073,7 @@
37025
37073
  if (typeof options.style === 'string') {
37026
37074
  elTo.style.cssText += ' ' + options.style;
37027
37075
  }
37028
- else if (options.style === Object(options.style)) {
37076
+ else if (isObject(options.style) === true) {
37029
37077
  for (var prop in options.style) {
37030
37078
  elTo.style[prop] = options.style[prop];
37031
37079
  }
@@ -37344,8 +37392,8 @@
37344
37392
  elToClone.style.animation = (options.duration) + "ms " + (options.easing) + " " + (options.delay) + "ms " + animationDirection + " " + (options.fill) + " " + qAnimId + "-to";
37345
37393
  elTo.style.animation = (options.duration) + "ms " + (options.easing) + " " + (options.delay) + "ms " + animationDirection + " " + (options.fill) + " " + qAnimId;
37346
37394
 
37347
- var cleanup$1 = function (ev) {
37348
- if (ev === Object(ev) && ev.animationName !== qAnimId) {
37395
+ var cleanup$1 = function (evt) {
37396
+ if (evt === Object(evt) && evt.animationName !== qAnimId) {
37349
37397
  return
37350
37398
  }
37351
37399
 
@@ -39170,7 +39218,7 @@
39170
39218
 
39171
39219
  spinner: function spinner () {
39172
39220
  if (this.progress !== false) {
39173
- return Object(this.progress) === this.progress
39221
+ return isObject(this.progress) === true
39174
39222
  ? {
39175
39223
  component: this.progress.spinner || QSpinner,
39176
39224
  props: { color: this.progress.color || this.vmColor }
@@ -39187,7 +39235,7 @@
39187
39235
  },
39188
39236
 
39189
39237
  okLabel: function okLabel () {
39190
- return Object(this.ok) === this.ok
39238
+ return isObject(this.ok) === true
39191
39239
  ? this.$q.lang.label.ok
39192
39240
  : (
39193
39241
  this.ok === true
@@ -39197,7 +39245,7 @@
39197
39245
  },
39198
39246
 
39199
39247
  cancelLabel: function cancelLabel () {
39200
- return Object(this.cancel) === this.cancel
39248
+ return isObject(this.cancel) === true
39201
39249
  ? this.$q.lang.label.cancel
39202
39250
  : (
39203
39251
  this.cancel === true
@@ -39226,14 +39274,14 @@
39226
39274
  label: this.okLabel,
39227
39275
  ripple: false,
39228
39276
  disable: this.okDisabled},
39229
- (Object(this.ok) === this.ok ? this.ok : { flat: true }))
39277
+ (isObject(this.ok) === true ? this.ok : { flat: true }))
39230
39278
  },
39231
39279
 
39232
39280
  cancelProps: function cancelProps () {
39233
39281
  return Object.assign({}, {color: this.vmColor,
39234
39282
  label: this.cancelLabel,
39235
39283
  ripple: false},
39236
- (Object(this.cancel) === this.cancel ? this.cancel : { flat: true }))
39284
+ (isObject(this.cancel) === true ? this.cancel : { flat: true }))
39237
39285
  }
39238
39286
  },
39239
39287
 
@@ -39460,6 +39508,15 @@
39460
39508
  var props = cfg.loadingBar !== void 0
39461
39509
  ? Object.assign({}, cfg.loadingBar)
39462
39510
  : {};
39511
+ var on = {
39512
+ start: function () {
39513
+ this$1.isActive = true;
39514
+ },
39515
+
39516
+ stop: function () {
39517
+ this$1.isActive = false;
39518
+ }
39519
+ };
39463
39520
 
39464
39521
  var bar = new Vue({
39465
39522
  name: 'LoadingBar',
@@ -39474,22 +39531,17 @@
39474
39531
 
39475
39532
  render: function (h) { return h(QAjaxBar, {
39476
39533
  ref: 'bar',
39477
- props: props
39534
+ props: props,
39535
+ on: on
39478
39536
  }); }
39479
39537
  }).$mount().$refs.bar;
39480
39538
 
39481
39539
  Object.assign(this, {
39482
- start: function (speed) {
39483
- bar.start(speed);
39484
- this$1.isActive = bar.isActive = true;
39485
- },
39486
- stop: function () {
39487
- var sessions = bar.stop();
39488
- this$1.isActive = bar.isActive = sessions > 0;
39489
- },
39540
+ start: bar.start,
39541
+ stop: bar.stop,
39490
39542
  increment: bar.increment,
39491
39543
  setDefaults: function (opts) {
39492
- opts === Object(opts) && Object.assign(props, opts);
39544
+ isObject(opts) === true && Object.assign(props, opts);
39493
39545
  bar.$parent.$forceUpdate();
39494
39546
  }
39495
39547
  });
@@ -39528,7 +39580,7 @@
39528
39580
 
39529
39581
  if (isSSR === true) { return }
39530
39582
 
39531
- props$1 = opts === Object(opts) && opts.ignoreDefaults === true
39583
+ props$1 = isObject(opts) === true && opts.ignoreDefaults === true
39532
39584
  ? Object.assign({}, originalDefaults, opts)
39533
39585
  : Object.assign({}, defaults, opts);
39534
39586
 
@@ -39624,7 +39676,7 @@
39624
39676
  },
39625
39677
 
39626
39678
  setDefaults: function setDefaults (opts) {
39627
- opts === Object(opts) && Object.assign(defaults, opts);
39679
+ isObject(opts) === true && Object.assign(defaults, opts);
39628
39680
  },
39629
39681
 
39630
39682
  install: function install (ref) {
@@ -40019,7 +40071,7 @@
40019
40071
  Object.assign(notif, defaults$1);
40020
40072
  }
40021
40073
 
40022
- if (Object(config) !== config) {
40074
+ if (isObject(config) === false) {
40023
40075
  if (notif.type) {
40024
40076
  Object.assign(notif, notifTypes[notif.type]);
40025
40077
  }
@@ -40369,7 +40421,8 @@
40369
40421
  if (notif.spinner !== false) {
40370
40422
  mainChild.push(
40371
40423
  h(notif.spinner, {
40372
- staticClass: 'q-notification__spinner q-notification__spinner--' + meta.leftClass
40424
+ staticClass: 'q-notification__spinner q-notification__spinner--' + meta.leftClass,
40425
+ props: { color: notif.spinnerColor, size: notif.spinnerSize }
40373
40426
  })
40374
40427
  );
40375
40428
  }
@@ -40378,7 +40431,7 @@
40378
40431
  h(QIcon, {
40379
40432
  staticClass: 'q-notification__icon q-notification__icon--' + meta.leftClass,
40380
40433
  attrs: { role: 'img' },
40381
- props: { name: notif.icon }
40434
+ props: { name: notif.icon, color: notif.iconColor, size: notif.iconSize }
40382
40435
  })
40383
40436
  );
40384
40437
  }
@@ -40482,13 +40535,13 @@
40482
40535
 
40483
40536
  var Notify = {
40484
40537
  setDefaults: function setDefaults (opts) {
40485
- if (isSSR !== true && opts === Object(opts)) {
40538
+ if (isSSR !== true && isObject(opts) === true) {
40486
40539
  Object.assign(defaults$1, opts);
40487
40540
  }
40488
40541
  },
40489
40542
 
40490
40543
  registerType: function registerType (typeName, typeOpts) {
40491
- if (isSSR !== true && typeOpts === Object(typeOpts)) {
40544
+ if (isSSR !== true && isObject(typeOpts) === true) {
40492
40545
  notifTypes[typeName] = typeOpts;
40493
40546
  }
40494
40547
  },
@@ -40529,10 +40582,10 @@
40529
40582
  };
40530
40583
 
40531
40584
  function encode$1 (value) {
40532
- if (Object.prototype.toString.call(value) === '[object Date]') {
40585
+ if (isDate(value) === true) {
40533
40586
  return '__q_date|' + value.toUTCString()
40534
40587
  }
40535
- if (Object.prototype.toString.call(value) === '[object RegExp]') {
40588
+ if (isRegexp(value) === true) {
40536
40589
  return '__q_expr|' + value.source
40537
40590
  }
40538
40591
  if (typeof value === 'number') {