quasar 1.17.2 → 1.17.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 (131) hide show
  1. package/dist/api/LoadingBar.json +7 -0
  2. package/dist/api/QAjaxBar.json +13 -1
  3. package/dist/api/QTree.json +6 -0
  4. package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
  5. package/dist/icon-set/eva-icons.umd.min.js +1 -1
  6. package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
  7. package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
  8. package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
  9. package/dist/icon-set/line-awesome.umd.min.js +1 -1
  10. package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
  11. package/dist/icon-set/material-icons-round.umd.min.js +1 -1
  12. package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
  13. package/dist/icon-set/material-icons.umd.min.js +1 -1
  14. package/dist/icon-set/mdi-v3.umd.min.js +1 -1
  15. package/dist/icon-set/mdi-v4.umd.min.js +1 -1
  16. package/dist/icon-set/mdi-v5.umd.min.js +1 -1
  17. package/dist/icon-set/mdi-v6.umd.min.js +1 -1
  18. package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
  19. package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
  20. package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
  21. package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
  22. package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
  23. package/dist/icon-set/svg-ionicons-v6.umd.min.js +1 -1
  24. package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
  25. package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
  26. package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
  27. package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
  28. package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
  29. package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
  30. package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
  31. package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
  32. package/dist/icon-set/svg-themify.umd.min.js +1 -1
  33. package/dist/icon-set/themify.umd.min.js +1 -1
  34. package/dist/lang/ar.umd.min.js +1 -1
  35. package/dist/lang/az-latn.umd.min.js +1 -1
  36. package/dist/lang/bg.umd.min.js +1 -1
  37. package/dist/lang/ca.umd.min.js +1 -1
  38. package/dist/lang/cs.umd.min.js +1 -1
  39. package/dist/lang/da.umd.min.js +1 -1
  40. package/dist/lang/de.umd.min.js +1 -1
  41. package/dist/lang/el.umd.min.js +1 -1
  42. package/dist/lang/en-gb.umd.min.js +1 -1
  43. package/dist/lang/en-us.umd.min.js +1 -1
  44. package/dist/lang/eo.umd.min.js +1 -1
  45. package/dist/lang/es.umd.min.js +1 -1
  46. package/dist/lang/et.umd.min.js +1 -1
  47. package/dist/lang/fa-ir.umd.min.js +1 -1
  48. package/dist/lang/fa.umd.min.js +1 -1
  49. package/dist/lang/fi.umd.min.js +1 -1
  50. package/dist/lang/fr.umd.min.js +1 -1
  51. package/dist/lang/gn.umd.min.js +1 -1
  52. package/dist/lang/he.umd.min.js +1 -1
  53. package/dist/lang/hr.umd.min.js +1 -1
  54. package/dist/lang/hu.umd.min.js +1 -1
  55. package/dist/lang/id.umd.min.js +1 -1
  56. package/dist/lang/is.umd.min.js +1 -1
  57. package/dist/lang/it.umd.min.js +1 -1
  58. package/dist/lang/ja.umd.min.js +1 -1
  59. package/dist/lang/km.umd.min.js +1 -1
  60. package/dist/lang/ko-kr.umd.min.js +1 -1
  61. package/dist/lang/kur-ckb.umd.min.js +1 -1
  62. package/dist/lang/lu.umd.min.js +1 -1
  63. package/dist/lang/lv.umd.min.js +1 -1
  64. package/dist/lang/ml.umd.min.js +1 -1
  65. package/dist/lang/ms.umd.min.js +1 -1
  66. package/dist/lang/my.umd.min.js +6 -0
  67. package/dist/lang/nb-no.umd.min.js +1 -1
  68. package/dist/lang/nl.umd.min.js +1 -1
  69. package/dist/lang/pl.umd.min.js +1 -1
  70. package/dist/lang/pt-br.umd.min.js +1 -1
  71. package/dist/lang/pt.umd.min.js +1 -1
  72. package/dist/lang/ro.umd.min.js +1 -1
  73. package/dist/lang/ru.umd.min.js +1 -1
  74. package/dist/lang/sk.umd.min.js +1 -1
  75. package/dist/lang/sl.umd.min.js +1 -1
  76. package/dist/lang/sr.umd.min.js +1 -1
  77. package/dist/lang/sv.umd.min.js +1 -1
  78. package/dist/lang/ta.umd.min.js +1 -1
  79. package/dist/lang/th.umd.min.js +1 -1
  80. package/dist/lang/tr.umd.min.js +1 -1
  81. package/dist/lang/ug.umd.min.js +1 -1
  82. package/dist/lang/uk.umd.min.js +1 -1
  83. package/dist/lang/vi.umd.min.js +1 -1
  84. package/dist/lang/zh-hans.umd.min.js +1 -1
  85. package/dist/lang/zh-hant.umd.min.js +1 -1
  86. package/dist/quasar.addon.css +1 -1
  87. package/dist/quasar.addon.rtl.css +1 -1
  88. package/dist/quasar.common.js +2 -2
  89. package/dist/quasar.css +8 -4
  90. package/dist/quasar.esm.js +2 -2
  91. package/dist/quasar.ie.polyfills.js +1 -1
  92. package/dist/quasar.ie.polyfills.umd.min.js +1 -1
  93. package/dist/quasar.min.css +1 -1
  94. package/dist/quasar.rtl.css +9 -5
  95. package/dist/quasar.rtl.min.css +1 -1
  96. package/dist/quasar.sass +8 -4
  97. package/dist/quasar.styl +8 -4
  98. package/dist/quasar.umd.js +148 -81
  99. package/dist/quasar.umd.min.js +2 -2
  100. package/dist/quasar.umd.modern.js +141 -77
  101. package/dist/quasar.umd.modern.min.js +2 -2
  102. package/dist/types/index.d.ts +15 -3
  103. package/dist/vetur/quasar-attributes.json +4 -0
  104. package/dist/vetur/quasar-tags.json +1 -0
  105. package/dist/web-types/web-types.json +11 -1
  106. package/lang/index.json +4 -0
  107. package/lang/my.js +96 -0
  108. package/package.json +1 -1
  109. package/src/components/ajax-bar/QAjaxBar.js +22 -11
  110. package/src/components/ajax-bar/QAjaxBar.json +16 -1
  111. package/src/components/date/QDate.js +6 -1
  112. package/src/components/dialog-plugin/DialogPlugin.js +2 -2
  113. package/src/components/field/QField.js +11 -2
  114. package/src/components/form/QForm.js +9 -0
  115. package/src/components/icon/QIcon.js +3 -6
  116. package/src/components/icon/QIcon.sass +4 -3
  117. package/src/components/icon/QIcon.styl +4 -3
  118. package/src/components/infinite-scroll/QInfiniteScroll.js +1 -1
  119. package/src/components/scroll-area/QScrollArea.js +20 -7
  120. package/src/components/scroll-observer/QScrollObserver.js +11 -13
  121. package/src/components/select/QSelect.js +20 -19
  122. package/src/components/select/QSelect.sass +3 -0
  123. package/src/components/select/QSelect.styl +3 -0
  124. package/src/components/tabs/QTabs.js +9 -4
  125. package/src/components/tree/QTree.js +8 -1
  126. package/src/components/tree/QTree.json +7 -0
  127. package/src/mixins/attrs.js +2 -0
  128. package/src/mixins/virtual-scroll.js +8 -2
  129. package/src/plugins/LoadingBar.js +6 -5
  130. package/src/plugins/LoadingBar.json +8 -0
  131. package/src/plugins/Notify.js +1 -1
package/dist/quasar.sass CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.17.2
2
+ * Quasar Framework v1.17.6
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -663,9 +663,10 @@ input[type='search']::-webkit-search-decoration
663
663
  display: flex !important
664
664
  align-items: center
665
665
  justify-content: center
666
- > svg
667
- width: 100%
668
- height: 100%
666
+ > svg,
667
+ > img
668
+ width: 1em
669
+ height: 1em
669
670
  .q-icon,
670
671
  .material-icons,
671
672
  .material-icons-outlined,
@@ -3285,7 +3286,10 @@ body.desktop
3285
3286
  min-width: 50px !important
3286
3287
  &--padding
3287
3288
  padding-left: 4px
3289
+ &__focus-target,
3288
3290
  &__autocomplete-input
3291
+ position: absolute
3292
+ outline: 0 !important
3289
3293
  width: 0
3290
3294
  height: 0
3291
3295
  padding: 0
package/dist/quasar.styl CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.17.2
2
+ * Quasar Framework v1.17.6
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -709,9 +709,10 @@ input[type='search']::-webkit-search-decoration
709
709
  display: flex !important
710
710
  align-items: center
711
711
  justify-content: center
712
- > svg
713
- width: 100%
714
- height: 100%
712
+ > svg,
713
+ > img
714
+ width: 1em
715
+ height: 1em
715
716
  .q-icon,
716
717
  .material-icons,
717
718
  .material-icons-outlined,
@@ -3332,7 +3333,10 @@ body.desktop
3332
3333
  min-width: 50px !important
3333
3334
  &--padding
3334
3335
  padding-left: 4px
3336
+ &__focus-target,
3335
3337
  &__autocomplete-input
3338
+ position: absolute
3339
+ outline: 0 !important
3336
3340
  width: 0
3337
3341
  height: 0
3338
3342
  padding: 0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.17.2
2
+ * Quasar Framework v1.17.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.17.2";
15
+ var version = "1.17.6";
16
16
 
17
17
  /* eslint-disable no-useless-escape */
18
18
 
@@ -2005,6 +2005,8 @@
2005
2005
 
2006
2006
  var ariaHidden = { 'aria-hidden': 'true' };
2007
2007
 
2008
+ var iconAsButton = { tabindex: 0, type: 'button', 'aria-hidden': false, role: null };
2009
+
2008
2010
  var AttrsMixin = getPropCacheMixin('$attrs', 'qAttrs');
2009
2011
 
2010
2012
  var
@@ -2184,18 +2186,19 @@
2184
2186
  if ( speed === void 0 ) speed = 300;
2185
2187
 
2186
2188
  var oldSpeed = this.speed;
2187
- this.speed = Math.max(0, speed) || 0;
2189
+ var newSpeed = this.speed = Math.max(0, speed) || 0;
2188
2190
 
2189
2191
  this.calls++;
2190
2192
 
2191
2193
  if (this.calls > 1) {
2192
- if (oldSpeed === 0 && speed > 0) {
2194
+ if (oldSpeed === 0 && newSpeed > 0) {
2193
2195
  this.__work();
2194
2196
  }
2195
- else if (oldSpeed > 0 && speed <= 0) {
2197
+ else if (oldSpeed > 0 && newSpeed <= 0) {
2196
2198
  clearTimeout(this.timer);
2197
2199
  }
2198
- return
2200
+
2201
+ return this.calls
2199
2202
  }
2200
2203
 
2201
2204
  clearTimeout(this.timer);
@@ -2203,27 +2206,35 @@
2203
2206
 
2204
2207
  this.progress = 0;
2205
2208
 
2206
- if (this.onScreen === true) { return }
2207
-
2208
- this.onScreen = true;
2209
- this.animate = false;
2210
2209
  this.timer = setTimeout(function () {
2211
2210
  this$1.animate = true;
2212
- speed > 0 && this$1.__work();
2213
- }, 100);
2211
+ newSpeed > 0 && this$1.__work();
2212
+ }, this.onScreen === true ? 500 : 1);
2213
+
2214
+ if (this.onScreen !== true) {
2215
+ this.onScreen = true;
2216
+ this.animate = false;
2217
+ }
2218
+
2219
+ return this.calls
2214
2220
  },
2215
2221
 
2216
2222
  increment: function increment (amount) {
2217
2223
  if (this.calls > 0) {
2218
2224
  this.progress = inc(this.progress, amount);
2219
2225
  }
2226
+
2227
+ return this.calls
2220
2228
  },
2221
2229
 
2222
2230
  stop: function stop () {
2223
2231
  var this$1 = this;
2224
2232
 
2225
2233
  this.calls = Math.max(0, this.calls - 1);
2226
- if (this.calls > 0) { return }
2234
+
2235
+ if (this.calls > 0) {
2236
+ return this.calls
2237
+ }
2227
2238
 
2228
2239
  clearTimeout(this.timer);
2229
2240
  this.$emit('stop');
@@ -2242,6 +2253,8 @@
2242
2253
  else {
2243
2254
  end();
2244
2255
  }
2256
+
2257
+ return this.calls
2245
2258
  },
2246
2259
 
2247
2260
  __work: function __work () {
@@ -2533,18 +2546,16 @@
2533
2546
  }
2534
2547
 
2535
2548
  if (this.type.img === true) {
2536
- return h('div', data, mergeSlot([
2549
+ return h('span', data, mergeSlot([
2537
2550
  h('img', {
2538
- class: this.type.cls,
2539
2551
  attrs: { src: this.type.src }
2540
2552
  })
2541
2553
  ], this, 'default'))
2542
2554
  }
2543
2555
 
2544
2556
  if (this.type.svg === true) {
2545
- return h('div', data, mergeSlot([
2557
+ return h('span', data, mergeSlot([
2546
2558
  h('svg', {
2547
- class: this.type.cls,
2548
2559
  attrs: {
2549
2560
  viewBox: this.type.viewBox,
2550
2561
  focusable: 'false' /* needed for IE11 */
@@ -2554,9 +2565,8 @@
2554
2565
  }
2555
2566
 
2556
2567
  if (this.type.svguse === true) {
2557
- return h('div', data, mergeSlot([
2568
+ return h('span', data, mergeSlot([
2558
2569
  h('svg', {
2559
- class: this.type.cls,
2560
2570
  attrs: {
2561
2571
  viewBox: this.type.viewBox,
2562
2572
  focusable: 'false' /* needed for IE11 */
@@ -10154,10 +10164,6 @@
10154
10164
  }
10155
10165
  },
10156
10166
 
10157
- activated: function activated () {
10158
- this.__recalculateScroll();
10159
- },
10160
-
10161
10167
  created: function created () {
10162
10168
  this.buffer = [];
10163
10169
 
@@ -10170,6 +10176,15 @@
10170
10176
  this.rtlHasScrollBug = rtlHasScrollBug();
10171
10177
  },
10172
10178
 
10179
+ activated: function activated () {
10180
+ if (this.shouldActivate !== true) { return }
10181
+ this.__recalculateScroll();
10182
+ },
10183
+
10184
+ deactivated: function deactivated () {
10185
+ this.shouldActivate = true;
10186
+ },
10187
+
10173
10188
  beforeDestroy: function beforeDestroy () {
10174
10189
  clearTimeout(this.bufferTimer);
10175
10190
  clearTimeout(this.animateTimer);
@@ -12856,7 +12871,11 @@
12856
12871
  return this.normalizedModel
12857
12872
  .filter(function (date) { return typeof date === 'string'; })
12858
12873
  .map(function (date) { return this$1.__decodeString(date, this$1.innerMask, this$1.innerLocale); })
12859
- .filter(function (date) { return date.dateHash !== null; })
12874
+ .filter(function (date) { return date.dateHash !== null &&
12875
+ date.day !== null &&
12876
+ date.month !== null &&
12877
+ date.year !== null; }
12878
+ )
12860
12879
  },
12861
12880
 
12862
12881
  rangeModel: function rangeModel () {
@@ -18724,7 +18743,7 @@
18724
18743
  h(QIcon, {
18725
18744
  staticClass: 'q-field__focusable-action',
18726
18745
  props: { tag: 'button', name: this.clearIcon || this.$q.iconSet.field.clear },
18727
- attrs: { tabindex: 0, type: 'button' },
18746
+ attrs: iconAsButton,
18728
18747
  on: this.clearableEvents
18729
18748
  })
18730
18749
  ])
@@ -19003,6 +19022,15 @@
19003
19022
  this.autofocus === true && this.focus();
19004
19023
  },
19005
19024
 
19025
+ activated: function activated () {
19026
+ if (this.shouldActivate !== true) { return }
19027
+ this.autofocus === true && this.focus();
19028
+ },
19029
+
19030
+ deactivated: function deactivated () {
19031
+ this.shouldActivate = true;
19032
+ },
19033
+
19006
19034
  beforeDestroy: function beforeDestroy () {
19007
19035
  clearTimeout(this.focusoutTimer);
19008
19036
  }
@@ -19758,6 +19786,15 @@
19758
19786
  this.autofocus === true && this.focus();
19759
19787
  },
19760
19788
 
19789
+ activated: function activated () {
19790
+ if (this.shouldActivate !== true) { return }
19791
+ this.autofocus === true && this.focus();
19792
+ },
19793
+
19794
+ deactivated: function deactivated () {
19795
+ this.shouldActivate = true;
19796
+ },
19797
+
19761
19798
  methods: {
19762
19799
  validate: function validate (shouldFocus) {
19763
19800
  var this$1 = this;
@@ -20627,7 +20664,7 @@
20627
20664
  },
20628
20665
 
20629
20666
  activated: function activated () {
20630
- if (this.__scrollTarget && this.__scrollPosition !== void 0) {
20667
+ if (this.__scrollPosition !== void 0 && this.__scrollTarget) {
20631
20668
  setScrollPosition(this.__scrollTarget, this.__scrollPosition);
20632
20669
  }
20633
20670
  },
@@ -22170,22 +22207,27 @@
22170
22207
  },
22171
22208
 
22172
22209
  trigger: function trigger (immediately) {
22210
+ var this$1 = this;
22211
+
22173
22212
  if (immediately === true || this.debounce === 0 || this.debounce === '0') {
22174
22213
  this.__emit();
22175
22214
  }
22176
- else if (this.timer === null) {
22177
- this.timer = this.debounce
22178
- ? setTimeout(this.__emit, this.debounce)
22179
- : requestAnimationFrame(this.__emit);
22215
+ else if (this.clearTimer === void 0) {
22216
+ var ref = this.debounce
22217
+ ? [ setTimeout(this.__emit, this.debounce), clearTimeout ]
22218
+ : [ requestAnimationFrame(this.__emit), cancelAnimationFrame ];
22219
+ var timer = ref[0];
22220
+ var fn = ref[1];
22221
+
22222
+ this.clearTimer = function () {
22223
+ fn(timer);
22224
+ this$1.clearTimer = void 0;
22225
+ };
22180
22226
  }
22181
22227
  },
22182
22228
 
22183
22229
  __emit: function __emit () {
22184
- if (this.timer !== null) {
22185
- clearTimeout(this.timer);
22186
- cancelAnimationFrame(this.timer);
22187
- this.timer = null;
22188
- }
22230
+ this.clearTimer !== void 0 && this.clearTimer();
22189
22231
 
22190
22232
  var fn = this.horizontal === true
22191
22233
  ? getHorizontalScrollPosition
@@ -22224,14 +22266,11 @@
22224
22266
  },
22225
22267
 
22226
22268
  mounted: function mounted () {
22227
- this.timer = null;
22228
-
22229
22269
  this.__configureScrollTarget();
22230
22270
  },
22231
22271
 
22232
22272
  beforeDestroy: function beforeDestroy () {
22233
- clearTimeout(this.timer);
22234
- cancelAnimationFrame(this.timer);
22273
+ this.clearTimer !== void 0 && this.clearTimer();
22235
22274
  this.__unconfigureScrollTarget();
22236
22275
  }
22237
22276
  });
@@ -25475,6 +25514,14 @@
25475
25514
  ) || this.scroll.horizontal.size <= this.container.horizontal + 1
25476
25515
  },
25477
25516
 
25517
+ verticalThumbStart: function verticalThumbStart () {
25518
+ return this.verticalScrollPercentage * (this.container.vertical - this.verticalThumbSize)
25519
+ },
25520
+
25521
+ horizontalThumbStart: function horizontalThumbStart () {
25522
+ return this.horizontalScrollPercentage * (this.container.horizontal - this.horizontalThumbSize)
25523
+ },
25524
+
25478
25525
  verticalThumbSize: function verticalThumbSize () {
25479
25526
  return Math.round(
25480
25527
  between(
@@ -25496,18 +25543,16 @@
25496
25543
  },
25497
25544
 
25498
25545
  verticalStyle: function verticalStyle () {
25499
- var pos = this.verticalScrollPercentage * (this.container.vertical - this.verticalThumbSize);
25500
25546
  return Object.assign({}, this.thumbStyle,
25501
25547
  this.verticalThumbStyle,
25502
- {top: (pos + "px"),
25548
+ {top: ((this.verticalThumbStart) + "px"),
25503
25549
  height: ((this.verticalThumbSize) + "px")})
25504
25550
  },
25505
25551
 
25506
25552
  horizontalStyle: function horizontalStyle () {
25507
- var pos = this.horizontalScrollPercentage * (this.container.horizontal - this.horizontalThumbSize);
25508
25553
  return Object.assign({}, this.thumbStyle,
25509
25554
  this.horizontalThumbStyle,
25510
- {left: (pos + "px"),
25555
+ {left: ((this.horizontalThumbStart) + "px"),
25511
25556
  width: ((this.horizontalThumbSize) + "px")})
25512
25557
  },
25513
25558
 
@@ -25536,6 +25581,7 @@
25536
25581
  vertical: Object.assign({}, this.scroll.vertical,
25537
25582
  {percentage: this.verticalScrollPercentage,
25538
25583
  thumbHidden: this.verticalThumbHidden,
25584
+ thumbStart: this.verticalThumbStart,
25539
25585
  thumbSize: this.verticalThumbSize,
25540
25586
  style: this.verticalStyle,
25541
25587
  thumbClass: this.verticalThumbClass,
@@ -25543,6 +25589,7 @@
25543
25589
  horizontal: Object.assign({}, this.scroll.horizontal,
25544
25590
  {percentage: this.horizontalScrollPercentage,
25545
25591
  thumbHidden: this.horizontalThumbHidden,
25592
+ thumbStart: this.horizontalThumbStart,
25546
25593
  thumbSize: this.horizontalThumbSize,
25547
25594
  style: this.horizontalStyle,
25548
25595
  thumbClass: this.horizontalThumbClass,
@@ -25775,8 +25822,11 @@
25775
25822
  var data = this.scrollComputed[ axis ];
25776
25823
 
25777
25824
  if (data.thumbHidden !== true) {
25778
- var pos = evt[ dirProps[ axis ].offset ] - data.thumbSize / 2;
25779
- this.__setScroll(pos / this.container[ axis ] * data.size, axis);
25825
+ var offset = evt[ dirProps[ axis ].offset ];
25826
+ if (offset < data.thumbStart || offset > data.thumbStart + data.thumbSize) {
25827
+ var pos = offset - data.thumbSize / 2;
25828
+ this.__setScroll(pos / this.container[ axis ] * data.size, axis);
25829
+ }
25780
25830
 
25781
25831
  var ref = axis === 'vertical' ? this.$refs.verticalThumb : this.$refs.horizontalThumb;
25782
25832
  // activate thumb pan
@@ -25909,9 +25959,11 @@
25909
25959
  },
25910
25960
 
25911
25961
  activated: function activated () {
25962
+ if (this.__scrollPosition === void 0) { return }
25963
+
25912
25964
  var scrollTarget = this.getScrollTarget();
25913
25965
 
25914
- if (scrollTarget !== void 0 && this.__scrollPosition !== void 0) {
25966
+ if (scrollTarget !== void 0) {
25915
25967
  setHorizontalScrollPosition(scrollTarget, this.__scrollPosition.left);
25916
25968
  setVerticalScrollPosition(scrollTarget, this.__scrollPosition.top);
25917
25969
  }
@@ -26528,9 +26580,9 @@
26528
26580
  ? 1
26529
26581
  : Math.ceil(scrollViewSize / this.virtualScrollItemSizeComputed);
26530
26582
  var baseSize = Math.max(
26531
- 10,
26583
+ 1,
26532
26584
  view,
26533
- Math.ceil(this.virtualScrollSliceSize / multiplier)
26585
+ Math.ceil((this.virtualScrollSliceSize > 0 ? this.virtualScrollSliceSize : 10) / multiplier)
26534
26586
  );
26535
26587
 
26536
26588
  this.virtualScrollSliceSizeComputed = {
@@ -26623,6 +26675,8 @@
26623
26675
  },
26624
26676
 
26625
26677
  activated: function activated () {
26678
+ if (this.shouldActivate !== true) { return }
26679
+
26626
26680
  var scrollEl = this.__getVirtualScrollTarget();
26627
26681
 
26628
26682
  if (this.prevScrollStart !== void 0 && scrollEl !== void 0 && scrollEl !== null && scrollEl.nodeType !== 8) {
@@ -26638,6 +26692,10 @@
26638
26692
  }
26639
26693
  },
26640
26694
 
26695
+ deactivated: function deactivated () {
26696
+ this.shouldActivate = true;
26697
+ },
26698
+
26641
26699
  beforeMount: function beforeMount () {
26642
26700
  this.__onVirtualScrollEvt = debounce(this.__onVirtualScrollEvt, this.$q.platform.is.ios === true ? 120 : 35);
26643
26701
  this.__setVirtualScrollSize();
@@ -27279,34 +27337,34 @@
27279
27337
 
27280
27338
  if (typeof value === 'string' && value.length > 0) {
27281
27339
  var needle = value.toLocaleLowerCase();
27340
+ var findFn = function (extractFn) {
27341
+ var option = this$1.options.find(function (opt) { return extractFn(opt).toLocaleLowerCase() === needle; });
27282
27342
 
27283
- var fn = function (opt) { return this$1.getOptionValue(opt).toLocaleLowerCase() === needle; };
27284
- var option = this.options.find(fn);
27343
+ if (option === void 0) {
27344
+ return false
27345
+ }
27285
27346
 
27286
- if (option !== void 0) {
27287
- if (this.innerValue.indexOf(option) === -1) {
27288
- this.toggleOption(option);
27347
+ if (this$1.innerValue.indexOf(option) === -1) {
27348
+ this$1.toggleOption(option);
27289
27349
  }
27290
27350
  else {
27291
- this.hidePopup();
27351
+ this$1.hidePopup();
27292
27352
  }
27293
- }
27294
- else {
27295
- fn = function (opt) { return this$1.getOptionLabel(opt).toLocaleLowerCase() === needle; };
27296
- option = this.options.find(fn);
27297
27353
 
27298
- if (option !== void 0) {
27299
- if (this.innerValue.indexOf(option) === -1) {
27300
- this.toggleOption(option);
27301
- }
27302
- else {
27303
- this.hidePopup();
27304
- }
27354
+ return true
27355
+ };
27356
+ var fillFn = function (afterFilter) {
27357
+ if (findFn(this$1.getOptionValue) === true) {
27358
+ return
27305
27359
  }
27306
- else {
27307
- this.filter(value, true);
27360
+ if (findFn(this$1.getOptionLabel) === true || afterFilter === true) {
27361
+ return
27308
27362
  }
27309
- }
27363
+
27364
+ this$1.filter(value, true, function () { return fillFn(true); });
27365
+ };
27366
+
27367
+ fillFn();
27310
27368
  }
27311
27369
  else {
27312
27370
  this.__clearValue(e);
@@ -27599,7 +27657,7 @@
27599
27657
  h('div', {
27600
27658
  ref: 'target',
27601
27659
  key: 'd_t',
27602
- staticClass: 'no-outline',
27660
+ staticClass: 'q-select__focus-target',
27603
27661
  attrs: Object.assign({}, {id: this.targetUid,
27604
27662
  tabindex: this.tabindex},
27605
27663
  this.comboboxAttrs),
@@ -27614,7 +27672,7 @@
27614
27672
  if (typeof this.autocomplete === 'string' && this.autocomplete.length > 0) {
27615
27673
  child.push(
27616
27674
  h('input', {
27617
- staticClass: 'q-select__autocomplete-input no-outline',
27675
+ staticClass: 'q-select__autocomplete-input',
27618
27676
  attrs: { autocomplete: this.autocomplete },
27619
27677
  on: cache(this, 'autoinp', {
27620
27678
  keyup: this.__onTargetAutocomplete
@@ -27788,7 +27846,7 @@
27788
27846
  }
27789
27847
  },
27790
27848
 
27791
- filter: function filter (val, keepClosed) {
27849
+ filter: function filter (val, keepClosed, afterUpdateFn) {
27792
27850
  var this$1 = this;
27793
27851
 
27794
27852
  if (this.qListeners.filter === void 0 || (keepClosed !== true && this.focused !== true)) {
@@ -27847,6 +27905,7 @@
27847
27905
  }
27848
27906
 
27849
27907
  typeof afterFn === 'function' && this$1.$nextTick(function () { afterFn(this$1); });
27908
+ typeof afterUpdateFn === 'function' && this$1.$nextTick(function () { afterUpdateFn(this$1); });
27850
27909
  });
27851
27910
  }
27852
27911
  },
@@ -34688,6 +34747,8 @@
34688
34747
  expanded: Array, // sync
34689
34748
  selected: {}, // sync
34690
34749
 
34750
+ noSelectionUnset: Boolean,
34751
+
34691
34752
  defaultExpandAll: Boolean,
34692
34753
  accordion: Boolean,
34693
34754
 
@@ -35261,7 +35322,12 @@
35261
35322
 
35262
35323
  if (this.hasSelection) {
35263
35324
  if (meta.selectable) {
35264
- this.$emit('update:selected', meta.key !== this.selected ? meta.key : null);
35325
+ if (this.noSelectionUnset === false) {
35326
+ this.$emit('update:selected', meta.key !== this.selected ? meta.key : null);
35327
+ }
35328
+ else if (meta.key !== this.selected) {
35329
+ this.$emit('update:selected', meta.key || null);
35330
+ }
35265
35331
  }
35266
35332
  }
35267
35333
  else {
@@ -39015,9 +39081,9 @@
39015
39081
  okProps: function okProps () {
39016
39082
  return Object.assign({}, {color: this.vmColor,
39017
39083
  label: this.okLabel,
39018
- ripple: false},
39019
- (Object(this.ok) === this.ok ? this.ok : { flat: true }),
39020
- {disable: this.okDisabled})
39084
+ ripple: false,
39085
+ disable: this.okDisabled},
39086
+ (Object(this.ok) === this.ok ? this.ok : { flat: true }))
39021
39087
  },
39022
39088
 
39023
39089
  cancelProps: function cancelProps () {
@@ -39242,8 +39308,9 @@
39242
39308
  var $q = ref.$q;
39243
39309
  var cfg = ref.cfg;
39244
39310
 
39311
+ $q.loadingBar = this;
39312
+
39245
39313
  if (isSSR === true) {
39246
- $q.loadingBar = this;
39247
39314
  return
39248
39315
  }
39249
39316
 
@@ -39251,7 +39318,7 @@
39251
39318
  ? Object.assign({}, cfg.loadingBar)
39252
39319
  : {};
39253
39320
 
39254
- var bar = $q.loadingBar = new Vue({
39321
+ var bar = new Vue({
39255
39322
  name: 'LoadingBar',
39256
39323
 
39257
39324
  // hide App from Vue devtools
@@ -39271,11 +39338,11 @@
39271
39338
  Object.assign(this, {
39272
39339
  start: function (speed) {
39273
39340
  bar.start(speed);
39274
- this$1.isActive = bar.isActive = bar.calls > 0;
39341
+ this$1.isActive = bar.isActive = true;
39275
39342
  },
39276
39343
  stop: function () {
39277
- bar.stop();
39278
- this$1.isActive = bar.isActive = bar.calls > 0;
39344
+ var sessions = bar.stop();
39345
+ this$1.isActive = bar.isActive = sessions > 0;
39279
39346
  },
39280
39347
  increment: bar.increment,
39281
39348
  setDefaults: function (opts) {
@@ -39888,7 +39955,7 @@
39888
39955
  closeBtn && actions.push({
39889
39956
  label: typeof closeBtn === 'string'
39890
39957
  ? closeBtn
39891
- : this.$q.lang.label.close
39958
+ : vm.$q.lang.label.close
39892
39959
  });
39893
39960
 
39894
39961
  notif.actions = actions.map(function (ref) {