quasar 2.7.0 → 2.7.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 (115) hide show
  1. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  2. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  3. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  4. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  5. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  6. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  7. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  8. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  9. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  10. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  11. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  12. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  13. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  14. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  15. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  16. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  17. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  18. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  19. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  20. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  21. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  22. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  37. package/dist/icon-set/themify.umd.prod.js +1 -1
  38. package/dist/lang/ar-TN.umd.prod.js +1 -1
  39. package/dist/lang/ar.umd.prod.js +1 -1
  40. package/dist/lang/az-Latn.umd.prod.js +1 -1
  41. package/dist/lang/bg.umd.prod.js +1 -1
  42. package/dist/lang/bn.umd.prod.js +1 -1
  43. package/dist/lang/ca.umd.prod.js +1 -1
  44. package/dist/lang/cs.umd.prod.js +1 -1
  45. package/dist/lang/da.umd.prod.js +1 -1
  46. package/dist/lang/de.umd.prod.js +1 -1
  47. package/dist/lang/el.umd.prod.js +1 -1
  48. package/dist/lang/en-GB.umd.prod.js +1 -1
  49. package/dist/lang/en-US.umd.prod.js +1 -1
  50. package/dist/lang/eo.umd.prod.js +1 -1
  51. package/dist/lang/es.umd.prod.js +1 -1
  52. package/dist/lang/et.umd.prod.js +1 -1
  53. package/dist/lang/eu.umd.prod.js +1 -1
  54. package/dist/lang/fa-IR.umd.prod.js +1 -1
  55. package/dist/lang/fa.umd.prod.js +1 -1
  56. package/dist/lang/fi.umd.prod.js +1 -1
  57. package/dist/lang/fr.umd.prod.js +1 -1
  58. package/dist/lang/gn.umd.prod.js +1 -1
  59. package/dist/lang/he.umd.prod.js +1 -1
  60. package/dist/lang/hr.umd.prod.js +1 -1
  61. package/dist/lang/hu.umd.prod.js +1 -1
  62. package/dist/lang/id.umd.prod.js +1 -1
  63. package/dist/lang/is.umd.prod.js +1 -1
  64. package/dist/lang/it.umd.prod.js +1 -1
  65. package/dist/lang/ja.umd.prod.js +1 -1
  66. package/dist/lang/km.umd.prod.js +1 -1
  67. package/dist/lang/ko-KR.umd.prod.js +1 -1
  68. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  69. package/dist/lang/kz.umd.prod.js +1 -1
  70. package/dist/lang/lt.umd.prod.js +1 -1
  71. package/dist/lang/lu.umd.prod.js +1 -1
  72. package/dist/lang/lv.umd.prod.js +1 -1
  73. package/dist/lang/ml.umd.prod.js +1 -1
  74. package/dist/lang/mm.umd.prod.js +1 -1
  75. package/dist/lang/ms.umd.prod.js +1 -1
  76. package/dist/lang/my.umd.prod.js +1 -1
  77. package/dist/lang/nb-NO.umd.prod.js +1 -1
  78. package/dist/lang/nl.umd.prod.js +1 -1
  79. package/dist/lang/pl.umd.prod.js +1 -1
  80. package/dist/lang/pt-BR.umd.prod.js +1 -1
  81. package/dist/lang/pt.umd.prod.js +1 -1
  82. package/dist/lang/ro.umd.prod.js +1 -1
  83. package/dist/lang/ru.umd.prod.js +1 -1
  84. package/dist/lang/sk.umd.prod.js +1 -1
  85. package/dist/lang/sl.umd.prod.js +1 -1
  86. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  87. package/dist/lang/sr.umd.prod.js +1 -1
  88. package/dist/lang/sv.umd.prod.js +1 -1
  89. package/dist/lang/ta.umd.prod.js +1 -1
  90. package/dist/lang/th.umd.prod.js +1 -1
  91. package/dist/lang/tr.umd.prod.js +1 -1
  92. package/dist/lang/ug.umd.prod.js +1 -1
  93. package/dist/lang/uk.umd.prod.js +1 -1
  94. package/dist/lang/vi.umd.prod.js +1 -1
  95. package/dist/lang/zh-CN.umd.prod.js +1 -1
  96. package/dist/lang/zh-TW.umd.prod.js +1 -1
  97. package/dist/quasar.cjs.prod.js +2 -2
  98. package/dist/quasar.css +0 -5
  99. package/dist/quasar.esm.prod.js +2 -2
  100. package/dist/quasar.prod.css +1 -1
  101. package/dist/quasar.rtl.css +0 -6
  102. package/dist/quasar.rtl.prod.css +1 -1
  103. package/dist/quasar.sass +1 -5
  104. package/dist/quasar.umd.js +49 -31
  105. package/dist/quasar.umd.prod.js +2 -2
  106. package/dist/web-types/web-types.json +1 -1
  107. package/package.json +6 -5
  108. package/src/components/badge/QBadge.js +2 -2
  109. package/src/components/checkbox/use-checkbox.js +8 -7
  110. package/src/components/input/QInput.js +1 -1
  111. package/src/components/radio/QRadio.js +2 -2
  112. package/src/components/select/QSelect.js +1 -1
  113. package/src/components/tabs/QTabs.sass +0 -6
  114. package/src/composables/private/use-key-composition.js +15 -8
  115. package/src/utils/private/global-dialog.js +22 -10
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.7.0",
5
+ "version": "2.7.1",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.7.0",
3
+ "version": "2.7.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",
@@ -76,14 +76,15 @@
76
76
  "cssnano": "^5.1.4",
77
77
  "diff": "^5.0.0",
78
78
  "eslint": "^7.4.0",
79
- "eslint-config-standard": "^16.0.2",
79
+ "eslint-config-standard": "^17.0.0",
80
+ "eslint-plugin-import": "^2.19.1",
81
+ "eslint-plugin-n": "^15.0.0",
82
+ "eslint-plugin-promise": "^6.0.0",
80
83
  "eslint-friendly-formatter": "^4.0.1",
81
84
  "eslint-plugin-cypress": "^2.12.1",
82
- "eslint-plugin-import": "^2.18.2",
83
85
  "eslint-plugin-no-only-tests": "^2.6.0",
84
86
  "eslint-plugin-node": "^11.1.0",
85
- "eslint-plugin-promise": "^4.2.1",
86
- "eslint-plugin-vue": "^7.0.0",
87
+ "eslint-plugin-vue": "^8.0.0",
87
88
  "fast-glob": "^3.2.7",
88
89
  "module-alias": "^2.2.2",
89
90
  "postcss-rtlcss": "^3.5.3",
@@ -1,7 +1,7 @@
1
1
  import { h, computed } from 'vue'
2
2
 
3
3
  import { createComponent } from '../../utils/private/create.js'
4
- import { hSlot } from '../../utils/private/render.js'
4
+ import { hMergeSlot } from '../../utils/private/render.js'
5
5
 
6
6
  const alignValues = [ 'top', 'middle', 'bottom' ]
7
7
 
@@ -55,6 +55,6 @@ export default createComponent({
55
55
  style: style.value,
56
56
  role: 'alert',
57
57
  'aria-label': props.label
58
- }, props.label !== void 0 ? props.label : hSlot(slots.default))
58
+ }, hMergeSlot(slots.default, props.label !== void 0 ? [ props.label ] : []))
59
59
  }
60
60
  })
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, getCurrentInstance, toRaw } from 'vue'
2
2
 
3
3
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
4
4
  import useSize, { useSizeProps } from '../../composables/private/use-size.js'
@@ -61,22 +61,23 @@ export default function (type, getInner) {
61
61
  props.val !== void 0 && Array.isArray(props.modelValue)
62
62
  )
63
63
 
64
- const index = computed(() => (
65
- modelIsArray.value === true
66
- ? props.modelValue.indexOf(props.val)
64
+ const index = computed(() => {
65
+ const val = toRaw(props.val)
66
+ return modelIsArray.value === true
67
+ ? props.modelValue.findIndex(opt => toRaw(opt) === val)
67
68
  : -1
68
- ))
69
+ })
69
70
 
70
71
  const isTrue = computed(() => (
71
72
  modelIsArray.value === true
72
73
  ? index.value > -1
73
- : props.modelValue === props.trueValue
74
+ : toRaw(props.modelValue) === toRaw(props.trueValue)
74
75
  ))
75
76
 
76
77
  const isFalse = computed(() => (
77
78
  modelIsArray.value === true
78
79
  ? index.value === -1
79
- : props.modelValue === props.falseValue
80
+ : toRaw(props.modelValue) === toRaw(props.falseValue)
80
81
  ))
81
82
 
82
83
  const isIndeterminate = computed(() =>
@@ -208,7 +208,7 @@ export default createComponent({
208
208
  }
209
209
 
210
210
  function onInput (e) {
211
- if (!e || !e.target || e.target.composing === true) {
211
+ if (!e || !e.target || e.target.qComposing === true) {
212
212
  return
213
213
  }
214
214
 
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, getCurrentInstance, toRaw } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
 
@@ -64,7 +64,7 @@ export default createComponent({
64
64
  const rootRef = ref(null)
65
65
  const { refocusTargetEl, refocusTarget } = useRefocusTarget(props, rootRef)
66
66
 
67
- const isTrue = computed(() => props.modelValue === props.val)
67
+ const isTrue = computed(() => toRaw(props.modelValue) === toRaw(props.val))
68
68
 
69
69
  const classes = computed(() =>
70
70
  'q-radio cursor-pointer no-outline row inline no-wrap items-center'
@@ -1013,7 +1013,7 @@ export default createComponent({
1013
1013
  function onInput (e) {
1014
1014
  clearTimeout(inputTimer)
1015
1015
 
1016
- if (e && e.target && e.target.composing === true) {
1016
+ if (e && e.target && e.target.qComposing === true) {
1017
1017
  return
1018
1018
  }
1019
1019
 
@@ -181,9 +181,3 @@
181
181
  min-height: 36px
182
182
  &--full
183
183
  min-height: 52px
184
-
185
-
186
- @media (min-width: $breakpoint-lg-min)
187
- .q-header, .q-footer
188
- .q-tab__content
189
- min-width: 128px
@@ -1,26 +1,33 @@
1
+ import { client } from '../../plugins/Platform.js'
2
+
1
3
  const isJapanese = /[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/
2
4
  const isChinese = /[\u4e00-\u9fff\u3400-\u4dbf\u{20000}-\u{2a6df}\u{2a700}-\u{2b73f}\u{2b740}-\u{2b81f}\u{2b820}-\u{2ceaf}\uf900-\ufaff\u3300-\u33ff\ufe30-\ufe4f\uf900-\ufaff\u{2f800}-\u{2fa1f}]/u
3
5
  const isKorean = /[\u3131-\u314e\u314f-\u3163\uac00-\ud7a3]/
6
+ const isPlainText = /[a-z0-9_ -]$/i
4
7
 
5
8
  export default function (onInput) {
6
9
  return function onComposition (e) {
7
10
  if (e.type === 'compositionend' || e.type === 'change') {
8
- if (e.target.composing !== true) { return }
9
- e.target.composing = false
11
+ if (e.target.qComposing !== true) { return }
12
+ e.target.qComposing = false
10
13
  onInput(e)
11
14
  }
12
15
  else if (e.type === 'compositionupdate') {
13
16
  if (
14
- typeof e.data === 'string'
15
- && isJapanese.test(e.data) === false
16
- && isChinese.test(e.data) === false
17
- && isKorean.test(e.data) === false
17
+ e.target.qComposing !== true
18
+ && typeof e.data === 'string'
18
19
  ) {
19
- e.target.composing = false
20
+ const isComposing = client.is.firefox === true
21
+ ? isPlainText.test(e.data) === false
22
+ : isJapanese.test(e.data) === true && isChinese.test(e.data) === true && isKorean.test(e.data) === true
23
+
24
+ if (isComposing === true) {
25
+ e.target.qComposing = true
26
+ }
20
27
  }
21
28
  }
22
29
  else {
23
- e.target.composing = true
30
+ e.target.qComposing = true
24
31
  }
25
32
  }
26
33
  }
@@ -59,19 +59,31 @@ export default function (DefaultComponent, supportsCustomComponent, parentApp) {
59
59
  const applyState = cmd => {
60
60
  if (dialogRef.value !== null && dialogRef.value[ cmd ] !== void 0) {
61
61
  dialogRef.value[ cmd ]()
62
+ return
62
63
  }
63
- else if (
64
+
65
+ const target = vm.$.subTree
66
+
67
+ if (target && target.component) {
64
68
  // account for "script setup" way of declaring component
65
- vm.$.subTree
66
- && vm.$.subTree.component
67
- && vm.$.subTree.component.proxy
68
- && vm.$.subTree.component.proxy[ cmd ]
69
- ) {
70
- vm.$.subTree.component.proxy[ cmd ]()
71
- }
72
- else {
73
- console.error('[Quasar] Incorrectly defined Dialog component')
69
+ if (target.component.proxy && target.component.proxy[ cmd ]) {
70
+ target.component.proxy[ cmd ]()
71
+ return
72
+ }
73
+
74
+ // account for "script setup" + async component way of declaring component
75
+ if (
76
+ target.component.subTree &&
77
+ target.component.subTree.component &&
78
+ target.component.subTree.component.proxy &&
79
+ target.component.subTree.component.proxy[ cmd ]
80
+ ) {
81
+ target.component.subTree.component.proxy[ cmd ]()
82
+ return
83
+ }
74
84
  }
85
+
86
+ console.error('[Quasar] Incorrectly defined Dialog component')
75
87
  }
76
88
 
77
89
  const