quasar 2.13.1 → 2.14.1

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 (135) hide show
  1. package/dist/api/QImg.json +3 -3
  2. package/dist/api/QTime.json +8 -1
  3. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  4. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  5. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  6. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  9. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  10. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  11. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  12. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  15. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  16. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  17. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  18. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  19. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  20. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  21. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +2 -2
  24. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
  36. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
  37. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
  38. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-mdi-v7.umd.prod.js +2 -2
  40. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  41. package/dist/icon-set/themify.umd.prod.js +1 -1
  42. package/dist/lang/ar-TN.umd.prod.js +1 -1
  43. package/dist/lang/ar.umd.prod.js +1 -1
  44. package/dist/lang/az-Latn.umd.prod.js +1 -1
  45. package/dist/lang/bg.umd.prod.js +1 -1
  46. package/dist/lang/bn.umd.prod.js +1 -1
  47. package/dist/lang/ca.umd.prod.js +1 -1
  48. package/dist/lang/cs.umd.prod.js +1 -1
  49. package/dist/lang/da.umd.prod.js +1 -1
  50. package/dist/lang/de-CH.umd.prod.js +1 -1
  51. package/dist/lang/de-DE.umd.prod.js +1 -1
  52. package/dist/lang/de.umd.prod.js +1 -1
  53. package/dist/lang/el.umd.prod.js +1 -1
  54. package/dist/lang/en-GB.umd.prod.js +1 -1
  55. package/dist/lang/en-US.umd.prod.js +1 -1
  56. package/dist/lang/eo.umd.prod.js +1 -1
  57. package/dist/lang/es.umd.prod.js +1 -1
  58. package/dist/lang/et.umd.prod.js +1 -1
  59. package/dist/lang/eu.umd.prod.js +1 -1
  60. package/dist/lang/fa-IR.umd.prod.js +1 -1
  61. package/dist/lang/fa.umd.prod.js +1 -1
  62. package/dist/lang/fi.umd.prod.js +1 -1
  63. package/dist/lang/fr.umd.prod.js +1 -1
  64. package/dist/lang/gn.umd.prod.js +1 -1
  65. package/dist/lang/he.umd.prod.js +1 -1
  66. package/dist/lang/hi.umd.prod.js +1 -1
  67. package/dist/lang/hr.umd.prod.js +1 -1
  68. package/dist/lang/hu.umd.prod.js +1 -1
  69. package/dist/lang/id.umd.prod.js +1 -1
  70. package/dist/lang/is.umd.prod.js +1 -1
  71. package/dist/lang/it.umd.prod.js +1 -1
  72. package/dist/lang/ja.umd.prod.js +1 -1
  73. package/dist/lang/kk.umd.prod.js +1 -1
  74. package/dist/lang/km.umd.prod.js +1 -1
  75. package/dist/lang/ko-KR.umd.prod.js +1 -1
  76. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  77. package/dist/lang/lt.umd.prod.js +1 -1
  78. package/dist/lang/lu.umd.prod.js +1 -1
  79. package/dist/lang/lv.umd.prod.js +1 -1
  80. package/dist/lang/mk.umd.prod.js +1 -1
  81. package/dist/lang/ml.umd.prod.js +1 -1
  82. package/dist/lang/mm.umd.prod.js +1 -1
  83. package/dist/lang/ms.umd.prod.js +2 -2
  84. package/dist/lang/my.umd.prod.js +1 -1
  85. package/dist/lang/nb-NO.umd.prod.js +1 -1
  86. package/dist/lang/nl.umd.prod.js +1 -1
  87. package/dist/lang/pl.umd.prod.js +1 -1
  88. package/dist/lang/pt-BR.umd.prod.js +1 -1
  89. package/dist/lang/pt.umd.prod.js +1 -1
  90. package/dist/lang/ro.umd.prod.js +1 -1
  91. package/dist/lang/ru.umd.prod.js +1 -1
  92. package/dist/lang/sk.umd.prod.js +1 -1
  93. package/dist/lang/sl.umd.prod.js +1 -1
  94. package/dist/lang/sm.umd.prod.js +1 -1
  95. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  96. package/dist/lang/sr.umd.prod.js +1 -1
  97. package/dist/lang/sv.umd.prod.js +1 -1
  98. package/dist/lang/ta.umd.prod.js +1 -1
  99. package/dist/lang/th.umd.prod.js +1 -1
  100. package/dist/lang/tr.umd.prod.js +1 -1
  101. package/dist/lang/ug.umd.prod.js +1 -1
  102. package/dist/lang/uk.umd.prod.js +1 -1
  103. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  104. package/dist/lang/uz-Latn.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.addon.css +0 -940
  109. package/dist/quasar.addon.prod.css +1 -1
  110. package/dist/quasar.addon.rtl.prod.css +1 -1
  111. package/dist/quasar.cjs.prod.js +2 -2
  112. package/dist/quasar.css +3 -138
  113. package/dist/quasar.esm.js +33 -17
  114. package/dist/quasar.esm.prod.js +2 -2
  115. package/dist/quasar.prod.css +1 -1
  116. package/dist/quasar.rtl.css +3 -6
  117. package/dist/quasar.rtl.prod.css +1 -1
  118. package/dist/quasar.sass +17 -13
  119. package/dist/quasar.umd.js +33 -17
  120. package/dist/quasar.umd.prod.js +2 -2
  121. package/dist/types/index.d.ts +8 -5
  122. package/dist/web-types/web-types.json +4 -4
  123. package/lang/ms.js +1 -1
  124. package/lang/ms.mjs +1 -1
  125. package/package.json +1 -1
  126. package/src/components/btn/QBtn.js +2 -2
  127. package/src/components/circular-progress/QCircularProgress.js +9 -4
  128. package/src/components/date/QDate.js +15 -3
  129. package/src/components/img/QImg.json +3 -3
  130. package/src/components/select/QSelect.js +3 -4
  131. package/src/components/slider/use-slider.js +1 -1
  132. package/src/components/time/QTime.json +4 -1
  133. package/src/css/core/flex.sass +5 -3
  134. package/src/css/flex-addon.sass +3 -1
  135. package/src/css/helpers/math.sass +7 -5
@@ -5914,9 +5914,9 @@ export interface QImgProps {
5914
5914
  onLoad?: (src: string) => void;
5915
5915
  /**
5916
5916
  * Emitted when browser could not load the image
5917
- * @param err JS Error object
5917
+ * @param evt JS Event object (same as the browser's native 'error' event)
5918
5918
  */
5919
- onError?: (err: Error) => void;
5919
+ onError?: (evt: Event) => void;
5920
5920
  }
5921
5921
 
5922
5922
  export interface QImgSlots {
@@ -12810,10 +12810,13 @@ export interface QTimeProps {
12810
12810
  * @param hr Hour
12811
12811
  * @param min Minutes
12812
12812
  * @param sec Seconds
12813
+ * @returns Is the user allowed to set the specified time?
12813
12814
  */
12814
- options?:
12815
- | ((hr: number, min: number | null, sec: number | null) => void)
12816
- | undefined;
12815
+ options?: (
12816
+ hr: number,
12817
+ min: number | null,
12818
+ sec: number | null
12819
+ ) => boolean | null | undefined;
12817
12820
  /**
12818
12821
  * Optionally configure what hours is the user allowed to set; Overrides 'options' prop if that is also set
12819
12822
  */
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.13.1",
5
+ "version": "2.14.1",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -7610,9 +7610,9 @@
7610
7610
  "name": "error",
7611
7611
  "arguments": [
7612
7612
  {
7613
- "name": "err",
7614
- "type": "Error",
7615
- "description": "JS Error object",
7613
+ "name": "evt",
7614
+ "type": "Event",
7615
+ "description": "JS Event object (same as the browser's native 'error' event)",
7616
7616
  "doc-url": "https://v2.quasar.dev/vue-components/img"
7617
7617
  }
7618
7618
  ],
package/lang/ms.js CHANGED
@@ -25,7 +25,7 @@ module.exports = {
25
25
  },
26
26
  date: {
27
27
  days: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jummat_Sabtu'.split('_'),
28
- daysShort: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jummat_Sabtu'.split('_'),
28
+ daysShort: 'Aha_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
29
29
  months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_Oktober_November_Disember'.split('_'),
30
30
  monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogos_Sep_Okt_Nov_Dis'.split('_'),
31
31
  firstDayOfWeek: 1, // 0-6, 0 - Sunday, 1 Monday, ...
package/lang/ms.mjs CHANGED
@@ -20,7 +20,7 @@ export default {
20
20
  },
21
21
  date: {
22
22
  days: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jummat_Sabtu'.split('_'),
23
- daysShort: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jummat_Sabtu'.split('_'),
23
+ daysShort: 'Aha_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
24
24
  months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_Oktober_November_Disember'.split('_'),
25
25
  monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogos_Sep_Okt_Nov_Dis'.split('_'),
26
26
  firstDayOfWeek: 1, // 0-6, 0 - Sunday, 1 Monday, ...
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.13.1",
3
+ "version": "2.14.1",
4
4
  "description": "Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time",
5
5
  "main": "dist/quasar.cjs.prod.js",
6
6
  "module": "dist/quasar.esm.prod.js",
@@ -297,7 +297,7 @@ export default createComponent({
297
297
  props.icon !== void 0 && inner.push(
298
298
  h(QIcon, {
299
299
  name: props.icon,
300
- left: props.stack === false && hasLabel.value === true,
300
+ left: props.stack !== true && hasLabel.value === true,
301
301
  role: 'img',
302
302
  'aria-hidden': 'true'
303
303
  })
@@ -313,7 +313,7 @@ export default createComponent({
313
313
  inner.push(
314
314
  h(QIcon, {
315
315
  name: props.iconRight,
316
- right: props.stack === false && hasLabel.value === true,
316
+ right: props.stack !== true && hasLabel.value === true,
317
317
  role: 'img',
318
318
  'aria-hidden': 'true'
319
319
  })
@@ -60,11 +60,16 @@ export default createComponent({
60
60
 
61
61
  const normalized = computed(() => between(props.value, props.min, props.max))
62
62
 
63
- const strokeDashOffset = computed(() => circumference * (
64
- 1 - (normalized.value - props.min) / (props.max - props.min)
65
- ))
66
-
63
+ const range = computed(() => props.max - props.min)
67
64
  const strokeWidth = computed(() => props.thickness / 2 * viewBox.value)
65
+ const strokeDashOffset = computed(() => {
66
+ const dashRatio = (props.max - normalized.value) / range.value
67
+ const dashGap = props.rounded === true && normalized.value < props.max && dashRatio < 0.25
68
+ ? strokeWidth.value / 2 * (1 - dashRatio / 0.25)
69
+ : 0
70
+
71
+ return circumference * dashRatio + dashGap
72
+ })
68
73
 
69
74
  function getCircle ({ thickness, offset, color, cls, rounded }) {
70
75
  return h('circle', {
@@ -728,10 +728,22 @@ export default createComponent({
728
728
  })
729
729
 
730
730
  function setToday () {
731
- const date = today.value
732
- const month = daysMap.value[ getMonthHash(date) ]
731
+ const { year, month, day } = today.value
733
732
 
734
- if (month === void 0 || month.includes(date.day) === false) {
733
+ const date = {
734
+ // contains more props than needed (hour, minute, second, millisecond)
735
+ // but those aren't used in the processing of this "date" variable
736
+ ...viewModel.value,
737
+
738
+ // overwriting with today's date
739
+ year,
740
+ month,
741
+ day
742
+ }
743
+
744
+ const monthMap = daysMap.value[ getMonthHash(date) ]
745
+
746
+ if (monthMap === void 0 || monthMap.includes(date.day) === false) {
735
747
  addToModel(date)
736
748
  }
737
749
 
@@ -246,9 +246,9 @@
246
246
  "error": {
247
247
  "desc": "Emitted when browser could not load the image",
248
248
  "params": {
249
- "err": {
250
- "type": "Error",
251
- "desc": "JS Error object"
249
+ "evt": {
250
+ "type": "Event",
251
+ "desc": "JS Event object (same as the browser's native 'error' event)"
252
252
  }
253
253
  }
254
254
  }
@@ -319,11 +319,12 @@ export default createComponent({
319
319
 
320
320
  return props.options.slice(from, to).map((opt, i) => {
321
321
  const disable = isOptionDisabled.value(opt) === true
322
+ const active = isOptionSelected(opt) === true
322
323
  const index = from + i
323
324
 
324
325
  const itemProps = {
325
326
  clickable: true,
326
- active: false,
327
+ active,
327
328
  activeClass: computedOptionsSelectedClass.value,
328
329
  manualFocus: true,
329
330
  focused: false,
@@ -332,16 +333,14 @@ export default createComponent({
332
333
  dense: props.optionsDense,
333
334
  dark: isOptionsDark.value,
334
335
  role: 'option',
336
+ 'aria-selected': active === true ? 'true' : 'false',
335
337
  id: `${ state.targetUid.value }_${ index }`,
336
338
  onClick: () => { toggleOption(opt) }
337
339
  }
338
340
 
339
341
  if (disable !== true) {
340
- isOptionSelected(opt) === true && (itemProps.active = true)
341
342
  optionIndex.value === index && (itemProps.focused = true)
342
343
 
343
- itemProps[ 'aria-selected' ] = itemProps.active === true ? 'true' : 'false'
344
-
345
344
  if ($q.platform.is.desktop === true) {
346
345
  itemProps.onMousemove = () => { menu.value === true && setOptionIndex(index) }
347
346
  }
@@ -238,7 +238,7 @@ export default function ({ updateValue, updatePosition, getDragging, formAttrs }
238
238
  let model = min + ratio * (max - min)
239
239
 
240
240
  if (step > 0) {
241
- const modulo = (model - min) % step
241
+ const modulo = (model - innerMin.value) % step
242
242
  model += (Math.abs(modulo) >= step / 2 ? (modulo < 0 ? -1 : 1) * step : 0) - modulo
243
243
  }
244
244
 
@@ -55,7 +55,10 @@
55
55
  "desc": "Seconds"
56
56
  }
57
57
  },
58
- "returns": null,
58
+ "returns": {
59
+ "type": [ "Boolean", "null", "undefined" ],
60
+ "desc": "Is the user allowed to set the specified time?"
61
+ },
59
62
  "examples": [
60
63
  ":options=\"(hr, min, sec) => hr <= 6\""
61
64
  ],
@@ -1,3 +1,5 @@
1
+ @use 'sass:math'
2
+
1
3
  @import '../helpers/string.sass'
2
4
 
3
5
  @mixin fg($name, $size)
@@ -30,13 +32,13 @@
30
32
  .row
31
33
  #{str-fe('> .col<name>-<i>', $name, $noProcNotZero, $ic)}
32
34
  height: auto
33
- width: toFixed(percentage($i / $flex-cols), 10000)
35
+ width: toFixed(percentage(math.div($i, $flex-cols)), 10000)
34
36
  @if $i != 0 or $name != ''
35
37
  #{str-fe('> .offset<name>-<i>', $name, $noProcNotZero, $ic)}
36
- margin-left: toFixed(percentage($i / $flex-cols), 10000)
38
+ margin-left: toFixed(percentage(math.div($i, $flex-cols)), 10000)
37
39
  .column
38
40
  #{str-fe('> .col<name>-<i>', $name, $noProcNotZero, $ic)}
39
- height: toFixed(percentage($i / $flex-cols), 10000)
41
+ height: toFixed(percentage(math.div($i, $flex-cols)), 10000)
40
42
  width: auto
41
43
  @if $size == 0 and $i == $flex-cols
42
44
  .row > .col-all
@@ -1,3 +1,5 @@
1
+ @use 'sass:math'
2
+
1
3
  @import './helpers/string.sass'
2
4
  @import './helpers/math.sass'
3
5
 
@@ -194,7 +196,7 @@
194
196
 
195
197
  @for $i from 0 through $flex-cols
196
198
  $ic: quote('' + $i)
197
- $internal-size: toFixed(percentage($i / $flex-cols), 10000)
199
+ $internal-size: toFixed(percentage(math.div($i, $flex-cols)), 10000)
198
200
 
199
201
  #{str-fr('.row<name>', $name)}
200
202
  #{str-fe('> .col<name>-<i>', $name2c, $noProcNotZero2, $ic)}
@@ -1,3 +1,5 @@
1
+ @use 'sass:math'
2
+
1
3
  $PI: 3.14159265359
2
4
 
3
5
  @function pow($number, $exp)
@@ -21,22 +23,22 @@ $PI: 3.14159265359
21
23
  // toFixed(0.12345, 100) -> 0.12
22
24
  // toFixed(0.12345, 1000) -> 0.123
23
25
  @function toFixed($number, $power)
24
- @return round($number * $power) / $power
26
+ @return math.div(round($number * $power), $power)
25
27
 
26
28
  @function sin($angle)
27
29
  $sin: 0
28
30
  // angle -> radians
29
- $rad: $angle / 180 * $PI
31
+ $rad: math.div($angle, 180) * $PI
30
32
  // interval determines precision
31
33
  @for $i from 0 through 25
32
- $sin: $sin + pow(-1, $i) * pow($rad, (2 * $i + 1)) / fact(2 * $i + 1)
34
+ $sin: $sin + math.div(pow(-1, $i) * pow($rad, (2 * $i + 1)), fact(2 * $i + 1))
33
35
  @return $sin
34
36
 
35
37
  @function cos($angle)
36
38
  $cos: 0
37
39
  // angle -> radians
38
- $rad: $angle / 180 * $PI
40
+ $rad: math.div($angle, 180) * $PI
39
41
  // interval determines precision
40
42
  @for $i from 0 through 25
41
- $cos: $cos + pow(-1, $i) * pow($rad, 2 * $i) / fact(2 * $i)
43
+ $cos: $cos + math.div(pow(-1, $i) * pow($rad, 2 * $i), fact(2 * $i))
42
44
  @return $cos