quasar 2.5.1 → 2.5.5

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 (193) 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 +4 -4
  6. package/dist/api/QBtnDropdown.json +17 -17
  7. package/dist/api/QCarousel.json +4 -4
  8. package/dist/api/QCheckbox.json +1 -1
  9. package/dist/api/QChip.json +5 -5
  10. package/dist/api/QDialog.json +13 -13
  11. package/dist/api/QDrawer.json +16 -16
  12. package/dist/api/QExpansionItem.json +15 -15
  13. package/dist/api/QFab.json +15 -15
  14. package/dist/api/QFabAction.json +3 -3
  15. package/dist/api/QField.json +2 -2
  16. package/dist/api/QFile.json +1 -1
  17. package/dist/api/QForm.json +12 -3
  18. package/dist/api/QIcon.json +4 -2
  19. package/dist/api/QInput.json +2 -2
  20. package/dist/api/QKnob.json +18 -0
  21. package/dist/api/QMenu.json +13 -13
  22. package/dist/api/QPagination.json +4 -4
  23. package/dist/api/QPopupEdit.json +6 -6
  24. package/dist/api/QPopupProxy.json +13 -13
  25. package/dist/api/QRadio.json +1 -1
  26. package/dist/api/QRange.json +1 -1
  27. package/dist/api/QRouteTab.json +2 -2
  28. package/dist/api/QSelect.json +19 -5
  29. package/dist/api/QSlider.json +1 -1
  30. package/dist/api/QStep.json +4 -4
  31. package/dist/api/QStepper.json +4 -4
  32. package/dist/api/QTab.json +1 -1
  33. package/dist/api/QTable.json +6 -6
  34. package/dist/api/QTimelineEntry.json +1 -1
  35. package/dist/api/QToggle.json +2 -2
  36. package/dist/api/QTooltip.json +13 -13
  37. package/dist/api/QTree.json +1 -1
  38. package/dist/api/QUploader.json +1 -1
  39. package/dist/api/TouchHold.json +1 -1
  40. package/dist/api/TouchPan.json +1 -1
  41. package/dist/api/TouchRepeat.json +1 -1
  42. package/dist/api/TouchSwipe.json +1 -1
  43. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  44. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  45. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  46. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  47. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  48. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  49. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  50. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  51. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  52. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  53. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  54. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  55. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  56. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  57. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  58. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  59. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  60. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  61. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  62. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  63. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  64. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  65. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  66. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  67. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  68. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  69. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  70. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  71. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  72. package/dist/icon-set/themify.umd.prod.js +1 -1
  73. package/dist/lang/ar.umd.prod.js +1 -1
  74. package/dist/lang/az-Latn.umd.prod.js +1 -1
  75. package/dist/lang/bg.umd.prod.js +1 -1
  76. package/dist/lang/bn.umd.prod.js +1 -1
  77. package/dist/lang/ca.umd.prod.js +1 -1
  78. package/dist/lang/cs.umd.prod.js +1 -1
  79. package/dist/lang/da.umd.prod.js +1 -1
  80. package/dist/lang/de.umd.prod.js +1 -1
  81. package/dist/lang/el.umd.prod.js +1 -1
  82. package/dist/lang/en-GB.umd.prod.js +1 -1
  83. package/dist/lang/en-US.umd.prod.js +1 -1
  84. package/dist/lang/eo.umd.prod.js +1 -1
  85. package/dist/lang/es.umd.prod.js +1 -1
  86. package/dist/lang/et.umd.prod.js +1 -1
  87. package/dist/lang/fa-IR.umd.prod.js +1 -1
  88. package/dist/lang/fa.umd.prod.js +1 -1
  89. package/dist/lang/fi.umd.prod.js +1 -1
  90. package/dist/lang/fr.umd.prod.js +1 -1
  91. package/dist/lang/gn.umd.prod.js +1 -1
  92. package/dist/lang/he.umd.prod.js +1 -1
  93. package/dist/lang/hr.umd.prod.js +1 -1
  94. package/dist/lang/hu.umd.prod.js +1 -1
  95. package/dist/lang/id.umd.prod.js +1 -1
  96. package/dist/lang/is.umd.prod.js +1 -1
  97. package/dist/lang/it.umd.prod.js +1 -1
  98. package/dist/lang/ja.umd.prod.js +1 -1
  99. package/dist/lang/km.umd.prod.js +1 -1
  100. package/dist/lang/ko-KR.umd.prod.js +1 -1
  101. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  102. package/dist/lang/lt.umd.prod.js +1 -1
  103. package/dist/lang/lu.umd.prod.js +1 -1
  104. package/dist/lang/lv.umd.prod.js +1 -1
  105. package/dist/lang/ml.umd.prod.js +1 -1
  106. package/dist/lang/ms.umd.prod.js +1 -1
  107. package/dist/lang/my.umd.prod.js +1 -1
  108. package/dist/lang/nb-NO.umd.prod.js +1 -1
  109. package/dist/lang/nl.umd.prod.js +1 -1
  110. package/dist/lang/pl.umd.prod.js +1 -1
  111. package/dist/lang/pt-BR.umd.prod.js +1 -1
  112. package/dist/lang/pt.umd.prod.js +1 -1
  113. package/dist/lang/ro.umd.prod.js +1 -1
  114. package/dist/lang/ru.umd.prod.js +1 -1
  115. package/dist/lang/sk.umd.prod.js +1 -1
  116. package/dist/lang/sl.umd.prod.js +1 -1
  117. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  118. package/dist/lang/sr.umd.prod.js +1 -1
  119. package/dist/lang/sv.umd.prod.js +1 -1
  120. package/dist/lang/ta.umd.prod.js +1 -1
  121. package/dist/lang/th.umd.prod.js +1 -1
  122. package/dist/lang/tr.umd.prod.js +1 -1
  123. package/dist/lang/ug.umd.prod.js +1 -1
  124. package/dist/lang/uk.umd.prod.js +1 -1
  125. package/dist/lang/vi.umd.prod.js +1 -1
  126. package/dist/lang/zh-CN.umd.prod.js +1 -1
  127. package/dist/lang/zh-TW.umd.prod.js +1 -1
  128. package/dist/quasar.cjs.prod.js +2 -2
  129. package/dist/quasar.css +2 -2
  130. package/dist/quasar.esm.prod.js +2 -2
  131. package/dist/quasar.prod.css +1 -1
  132. package/dist/quasar.rtl.css +2 -2
  133. package/dist/quasar.rtl.prod.css +1 -1
  134. package/dist/quasar.sass +2 -1
  135. package/dist/quasar.umd.js +358 -343
  136. package/dist/quasar.umd.prod.js +2 -2
  137. package/dist/ssr-directives/Morph.js +1 -1
  138. package/dist/types/index.d.ts +245 -135
  139. package/dist/vetur/quasar-attributes.json +46 -38
  140. package/dist/vetur/quasar-tags.json +2 -0
  141. package/dist/web-types/web-types.json +119 -93
  142. package/package.json +1 -1
  143. package/src/api-file-example.json +2 -2
  144. package/src/api.extends.json +22 -33
  145. package/src/components/btn/QBtn.json +3 -6
  146. package/src/components/carousel/QCarousel.json +2 -4
  147. package/src/components/checkbox/use-checkbox.json +2 -4
  148. package/src/components/chip/QChip.json +1 -3
  149. package/src/components/date/QDate.js +20 -19
  150. package/src/components/date/use-datetime.js +3 -1
  151. package/src/components/dialog-plugin/DialogPlugin.js +9 -8
  152. package/src/components/fab/QFabAction.json +1 -3
  153. package/src/components/field/QField.json +2 -6
  154. package/src/components/form/QForm.json +10 -7
  155. package/src/components/icon/QIcon.js +4 -1
  156. package/src/components/icon/QIcon.json +1 -3
  157. package/src/components/input/QInput.json +2 -6
  158. package/src/components/input/use-mask.js +2 -2
  159. package/src/components/knob/QKnob.js +46 -40
  160. package/src/components/knob/QKnob.json +16 -0
  161. package/src/components/radio/QRadio.json +2 -4
  162. package/src/components/select/QSelect.js +4 -3
  163. package/src/components/select/QSelect.json +17 -8
  164. package/src/components/slide-transition/QSlideTransition.js +4 -4
  165. package/src/components/slider/use-slider.js +4 -4
  166. package/src/components/slider/use-slider.json +1 -1
  167. package/src/components/stepper/QStep.json +3 -0
  168. package/src/components/stepper/QStepper.json +3 -0
  169. package/src/components/stepper/QStepper.sass +1 -0
  170. package/src/components/stepper/StepHeader.js +23 -8
  171. package/src/components/table/QTable.json +5 -13
  172. package/src/components/table/table-sort.js +2 -2
  173. package/src/components/tabs/QRouteTab.json +2 -3
  174. package/src/components/tabs/use-tab.js +11 -8
  175. package/src/components/time/QTime.js +5 -5
  176. package/src/components/tree/QTree.js +39 -41
  177. package/src/composables/private/use-file.json +1 -3
  178. package/src/composables/private/use-router-link.js +1 -1
  179. package/src/directives/TouchHold.json +2 -3
  180. package/src/directives/TouchPan.json +2 -3
  181. package/src/directives/TouchRepeat.json +2 -3
  182. package/src/directives/TouchSwipe.json +2 -3
  183. package/src/install-quasar.js +37 -36
  184. package/src/plugins/Loading.js +3 -2
  185. package/src/plugins/LoadingBar.js +2 -1
  186. package/src/plugins/Notify.js +11 -4
  187. package/src/plugins/Notify.json +102 -2
  188. package/src/plugins/Screen.js +9 -5
  189. package/src/utils/create-uploader-component.js +2 -1
  190. package/src/utils/extend.js +6 -34
  191. package/src/utils/morph.js +19 -17
  192. package/src/utils/private/is.js +2 -15
  193. package/src/utils/private/web-storage.js +3 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.5.1
2
+ * Quasar Framework v2.5.5
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -635,11 +635,15 @@
635
635
 
636
636
  const { visualViewport } = window;
637
637
  const target = visualViewport || window;
638
- const getSize = visualViewport === void 0
639
- ? () => [ window.innerWidth, window.innerHeight ]
638
+ const scrollingElement = document.scrollingElement || document.documentElement;
639
+ const getSize = visualViewport === void 0 || client.is.mobile === true
640
+ ? () => [
641
+ Math.max(window.innerWidth, scrollingElement.clientWidth),
642
+ Math.max(window.innerHeight, scrollingElement.clientHeight)
643
+ ]
640
644
  : () => [
641
- visualViewport.width * visualViewport.scale + window.innerWidth - document.scrollingElement.clientWidth,
642
- visualViewport.height * visualViewport.scale + window.innerHeight - document.scrollingElement.clientHeight
645
+ visualViewport.width * visualViewport.scale + window.innerWidth - scrollingElement.clientWidth,
646
+ visualViewport.height * visualViewport.scale + window.innerHeight - scrollingElement.clientHeight
643
647
  ];
644
648
 
645
649
  const classes = $q.config.screen !== void 0 && $q.config.screen.bodyClasses === true;
@@ -1397,6 +1401,144 @@
1397
1401
  globalConfigIsFrozen = true;
1398
1402
  }
1399
1403
 
1404
+ const
1405
+ hasMap = typeof Map === 'function',
1406
+ hasSet = typeof Set === 'function',
1407
+ hasArrayBuffer = typeof ArrayBuffer === 'function';
1408
+
1409
+ function isDeepEqual (a, b) {
1410
+ if (a === b) {
1411
+ return true
1412
+ }
1413
+
1414
+ if (a !== null && b !== null && typeof a === 'object' && typeof b === 'object') {
1415
+ if (a.constructor !== b.constructor) {
1416
+ return false
1417
+ }
1418
+
1419
+ let length, i;
1420
+
1421
+ if (a.constructor === Array) {
1422
+ length = a.length;
1423
+
1424
+ if (length !== b.length) {
1425
+ return false
1426
+ }
1427
+
1428
+ for (i = length; i-- !== 0;) {
1429
+ if (isDeepEqual(a[ i ], b[ i ]) !== true) {
1430
+ return false
1431
+ }
1432
+ }
1433
+
1434
+ return true
1435
+ }
1436
+
1437
+ if (hasMap === true && a.constructor === Map) {
1438
+ if (a.size !== b.size) {
1439
+ return false
1440
+ }
1441
+
1442
+ i = a.entries().next();
1443
+ while (i.done !== true) {
1444
+ if (b.has(i.value[ 0 ]) !== true) {
1445
+ return false
1446
+ }
1447
+ i = i.next();
1448
+ }
1449
+
1450
+ i = a.entries().next();
1451
+ while (i.done !== true) {
1452
+ if (isDeepEqual(i.value[ 1 ], b.get(i.value[ 0 ])) !== true) {
1453
+ return false
1454
+ }
1455
+ i = i.next();
1456
+ }
1457
+
1458
+ return true
1459
+ }
1460
+
1461
+ if (hasSet === true && a.constructor === Set) {
1462
+ if (a.size !== b.size) {
1463
+ return false
1464
+ }
1465
+
1466
+ i = a.entries().next();
1467
+ while (i.done !== true) {
1468
+ if (b.has(i.value[ 0 ]) !== true) {
1469
+ return false
1470
+ }
1471
+ i = i.next();
1472
+ }
1473
+
1474
+ return true
1475
+ }
1476
+
1477
+ if (hasArrayBuffer === true && a.buffer != null && a.buffer.constructor === ArrayBuffer) {
1478
+ length = a.length;
1479
+
1480
+ if (length !== b.length) {
1481
+ return false
1482
+ }
1483
+
1484
+ for (i = length; i-- !== 0;) {
1485
+ if (a[ i ] !== b[ i ]) {
1486
+ return false
1487
+ }
1488
+ }
1489
+
1490
+ return true
1491
+ }
1492
+
1493
+ if (a.constructor === RegExp) {
1494
+ return a.source === b.source && a.flags === b.flags
1495
+ }
1496
+
1497
+ if (a.valueOf !== Object.prototype.valueOf) {
1498
+ return a.valueOf() === b.valueOf()
1499
+ }
1500
+
1501
+ if (a.toString !== Object.prototype.toString) {
1502
+ return a.toString() === b.toString()
1503
+ }
1504
+
1505
+ const keys = Object.keys(a).filter(key => a[ key ] !== void 0);
1506
+ length = keys.length;
1507
+
1508
+ if (length !== Object.keys(b).filter(key => b[ key ] !== void 0).length) {
1509
+ return false
1510
+ }
1511
+
1512
+ for (i = length; i-- !== 0;) {
1513
+ const key = keys[ i ];
1514
+ if (isDeepEqual(a[ key ], b[ key ]) !== true) {
1515
+ return false
1516
+ }
1517
+ }
1518
+
1519
+ return true
1520
+ }
1521
+
1522
+ // true if both NaN, false otherwise
1523
+ return a !== a && b !== b // eslint-disable-line no-self-compare
1524
+ }
1525
+
1526
+ function isPlainObject (v) {
1527
+ return Object.prototype.toString.call(v) === '[object Object]'
1528
+ }
1529
+
1530
+ function isDate (v) {
1531
+ return Object.prototype.toString.call(v) === '[object Date]'
1532
+ }
1533
+
1534
+ function isRegexp (v) {
1535
+ return Object.prototype.toString.call(v) === '[object RegExp]'
1536
+ }
1537
+
1538
+ function isNumber (v) {
1539
+ return typeof v === 'number' && isFinite(v)
1540
+ }
1541
+
1400
1542
  const autoInstalledPlugins = [
1401
1543
  Platform,
1402
1544
  Body,
@@ -1432,13 +1574,13 @@
1432
1574
  installPlugins(pluginOpts, autoInstalledPlugins);
1433
1575
 
1434
1576
  uiOpts.components !== void 0 && Object.values(uiOpts.components).forEach(c => {
1435
- if (Object(c) === c && c.name !== void 0) {
1577
+ if (isPlainObject(c) === true && c.name !== void 0) {
1436
1578
  app.component(c.name, c);
1437
1579
  }
1438
1580
  });
1439
1581
 
1440
1582
  uiOpts.directives !== void 0 && Object.values(uiOpts.directives).forEach(d => {
1441
- if (Object(d) === d && d.name !== void 0) {
1583
+ if (isPlainObject(d) === true && d.name !== void 0) {
1442
1584
  app.directive(d.name, d);
1443
1585
  }
1444
1586
  });
@@ -1459,7 +1601,7 @@
1459
1601
  }
1460
1602
 
1461
1603
  var installQuasar = function (parentApp, opts = {}) {
1462
- const $q = { version: '2.5.1' };
1604
+ const $q = { version: '2.5.5' };
1463
1605
 
1464
1606
  if (globalConfigIsFrozen === false) {
1465
1607
  if (opts.config !== void 0) {
@@ -1955,7 +2097,7 @@
1955
2097
  let cls;
1956
2098
  let icon = props.name;
1957
2099
 
1958
- if (!icon) {
2100
+ if (icon === 'none' || !icon) {
1959
2101
  return { none: true }
1960
2102
  }
1961
2103
 
@@ -1964,6 +2106,9 @@
1964
2106
  if (res !== void 0) {
1965
2107
  if (res.icon !== void 0) {
1966
2108
  icon = res.icon;
2109
+ if (icon === 'none' || !icon) {
2110
+ return { none: true }
2111
+ }
1967
2112
  }
1968
2113
  else {
1969
2114
  return {
@@ -2700,7 +2845,7 @@
2700
2845
  prevent(e);
2701
2846
 
2702
2847
  return proxy.$router[ props.replace === true ? 'replace' : 'push' ](props.to)
2703
- .catch(() => {})
2848
+ .catch(err => err)
2704
2849
  }
2705
2850
 
2706
2851
  return {
@@ -6515,136 +6660,6 @@
6515
6660
  }
6516
6661
  }
6517
6662
 
6518
- const
6519
- hasMap = typeof Map === 'function',
6520
- hasSet = typeof Set === 'function',
6521
- hasArrayBuffer = typeof ArrayBuffer === 'function';
6522
-
6523
- function isDeepEqual (a, b) {
6524
- if (a === b) {
6525
- return true
6526
- }
6527
-
6528
- if (a !== null && b !== null && typeof a === 'object' && typeof b === 'object') {
6529
- if (a.constructor !== b.constructor) {
6530
- return false
6531
- }
6532
-
6533
- let length, i;
6534
-
6535
- if (a.constructor === Array) {
6536
- length = a.length;
6537
-
6538
- if (length !== b.length) {
6539
- return false
6540
- }
6541
-
6542
- for (i = length; i-- !== 0;) {
6543
- if (isDeepEqual(a[ i ], b[ i ]) !== true) {
6544
- return false
6545
- }
6546
- }
6547
-
6548
- return true
6549
- }
6550
-
6551
- if (hasMap === true && a.constructor === Map) {
6552
- if (a.size !== b.size) {
6553
- return false
6554
- }
6555
-
6556
- i = a.entries().next();
6557
- while (i.done !== true) {
6558
- if (b.has(i.value[ 0 ]) !== true) {
6559
- return false
6560
- }
6561
- i = i.next();
6562
- }
6563
-
6564
- i = a.entries().next();
6565
- while (i.done !== true) {
6566
- if (isDeepEqual(i.value[ 1 ], b.get(i.value[ 0 ])) !== true) {
6567
- return false
6568
- }
6569
- i = i.next();
6570
- }
6571
-
6572
- return true
6573
- }
6574
-
6575
- if (hasSet === true && a.constructor === Set) {
6576
- if (a.size !== b.size) {
6577
- return false
6578
- }
6579
-
6580
- i = a.entries().next();
6581
- while (i.done !== true) {
6582
- if (b.has(i.value[ 0 ]) !== true) {
6583
- return false
6584
- }
6585
- i = i.next();
6586
- }
6587
-
6588
- return true
6589
- }
6590
-
6591
- if (hasArrayBuffer === true && a.buffer != null && a.buffer.constructor === ArrayBuffer) {
6592
- length = a.length;
6593
-
6594
- if (length !== b.length) {
6595
- return false
6596
- }
6597
-
6598
- for (i = length; i-- !== 0;) {
6599
- if (a[ i ] !== b[ i ]) {
6600
- return false
6601
- }
6602
- }
6603
-
6604
- return true
6605
- }
6606
-
6607
- if (a.constructor === RegExp) {
6608
- return a.source === b.source && a.flags === b.flags
6609
- }
6610
-
6611
- if (a.valueOf !== Object.prototype.valueOf) {
6612
- return a.valueOf() === b.valueOf()
6613
- }
6614
-
6615
- if (a.toString !== Object.prototype.toString) {
6616
- return a.toString() === b.toString()
6617
- }
6618
-
6619
- const keys = Object.keys(a).filter(key => a[ key ] !== void 0);
6620
- length = keys.length;
6621
-
6622
- if (length !== Object.keys(b).filter(key => b[ key ] !== void 0).length) {
6623
- return false
6624
- }
6625
-
6626
- for (i = length; i-- !== 0;) {
6627
- const key = keys[ i ];
6628
- if (isDeepEqual(a[ key ], b[ key ]) !== true) {
6629
- return false
6630
- }
6631
- }
6632
-
6633
- return true
6634
- }
6635
-
6636
- // true if both NaN, false otherwise
6637
- return a !== a && b !== b // eslint-disable-line no-self-compare
6638
- }
6639
-
6640
- function isDate (v) {
6641
- return Object.prototype.toString.call(v) === '[object Date]'
6642
- }
6643
-
6644
- function isNumber (v) {
6645
- return typeof v === 'number' && isFinite(v)
6646
- }
6647
-
6648
6663
  const navigationPositionOptions = [ 'top', 'right', 'bottom', 'left' ];
6649
6664
  const controlTypeOptions = [ 'regular', 'flat', 'outline', 'push', 'unelevated' ];
6650
6665
 
@@ -8560,7 +8575,7 @@
8560
8575
  if (typeof def === 'function') {
8561
8576
  return markerTicks.value.map(value => {
8562
8577
  const item = def(value);
8563
- return Object(item) === item ? { ...item, value } : { value, label: item }
8578
+ return isPlainObject(item) === true ? { ...item, value } : { value, label: item }
8564
8579
  })
8565
8580
  }
8566
8581
 
@@ -8568,14 +8583,14 @@
8568
8583
 
8569
8584
  if (Array.isArray(def) === true) {
8570
8585
  return def
8571
- .map(item => (Object(item) === item ? item : { value: item }))
8586
+ .map(item => (isPlainObject(item) === true ? item : { value: item }))
8572
8587
  .filter(filterFn)
8573
8588
  }
8574
8589
 
8575
8590
  return Object.keys(def).map(key => {
8576
8591
  const item = def[ key ];
8577
8592
  const value = Number(key);
8578
- return Object(item) === item ? { ...item, value } : { value, label: item }
8593
+ return isPlainObject(item) === true ? { ...item, value } : { value, label: item }
8579
8594
  }).filter(filterFn)
8580
8595
  }
8581
8596
 
@@ -9907,9 +9922,12 @@
9907
9922
  $tabs.avoidRouteWatcher = false;
9908
9923
  }
9909
9924
  else {
9910
- res.then(() => {
9925
+ res.then(err => {
9911
9926
  $tabs.avoidRouteWatcher = false;
9912
- $tabs.updateModel({ name: props.name, fromRoute: true });
9927
+
9928
+ if (err === void 0) {
9929
+ $tabs.updateModel({ name: props.name, fromRoute: true });
9930
+ }
9913
9931
  });
9914
9932
  }
9915
9933
  };
@@ -9966,12 +9984,12 @@
9966
9984
  props.alert !== false && content.push(
9967
9985
  props.alertIcon !== void 0
9968
9986
  ? vue.h(QIcon, {
9969
- class: 'q-tab__alert-icon',
9970
- color: props.alert !== true
9971
- ? props.alert
9972
- : void 0,
9973
- name: props.alertIcon
9974
- })
9987
+ class: 'q-tab__alert-icon',
9988
+ color: props.alert !== true
9989
+ ? props.alert
9990
+ : void 0,
9991
+ name: props.alertIcon
9992
+ })
9975
9993
  : vue.h('div', {
9976
9994
  class: 'q-tab__alert'
9977
9995
  + (props.alert !== true ? ` text-${ props.alert }` : '')
@@ -11571,7 +11589,9 @@
11571
11589
  });
11572
11590
 
11573
11591
  function getLocale () {
11574
- return props.locale || $q.lang.date
11592
+ return props.locale !== void 0
11593
+ ? { ...$q.lang.date, ...props.locale }
11594
+ : $q.lang.date
11575
11595
  }
11576
11596
 
11577
11597
  function getCurrentDate (dateOnly) {
@@ -12763,7 +12783,7 @@
12763
12783
  const rangeModel = vue.computed(() => {
12764
12784
  const fn = date => decodeString(date, innerMask.value, innerLocale.value);
12765
12785
  return normalizedModel.value
12766
- .filter(date => Object(date) === date && date.from !== void 0 && date.to !== void 0)
12786
+ .filter(date => isPlainObject(date) === true && date.from !== void 0 && date.to !== void 0)
12767
12787
  .map(range => ({ from: fn(range.from), to: fn(range.to) }))
12768
12788
  .filter(range => range.from.dateHash !== null && range.to.dateHash !== null && range.from.dateHash < range.to.dateHash)
12769
12789
  });
@@ -13816,24 +13836,24 @@
13816
13836
  }, days.value.map(day => vue.h('div', { class: day.classes }, [
13817
13837
  day.in === true
13818
13838
  ? vue.h(
13819
- QBtn, {
13820
- class: day.today === true ? 'q-date__today' : '',
13821
- dense: true,
13822
- flat: day.flat,
13823
- unelevated: day.unelevated,
13824
- color: day.color,
13825
- textColor: day.textColor,
13826
- label: day.i,
13827
- tabindex: tabindex.value,
13828
- ...getCache('day#' + day.i, {
13829
- onClick: () => { onDayClick(day.i); },
13830
- onMouseover: () => { onDayMouseover(day.i); }
13831
- })
13832
- },
13833
- day.event !== false
13834
- ? () => vue.h('div', { class: 'q-date__event bg-' + day.event })
13835
- : null
13836
- )
13839
+ QBtn, {
13840
+ class: day.today === true ? 'q-date__today' : '',
13841
+ dense: true,
13842
+ flat: day.flat,
13843
+ unelevated: day.unelevated,
13844
+ color: day.color,
13845
+ textColor: day.textColor,
13846
+ label: day.i,
13847
+ tabindex: tabindex.value,
13848
+ ...getCache('day#' + day.i, {
13849
+ onClick: () => { onDayClick(day.i); },
13850
+ onMouseover: () => { onDayMouseover(day.i); }
13851
+ })
13852
+ },
13853
+ day.event !== false
13854
+ ? () => vue.h('div', { class: 'q-date__event bg-' + day.event })
13855
+ : null
13856
+ )
13837
13857
  : vue.h('div', '' + day.i)
13838
13858
  ]))))
13839
13859
  ])
@@ -16516,36 +16536,6 @@
16516
16536
  return acc
16517
16537
  }
16518
16538
 
16519
- const
16520
- toString = Object.prototype.toString,
16521
- hasOwn = Object.prototype.hasOwnProperty,
16522
- class2type = {};
16523
-
16524
- 'Boolean Number String Function Array Date RegExp Object'.split(' ').forEach(name => {
16525
- class2type[ '[object ' + name + ']' ] = name.toLowerCase();
16526
- });
16527
-
16528
- function type (obj) {
16529
- return obj === null ? String(obj) : class2type[ toString.call(obj) ] || 'object'
16530
- }
16531
-
16532
- function isPlainObject (obj) {
16533
- if (!obj || type(obj) !== 'object') {
16534
- return false
16535
- }
16536
-
16537
- if (obj.constructor
16538
- && !hasOwn.call(obj, 'constructor')
16539
- && !hasOwn.call(obj.constructor.prototype, 'isPrototypeOf')) {
16540
- return false
16541
- }
16542
-
16543
- let key;
16544
- for (key in obj) {} // eslint-disable-line
16545
-
16546
- return key === undefined || hasOwn.call(obj, key)
16547
- }
16548
-
16549
16539
  function extend () {
16550
16540
  let
16551
16541
  options, name, src, copy, copyIsArray, clone,
@@ -16560,7 +16550,7 @@
16560
16550
  i = 2;
16561
16551
  }
16562
16552
 
16563
- if (Object(target) !== target && type(target) !== 'function') {
16553
+ if (Object(target) !== target && typeof target !== 'function') {
16564
16554
  target = {};
16565
16555
  }
16566
16556
 
@@ -16579,18 +16569,18 @@
16579
16569
  continue
16580
16570
  }
16581
16571
 
16582
- if (deep && copy && (isPlainObject(copy) || (copyIsArray = type(copy) === 'array'))) {
16572
+ if (deep && copy && (isPlainObject(copy) === true || (copyIsArray = Array.isArray(copy) === true))) {
16583
16573
  if (copyIsArray) {
16584
16574
  copyIsArray = false;
16585
- clone = src && type(src) === 'array' ? src : [];
16575
+ clone = src && Array.isArray(src) === true ? src : [];
16586
16576
  }
16587
16577
  else {
16588
- clone = src && isPlainObject(src) ? src : {};
16578
+ clone = src && isPlainObject(src) === true ? src : {};
16589
16579
  }
16590
16580
 
16591
16581
  target[ name ] = extend(deep, clone, copy);
16592
16582
  }
16593
- else if (copy !== undefined) {
16583
+ else if (copy !== void 0) {
16594
16584
  target[ name ] = copy;
16595
16585
  }
16596
16586
  }
@@ -17226,8 +17216,8 @@
17226
17216
 
17227
17217
  timer = setTimeout(() => {
17228
17218
  el.style.height = `${ el.scrollHeight }px`;
17229
- animListener = ev => {
17230
- if (Object(ev) !== ev || ev.target === el) {
17219
+ animListener = evt => {
17220
+ if (Object(evt) !== evt || evt.target === el) {
17231
17221
  end(el, 'show');
17232
17222
  }
17233
17223
  };
@@ -17252,8 +17242,8 @@
17252
17242
 
17253
17243
  timer = setTimeout(() => {
17254
17244
  el.style.height = 0;
17255
- animListener = ev => {
17256
- if (Object(ev) !== ev || ev.target === el) {
17245
+ animListener = evt => {
17246
+ if (Object(evt) !== evt || evt.target === el) {
17257
17247
  end(el, 'hide');
17258
17248
  }
17259
17249
  };
@@ -19125,7 +19115,7 @@
19125
19115
  ...props
19126
19116
  },
19127
19117
 
19128
- emits: Object(emits) === emits
19118
+ emits: isPlainObject(emits) === true
19129
19119
  ? { ...coreEmitsObject, ...emits }
19130
19120
  : [ ...coreEmits, ...emits ],
19131
19121
 
@@ -19679,7 +19669,7 @@
19679
19669
  if (typeof options.style === 'string') {
19680
19670
  elTo.style.cssText += ' ' + options.style;
19681
19671
  }
19682
- else if (options.style === Object(options.style)) {
19672
+ else if (isPlainObject(options.style) === true) {
19683
19673
  for (const prop in options.style) {
19684
19674
  elTo.style[ prop ] = options.style[ prop ];
19685
19675
  }
@@ -20116,8 +20106,8 @@
20116
20106
  elToClone.style.animation = `${ options.duration }ms ${ options.easing } ${ options.delay }ms ${ animationDirection } ${ options.fill } ${ qAnimId }-to`;
20117
20107
  elTo.style.animation = `${ options.duration }ms ${ options.easing } ${ options.delay }ms ${ animationDirection } ${ options.fill } ${ qAnimId }`;
20118
20108
 
20119
- const cleanup = ev => {
20120
- if (ev === Object(ev) && ev.animationName !== qAnimId) {
20109
+ const cleanup = evt => {
20110
+ if (evt === Object(evt) && evt.animationName !== qAnimId) {
20121
20111
  return
20122
20112
  }
20123
20113
 
@@ -20180,24 +20170,24 @@
20180
20170
  : (
20181
20171
  options.waitFor === 'transitionend'
20182
20172
  ? new Promise(resolve => {
20183
- const timer = setTimeout(() => {
20184
- endFn();
20185
- }, 400);
20173
+ const timer = setTimeout(() => {
20174
+ endFn();
20175
+ }, 400);
20186
20176
 
20187
- const endFn = ev => {
20188
- clearTimeout(timer);
20177
+ const endFn = ev => {
20178
+ clearTimeout(timer);
20189
20179
 
20190
- if (elTo) {
20191
- elTo.removeEventListener('transitionend', endFn);
20192
- elTo.removeEventListener('transitioncancel', endFn);
20193
- }
20180
+ if (elTo) {
20181
+ elTo.removeEventListener('transitionend', endFn);
20182
+ elTo.removeEventListener('transitioncancel', endFn);
20183
+ }
20194
20184
 
20195
- resolve();
20196
- };
20185
+ resolve();
20186
+ };
20197
20187
 
20198
- elTo.addEventListener('transitionend', endFn);
20199
- elTo.addEventListener('transitioncancel', endFn);
20200
- })
20188
+ elTo.addEventListener('transitionend', endFn);
20189
+ elTo.addEventListener('transitioncancel', endFn);
20190
+ })
20201
20191
  : options.waitFor
20202
20192
  );
20203
20193
 
@@ -22903,7 +22893,7 @@
22903
22893
  ? unmaskValue(masked)
22904
22894
  : masked;
22905
22895
 
22906
- props.modelValue !== val && emitValue(val, true);
22896
+ String(props.modelValue) !== val && emitValue(val, true);
22907
22897
  }
22908
22898
 
22909
22899
  function moveCursorForPaste (inp, start, end) {
@@ -23798,6 +23788,9 @@
23798
23788
  required: true
23799
23789
  },
23800
23790
 
23791
+ innerMin: Number,
23792
+ innerMax: Number,
23793
+
23801
23794
  step: {
23802
23795
  type: Number,
23803
23796
  default: 1,
@@ -23822,27 +23815,33 @@
23822
23815
  const model = vue.ref(props.modelValue);
23823
23816
  const dragging = vue.ref(false);
23824
23817
 
23825
- let centerPosition, $el;
23818
+ const innerMin = vue.computed(() => (
23819
+ isNaN(props.innerMin) === true || props.innerMin < props.min
23820
+ ? props.min
23821
+ : props.innerMin
23822
+ ));
23823
+ const innerMax = vue.computed(() => (
23824
+ isNaN(props.innerMax) === true || props.innerMax > props.max
23825
+ ? props.max
23826
+ : props.innerMax
23827
+ ));
23826
23828
 
23827
- vue.watch(() => props.modelValue, val => {
23828
- if (val < props.min) {
23829
- model.value = props.min;
23830
- }
23831
- else if (val > props.max) {
23832
- model.value = props.max;
23833
- }
23834
- else {
23835
- if (val !== model.value) {
23836
- model.value = val;
23837
- }
23838
- return
23839
- }
23829
+ let centerPosition;
23840
23830
 
23841
- if (model.value !== props.modelValue) {
23842
- emit('update:modelValue', model.value);
23843
- emit('change', model.value);
23844
- }
23845
- });
23831
+ function normalizeModel () {
23832
+ model.value = props.modelValue === null
23833
+ ? innerMin.value
23834
+ : between(props.modelValue, innerMin.value, innerMax.value);
23835
+
23836
+ updateValue(true);
23837
+ }
23838
+
23839
+ vue.watch(
23840
+ () => `${ props.modelValue }|${ innerMin.value }|${ innerMax.value }`,
23841
+ normalizeModel
23842
+ );
23843
+
23844
+ normalizeModel();
23846
23845
 
23847
23846
  const editable = vue.computed(() => props.disable === false && props.readonly === false);
23848
23847
 
@@ -23910,7 +23909,7 @@
23910
23909
  });
23911
23910
 
23912
23911
  function updateCenterPosition () {
23913
- const { top, left, width, height } = $el.getBoundingClientRect();
23912
+ const { top, left, width, height } = proxy.$el.getBoundingClientRect();
23914
23913
  centerPosition = {
23915
23914
  top: top + height / 2,
23916
23915
  left: left + width / 2
@@ -23940,8 +23939,8 @@
23940
23939
 
23941
23940
  model.value = between(
23942
23941
  parseFloat((model.value + offset).toFixed(decimals.value)),
23943
- props.min,
23944
- props.max
23942
+ innerMin.value,
23943
+ innerMax.value
23945
23944
  );
23946
23945
 
23947
23946
  updateValue();
@@ -23984,7 +23983,7 @@
23984
23983
  newModel = parseFloat(newModel.toFixed(decimals.value));
23985
23984
  }
23986
23985
 
23987
- newModel = between(newModel, props.min, props.max);
23986
+ newModel = between(newModel, innerMin.value, innerMax.value);
23988
23987
 
23989
23988
  emit('drag-value', newModel);
23990
23989
 
@@ -24012,16 +24011,12 @@
24012
24011
  return vue.h('input', formAttrs.value)
24013
24012
  }
24014
24013
 
24015
- vue.onMounted(() => {
24016
- $el = proxy.$el;
24017
- });
24018
-
24019
24014
  return () => {
24020
24015
  const data = {
24021
24016
  class: classes.value,
24022
24017
  role: 'slider',
24023
- 'aria-valuemin': props.min,
24024
- 'aria-valuemax': props.max,
24018
+ 'aria-valuemin': innerMin.value,
24019
+ 'aria-valuemax': innerMax.value,
24025
24020
  'aria-valuenow': props.modelValue,
24026
24021
  ...attrs.value,
24027
24022
  ...circularProps.value,
@@ -24034,18 +24029,18 @@
24034
24029
  default: slots.default
24035
24030
  };
24036
24031
 
24037
- if (editable.value === true) {
24038
- if (props.name !== void 0) {
24039
- child.internal = getNameInput;
24040
- }
24041
-
24042
- return vue.withDirectives(
24043
- vue.h(QCircularProgress, data, child),
24044
- directives.value
24045
- )
24032
+ if (editable.value === true && props.name !== void 0) {
24033
+ child.internal = getNameInput;
24046
24034
  }
24047
24035
 
24048
- return vue.h(QCircularProgress, data, child)
24036
+ return hDir(
24037
+ QCircularProgress,
24038
+ data,
24039
+ child,
24040
+ 'knob',
24041
+ editable.value,
24042
+ () => directives.value
24043
+ )
24049
24044
  }
24050
24045
  }
24051
24046
  });
@@ -28447,7 +28442,7 @@
28447
28442
  itemProps[ 'aria-selected' ] = itemProps.active === true ? 'true' : 'false';
28448
28443
 
28449
28444
  if ($q.platform.is.desktop === true) {
28450
- itemProps.onMousemove = () => { setOptionIndex(index); };
28445
+ itemProps.onMousemove = () => { menu.value === true && setOptionIndex(index); };
28451
28446
  }
28452
28447
  }
28453
28448
 
@@ -28712,7 +28707,7 @@
28712
28707
 
28713
28708
  return typeof val === 'function'
28714
28709
  ? val
28715
- : opt => (Object(opt) === opt && val in opt ? opt[ val ] : opt)
28710
+ : opt => (isPlainObject(opt) === true && val in opt ? opt[ val ] : opt)
28716
28711
  }
28717
28712
 
28718
28713
  function isOptionSelected (opt) {
@@ -29495,6 +29490,7 @@
29495
29490
  Object.assign(proxy, {
29496
29491
  showPopup, hidePopup,
29497
29492
  removeAtIndex, add, toggleOption,
29493
+ getOptionIndex: () => optionIndex.value,
29498
29494
  setOptionIndex, moveOptionSelection,
29499
29495
  filter, updateMenuPosition, updateInputValue,
29500
29496
  isOptionSelected,
@@ -32130,23 +32126,36 @@
32130
32126
 
32131
32127
  const hasPrefix = vue.computed(() => {
32132
32128
  return props.step.prefix
32133
- && isActive.value === false
32134
- && isError.value === false
32135
- && isDone.value === false
32129
+ && (isActive.value === false || props.stepper.activeIcon === 'none')
32130
+ && (isError.value === false || props.stepper.errorIcon === 'none')
32131
+ && (isDone.value === false || props.stepper.doneIcon === 'none')
32136
32132
  });
32137
32133
 
32138
32134
  const icon = vue.computed(() => {
32135
+ const defaultIcon = props.step.icon || props.stepper.inactiveIcon;
32136
+
32139
32137
  if (isActive.value === true) {
32140
- return props.step.activeIcon || props.stepper.activeIcon || $q.iconSet.stepper.active
32138
+ const icon = props.step.activeIcon || props.stepper.activeIcon;
32139
+ return icon === 'none'
32140
+ ? defaultIcon
32141
+ : icon || $q.iconSet.stepper.active
32141
32142
  }
32143
+
32142
32144
  if (isError.value === true) {
32143
- return props.step.errorIcon || props.stepper.errorIcon || $q.iconSet.stepper.error
32145
+ const icon = props.step.errorIcon || props.stepper.errorIcon;
32146
+ return icon === 'none'
32147
+ ? defaultIcon
32148
+ : icon || $q.iconSet.stepper.error
32144
32149
  }
32150
+
32145
32151
  if (isDisable.value === false && isDone.value === true) {
32146
- return props.step.doneIcon || props.stepper.doneIcon || $q.iconSet.stepper.done
32152
+ const icon = props.step.doneIcon || props.stepper.doneIcon;
32153
+ return icon === 'none'
32154
+ ? defaultIcon
32155
+ : icon || $q.iconSet.stepper.done
32147
32156
  }
32148
32157
 
32149
- return props.step.icon || props.stepper.inactiveIcon
32158
+ return defaultIcon
32150
32159
  });
32151
32160
 
32152
32161
  const color = vue.computed(() => {
@@ -32173,7 +32182,9 @@
32173
32182
  const classes = vue.computed(() => {
32174
32183
  return 'q-stepper__tab col-grow flex items-center no-wrap relative-position'
32175
32184
  + (color.value !== void 0 ? ` text-${ color.value }` : '')
32176
- + (isError.value === true ? ' q-stepper__tab--error' : '')
32185
+ + (isError.value === true
32186
+ ? ' q-stepper__tab--error q-stepper__tab--error-with-' + (hasPrefix.value === true ? 'prefix' : 'icon')
32187
+ : '')
32177
32188
  + (isActive.value === true ? ' q-stepper__tab--active' : '')
32178
32189
  + (isDone.value === true ? ' q-stepper__tab--done' : '')
32179
32190
  + (headerNav.value === true ? ' q-stepper__tab--navigation q-focusable q-hoverable' : '')
@@ -32802,7 +32813,7 @@
32802
32813
  function sort (col /* String(col name) or Object(col definition) */) {
32803
32814
  let sortOrder = props.columnSortOrder;
32804
32815
 
32805
- if (col === Object(col)) {
32816
+ if (isPlainObject(col) === true) {
32806
32817
  if (col.sortOrder) {
32807
32818
  sortOrder = col.sortOrder;
32808
32819
  }
@@ -34514,12 +34525,14 @@
34514
34525
  const mask = vue.computed(() => getMask());
34515
34526
  const locale = vue.computed(() => getLocale());
34516
34527
 
34528
+ const defaultDateModel = vue.computed(() => getDefaultDateModel());
34529
+
34517
34530
  const model = __splitDate(
34518
34531
  props.modelValue,
34519
- getMask(),
34520
- getLocale(),
34532
+ mask.value, // initial mask
34533
+ locale.value, // initial locale
34521
34534
  props.calendar,
34522
- getDefaultDateModel()
34535
+ defaultDateModel.value
34523
34536
  );
34524
34537
 
34525
34538
  const view = vue.ref(getViewByModel(model));
@@ -34559,8 +34572,6 @@
34559
34572
  }
34560
34573
  });
34561
34574
 
34562
- const defaultDateModel = vue.computed(() => getDefaultDateModel());
34563
-
34564
34575
  const computedFormat24h = vue.computed(() => (
34565
34576
  props.format24h !== null
34566
34577
  ? props.format24h
@@ -36053,34 +36064,34 @@
36053
36064
 
36054
36065
  m.lazy === 'loading'
36055
36066
  ? vue.h(QSpinner, {
36056
- class: 'q-tree__spinner',
36057
- color: computedControlColor.value
36058
- })
36067
+ class: 'q-tree__spinner',
36068
+ color: computedControlColor.value
36069
+ })
36059
36070
  : (
36060
36071
  isParent === true
36061
36072
  ? vue.h(QIcon, {
36062
- class: 'q-tree__arrow'
36073
+ class: 'q-tree__arrow'
36063
36074
  + (m.expanded === true ? ' q-tree__arrow--rotate' : ''),
36064
- name: computedIcon.value,
36065
- onClick (e) { onExpandClick(node, m, e); }
36066
- })
36075
+ name: computedIcon.value,
36076
+ onClick (e) { onExpandClick(node, m, e); }
36077
+ })
36067
36078
  : null
36068
36079
  ),
36069
36080
 
36070
36081
  m.hasTicking === true && m.noTick !== true
36071
36082
  ? vue.h(QCheckbox, {
36072
- class: 'q-tree__tickbox',
36073
- modelValue: m.indeterminate === true ? null : m.ticked,
36074
- color: computedControlColor.value,
36075
- dark: isDark.value,
36076
- dense: true,
36077
- keepColor: true,
36078
- disable: m.tickable !== true,
36079
- onKeydown: stopAndPrevent,
36080
- 'onUpdate:modelValue': v => {
36081
- onTickedClick(m, v);
36082
- }
36083
- })
36083
+ class: 'q-tree__tickbox',
36084
+ modelValue: m.indeterminate === true ? null : m.ticked,
36085
+ color: computedControlColor.value,
36086
+ dark: isDark.value,
36087
+ dense: true,
36088
+ keepColor: true,
36089
+ disable: m.tickable !== true,
36090
+ onKeydown: stopAndPrevent,
36091
+ 'onUpdate:modelValue': v => {
36092
+ onTickedClick(m, v);
36093
+ }
36094
+ })
36084
36095
  : null,
36085
36096
 
36086
36097
  vue.h('div', {
@@ -36098,22 +36109,22 @@
36098
36109
 
36099
36110
  isParent === true
36100
36111
  ? vue.h(QSlideTransition, {
36101
- duration: props.duration,
36102
- onShow,
36103
- onHide
36104
- }, () => vue.withDirectives(
36112
+ duration: props.duration,
36113
+ onShow,
36114
+ onHide
36115
+ }, () => vue.withDirectives(
36116
+ vue.h('div', {
36117
+ class: 'q-tree__node-collapsible' + textColorClass.value,
36118
+ key: `${ key }__q`
36119
+ }, [
36120
+ body,
36105
36121
  vue.h('div', {
36106
- class: 'q-tree__node-collapsible' + textColorClass.value,
36107
- key: `${ key }__q`
36108
- }, [
36109
- body,
36110
- vue.h('div', {
36111
- class: 'q-tree__children'
36122
+ class: 'q-tree__children'
36112
36123
  + (m.disabled === true ? ' q-tree__node--disabled' : '')
36113
- }, children)
36114
- ]),
36115
- [ [ vue.vShow, m.expanded ] ]
36116
- ))
36124
+ }, children)
36125
+ ]),
36126
+ [ [ vue.vShow, m.expanded ] ]
36127
+ ))
36117
36128
  : body
36118
36129
  ])
36119
36130
  }
@@ -36126,14 +36137,12 @@
36126
36137
  function onClick (node, meta, e, keyboard) {
36127
36138
  keyboard !== true && blur(meta.key);
36128
36139
 
36129
- if (hasSelection.value) {
36130
- if (meta.selectable) {
36131
- if (props.noSelectionUnset === false) {
36132
- emit('update:selected', meta.key !== props.selected ? meta.key : null);
36133
- }
36134
- else if (meta.key !== props.selected) {
36135
- emit('update:selected', meta.key || null);
36136
- }
36140
+ if (hasSelection.value && meta.selectable) {
36141
+ if (props.noSelectionUnset === false) {
36142
+ emit('update:selected', meta.key !== props.selected ? meta.key : null);
36143
+ }
36144
+ else if (meta.key !== props.selected) {
36145
+ emit('update:selected', meta.key || null);
36137
36146
  }
36138
36147
  }
36139
36148
  else {
@@ -38282,7 +38291,7 @@
38282
38291
  props.progress === false
38283
38292
  ? null
38284
38293
  : (
38285
- Object(props.progress) === props.progress
38294
+ isPlainObject(props.progress) === true
38286
38295
  ? {
38287
38296
  component: props.progress.spinner || QSpinner,
38288
38297
  props: { color: props.progress.color || vmColor.value }
@@ -38311,7 +38320,7 @@
38311
38320
  });
38312
38321
 
38313
38322
  const okLabel = vue.computed(() => (
38314
- Object(props.ok) === props.ok
38323
+ isPlainObject(props.ok) === true
38315
38324
  ? $q.lang.label.ok
38316
38325
  : (
38317
38326
  props.ok === true
@@ -38321,7 +38330,7 @@
38321
38330
  ));
38322
38331
 
38323
38332
  const cancelLabel = vue.computed(() => (
38324
- Object(props.cancel) === props.cancel
38333
+ isPlainObject(props.cancel) === true
38325
38334
  ? $q.lang.label.cancel
38326
38335
  : (
38327
38336
  props.cancel === true
@@ -38347,7 +38356,7 @@
38347
38356
  label: okLabel.value,
38348
38357
  ripple: false,
38349
38358
  disable: okDisabled.value,
38350
- ...(Object(props.ok) === props.ok ? props.ok : { flat: true }),
38359
+ ...(isPlainObject(props.ok) === true ? props.ok : { flat: true }),
38351
38360
  'data-autofocus': (props.focus === 'ok' && hasForm.value !== true) || void 0,
38352
38361
  onClick: onOk
38353
38362
  }));
@@ -38356,7 +38365,7 @@
38356
38365
  color: vmColor.value,
38357
38366
  label: cancelLabel.value,
38358
38367
  ripple: false,
38359
- ...(Object(props.cancel) === props.cancel ? props.cancel : { flat: true }),
38368
+ ...(isPlainObject(props.cancel) === true ? props.cancel : { flat: true }),
38360
38369
  'data-autofocus': (props.focus === 'cancel' && hasForm.value !== true) || void 0,
38361
38370
  onClick: onCancel
38362
38371
  }));
@@ -38403,9 +38412,9 @@
38403
38412
  function getSection (classes, text) {
38404
38413
  return props.html === true
38405
38414
  ? vue.h(QCardSection, {
38406
- class: classes,
38407
- innerHTML: text
38408
- })
38415
+ class: classes,
38416
+ innerHTML: text
38417
+ })
38409
38418
  : vue.h(QCardSection, { class: classes }, () => text)
38410
38419
  }
38411
38420
 
@@ -38584,7 +38593,7 @@
38584
38593
  barRef.value.increment.apply(null, arguments);
38585
38594
  },
38586
38595
  setDefaults (opts) {
38587
- if (opts === Object(opts)) {
38596
+ if (isPlainObject(opts) === true) {
38588
38597
  Object.assign(props.value, opts);
38589
38598
  }
38590
38599
  }
@@ -38619,7 +38628,7 @@
38619
38628
  }, {
38620
38629
  show (opts) {
38621
38630
 
38622
- props = opts === Object(opts) && opts.ignoreDefaults === true
38631
+ props = isPlainObject(opts) === true && opts.ignoreDefaults === true
38623
38632
  ? { ...originalDefaults, ...opts }
38624
38633
  : { ...defaults$1, ...opts };
38625
38634
 
@@ -38720,7 +38729,7 @@
38720
38729
 
38721
38730
  setDefaults (opts) {
38722
38731
  {
38723
- opts === Object(opts) && Object.assign(defaults$1, opts);
38732
+ isPlainObject(opts) === true && Object.assign(defaults$1, opts);
38724
38733
  }
38725
38734
  },
38726
38735
 
@@ -38795,7 +38804,7 @@
38795
38804
  Object.assign(notif, defaults);
38796
38805
  }
38797
38806
 
38798
- if (Object(config) !== config) {
38807
+ if (isPlainObject(config) === false) {
38799
38808
  if (notif.type) {
38800
38809
  Object.assign(notif, notifTypes[ notif.type ]);
38801
38810
  }
@@ -39119,7 +39128,11 @@
39119
39128
  if (meta.hasMedia === true) {
39120
39129
  if (notif.spinner !== false) {
39121
39130
  mainChild.push(
39122
- vue.h(notif.spinner, { class: 'q-notification__spinner q-notification__spinner--' + meta.leftClass })
39131
+ vue.h(notif.spinner, {
39132
+ class: 'q-notification__spinner q-notification__spinner--' + meta.leftClass,
39133
+ color: notif.spinnerColor,
39134
+ size: notif.spinnerSize
39135
+ })
39123
39136
  );
39124
39137
  }
39125
39138
  else if (notif.icon) {
@@ -39127,6 +39140,8 @@
39127
39140
  vue.h(QIcon, {
39128
39141
  class: 'q-notification__icon q-notification__icon--' + meta.leftClass,
39129
39142
  name: notif.icon,
39143
+ color: notif.iconColor,
39144
+ size: notif.iconSize,
39130
39145
  role: 'img'
39131
39146
  })
39132
39147
  );
@@ -39207,12 +39222,12 @@
39207
39222
  var Notify = {
39208
39223
  setDefaults (opts) {
39209
39224
  {
39210
- opts === Object(opts) && Object.assign(defaults, opts);
39225
+ isPlainObject(opts) === true && Object.assign(defaults, opts);
39211
39226
  }
39212
39227
  },
39213
39228
 
39214
39229
  registerType (typeName, typeOpts) {
39215
- if (typeOpts === Object(typeOpts)) {
39230
+ if (isPlainObject(typeOpts) === true) {
39216
39231
  notifTypes[ typeName ] = typeOpts;
39217
39232
  }
39218
39233
  },
@@ -39246,10 +39261,10 @@
39246
39261
  };
39247
39262
 
39248
39263
  function encode (value) {
39249
- if (Object.prototype.toString.call(value) === '[object Date]') {
39264
+ if (isDate(value) === true) {
39250
39265
  return '__q_date|' + value.toUTCString()
39251
39266
  }
39252
- if (Object.prototype.toString.call(value) === '[object RegExp]') {
39267
+ if (isRegexp(value) === true) {
39253
39268
  return '__q_expr|' + value.source
39254
39269
  }
39255
39270
  if (typeof value === 'number') {
@@ -39516,7 +39531,7 @@
39516
39531
  });
39517
39532
 
39518
39533
  var index_umd = {
39519
- version: '2.5.1',
39534
+ version: '2.5.5',
39520
39535
  install (app, opts) {
39521
39536
  installQuasar(app, {
39522
39537
  components,