quasar 2.7.3 → 2.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/api/QBtn.json +6 -0
  2. package/dist/api/QBtnDropdown.json +6 -0
  3. package/dist/api/QBtnGroup.json +6 -0
  4. package/dist/api/QExpansionItem.json +8 -1
  5. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  6. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  9. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  10. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  11. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  12. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  15. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  16. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  17. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  18. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  19. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  20. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  21. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  23. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +2 -2
  31. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  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.umd.prod.js +1 -1
  51. package/dist/lang/el.umd.prod.js +1 -1
  52. package/dist/lang/en-GB.umd.prod.js +1 -1
  53. package/dist/lang/en-US.umd.prod.js +1 -1
  54. package/dist/lang/eo.umd.prod.js +1 -1
  55. package/dist/lang/es.umd.prod.js +1 -1
  56. package/dist/lang/et.umd.prod.js +1 -1
  57. package/dist/lang/eu.umd.prod.js +1 -1
  58. package/dist/lang/fa-IR.umd.prod.js +1 -1
  59. package/dist/lang/fa.umd.prod.js +1 -1
  60. package/dist/lang/fi.umd.prod.js +1 -1
  61. package/dist/lang/fr.umd.prod.js +1 -1
  62. package/dist/lang/gn.umd.prod.js +1 -1
  63. package/dist/lang/he.umd.prod.js +1 -1
  64. package/dist/lang/hr.umd.prod.js +1 -1
  65. package/dist/lang/hu.umd.prod.js +1 -1
  66. package/dist/lang/id.umd.prod.js +1 -1
  67. package/dist/lang/is.umd.prod.js +1 -1
  68. package/dist/lang/it.umd.prod.js +1 -1
  69. package/dist/lang/ja.umd.prod.js +1 -1
  70. package/dist/lang/km.umd.prod.js +1 -1
  71. package/dist/lang/ko-KR.umd.prod.js +1 -1
  72. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  73. package/dist/lang/kz.umd.prod.js +1 -1
  74. package/dist/lang/lt.umd.prod.js +1 -1
  75. package/dist/lang/lu.umd.prod.js +1 -1
  76. package/dist/lang/lv.umd.prod.js +1 -1
  77. package/dist/lang/ml.umd.prod.js +1 -1
  78. package/dist/lang/mm.umd.prod.js +1 -1
  79. package/dist/lang/ms.umd.prod.js +1 -1
  80. package/dist/lang/my.umd.prod.js +1 -1
  81. package/dist/lang/nb-NO.umd.prod.js +1 -1
  82. package/dist/lang/nl.umd.prod.js +1 -1
  83. package/dist/lang/pl.umd.prod.js +1 -1
  84. package/dist/lang/pt-BR.umd.prod.js +1 -1
  85. package/dist/lang/pt.umd.prod.js +1 -1
  86. package/dist/lang/ro.umd.prod.js +1 -1
  87. package/dist/lang/ru.umd.prod.js +1 -1
  88. package/dist/lang/sk.umd.prod.js +1 -1
  89. package/dist/lang/sl.umd.prod.js +1 -1
  90. package/dist/lang/sm.umd.prod.js +1 -1
  91. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  92. package/dist/lang/sr.umd.prod.js +1 -1
  93. package/dist/lang/sv.umd.prod.js +1 -1
  94. package/dist/lang/ta.umd.prod.js +1 -1
  95. package/dist/lang/th.umd.prod.js +1 -1
  96. package/dist/lang/tr.umd.prod.js +1 -1
  97. package/dist/lang/ug.umd.prod.js +1 -1
  98. package/dist/lang/uk.umd.prod.js +1 -1
  99. package/dist/lang/uz-Cyrl.umd.prod.js +6 -0
  100. package/dist/lang/uz-Latn.umd.prod.js +6 -0
  101. package/dist/lang/vi.umd.prod.js +1 -1
  102. package/dist/lang/zh-CN.umd.prod.js +1 -1
  103. package/dist/lang/zh-TW.umd.prod.js +1 -1
  104. package/dist/quasar.cjs.prod.js +2 -2
  105. package/dist/quasar.css +14 -1
  106. package/dist/quasar.esm.prod.js +2 -2
  107. package/dist/quasar.prod.css +1 -1
  108. package/dist/quasar.rtl.css +17 -1
  109. package/dist/quasar.rtl.prod.css +1 -1
  110. package/dist/quasar.sass +11 -2
  111. package/dist/quasar.umd.js +77 -46
  112. package/dist/quasar.umd.prod.js +2 -2
  113. package/dist/types/api/qtable.d.ts +4 -4
  114. package/dist/types/index.d.ts +21 -1
  115. package/dist/vetur/quasar-attributes.json +12 -0
  116. package/dist/vetur/quasar-tags.json +3 -0
  117. package/dist/web-types/web-types.json +31 -1
  118. package/icon-set/svg-ionicons-v6.js +14 -15
  119. package/icon-set/svg-ionicons-v6.mjs +14 -15
  120. package/lang/index.json +8 -0
  121. package/lang/uz-Cyrl.js +98 -0
  122. package/lang/uz-Cyrl.mjs +93 -0
  123. package/lang/uz-Latn.js +102 -0
  124. package/lang/uz-Latn.mjs +97 -0
  125. package/package.json +1 -1
  126. package/src/components/breadcrumbs/QBreadcrumbs.js +1 -1
  127. package/src/components/btn/QBtn.sass +3 -0
  128. package/src/components/btn/use-btn.js +7 -2
  129. package/src/components/btn/use-btn.json +5 -0
  130. package/src/components/btn-dropdown/QBtnDropdown.js +1 -0
  131. package/src/components/btn-group/QBtnGroup.js +2 -1
  132. package/src/components/btn-group/QBtnGroup.json +5 -0
  133. package/src/components/btn-group/QBtnGroup.sass +3 -0
  134. package/src/components/expansion-item/QExpansionItem.js +1 -1
  135. package/src/components/expansion-item/QExpansionItem.json +8 -1
  136. package/src/components/field/QField.sass +1 -0
  137. package/src/components/file/QFile.js +5 -0
  138. package/src/components/input/QInput.js +7 -1
  139. package/src/components/scroll-area/QScrollArea.js +4 -2
  140. package/src/components/select/QSelect.js +4 -4
  141. package/src/components/tabs/use-tab.js +8 -1
  142. package/src/components/timeline/QTimeline.sass +4 -0
  143. package/src/components/uploader/QUploader.sass +1 -1
  144. package/src/components/uploader/uploader-core.js +3 -3
  145. package/src/composables/private/use-refocus-target.js +1 -1
  146. package/src/directives/Ripple.js +17 -7
  147. package/src/utils/date.js +1 -1
  148. package/src/utils/private/global-dialog.js +13 -19
  149. package/wrappers/index.js +12 -0
  150. package/wrappers/index.mjs +12 -0
@@ -0,0 +1,97 @@
1
+ export default {
2
+ isoName: 'uz-Latn',
3
+ nativeName: 'O\'zbekcha (Lotin)',
4
+ label: {
5
+ clear: 'Tozalash',
6
+ ok: 'OK',
7
+ cancel: 'Bekor qilish',
8
+ close: 'Yopish',
9
+ set: 'O\'rnatish',
10
+ select: 'Tanlash',
11
+ reset: 'Qayta o\'rnatish',
12
+ remove: 'O\'chirish',
13
+ update: 'Yangilash',
14
+ create: 'Yaratish',
15
+ search: 'Qidirish',
16
+ filter: 'Filtrlash',
17
+ refresh: 'Yangilash'
18
+ },
19
+ date: {
20
+ days: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
21
+ '_'
22
+ ),
23
+ daysShort: 'Yak_Du_Se_Chor_Pay_Juma_Shanba'.split('_'),
24
+ months:
25
+ 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
26
+ '_'
27
+ ),
28
+ monthsShort: 'Yan_Fev_Mart_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split(
29
+ '_'
30
+ ),
31
+ firstDayOfWeek: 1, // 0-6, 0 - Yakshanba, 1 Dushanba, ...
32
+ format24h: true,
33
+ pluralDay: 'Kunlar'
34
+ },
35
+ table: {
36
+ noData: 'Ma\'lumotlar topilmadi',
37
+ noResults: 'Qidiruv bo\'yicha ma\'lumotlar topilmadi',
38
+ loading: 'Yuklanmoqda...',
39
+ selectedRecords: (rows) =>
40
+ (rows === 1
41
+ ? '1 ta malumot tanlandi.'
42
+ : (rows === 0 ? 'Hech qanday' : rows) + ' ma\'lumotlar tanlanmadi.'),
43
+ recordsPerPage: 'Saxifadagi qatorlar:',
44
+ allRows: 'Barchasi',
45
+ pagination: (start, end, total) => start + '-' + end + ' jami ' + total,
46
+ columns: 'Ustunlar'
47
+ },
48
+ editor: {
49
+ url: 'URL',
50
+ bold: 'Qalin',
51
+ italic: 'Kursiv',
52
+ strikethrough: 'Chizilgan',
53
+ underline: 'Tagiga chizilgan',
54
+ unorderedList: 'Tartibsiz ro\'yxat',
55
+ orderedList: 'Tartibga keltirilgan ro\'yxat',
56
+ subscript: 'Satr ostida',
57
+ superscript: 'Satr ustida',
58
+ hyperlink: 'Giperhavola',
59
+ toggleFullscreen: 'To\'liq ekran rejimiga o\'tish',
60
+ quote: 'Iqtibos',
61
+ left: 'Chapga saflash',
62
+ center: 'Markazga saflash',
63
+ right: 'O\'nggadan saflash',
64
+ justify: 'Ikki tomondan saflash',
65
+ print: 'Chop etish',
66
+ outdent: 'Chekinishni kamaytirish',
67
+ indent: 'Chekinishni ko\'paytirish',
68
+ removeFormat: 'Formatlashni o\'chirib tashlash',
69
+ formatting: 'Formatlash',
70
+ fontSize: 'Shrift hajmi',
71
+ align: 'Saflash',
72
+ hr: 'Gorizontal qoidani kiritish',
73
+ undo: 'Bekor qilish',
74
+ redo: 'Takrorlash',
75
+ heading1: 'Sarlavha 1',
76
+ heading2: 'Sarlavha 2',
77
+ heading3: 'Sarlavha 3',
78
+ heading4: 'Sarlavha 4',
79
+ heading5: 'Sarlavha 5',
80
+ heading6: 'Sarlavha 6',
81
+ paragraph: 'Paragraf',
82
+ code: 'Kod',
83
+ size1: 'Juda kichkik',
84
+ size2: 'Biroz kichik',
85
+ size3: 'Oddiy',
86
+ size4: 'O\'rta katta',
87
+ size5: 'Katta',
88
+ size6: 'Juda katta',
89
+ size7: 'Maksimal',
90
+ defaultFont: 'Standart shrift',
91
+ viewSource: 'Manbani ko\'rish'
92
+ },
93
+ tree: {
94
+ noNodes: 'Kesishmalar mavjud emas',
95
+ noResults: 'Mos keladigan kesishmalar topilmadi'
96
+ }
97
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.7.3",
3
+ "version": "2.7.6",
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",
@@ -6,7 +6,7 @@ import { createComponent } from '../../utils/private/create.js'
6
6
  import { hSlot } from '../../utils/private/render.js'
7
7
  import { getNormalizedVNodes } from '../../utils/private/vm.js'
8
8
 
9
- const disabledValues = [ void 0, true ]
9
+ const disabledValues = [ '', true ]
10
10
 
11
11
  export default createComponent({
12
12
  name: 'QBreadcrumbs',
@@ -94,6 +94,9 @@
94
94
  min-width: 3em
95
95
  min-height: 3em
96
96
 
97
+ &--square
98
+ border-radius: 0
99
+
97
100
  &--flat, &--outline, &--unelevated
98
101
  &:before
99
102
  box-shadow: none
@@ -38,6 +38,7 @@ export const useBtnProps = {
38
38
  iconRight: String,
39
39
 
40
40
  round: Boolean,
41
+ square: Boolean,
41
42
  outline: Boolean,
42
43
  flat: Boolean,
43
44
  unelevated: Boolean,
@@ -171,8 +172,11 @@ export default function (props) {
171
172
  colors = `text-${ props.textColor }`
172
173
  }
173
174
 
174
- return `q-btn--${ design.value } `
175
- + `q-btn--${ props.round === true ? 'round' : `rectangle${ isRounded.value === true ? ' q-btn--rounded' : '' }` }`
175
+ const shape = props.round === true
176
+ ? 'round'
177
+ : `rectangle${ isRounded.value === true ? ' q-btn--rounded' : (props.square === true ? ' q-btn--square' : '') }`
178
+
179
+ return `q-btn--${ design.value } q-btn--${ shape }`
176
180
  + (colors !== void 0 ? ' ' + colors : '')
177
181
  + (isActionable.value === true ? ' q-btn--actionable q-focusable q-hoverable' : (props.disable === true ? ' disabled' : ''))
178
182
  + (props.fab === true ? ' q-btn--fab' : (props.fabMini === true ? ' q-btn--fab-mini' : ''))
@@ -180,6 +184,7 @@ export default function (props) {
180
184
  + (props.dense === true ? ' q-btn--dense' : '')
181
185
  + (props.stretch === true ? ' no-border-radius self-stretch' : '')
182
186
  + (props.glossy === true ? ' glossy' : '')
187
+ + (props.square ? ' q-btn--square' : '')
183
188
  })
184
189
 
185
190
  const innerClasses = computed(() =>
@@ -91,6 +91,11 @@
91
91
  "category": "style"
92
92
  },
93
93
 
94
+ "square": {
95
+ "extends": "square",
96
+ "addedIn": "v2.7.6"
97
+ },
98
+
94
99
  "glossy": {
95
100
  "type": "Boolean",
96
101
  "desc": "Applies a glossy effect",
@@ -181,6 +181,7 @@ export default createComponent({
181
181
  outline: props.outline,
182
182
  flat: props.flat,
183
183
  rounded: props.rounded,
184
+ square: props.square,
184
185
  push: props.push,
185
186
  unelevated: props.unelevated,
186
187
  glossy: props.glossy,
@@ -11,6 +11,7 @@ export default createComponent({
11
11
  outline: Boolean,
12
12
  flat: Boolean,
13
13
  rounded: Boolean,
14
+ square: Boolean,
14
15
  push: Boolean,
15
16
  stretch: Boolean,
16
17
  glossy: Boolean,
@@ -19,7 +20,7 @@ export default createComponent({
19
20
 
20
21
  setup (props, { slots }) {
21
22
  const classes = computed(() => {
22
- const cls = [ 'unelevated', 'outline', 'flat', 'rounded', 'push', 'stretch', 'glossy' ]
23
+ const cls = [ 'unelevated', 'outline', 'flat', 'rounded', 'square', 'push', 'stretch', 'glossy' ]
23
24
  .filter(t => props[ t ] === true)
24
25
  .map(t => `q-btn-group--${ t }`).join(' ')
25
26
 
@@ -34,6 +34,11 @@
34
34
  "category": "style"
35
35
  },
36
36
 
37
+ "square": {
38
+ "extends": "square",
39
+ "addedIn": "v2.7.6"
40
+ },
41
+
37
42
  "push": {
38
43
  "type": "Boolean",
39
44
  "desc": "Use 'push' design for buttons",
@@ -56,6 +56,9 @@
56
56
  &--rounded
57
57
  border-radius: $button-rounded-border-radius
58
58
 
59
+ &--square
60
+ border-radius: 0
61
+
59
62
  &--flat, &--outline, &--unelevated
60
63
  box-shadow: none
61
64
 
@@ -235,7 +235,7 @@ export default createComponent({
235
235
  let child
236
236
 
237
237
  if (slots.header !== void 0) {
238
- child = [].concat(slots.header())
238
+ child = [].concat(slots.header({ expanded: showing.value === true }))
239
239
  }
240
240
  else {
241
241
  child = [
@@ -163,7 +163,14 @@
163
163
  },
164
164
 
165
165
  "header": {
166
- "desc": "Slot used for overriding default header"
166
+ "desc": "Slot used for overriding default header",
167
+ "scope": {
168
+ "expanded": {
169
+ "type": "Boolean",
170
+ "desc": "QExpansionItem expanded status",
171
+ "addedIn": "v2.7.6"
172
+ }
173
+ }
167
174
  }
168
175
  },
169
176
 
@@ -125,6 +125,7 @@ $field-transition-label-right-up: .324s cubic-bezier(.4,0,.2,1)
125
125
  width: 100%
126
126
  min-width: 0 // needed for FF
127
127
  outline: 0 !important // needed for FF
128
+ user-select: auto
128
129
 
129
130
  &:-webkit-autofill
130
131
  -webkit-animation-name: q-autofill
@@ -147,6 +147,11 @@ export default createComponent({
147
147
 
148
148
  function addFilesToQueue (e, fileList) {
149
149
  const files = processFiles(e, fileList, innerValue.value, isAppending.value)
150
+ const fileInput = getFileInput()
151
+
152
+ if (fileInput !== void 0 && fileInput !== null) {
153
+ fileInput.value = ''
154
+ }
150
155
 
151
156
  // if nothing to do...
152
157
  if (files === void 0) { return }
@@ -208,7 +208,7 @@ export default createComponent({
208
208
  }
209
209
 
210
210
  function onInput (e) {
211
- if (!e || !e.target || e.target.qComposing === true) {
211
+ if (!e || !e.target) {
212
212
  return
213
213
  }
214
214
 
@@ -219,6 +219,12 @@ export default createComponent({
219
219
 
220
220
  const val = e.target.value
221
221
 
222
+ if (e.target.qComposing === true) {
223
+ temp.value = val
224
+
225
+ return
226
+ }
227
+
222
228
  if (hasMask.value === true) {
223
229
  updateMaskValue(val, false, e.inputType)
224
230
  }
@@ -24,6 +24,8 @@ const panOpts = {
24
24
  mouseAllDir: true
25
25
  }
26
26
 
27
+ const getMinThumbSize = size => (size >= 250 ? 50 : Math.ceil(size / 5))
28
+
27
29
  export default createComponent({
28
30
  name: 'QScrollArea',
29
31
 
@@ -115,7 +117,7 @@ export default createComponent({
115
117
  Math.round(
116
118
  between(
117
119
  container.vertical.value * container.vertical.value / scroll.vertical.size.value,
118
- 50,
120
+ getMinThumbSize(container.vertical.value),
119
121
  container.vertical.value
120
122
  )
121
123
  )
@@ -157,7 +159,7 @@ export default createComponent({
157
159
  Math.round(
158
160
  between(
159
161
  container.horizontal.value * container.horizontal.value / scroll.horizontal.size.value,
160
- 50,
162
+ getMinThumbSize(container.horizontal.value),
161
163
  container.horizontal.value
162
164
  )
163
165
  )
@@ -1438,10 +1438,9 @@ export default createComponent({
1438
1438
  showPopup,
1439
1439
 
1440
1440
  floatingLabel: computed(() =>
1441
- (props.hideSelected === true
1442
- ? inputValue.value.length > 0
1443
- : hasValue.value === true
1444
- )
1441
+ (props.hideSelected !== true && hasValue.value === true)
1442
+ || typeof inputValue.value === 'number'
1443
+ || inputValue.value.length > 0
1445
1444
  || fieldValueIsFilled(props.displayValue)
1446
1445
  ),
1447
1446
 
@@ -1501,6 +1500,7 @@ export default createComponent({
1501
1500
  class: 'q-select__focus-target',
1502
1501
  id: isTarget === true ? state.targetUid.value : void 0,
1503
1502
  readonly: true,
1503
+ 'data-autofocus': (fromDialog !== true && props.autofocus === true) || void 0,
1504
1504
  ...attrs,
1505
1505
  onKeydown: onTargetKeydown,
1506
1506
  onKeyup: onTargetKeyup,
@@ -138,9 +138,16 @@ export default function (props, slots, emit, routerProps) {
138
138
  if (isKeyCode(e, [ 13, 32 ])) {
139
139
  onClick(e, true)
140
140
  }
141
- else if (shouldIgnoreKey(e) !== true && e.keyCode >= 35 && e.keyCode <= 40) {
141
+ else if (
142
+ shouldIgnoreKey(e) !== true
143
+ && e.keyCode >= 35
144
+ && e.keyCode <= 40
145
+ && e.altKey !== true
146
+ && e.metaKey !== true
147
+ ) {
142
148
  $tabs.onKbdNavigate(e.keyCode, proxy.$el) === true && stopAndPrevent(e)
143
149
  }
150
+
144
151
  emit('keydown', e)
145
152
  }
146
153
 
@@ -60,6 +60,10 @@
60
60
  line-height: 38px
61
61
  width: 100%
62
62
  color: #fff
63
+ > svg,
64
+ > img
65
+ width: 1em
66
+ height: 1em
63
67
 
64
68
  &__dot-img
65
69
  position: absolute
@@ -22,7 +22,7 @@
22
22
  &::-webkit-file-upload-button
23
23
  cursor: pointer
24
24
 
25
- &__header, &__file
25
+ &__file
26
26
  &:before
27
27
  content: ''
28
28
  border-top-left-radius: inherit
@@ -264,14 +264,14 @@ export function getRenderer (getPlugin) {
264
264
 
265
265
  function addFilesToQueue (e, fileList) {
266
266
  const localFiles = processFiles(e, fileList, state.files.value, true)
267
-
268
- if (localFiles === void 0) { return }
269
-
270
267
  const fileInput = getFileInput()
268
+
271
269
  if (fileInput !== void 0 && fileInput !== null) {
272
270
  fileInput.value = ''
273
271
  }
274
272
 
273
+ if (localFiles === void 0) { return }
274
+
275
275
  localFiles.forEach(file => {
276
276
  state.updateFileStatus(file, 'idle')
277
277
  uploadSize.value += file.size
@@ -4,7 +4,7 @@ export default function (props, rootRef) {
4
4
  const refocusRef = ref(null)
5
5
 
6
6
  const refocusTargetEl = computed(() => {
7
- if (props.disable !== true) {
7
+ if (props.disable === true) {
8
8
  return null
9
9
  }
10
10
 
@@ -78,8 +78,14 @@ export default createDirective(__QUASAR_SSR_SERVER__
78
78
  name: 'ripple',
79
79
 
80
80
  beforeMount (el, binding) {
81
+ const cfg = binding.instance.$.appContext.config.globalProperties.$q.config || {}
82
+
83
+ if (cfg.ripple === false) {
84
+ return
85
+ }
86
+
81
87
  const ctx = {
82
- cfg: binding.instance.$.appContext.config.globalProperties.$q.config,
88
+ cfg,
83
89
  enabled: binding.value !== false,
84
90
  modifiers: {},
85
91
  abort: [],
@@ -121,19 +127,23 @@ export default createDirective(__QUASAR_SSR_SERVER__
121
127
  updated (el, binding) {
122
128
  if (binding.oldValue !== binding.value) {
123
129
  const ctx = el.__qripple
124
- ctx.enabled = binding.value !== false
130
+ if (ctx !== void 0) {
131
+ ctx.enabled = binding.value !== false
125
132
 
126
- if (ctx.enabled === true && Object(binding.value) === binding.value) {
127
- updateModifiers(ctx, binding)
133
+ if (ctx.enabled === true && Object(binding.value) === binding.value) {
134
+ updateModifiers(ctx, binding)
135
+ }
128
136
  }
129
137
  }
130
138
  },
131
139
 
132
140
  beforeUnmount (el) {
133
141
  const ctx = el.__qripple
134
- ctx.abort.forEach(fn => { fn() })
135
- cleanEvt(ctx, 'main')
136
- delete el._qripple
142
+ if (ctx !== void 0) {
143
+ ctx.abort.forEach(fn => { fn() })
144
+ cleanEvt(ctx, 'main')
145
+ delete el._qripple
146
+ }
137
147
  }
138
148
  }
139
149
  )
package/src/utils/date.js CHANGED
@@ -737,7 +737,7 @@ const formatter = {
737
737
  YY (date, dateLocale, forcedYear) {
738
738
  // workaround for < 1900 with new Date()
739
739
  const y = this.YYYY(date, dateLocale, forcedYear) % 100
740
- return y > 0
740
+ return y >= 0
741
741
  ? pad(y)
742
742
  : '-' + pad(Math.abs(y))
743
743
  },
@@ -1,4 +1,4 @@
1
- import { h, ref, nextTick } from 'vue'
1
+ import { h, ref } from 'vue'
2
2
 
3
3
  import { createChildApp } from '../../install-quasar.js'
4
4
  import { createGlobalNode, removeGlobalNode } from './global-nodes.js'
@@ -73,10 +73,10 @@ export default function (DefaultComponent, supportsCustomComponent, parentApp) {
73
73
 
74
74
  // account for "script setup" + async component way of declaring component
75
75
  if (
76
- target.component.subTree &&
77
- target.component.subTree.component &&
78
- target.component.subTree.component.proxy &&
79
- target.component.subTree.component.proxy[ cmd ]
76
+ target.component.subTree
77
+ && target.component.subTree.component
78
+ && target.component.subTree.component.proxy
79
+ && target.component.subTree.component.proxy[ cmd ]
80
80
  ) {
81
81
  target.component.subTree.component.proxy[ cmd ]()
82
82
  return
@@ -149,25 +149,19 @@ export default function (DefaultComponent, supportsCustomComponent, parentApp) {
149
149
  ...props,
150
150
  ref: dialogRef,
151
151
  onOk,
152
- onHide
152
+ onHide,
153
+ onVnodeMounted (...args) {
154
+ if (typeof props.onVnodeMounted === 'function') {
155
+ props.onVnodeMounted(...args)
156
+ }
157
+
158
+ applyState('show')
159
+ }
153
160
  })
154
161
  }, parentApp)
155
162
 
156
163
  vm = app.mount(el)
157
164
 
158
- function show () {
159
- applyState('show')
160
- }
161
-
162
- if (typeof DialogComponent.__asyncLoader === 'function') {
163
- DialogComponent.__asyncLoader().then(() => {
164
- nextTick(show)
165
- })
166
- }
167
- else {
168
- nextTick(show)
169
- }
170
-
171
165
  return API
172
166
  }
173
167
  }
package/wrappers/index.js CHANGED
@@ -30,6 +30,18 @@ module.exports.store = function (callback) {
30
30
  return callback
31
31
  }
32
32
 
33
+ module.exports.bexBackground = function (callback) {
34
+ return callback
35
+ }
36
+
37
+ module.exports.bexContent = function (callback) {
38
+ return callback
39
+ }
40
+
41
+ module.exports.bexDom = function (callback) {
42
+ return callback
43
+ }
44
+
33
45
  /**
34
46
  * Below only for @quasar/app-webpack
35
47
  */
@@ -30,6 +30,18 @@ export function ssrMiddleware (callback) {
30
30
  return callback
31
31
  }
32
32
 
33
+ export function bexBackground (callback) {
34
+ return callback
35
+ }
36
+
37
+ export function bexContent (callback) {
38
+ return callback
39
+ }
40
+
41
+ export function bexDom (callback) {
42
+ return callback
43
+ }
44
+
33
45
  /**
34
46
  * Below only for @quasar/app-webpack
35
47
  */