quasar 2.5.4 → 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 (147) 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/QForm.json +4 -1
  13. package/dist/api/QIcon.json +4 -2
  14. package/dist/api/QPagination.json +4 -4
  15. package/dist/api/QRouteTab.json +1 -1
  16. package/dist/api/QSelect.json +1 -1
  17. package/dist/api/QStep.json +4 -4
  18. package/dist/api/QStepper.json +4 -4
  19. package/dist/api/QTab.json +1 -1
  20. package/dist/api/QTimelineEntry.json +1 -1
  21. package/dist/api/QToggle.json +1 -1
  22. package/dist/api/QTree.json +1 -1
  23. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  24. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  25. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  26. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  27. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  28. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  29. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  30. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  31. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  32. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  33. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  34. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  35. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  36. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  47. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  48. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  49. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  50. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  51. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  52. package/dist/icon-set/themify.umd.prod.js +1 -1
  53. package/dist/lang/ar.umd.prod.js +1 -1
  54. package/dist/lang/az-Latn.umd.prod.js +1 -1
  55. package/dist/lang/bg.umd.prod.js +1 -1
  56. package/dist/lang/bn.umd.prod.js +1 -1
  57. package/dist/lang/ca.umd.prod.js +1 -1
  58. package/dist/lang/cs.umd.prod.js +1 -1
  59. package/dist/lang/da.umd.prod.js +1 -1
  60. package/dist/lang/de.umd.prod.js +1 -1
  61. package/dist/lang/el.umd.prod.js +1 -1
  62. package/dist/lang/en-GB.umd.prod.js +1 -1
  63. package/dist/lang/en-US.umd.prod.js +1 -1
  64. package/dist/lang/eo.umd.prod.js +1 -1
  65. package/dist/lang/es.umd.prod.js +1 -1
  66. package/dist/lang/et.umd.prod.js +1 -1
  67. package/dist/lang/fa-IR.umd.prod.js +1 -1
  68. package/dist/lang/fa.umd.prod.js +1 -1
  69. package/dist/lang/fi.umd.prod.js +1 -1
  70. package/dist/lang/fr.umd.prod.js +1 -1
  71. package/dist/lang/gn.umd.prod.js +1 -1
  72. package/dist/lang/he.umd.prod.js +1 -1
  73. package/dist/lang/hr.umd.prod.js +1 -1
  74. package/dist/lang/hu.umd.prod.js +1 -1
  75. package/dist/lang/id.umd.prod.js +1 -1
  76. package/dist/lang/is.umd.prod.js +1 -1
  77. package/dist/lang/it.umd.prod.js +1 -1
  78. package/dist/lang/ja.umd.prod.js +1 -1
  79. package/dist/lang/km.umd.prod.js +1 -1
  80. package/dist/lang/ko-KR.umd.prod.js +1 -1
  81. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  82. package/dist/lang/lt.umd.prod.js +1 -1
  83. package/dist/lang/lu.umd.prod.js +1 -1
  84. package/dist/lang/lv.umd.prod.js +1 -1
  85. package/dist/lang/ml.umd.prod.js +1 -1
  86. package/dist/lang/ms.umd.prod.js +1 -1
  87. package/dist/lang/my.umd.prod.js +1 -1
  88. package/dist/lang/nb-NO.umd.prod.js +1 -1
  89. package/dist/lang/nl.umd.prod.js +1 -1
  90. package/dist/lang/pl.umd.prod.js +1 -1
  91. package/dist/lang/pt-BR.umd.prod.js +1 -1
  92. package/dist/lang/pt.umd.prod.js +1 -1
  93. package/dist/lang/ro.umd.prod.js +1 -1
  94. package/dist/lang/ru.umd.prod.js +1 -1
  95. package/dist/lang/sk.umd.prod.js +1 -1
  96. package/dist/lang/sl.umd.prod.js +1 -1
  97. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  98. package/dist/lang/sr.umd.prod.js +1 -1
  99. package/dist/lang/sv.umd.prod.js +1 -1
  100. package/dist/lang/ta.umd.prod.js +1 -1
  101. package/dist/lang/th.umd.prod.js +1 -1
  102. package/dist/lang/tr.umd.prod.js +1 -1
  103. package/dist/lang/ug.umd.prod.js +1 -1
  104. package/dist/lang/uk.umd.prod.js +1 -1
  105. package/dist/lang/vi.umd.prod.js +1 -1
  106. package/dist/lang/zh-CN.umd.prod.js +1 -1
  107. package/dist/lang/zh-TW.umd.prod.js +1 -1
  108. package/dist/quasar.cjs.prod.js +2 -2
  109. package/dist/quasar.css +2 -2
  110. package/dist/quasar.esm.prod.js +2 -2
  111. package/dist/quasar.prod.css +1 -1
  112. package/dist/quasar.rtl.css +2 -2
  113. package/dist/quasar.rtl.prod.css +1 -1
  114. package/dist/quasar.sass +2 -1
  115. package/dist/quasar.umd.js +252 -248
  116. package/dist/quasar.umd.prod.js +2 -2
  117. package/dist/ssr-directives/Morph.js +1 -1
  118. package/dist/types/index.d.ts +143 -47
  119. package/dist/vetur/quasar-attributes.json +38 -38
  120. package/dist/web-types/web-types.json +40 -40
  121. package/package.json +1 -1
  122. package/src/api.extends.json +1 -1
  123. package/src/components/date/QDate.js +20 -19
  124. package/src/components/date/use-datetime.js +3 -1
  125. package/src/components/dialog-plugin/DialogPlugin.js +9 -8
  126. package/src/components/form/QForm.json +3 -2
  127. package/src/components/icon/QIcon.js +4 -1
  128. package/src/components/icon/QIcon.json +1 -3
  129. package/src/components/select/QSelect.js +2 -2
  130. package/src/components/slide-transition/QSlideTransition.js +4 -4
  131. package/src/components/slider/use-slider.js +4 -4
  132. package/src/components/stepper/QStep.json +3 -0
  133. package/src/components/stepper/QStepper.json +3 -0
  134. package/src/components/stepper/QStepper.sass +1 -0
  135. package/src/components/stepper/StepHeader.js +23 -8
  136. package/src/components/table/table-sort.js +2 -2
  137. package/src/components/time/QTime.js +5 -5
  138. package/src/install-quasar.js +37 -36
  139. package/src/plugins/Loading.js +3 -2
  140. package/src/plugins/LoadingBar.js +2 -1
  141. package/src/plugins/Notify.js +11 -4
  142. package/src/plugins/Notify.json +102 -2
  143. package/src/utils/create-uploader-component.js +2 -1
  144. package/src/utils/extend.js +6 -34
  145. package/src/utils/morph.js +19 -17
  146. package/src/utils/private/is.js +2 -15
  147. package/src/utils/private/web-storage.js +3 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.5.4
2
+ * Quasar Framework v2.5.5
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1401,6 +1401,144 @@
1401
1401
  globalConfigIsFrozen = true;
1402
1402
  }
1403
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
+
1404
1542
  const autoInstalledPlugins = [
1405
1543
  Platform,
1406
1544
  Body,
@@ -1436,13 +1574,13 @@
1436
1574
  installPlugins(pluginOpts, autoInstalledPlugins);
1437
1575
 
1438
1576
  uiOpts.components !== void 0 && Object.values(uiOpts.components).forEach(c => {
1439
- if (Object(c) === c && c.name !== void 0) {
1577
+ if (isPlainObject(c) === true && c.name !== void 0) {
1440
1578
  app.component(c.name, c);
1441
1579
  }
1442
1580
  });
1443
1581
 
1444
1582
  uiOpts.directives !== void 0 && Object.values(uiOpts.directives).forEach(d => {
1445
- if (Object(d) === d && d.name !== void 0) {
1583
+ if (isPlainObject(d) === true && d.name !== void 0) {
1446
1584
  app.directive(d.name, d);
1447
1585
  }
1448
1586
  });
@@ -1463,7 +1601,7 @@
1463
1601
  }
1464
1602
 
1465
1603
  var installQuasar = function (parentApp, opts = {}) {
1466
- const $q = { version: '2.5.4' };
1604
+ const $q = { version: '2.5.5' };
1467
1605
 
1468
1606
  if (globalConfigIsFrozen === false) {
1469
1607
  if (opts.config !== void 0) {
@@ -1959,7 +2097,7 @@
1959
2097
  let cls;
1960
2098
  let icon = props.name;
1961
2099
 
1962
- if (!icon) {
2100
+ if (icon === 'none' || !icon) {
1963
2101
  return { none: true }
1964
2102
  }
1965
2103
 
@@ -1968,6 +2106,9 @@
1968
2106
  if (res !== void 0) {
1969
2107
  if (res.icon !== void 0) {
1970
2108
  icon = res.icon;
2109
+ if (icon === 'none' || !icon) {
2110
+ return { none: true }
2111
+ }
1971
2112
  }
1972
2113
  else {
1973
2114
  return {
@@ -6519,136 +6660,6 @@
6519
6660
  }
6520
6661
  }
6521
6662
 
6522
- const
6523
- hasMap = typeof Map === 'function',
6524
- hasSet = typeof Set === 'function',
6525
- hasArrayBuffer = typeof ArrayBuffer === 'function';
6526
-
6527
- function isDeepEqual (a, b) {
6528
- if (a === b) {
6529
- return true
6530
- }
6531
-
6532
- if (a !== null && b !== null && typeof a === 'object' && typeof b === 'object') {
6533
- if (a.constructor !== b.constructor) {
6534
- return false
6535
- }
6536
-
6537
- let length, i;
6538
-
6539
- if (a.constructor === Array) {
6540
- length = a.length;
6541
-
6542
- if (length !== b.length) {
6543
- return false
6544
- }
6545
-
6546
- for (i = length; i-- !== 0;) {
6547
- if (isDeepEqual(a[ i ], b[ i ]) !== true) {
6548
- return false
6549
- }
6550
- }
6551
-
6552
- return true
6553
- }
6554
-
6555
- if (hasMap === true && a.constructor === Map) {
6556
- if (a.size !== b.size) {
6557
- return false
6558
- }
6559
-
6560
- i = a.entries().next();
6561
- while (i.done !== true) {
6562
- if (b.has(i.value[ 0 ]) !== true) {
6563
- return false
6564
- }
6565
- i = i.next();
6566
- }
6567
-
6568
- i = a.entries().next();
6569
- while (i.done !== true) {
6570
- if (isDeepEqual(i.value[ 1 ], b.get(i.value[ 0 ])) !== true) {
6571
- return false
6572
- }
6573
- i = i.next();
6574
- }
6575
-
6576
- return true
6577
- }
6578
-
6579
- if (hasSet === true && a.constructor === Set) {
6580
- if (a.size !== b.size) {
6581
- return false
6582
- }
6583
-
6584
- i = a.entries().next();
6585
- while (i.done !== true) {
6586
- if (b.has(i.value[ 0 ]) !== true) {
6587
- return false
6588
- }
6589
- i = i.next();
6590
- }
6591
-
6592
- return true
6593
- }
6594
-
6595
- if (hasArrayBuffer === true && a.buffer != null && a.buffer.constructor === ArrayBuffer) {
6596
- length = a.length;
6597
-
6598
- if (length !== b.length) {
6599
- return false
6600
- }
6601
-
6602
- for (i = length; i-- !== 0;) {
6603
- if (a[ i ] !== b[ i ]) {
6604
- return false
6605
- }
6606
- }
6607
-
6608
- return true
6609
- }
6610
-
6611
- if (a.constructor === RegExp) {
6612
- return a.source === b.source && a.flags === b.flags
6613
- }
6614
-
6615
- if (a.valueOf !== Object.prototype.valueOf) {
6616
- return a.valueOf() === b.valueOf()
6617
- }
6618
-
6619
- if (a.toString !== Object.prototype.toString) {
6620
- return a.toString() === b.toString()
6621
- }
6622
-
6623
- const keys = Object.keys(a).filter(key => a[ key ] !== void 0);
6624
- length = keys.length;
6625
-
6626
- if (length !== Object.keys(b).filter(key => b[ key ] !== void 0).length) {
6627
- return false
6628
- }
6629
-
6630
- for (i = length; i-- !== 0;) {
6631
- const key = keys[ i ];
6632
- if (isDeepEqual(a[ key ], b[ key ]) !== true) {
6633
- return false
6634
- }
6635
- }
6636
-
6637
- return true
6638
- }
6639
-
6640
- // true if both NaN, false otherwise
6641
- return a !== a && b !== b // eslint-disable-line no-self-compare
6642
- }
6643
-
6644
- function isDate (v) {
6645
- return Object.prototype.toString.call(v) === '[object Date]'
6646
- }
6647
-
6648
- function isNumber (v) {
6649
- return typeof v === 'number' && isFinite(v)
6650
- }
6651
-
6652
6663
  const navigationPositionOptions = [ 'top', 'right', 'bottom', 'left' ];
6653
6664
  const controlTypeOptions = [ 'regular', 'flat', 'outline', 'push', 'unelevated' ];
6654
6665
 
@@ -8564,7 +8575,7 @@
8564
8575
  if (typeof def === 'function') {
8565
8576
  return markerTicks.value.map(value => {
8566
8577
  const item = def(value);
8567
- return Object(item) === item ? { ...item, value } : { value, label: item }
8578
+ return isPlainObject(item) === true ? { ...item, value } : { value, label: item }
8568
8579
  })
8569
8580
  }
8570
8581
 
@@ -8572,14 +8583,14 @@
8572
8583
 
8573
8584
  if (Array.isArray(def) === true) {
8574
8585
  return def
8575
- .map(item => (Object(item) === item ? item : { value: item }))
8586
+ .map(item => (isPlainObject(item) === true ? item : { value: item }))
8576
8587
  .filter(filterFn)
8577
8588
  }
8578
8589
 
8579
8590
  return Object.keys(def).map(key => {
8580
8591
  const item = def[ key ];
8581
8592
  const value = Number(key);
8582
- return Object(item) === item ? { ...item, value } : { value, label: item }
8593
+ return isPlainObject(item) === true ? { ...item, value } : { value, label: item }
8583
8594
  }).filter(filterFn)
8584
8595
  }
8585
8596
 
@@ -11578,7 +11589,9 @@
11578
11589
  });
11579
11590
 
11580
11591
  function getLocale () {
11581
- return props.locale || $q.lang.date
11592
+ return props.locale !== void 0
11593
+ ? { ...$q.lang.date, ...props.locale }
11594
+ : $q.lang.date
11582
11595
  }
11583
11596
 
11584
11597
  function getCurrentDate (dateOnly) {
@@ -12770,7 +12783,7 @@
12770
12783
  const rangeModel = vue.computed(() => {
12771
12784
  const fn = date => decodeString(date, innerMask.value, innerLocale.value);
12772
12785
  return normalizedModel.value
12773
- .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)
12774
12787
  .map(range => ({ from: fn(range.from), to: fn(range.to) }))
12775
12788
  .filter(range => range.from.dateHash !== null && range.to.dateHash !== null && range.from.dateHash < range.to.dateHash)
12776
12789
  });
@@ -13823,24 +13836,24 @@
13823
13836
  }, days.value.map(day => vue.h('div', { class: day.classes }, [
13824
13837
  day.in === true
13825
13838
  ? vue.h(
13826
- QBtn, {
13827
- class: day.today === true ? 'q-date__today' : '',
13828
- dense: true,
13829
- flat: day.flat,
13830
- unelevated: day.unelevated,
13831
- color: day.color,
13832
- textColor: day.textColor,
13833
- label: day.i,
13834
- tabindex: tabindex.value,
13835
- ...getCache('day#' + day.i, {
13836
- onClick: () => { onDayClick(day.i); },
13837
- onMouseover: () => { onDayMouseover(day.i); }
13838
- })
13839
- },
13840
- day.event !== false
13841
- ? () => vue.h('div', { class: 'q-date__event bg-' + day.event })
13842
- : null
13843
- )
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
+ )
13844
13857
  : vue.h('div', '' + day.i)
13845
13858
  ]))))
13846
13859
  ])
@@ -16523,36 +16536,6 @@
16523
16536
  return acc
16524
16537
  }
16525
16538
 
16526
- const
16527
- toString = Object.prototype.toString,
16528
- hasOwn = Object.prototype.hasOwnProperty,
16529
- class2type = {};
16530
-
16531
- 'Boolean Number String Function Array Date RegExp Object'.split(' ').forEach(name => {
16532
- class2type[ '[object ' + name + ']' ] = name.toLowerCase();
16533
- });
16534
-
16535
- function type (obj) {
16536
- return obj === null ? String(obj) : class2type[ toString.call(obj) ] || 'object'
16537
- }
16538
-
16539
- function isPlainObject (obj) {
16540
- if (!obj || type(obj) !== 'object') {
16541
- return false
16542
- }
16543
-
16544
- if (obj.constructor
16545
- && !hasOwn.call(obj, 'constructor')
16546
- && !hasOwn.call(obj.constructor.prototype, 'isPrototypeOf')) {
16547
- return false
16548
- }
16549
-
16550
- let key;
16551
- for (key in obj) {} // eslint-disable-line
16552
-
16553
- return key === undefined || hasOwn.call(obj, key)
16554
- }
16555
-
16556
16539
  function extend () {
16557
16540
  let
16558
16541
  options, name, src, copy, copyIsArray, clone,
@@ -16567,7 +16550,7 @@
16567
16550
  i = 2;
16568
16551
  }
16569
16552
 
16570
- if (Object(target) !== target && type(target) !== 'function') {
16553
+ if (Object(target) !== target && typeof target !== 'function') {
16571
16554
  target = {};
16572
16555
  }
16573
16556
 
@@ -16586,18 +16569,18 @@
16586
16569
  continue
16587
16570
  }
16588
16571
 
16589
- if (deep && copy && (isPlainObject(copy) || (copyIsArray = type(copy) === 'array'))) {
16572
+ if (deep && copy && (isPlainObject(copy) === true || (copyIsArray = Array.isArray(copy) === true))) {
16590
16573
  if (copyIsArray) {
16591
16574
  copyIsArray = false;
16592
- clone = src && type(src) === 'array' ? src : [];
16575
+ clone = src && Array.isArray(src) === true ? src : [];
16593
16576
  }
16594
16577
  else {
16595
- clone = src && isPlainObject(src) ? src : {};
16578
+ clone = src && isPlainObject(src) === true ? src : {};
16596
16579
  }
16597
16580
 
16598
16581
  target[ name ] = extend(deep, clone, copy);
16599
16582
  }
16600
- else if (copy !== undefined) {
16583
+ else if (copy !== void 0) {
16601
16584
  target[ name ] = copy;
16602
16585
  }
16603
16586
  }
@@ -17233,8 +17216,8 @@
17233
17216
 
17234
17217
  timer = setTimeout(() => {
17235
17218
  el.style.height = `${ el.scrollHeight }px`;
17236
- animListener = ev => {
17237
- if (Object(ev) !== ev || ev.target === el) {
17219
+ animListener = evt => {
17220
+ if (Object(evt) !== evt || evt.target === el) {
17238
17221
  end(el, 'show');
17239
17222
  }
17240
17223
  };
@@ -17259,8 +17242,8 @@
17259
17242
 
17260
17243
  timer = setTimeout(() => {
17261
17244
  el.style.height = 0;
17262
- animListener = ev => {
17263
- if (Object(ev) !== ev || ev.target === el) {
17245
+ animListener = evt => {
17246
+ if (Object(evt) !== evt || evt.target === el) {
17264
17247
  end(el, 'hide');
17265
17248
  }
17266
17249
  };
@@ -19132,7 +19115,7 @@
19132
19115
  ...props
19133
19116
  },
19134
19117
 
19135
- emits: Object(emits) === emits
19118
+ emits: isPlainObject(emits) === true
19136
19119
  ? { ...coreEmitsObject, ...emits }
19137
19120
  : [ ...coreEmits, ...emits ],
19138
19121
 
@@ -19686,7 +19669,7 @@
19686
19669
  if (typeof options.style === 'string') {
19687
19670
  elTo.style.cssText += ' ' + options.style;
19688
19671
  }
19689
- else if (options.style === Object(options.style)) {
19672
+ else if (isPlainObject(options.style) === true) {
19690
19673
  for (const prop in options.style) {
19691
19674
  elTo.style[ prop ] = options.style[ prop ];
19692
19675
  }
@@ -20123,8 +20106,8 @@
20123
20106
  elToClone.style.animation = `${ options.duration }ms ${ options.easing } ${ options.delay }ms ${ animationDirection } ${ options.fill } ${ qAnimId }-to`;
20124
20107
  elTo.style.animation = `${ options.duration }ms ${ options.easing } ${ options.delay }ms ${ animationDirection } ${ options.fill } ${ qAnimId }`;
20125
20108
 
20126
- const cleanup = ev => {
20127
- if (ev === Object(ev) && ev.animationName !== qAnimId) {
20109
+ const cleanup = evt => {
20110
+ if (evt === Object(evt) && evt.animationName !== qAnimId) {
20128
20111
  return
20129
20112
  }
20130
20113
 
@@ -20187,24 +20170,24 @@
20187
20170
  : (
20188
20171
  options.waitFor === 'transitionend'
20189
20172
  ? new Promise(resolve => {
20190
- const timer = setTimeout(() => {
20191
- endFn();
20192
- }, 400);
20173
+ const timer = setTimeout(() => {
20174
+ endFn();
20175
+ }, 400);
20193
20176
 
20194
- const endFn = ev => {
20195
- clearTimeout(timer);
20177
+ const endFn = ev => {
20178
+ clearTimeout(timer);
20196
20179
 
20197
- if (elTo) {
20198
- elTo.removeEventListener('transitionend', endFn);
20199
- elTo.removeEventListener('transitioncancel', endFn);
20200
- }
20180
+ if (elTo) {
20181
+ elTo.removeEventListener('transitionend', endFn);
20182
+ elTo.removeEventListener('transitioncancel', endFn);
20183
+ }
20201
20184
 
20202
- resolve();
20203
- };
20185
+ resolve();
20186
+ };
20204
20187
 
20205
- elTo.addEventListener('transitionend', endFn);
20206
- elTo.addEventListener('transitioncancel', endFn);
20207
- })
20188
+ elTo.addEventListener('transitionend', endFn);
20189
+ elTo.addEventListener('transitioncancel', endFn);
20190
+ })
20208
20191
  : options.waitFor
20209
20192
  );
20210
20193
 
@@ -28724,7 +28707,7 @@
28724
28707
 
28725
28708
  return typeof val === 'function'
28726
28709
  ? val
28727
- : opt => (Object(opt) === opt && val in opt ? opt[ val ] : opt)
28710
+ : opt => (isPlainObject(opt) === true && val in opt ? opt[ val ] : opt)
28728
28711
  }
28729
28712
 
28730
28713
  function isOptionSelected (opt) {
@@ -32143,23 +32126,36 @@
32143
32126
 
32144
32127
  const hasPrefix = vue.computed(() => {
32145
32128
  return props.step.prefix
32146
- && isActive.value === false
32147
- && isError.value === false
32148
- && 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')
32149
32132
  });
32150
32133
 
32151
32134
  const icon = vue.computed(() => {
32135
+ const defaultIcon = props.step.icon || props.stepper.inactiveIcon;
32136
+
32152
32137
  if (isActive.value === true) {
32153
- 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
32154
32142
  }
32143
+
32155
32144
  if (isError.value === true) {
32156
- 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
32157
32149
  }
32150
+
32158
32151
  if (isDisable.value === false && isDone.value === true) {
32159
- 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
32160
32156
  }
32161
32157
 
32162
- return props.step.icon || props.stepper.inactiveIcon
32158
+ return defaultIcon
32163
32159
  });
32164
32160
 
32165
32161
  const color = vue.computed(() => {
@@ -32186,7 +32182,9 @@
32186
32182
  const classes = vue.computed(() => {
32187
32183
  return 'q-stepper__tab col-grow flex items-center no-wrap relative-position'
32188
32184
  + (color.value !== void 0 ? ` text-${ color.value }` : '')
32189
- + (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
+ : '')
32190
32188
  + (isActive.value === true ? ' q-stepper__tab--active' : '')
32191
32189
  + (isDone.value === true ? ' q-stepper__tab--done' : '')
32192
32190
  + (headerNav.value === true ? ' q-stepper__tab--navigation q-focusable q-hoverable' : '')
@@ -32815,7 +32813,7 @@
32815
32813
  function sort (col /* String(col name) or Object(col definition) */) {
32816
32814
  let sortOrder = props.columnSortOrder;
32817
32815
 
32818
- if (col === Object(col)) {
32816
+ if (isPlainObject(col) === true) {
32819
32817
  if (col.sortOrder) {
32820
32818
  sortOrder = col.sortOrder;
32821
32819
  }
@@ -34527,12 +34525,14 @@
34527
34525
  const mask = vue.computed(() => getMask());
34528
34526
  const locale = vue.computed(() => getLocale());
34529
34527
 
34528
+ const defaultDateModel = vue.computed(() => getDefaultDateModel());
34529
+
34530
34530
  const model = __splitDate(
34531
34531
  props.modelValue,
34532
- getMask(),
34533
- getLocale(),
34532
+ mask.value, // initial mask
34533
+ locale.value, // initial locale
34534
34534
  props.calendar,
34535
- getDefaultDateModel()
34535
+ defaultDateModel.value
34536
34536
  );
34537
34537
 
34538
34538
  const view = vue.ref(getViewByModel(model));
@@ -34572,8 +34572,6 @@
34572
34572
  }
34573
34573
  });
34574
34574
 
34575
- const defaultDateModel = vue.computed(() => getDefaultDateModel());
34576
-
34577
34575
  const computedFormat24h = vue.computed(() => (
34578
34576
  props.format24h !== null
34579
34577
  ? props.format24h
@@ -38293,7 +38291,7 @@
38293
38291
  props.progress === false
38294
38292
  ? null
38295
38293
  : (
38296
- Object(props.progress) === props.progress
38294
+ isPlainObject(props.progress) === true
38297
38295
  ? {
38298
38296
  component: props.progress.spinner || QSpinner,
38299
38297
  props: { color: props.progress.color || vmColor.value }
@@ -38322,7 +38320,7 @@
38322
38320
  });
38323
38321
 
38324
38322
  const okLabel = vue.computed(() => (
38325
- Object(props.ok) === props.ok
38323
+ isPlainObject(props.ok) === true
38326
38324
  ? $q.lang.label.ok
38327
38325
  : (
38328
38326
  props.ok === true
@@ -38332,7 +38330,7 @@
38332
38330
  ));
38333
38331
 
38334
38332
  const cancelLabel = vue.computed(() => (
38335
- Object(props.cancel) === props.cancel
38333
+ isPlainObject(props.cancel) === true
38336
38334
  ? $q.lang.label.cancel
38337
38335
  : (
38338
38336
  props.cancel === true
@@ -38358,7 +38356,7 @@
38358
38356
  label: okLabel.value,
38359
38357
  ripple: false,
38360
38358
  disable: okDisabled.value,
38361
- ...(Object(props.ok) === props.ok ? props.ok : { flat: true }),
38359
+ ...(isPlainObject(props.ok) === true ? props.ok : { flat: true }),
38362
38360
  'data-autofocus': (props.focus === 'ok' && hasForm.value !== true) || void 0,
38363
38361
  onClick: onOk
38364
38362
  }));
@@ -38367,7 +38365,7 @@
38367
38365
  color: vmColor.value,
38368
38366
  label: cancelLabel.value,
38369
38367
  ripple: false,
38370
- ...(Object(props.cancel) === props.cancel ? props.cancel : { flat: true }),
38368
+ ...(isPlainObject(props.cancel) === true ? props.cancel : { flat: true }),
38371
38369
  'data-autofocus': (props.focus === 'cancel' && hasForm.value !== true) || void 0,
38372
38370
  onClick: onCancel
38373
38371
  }));
@@ -38414,9 +38412,9 @@
38414
38412
  function getSection (classes, text) {
38415
38413
  return props.html === true
38416
38414
  ? vue.h(QCardSection, {
38417
- class: classes,
38418
- innerHTML: text
38419
- })
38415
+ class: classes,
38416
+ innerHTML: text
38417
+ })
38420
38418
  : vue.h(QCardSection, { class: classes }, () => text)
38421
38419
  }
38422
38420
 
@@ -38595,7 +38593,7 @@
38595
38593
  barRef.value.increment.apply(null, arguments);
38596
38594
  },
38597
38595
  setDefaults (opts) {
38598
- if (opts === Object(opts)) {
38596
+ if (isPlainObject(opts) === true) {
38599
38597
  Object.assign(props.value, opts);
38600
38598
  }
38601
38599
  }
@@ -38630,7 +38628,7 @@
38630
38628
  }, {
38631
38629
  show (opts) {
38632
38630
 
38633
- props = opts === Object(opts) && opts.ignoreDefaults === true
38631
+ props = isPlainObject(opts) === true && opts.ignoreDefaults === true
38634
38632
  ? { ...originalDefaults, ...opts }
38635
38633
  : { ...defaults$1, ...opts };
38636
38634
 
@@ -38731,7 +38729,7 @@
38731
38729
 
38732
38730
  setDefaults (opts) {
38733
38731
  {
38734
- opts === Object(opts) && Object.assign(defaults$1, opts);
38732
+ isPlainObject(opts) === true && Object.assign(defaults$1, opts);
38735
38733
  }
38736
38734
  },
38737
38735
 
@@ -38806,7 +38804,7 @@
38806
38804
  Object.assign(notif, defaults);
38807
38805
  }
38808
38806
 
38809
- if (Object(config) !== config) {
38807
+ if (isPlainObject(config) === false) {
38810
38808
  if (notif.type) {
38811
38809
  Object.assign(notif, notifTypes[ notif.type ]);
38812
38810
  }
@@ -39130,7 +39128,11 @@
39130
39128
  if (meta.hasMedia === true) {
39131
39129
  if (notif.spinner !== false) {
39132
39130
  mainChild.push(
39133
- 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
+ })
39134
39136
  );
39135
39137
  }
39136
39138
  else if (notif.icon) {
@@ -39138,6 +39140,8 @@
39138
39140
  vue.h(QIcon, {
39139
39141
  class: 'q-notification__icon q-notification__icon--' + meta.leftClass,
39140
39142
  name: notif.icon,
39143
+ color: notif.iconColor,
39144
+ size: notif.iconSize,
39141
39145
  role: 'img'
39142
39146
  })
39143
39147
  );
@@ -39218,12 +39222,12 @@
39218
39222
  var Notify = {
39219
39223
  setDefaults (opts) {
39220
39224
  {
39221
- opts === Object(opts) && Object.assign(defaults, opts);
39225
+ isPlainObject(opts) === true && Object.assign(defaults, opts);
39222
39226
  }
39223
39227
  },
39224
39228
 
39225
39229
  registerType (typeName, typeOpts) {
39226
- if (typeOpts === Object(typeOpts)) {
39230
+ if (isPlainObject(typeOpts) === true) {
39227
39231
  notifTypes[ typeName ] = typeOpts;
39228
39232
  }
39229
39233
  },
@@ -39257,10 +39261,10 @@
39257
39261
  };
39258
39262
 
39259
39263
  function encode (value) {
39260
- if (Object.prototype.toString.call(value) === '[object Date]') {
39264
+ if (isDate(value) === true) {
39261
39265
  return '__q_date|' + value.toUTCString()
39262
39266
  }
39263
- if (Object.prototype.toString.call(value) === '[object RegExp]') {
39267
+ if (isRegexp(value) === true) {
39264
39268
  return '__q_expr|' + value.source
39265
39269
  }
39266
39270
  if (typeof value === 'number') {
@@ -39527,7 +39531,7 @@
39527
39531
  });
39528
39532
 
39529
39533
  var index_umd = {
39530
- version: '2.5.4',
39534
+ version: '2.5.5',
39531
39535
  install (app, opts) {
39532
39536
  installQuasar(app, {
39533
39537
  components,