quasar 2.5.3 → 2.5.4

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 (153) hide show
  1. package/dist/api/QBtn.json +2 -2
  2. package/dist/api/QBtnDropdown.json +14 -14
  3. package/dist/api/QCarousel.json +1 -1
  4. package/dist/api/QCheckbox.json +1 -1
  5. package/dist/api/QChip.json +1 -1
  6. package/dist/api/QDialog.json +13 -13
  7. package/dist/api/QDrawer.json +16 -16
  8. package/dist/api/QExpansionItem.json +13 -13
  9. package/dist/api/QFab.json +13 -13
  10. package/dist/api/QFabAction.json +2 -2
  11. package/dist/api/QField.json +2 -2
  12. package/dist/api/QFile.json +1 -1
  13. package/dist/api/QForm.json +9 -3
  14. package/dist/api/QInput.json +2 -2
  15. package/dist/api/QKnob.json +18 -0
  16. package/dist/api/QMenu.json +13 -13
  17. package/dist/api/QPopupEdit.json +6 -6
  18. package/dist/api/QPopupProxy.json +13 -13
  19. package/dist/api/QRadio.json +1 -1
  20. package/dist/api/QRange.json +1 -1
  21. package/dist/api/QRouteTab.json +1 -1
  22. package/dist/api/QSelect.json +18 -4
  23. package/dist/api/QSlider.json +1 -1
  24. package/dist/api/QTable.json +6 -6
  25. package/dist/api/QToggle.json +1 -1
  26. package/dist/api/QTooltip.json +13 -13
  27. package/dist/api/QUploader.json +1 -1
  28. package/dist/api/TouchHold.json +1 -1
  29. package/dist/api/TouchPan.json +1 -1
  30. package/dist/api/TouchRepeat.json +1 -1
  31. package/dist/api/TouchSwipe.json +1 -1
  32. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  33. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  34. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  35. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  36. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  37. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  38. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  39. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  40. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  41. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  42. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  43. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  44. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  45. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  47. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  48. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  49. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  50. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  51. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  52. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  53. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  54. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  55. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  56. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  57. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  58. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  59. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  60. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  61. package/dist/icon-set/themify.umd.prod.js +1 -1
  62. package/dist/lang/ar.umd.prod.js +1 -1
  63. package/dist/lang/az-Latn.umd.prod.js +1 -1
  64. package/dist/lang/bg.umd.prod.js +1 -1
  65. package/dist/lang/bn.umd.prod.js +1 -1
  66. package/dist/lang/ca.umd.prod.js +1 -1
  67. package/dist/lang/cs.umd.prod.js +1 -1
  68. package/dist/lang/da.umd.prod.js +1 -1
  69. package/dist/lang/de.umd.prod.js +1 -1
  70. package/dist/lang/el.umd.prod.js +1 -1
  71. package/dist/lang/en-GB.umd.prod.js +1 -1
  72. package/dist/lang/en-US.umd.prod.js +1 -1
  73. package/dist/lang/eo.umd.prod.js +1 -1
  74. package/dist/lang/es.umd.prod.js +1 -1
  75. package/dist/lang/et.umd.prod.js +1 -1
  76. package/dist/lang/fa-IR.umd.prod.js +1 -1
  77. package/dist/lang/fa.umd.prod.js +1 -1
  78. package/dist/lang/fi.umd.prod.js +1 -1
  79. package/dist/lang/fr.umd.prod.js +1 -1
  80. package/dist/lang/gn.umd.prod.js +1 -1
  81. package/dist/lang/he.umd.prod.js +1 -1
  82. package/dist/lang/hr.umd.prod.js +1 -1
  83. package/dist/lang/hu.umd.prod.js +1 -1
  84. package/dist/lang/id.umd.prod.js +1 -1
  85. package/dist/lang/is.umd.prod.js +1 -1
  86. package/dist/lang/it.umd.prod.js +1 -1
  87. package/dist/lang/ja.umd.prod.js +1 -1
  88. package/dist/lang/km.umd.prod.js +1 -1
  89. package/dist/lang/ko-KR.umd.prod.js +1 -1
  90. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  91. package/dist/lang/lt.umd.prod.js +1 -1
  92. package/dist/lang/lu.umd.prod.js +1 -1
  93. package/dist/lang/lv.umd.prod.js +1 -1
  94. package/dist/lang/ml.umd.prod.js +1 -1
  95. package/dist/lang/ms.umd.prod.js +1 -1
  96. package/dist/lang/my.umd.prod.js +1 -1
  97. package/dist/lang/nb-NO.umd.prod.js +1 -1
  98. package/dist/lang/nl.umd.prod.js +1 -1
  99. package/dist/lang/pl.umd.prod.js +1 -1
  100. package/dist/lang/pt-BR.umd.prod.js +1 -1
  101. package/dist/lang/pt.umd.prod.js +1 -1
  102. package/dist/lang/ro.umd.prod.js +1 -1
  103. package/dist/lang/ru.umd.prod.js +1 -1
  104. package/dist/lang/sk.umd.prod.js +1 -1
  105. package/dist/lang/sl.umd.prod.js +1 -1
  106. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  107. package/dist/lang/sr.umd.prod.js +1 -1
  108. package/dist/lang/sv.umd.prod.js +1 -1
  109. package/dist/lang/ta.umd.prod.js +1 -1
  110. package/dist/lang/th.umd.prod.js +1 -1
  111. package/dist/lang/tr.umd.prod.js +1 -1
  112. package/dist/lang/ug.umd.prod.js +1 -1
  113. package/dist/lang/uk.umd.prod.js +1 -1
  114. package/dist/lang/vi.umd.prod.js +1 -1
  115. package/dist/lang/zh-CN.umd.prod.js +1 -1
  116. package/dist/lang/zh-TW.umd.prod.js +1 -1
  117. package/dist/quasar.cjs.prod.js +2 -2
  118. package/dist/quasar.esm.prod.js +2 -2
  119. package/dist/quasar.sass +1 -1
  120. package/dist/quasar.umd.js +62 -53
  121. package/dist/quasar.umd.prod.js +2 -2
  122. package/dist/ssr-directives/Morph.js +1 -1
  123. package/dist/types/index.d.ts +103 -89
  124. package/dist/vetur/quasar-attributes.json +8 -0
  125. package/dist/vetur/quasar-tags.json +2 -0
  126. package/dist/web-types/web-types.json +81 -55
  127. package/package.json +1 -1
  128. package/src/api-file-example.json +2 -2
  129. package/src/api.extends.json +21 -32
  130. package/src/components/btn/QBtn.json +3 -6
  131. package/src/components/carousel/QCarousel.json +2 -4
  132. package/src/components/checkbox/use-checkbox.json +2 -4
  133. package/src/components/chip/QChip.json +1 -3
  134. package/src/components/fab/QFabAction.json +1 -3
  135. package/src/components/field/QField.json +2 -6
  136. package/src/components/form/QForm.json +9 -7
  137. package/src/components/input/QInput.json +2 -6
  138. package/src/components/input/use-mask.js +2 -2
  139. package/src/components/knob/QKnob.js +46 -40
  140. package/src/components/knob/QKnob.json +16 -0
  141. package/src/components/radio/QRadio.json +2 -4
  142. package/src/components/select/QSelect.js +2 -1
  143. package/src/components/select/QSelect.json +17 -8
  144. package/src/components/slider/use-slider.json +1 -1
  145. package/src/components/table/QTable.json +5 -13
  146. package/src/components/tabs/QRouteTab.json +2 -3
  147. package/src/components/tabs/use-tab.js +11 -8
  148. package/src/composables/private/use-file.json +1 -3
  149. package/src/composables/private/use-router-link.js +1 -1
  150. package/src/directives/TouchHold.json +2 -3
  151. package/src/directives/TouchPan.json +2 -3
  152. package/src/directives/TouchRepeat.json +2 -3
  153. package/src/directives/TouchSwipe.json +2 -3
@@ -41,9 +41,7 @@
41
41
  "desc": "Emulate click on QBtn",
42
42
  "params": {
43
43
  "evt": {
44
- "type": "Object",
45
- "desc": "JS event object",
46
- "__exemption": [ "examples" ]
44
+ "extends": "evt"
47
45
  }
48
46
  }
49
47
  }
@@ -54,9 +52,8 @@
54
52
  "desc": "Emitted when component is clicked (activated)",
55
53
  "params": {
56
54
  "evt": {
57
- "type": "Object",
58
- "desc": "JS event object; If you want to cancel navigation set synchronously 'evt.navigate' to false",
59
- "__exemption": [ "examples" ]
55
+ "extends": "evt",
56
+ "desc": "JS event object; If you want to cancel navigation set synchronously 'evt.navigate' to false"
60
57
  },
61
58
  "navigateFn": {
62
59
  "type": "Function",
@@ -144,10 +144,8 @@
144
144
  "desc": "Default trigger when clicked/tapped on",
145
145
  "params": {
146
146
  "evt": {
147
- "type": "Object",
148
- "desc": "JS event object",
149
- "required": true,
150
- "__exemption": [ "examples" ]
147
+ "extends": "evt",
148
+ "required": true
151
149
  }
152
150
  },
153
151
  "returns": null
@@ -122,10 +122,8 @@
122
122
  "__exemption": [ "examples" ]
123
123
  },
124
124
  "evt": {
125
- "type": "Object",
126
- "desc": "JS event object",
127
- "required": true,
128
- "__exemption": [ "examples" ]
125
+ "extends": "evt",
126
+ "required": true
129
127
  }
130
128
  }
131
129
  }
@@ -115,9 +115,7 @@
115
115
  "desc": "Emitted on QChip click if 'clickable' property is set",
116
116
  "params": {
117
117
  "evt": {
118
- "type": "Object",
119
- "desc": "JS event object",
120
- "__exemption": [ "examples" ]
118
+ "extends": "evt"
121
119
  }
122
120
  }
123
121
  },
@@ -59,9 +59,7 @@
59
59
  "desc": "Emulate click on QFabAction",
60
60
  "params": {
61
61
  "evt": {
62
- "type": "Object",
63
- "desc": "JS event object",
64
- "__exemption": [ "examples" ]
62
+ "extends": "evt"
65
63
  }
66
64
  }
67
65
  }
@@ -81,9 +81,7 @@
81
81
  "desc": "Emitted when component gets focused",
82
82
  "params": {
83
83
  "evt": {
84
- "type": "Object",
85
- "desc": "JS event object",
86
- "__exemption": [ "examples" ]
84
+ "extends": "evt"
87
85
  }
88
86
  }
89
87
  },
@@ -92,9 +90,7 @@
92
90
  "desc": "Emitted when component loses focus",
93
91
  "params": {
94
92
  "evt": {
95
- "type": "Object",
96
- "desc": "JS event object",
97
- "__exemption": [ "examples" ]
93
+ "extends": "evt"
98
94
  }
99
95
  }
100
96
  }
@@ -37,7 +37,13 @@
37
37
 
38
38
  "events": {
39
39
  "submit": {
40
- "desc": "Emitted when all validations have passed when tethered to a submit button"
40
+ "desc": "Emitted when all validations have passed when tethered to a submit button",
41
+ "params": {
42
+ "evt": {
43
+ "type": "SubmitEvent",
44
+ "desc": "Form submission event object"
45
+ }
46
+ }
41
47
  },
42
48
 
43
49
  "reset": {
@@ -89,9 +95,7 @@
89
95
  "desc": "Manually trigger form validation and submit",
90
96
  "params": {
91
97
  "evt": {
92
- "type": "Object",
93
- "desc": "JS event object",
94
- "__exemption": [ "examples" ]
98
+ "extends": "evt"
95
99
  }
96
100
  }
97
101
  },
@@ -100,9 +104,7 @@
100
104
  "desc": "Manually trigger form reset",
101
105
  "params": {
102
106
  "evt": {
103
- "type": "Object",
104
- "desc": "JS event object",
105
- "__exemption": [ "examples" ]
107
+ "extends": "evt"
106
108
  }
107
109
  }
108
110
  },
@@ -89,9 +89,7 @@
89
89
  "desc": "Emitted when component gets focused",
90
90
  "params": {
91
91
  "evt": {
92
- "type": "Object",
93
- "desc": "JS event object",
94
- "__exemption": [ "examples" ]
92
+ "extends": "evt"
95
93
  }
96
94
  }
97
95
  },
@@ -100,9 +98,7 @@
100
98
  "desc": "Emitted when component loses focus",
101
99
  "params": {
102
100
  "evt": {
103
- "type": "Object",
104
- "desc": "JS event object",
105
- "__exemption": [ "examples" ]
101
+ "extends": "evt"
106
102
  }
107
103
  }
108
104
  }
@@ -1,4 +1,4 @@
1
- import { ref, computed, watch, nextTick } from 'vue'
1
+ import { ref, watch, nextTick } from 'vue'
2
2
 
3
3
  import { shouldIgnoreKey } from '../../utils/private/key-composition.js'
4
4
 
@@ -297,7 +297,7 @@ export default function (props, emit, emitValue, inputRef) {
297
297
  ? unmaskValue(masked)
298
298
  : masked
299
299
 
300
- props.modelValue !== val && emitValue(val, true)
300
+ String(props.modelValue) !== val && emitValue(val, true)
301
301
  }
302
302
 
303
303
  function moveCursorForPaste (inp, start, end) {
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, watch, onMounted, withDirectives, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, watch, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QCircularProgress from '../circular-progress/QCircularProgress.js'
4
4
  import TouchPan from '../../directives/TouchPan.js'
@@ -6,6 +6,7 @@ import TouchPan from '../../directives/TouchPan.js'
6
6
  import { createComponent } from '../../utils/private/create.js'
7
7
  import { position, stopAndPrevent } from '../../utils/event.js'
8
8
  import { between, normalizeToInterval } from '../../utils/format.js'
9
+ import { hDir } from '../../utils/private/render.js'
9
10
 
10
11
  import { useFormProps, useFormAttrs } from '../../composables/private/use-form.js'
11
12
  import { useCircularCommonProps } from '../circular-progress/use-circular-progress.js'
@@ -26,6 +27,9 @@ export default createComponent({
26
27
  required: true
27
28
  },
28
29
 
30
+ innerMin: Number,
31
+ innerMax: Number,
32
+
29
33
  step: {
30
34
  type: Number,
31
35
  default: 1,
@@ -50,27 +54,33 @@ export default createComponent({
50
54
  const model = ref(props.modelValue)
51
55
  const dragging = ref(false)
52
56
 
53
- let centerPosition, $el
57
+ const innerMin = computed(() => (
58
+ isNaN(props.innerMin) === true || props.innerMin < props.min
59
+ ? props.min
60
+ : props.innerMin
61
+ ))
62
+ const innerMax = computed(() => (
63
+ isNaN(props.innerMax) === true || props.innerMax > props.max
64
+ ? props.max
65
+ : props.innerMax
66
+ ))
54
67
 
55
- watch(() => props.modelValue, val => {
56
- if (val < props.min) {
57
- model.value = props.min
58
- }
59
- else if (val > props.max) {
60
- model.value = props.max
61
- }
62
- else {
63
- if (val !== model.value) {
64
- model.value = val
65
- }
66
- return
67
- }
68
+ let centerPosition
68
69
 
69
- if (model.value !== props.modelValue) {
70
- emit('update:modelValue', model.value)
71
- emit('change', model.value)
72
- }
73
- })
70
+ function normalizeModel () {
71
+ model.value = props.modelValue === null
72
+ ? innerMin.value
73
+ : between(props.modelValue, innerMin.value, innerMax.value)
74
+
75
+ updateValue(true)
76
+ }
77
+
78
+ watch(
79
+ () => `${ props.modelValue }|${ innerMin.value }|${ innerMax.value }`,
80
+ normalizeModel
81
+ )
82
+
83
+ normalizeModel()
74
84
 
75
85
  const editable = computed(() => props.disable === false && props.readonly === false)
76
86
 
@@ -138,7 +148,7 @@ export default createComponent({
138
148
  })
139
149
 
140
150
  function updateCenterPosition () {
141
- const { top, left, width, height } = $el.getBoundingClientRect()
151
+ const { top, left, width, height } = proxy.$el.getBoundingClientRect()
142
152
  centerPosition = {
143
153
  top: top + height / 2,
144
154
  left: left + width / 2
@@ -168,8 +178,8 @@ export default createComponent({
168
178
 
169
179
  model.value = between(
170
180
  parseFloat((model.value + offset).toFixed(decimals.value)),
171
- props.min,
172
- props.max
181
+ innerMin.value,
182
+ innerMax.value
173
183
  )
174
184
 
175
185
  updateValue()
@@ -212,7 +222,7 @@ export default createComponent({
212
222
  newModel = parseFloat(newModel.toFixed(decimals.value))
213
223
  }
214
224
 
215
- newModel = between(newModel, props.min, props.max)
225
+ newModel = between(newModel, innerMin.value, innerMax.value)
216
226
 
217
227
  emit('drag-value', newModel)
218
228
 
@@ -240,16 +250,12 @@ export default createComponent({
240
250
  return h('input', formAttrs.value)
241
251
  }
242
252
 
243
- onMounted(() => {
244
- $el = proxy.$el
245
- })
246
-
247
253
  return () => {
248
254
  const data = {
249
255
  class: classes.value,
250
256
  role: 'slider',
251
- 'aria-valuemin': props.min,
252
- 'aria-valuemax': props.max,
257
+ 'aria-valuemin': innerMin.value,
258
+ 'aria-valuemax': innerMax.value,
253
259
  'aria-valuenow': props.modelValue,
254
260
  ...attrs.value,
255
261
  ...circularProps.value,
@@ -262,18 +268,18 @@ export default createComponent({
262
268
  default: slots.default
263
269
  }
264
270
 
265
- if (editable.value === true) {
266
- if (props.name !== void 0) {
267
- child.internal = getNameInput
268
- }
269
-
270
- return withDirectives(
271
- h(QCircularProgress, data, child),
272
- directives.value
273
- )
271
+ if (editable.value === true && props.name !== void 0) {
272
+ child.internal = getNameInput
274
273
  }
275
274
 
276
- return h(QCircularProgress, data, child)
275
+ return hDir(
276
+ QCircularProgress,
277
+ data,
278
+ child,
279
+ 'knob',
280
+ editable.value,
281
+ () => directives.value
282
+ )
277
283
  }
278
284
  }
279
285
  })
@@ -27,6 +27,22 @@
27
27
  "category": "model"
28
28
  },
29
29
 
30
+ "inner-min": {
31
+ "type": "Number",
32
+ "desc": "Inner minimum value of the model; Use in case you need the model value to be inside of the track's min-max values; Needs to be higher or equal to 'min' prop; Defaults to 'min' prop",
33
+ "examples": [ ":inner-min=\"0\"" ],
34
+ "category": "model",
35
+ "addedIn": "v2.5.4"
36
+ },
37
+
38
+ "inner-max": {
39
+ "type": "Number",
40
+ "desc": "Inner maximum value of the model; Use in case you need the model value to be inside of the track's min-max values; Needs to be lower or equal to 'max' prop; Defaults to 'max' prop",
41
+ "examples": [ ":inner-max=\"100\"" ],
42
+ "category": "model",
43
+ "addedIn": "v2.5.4"
44
+ },
45
+
30
46
  "step": {
31
47
  "type": "Number",
32
48
  "default": "1",
@@ -93,10 +93,8 @@
93
93
  "__exemption": [ "examples" ]
94
94
  },
95
95
  "evt": {
96
- "type": "Object",
97
- "desc": "JS event object",
98
- "required": true,
99
- "__exemption": [ "examples" ]
96
+ "extends": "evt",
97
+ "required": true
100
98
  }
101
99
  }
102
100
  }
@@ -337,7 +337,7 @@ export default createComponent({
337
337
  itemProps[ 'aria-selected' ] = itemProps.active === true ? 'true' : 'false'
338
338
 
339
339
  if ($q.platform.is.desktop === true) {
340
- itemProps.onMousemove = () => { setOptionIndex(index) }
340
+ itemProps.onMousemove = () => { menu.value === true && setOptionIndex(index) }
341
341
  }
342
342
  }
343
343
 
@@ -1385,6 +1385,7 @@ export default createComponent({
1385
1385
  Object.assign(proxy, {
1386
1386
  showPopup, hidePopup,
1387
1387
  removeAtIndex, add, toggleOption,
1388
+ getOptionIndex: () => optionIndex.value,
1388
1389
  setOptionIndex, moveOptionSelection,
1389
1390
  filter, updateMenuPosition, updateInputValue,
1390
1391
  isOptionSelected,
@@ -628,9 +628,7 @@
628
628
  "desc": "Emitted when the select options menu or dialog is shown.",
629
629
  "params": {
630
630
  "evt": {
631
- "type": "Object",
632
- "desc": "JS event object",
633
- "__exemption": [ "examples" ]
631
+ "extends": "evt"
634
632
  }
635
633
  }
636
634
  },
@@ -639,9 +637,7 @@
639
637
  "desc": "Emitted when the select options menu or dialog is hidden.",
640
638
  "params": {
641
639
  "evt": {
642
- "type": "Object",
643
- "desc": "JS event object",
644
- "__exemption": [ "examples" ]
640
+ "extends": "evt"
645
641
  }
646
642
  }
647
643
  },
@@ -718,13 +714,26 @@
718
714
  }
719
715
  },
720
716
 
717
+ "getOptionIndex": {
718
+ "desc": "Gets current focused option index from menu; It's -1 if no option is focused",
719
+ "params": {
720
+ "index": {
721
+ "type": "Number",
722
+ "required": true,
723
+ "desc": "Index of option from menu; -1 if no option is focused",
724
+ "examples": [ 10 ]
725
+ }
726
+ },
727
+ "addedIn": "v2.5.4"
728
+ },
729
+
721
730
  "setOptionIndex": {
722
- "desc": "Sets option from menu as 'focused'",
731
+ "desc": "Sets option from menu as 'focused'; -1 to focus none",
723
732
  "params": {
724
733
  "index": {
725
734
  "type": "Number",
726
735
  "required": true,
727
- "desc": "Index of option from menu",
736
+ "desc": "Index of option from menu; -1 to focus none",
728
737
  "examples": [ 10 ]
729
738
  }
730
739
  }
@@ -29,7 +29,7 @@
29
29
  "inner-max": {
30
30
  "type": "Number",
31
31
  "desc": "Inner maximum value of the model; Use in case you need the model value to be inside of the track's min-max values; Needs to be lower or equal to 'max' prop; Defaults to 'max' prop",
32
- "examples": [ ":max-value=\"100\"" ],
32
+ "examples": [ ":inner-max=\"100\"" ],
33
33
  "category": "model",
34
34
  "addedIn": "v2.4"
35
35
  },
@@ -1867,9 +1867,7 @@
1867
1867
  "desc": "Emitted when user clicks/taps on a row; Is not emitted when using body/row/item scoped slots",
1868
1868
  "params": {
1869
1869
  "evt": {
1870
- "type": "Object",
1871
- "desc": "JS event object",
1872
- "__exemption": [ "examples" ]
1870
+ "extends": "evt"
1873
1871
  },
1874
1872
 
1875
1873
  "row": {
@@ -1890,9 +1888,7 @@
1890
1888
  "desc": "Emitted when user quickly double clicks/taps on a row; Is not emitted when using body/row/item scoped slots; Please check JS dblclick event support before using",
1891
1889
  "params": {
1892
1890
  "evt": {
1893
- "type": "Object",
1894
- "desc": "JS event object",
1895
- "__exemption": [ "examples" ]
1891
+ "extends": "evt"
1896
1892
  },
1897
1893
 
1898
1894
  "row": {
@@ -1913,9 +1909,7 @@
1913
1909
  "desc": "Emitted when user right clicks/long taps on a row; Is not emitted when using body/row/item scoped slots",
1914
1910
  "params": {
1915
1911
  "evt": {
1916
- "type": "Object",
1917
- "desc": "JS event object",
1918
- "__exemption": [ "examples" ]
1912
+ "extends": "evt"
1919
1913
  },
1920
1914
 
1921
1915
  "row": {
@@ -2075,10 +2069,8 @@
2075
2069
  "desc": "Were the rows added to selection (true) or removed from selection (false)"
2076
2070
  },
2077
2071
  "evt": {
2078
- "type": "Object",
2079
- "required": true,
2080
- "desc": "JS event object",
2081
- "__exemption": [ "examples" ]
2072
+ "extends": "evt",
2073
+ "required": true
2082
2074
  }
2083
2075
  }
2084
2076
  }
@@ -10,9 +10,8 @@
10
10
  "desc": "Emitted when component is clicked (activated)",
11
11
  "params": {
12
12
  "evt": {
13
- "type": "Object",
14
- "desc": "JS event object; If you want to cancel navigation set synchronously 'evt.navigate' to false",
15
- "__exemption": [ "examples" ]
13
+ "extends": "evt",
14
+ "desc": "JS event object; If you want to cancel navigation set synchronously 'evt.navigate' to false"
16
15
  },
17
16
  "navigateFn": {
18
17
  "type": "Function",
@@ -108,9 +108,12 @@ export default function (props, slots, emit, routerProps) {
108
108
  $tabs.avoidRouteWatcher = false
109
109
  }
110
110
  else {
111
- res.then(() => {
111
+ res.then(err => {
112
112
  $tabs.avoidRouteWatcher = false
113
- $tabs.updateModel({ name: props.name, fromRoute: true })
113
+
114
+ if (err === void 0) {
115
+ $tabs.updateModel({ name: props.name, fromRoute: true })
116
+ }
114
117
  })
115
118
  }
116
119
  }
@@ -167,12 +170,12 @@ export default function (props, slots, emit, routerProps) {
167
170
  props.alert !== false && content.push(
168
171
  props.alertIcon !== void 0
169
172
  ? h(QIcon, {
170
- class: 'q-tab__alert-icon',
171
- color: props.alert !== true
172
- ? props.alert
173
- : void 0,
174
- name: props.alertIcon
175
- })
173
+ class: 'q-tab__alert-icon',
174
+ color: props.alert !== true
175
+ ? props.alert
176
+ : void 0,
177
+ name: props.alertIcon
178
+ })
176
179
  : h('div', {
177
180
  class: 'q-tab__alert'
178
181
  + (props.alert !== true ? ` text-${ props.alert }` : '')
@@ -85,9 +85,7 @@
85
85
  "desc": "Trigger file pick; Must be called as a direct consequence of user interaction (eg. in a click handler), due to browsers security policy",
86
86
  "params": {
87
87
  "evt": {
88
- "type": "Object",
89
- "desc": "JS event object",
90
- "__exemption": [ "examples" ]
88
+ "extends": "evt"
91
89
  }
92
90
  }
93
91
  },
@@ -248,7 +248,7 @@ export default function (fallbackTag) {
248
248
  prevent(e)
249
249
 
250
250
  return proxy.$router[ props.replace === true ? 'replace' : 'push' ](props.to)
251
- .catch(() => {})
251
+ .catch(err => err)
252
252
  }
253
253
 
254
254
  return {
@@ -12,9 +12,8 @@
12
12
  "desc": "Event details",
13
13
  "definition": {
14
14
  "evt": {
15
- "type": "Object",
16
- "desc": "Original JS event Object",
17
- "__exemption": [ "examples" ]
15
+ "extends": "evt",
16
+ "desc": "Original JS event Object"
18
17
  },
19
18
  "touch": {
20
19
  "type": "Boolean",
@@ -12,9 +12,8 @@
12
12
  "desc": "Event details",
13
13
  "definition": {
14
14
  "evt": {
15
- "type": "Object",
16
- "desc": "Original JS event Object",
17
- "__exemption": [ "examples" ]
15
+ "extends": "evt",
16
+ "desc": "Original JS event Object"
18
17
  },
19
18
  "touch": {
20
19
  "type": "Boolean",
@@ -12,9 +12,8 @@
12
12
  "desc": "Event details",
13
13
  "definition": {
14
14
  "evt": {
15
- "type": "Object",
16
- "desc": "Original JS event Object",
17
- "__exemption": [ "examples" ]
15
+ "extends": "evt",
16
+ "desc": "Original JS event Object"
18
17
  },
19
18
  "touch": {
20
19
  "type": "Boolean",
@@ -12,9 +12,8 @@
12
12
  "desc": "Event details",
13
13
  "definition": {
14
14
  "evt": {
15
- "type": "Object",
16
- "desc": "Original JS event Object",
17
- "__exemption": [ "examples" ]
15
+ "extends": "evt",
16
+ "desc": "Original JS event Object"
18
17
  },
19
18
  "touch": {
20
19
  "type": "Boolean",