quasar 2.14.2 → 2.14.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 (150) hide show
  1. package/dist/api/Lang.json +1 -1
  2. package/dist/api/Morph.json +1 -1
  3. package/dist/api/QField.json +1 -1
  4. package/dist/api/QPagination.json +1 -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/mdi-v7.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  43. package/dist/icon-set/themify.umd.prod.js +1 -1
  44. package/dist/lang/ar-TN.umd.prod.js +1 -1
  45. package/dist/lang/ar.umd.prod.js +1 -1
  46. package/dist/lang/az-Latn.umd.prod.js +1 -1
  47. package/dist/lang/bg.umd.prod.js +1 -1
  48. package/dist/lang/bn.umd.prod.js +1 -1
  49. package/dist/lang/ca.umd.prod.js +1 -1
  50. package/dist/lang/cs.umd.prod.js +1 -1
  51. package/dist/lang/da.umd.prod.js +1 -1
  52. package/dist/lang/de-CH.umd.prod.js +2 -2
  53. package/dist/lang/de-DE.umd.prod.js +2 -2
  54. package/dist/lang/de.umd.prod.js +2 -2
  55. package/dist/lang/el.umd.prod.js +1 -1
  56. package/dist/lang/en-GB.umd.prod.js +1 -1
  57. package/dist/lang/en-US.umd.prod.js +1 -1
  58. package/dist/lang/eo.umd.prod.js +1 -1
  59. package/dist/lang/es.umd.prod.js +1 -1
  60. package/dist/lang/et.umd.prod.js +1 -1
  61. package/dist/lang/eu.umd.prod.js +1 -1
  62. package/dist/lang/fa-IR.umd.prod.js +1 -1
  63. package/dist/lang/fa.umd.prod.js +1 -1
  64. package/dist/lang/fi.umd.prod.js +1 -1
  65. package/dist/lang/fr.umd.prod.js +1 -1
  66. package/dist/lang/gn.umd.prod.js +1 -1
  67. package/dist/lang/he.umd.prod.js +1 -1
  68. package/dist/lang/hi.umd.prod.js +1 -1
  69. package/dist/lang/hr.umd.prod.js +1 -1
  70. package/dist/lang/hu.umd.prod.js +1 -1
  71. package/dist/lang/id.umd.prod.js +1 -1
  72. package/dist/lang/is.umd.prod.js +1 -1
  73. package/dist/lang/it.umd.prod.js +1 -1
  74. package/dist/lang/ja.umd.prod.js +1 -1
  75. package/dist/lang/kk.umd.prod.js +1 -1
  76. package/dist/lang/km.umd.prod.js +1 -1
  77. package/dist/lang/ko-KR.umd.prod.js +1 -1
  78. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  79. package/dist/lang/lt.umd.prod.js +1 -1
  80. package/dist/lang/lu.umd.prod.js +1 -1
  81. package/dist/lang/lv.umd.prod.js +1 -1
  82. package/dist/lang/mk.umd.prod.js +1 -1
  83. package/dist/lang/ml.umd.prod.js +1 -1
  84. package/dist/lang/mm.umd.prod.js +1 -1
  85. package/dist/lang/ms.umd.prod.js +1 -1
  86. package/dist/lang/my.umd.prod.js +1 -1
  87. package/dist/lang/nb-NO.umd.prod.js +1 -1
  88. package/dist/lang/nl.umd.prod.js +1 -1
  89. package/dist/lang/pl.umd.prod.js +1 -1
  90. package/dist/lang/pt-BR.umd.prod.js +1 -1
  91. package/dist/lang/pt.umd.prod.js +1 -1
  92. package/dist/lang/ro.umd.prod.js +1 -1
  93. package/dist/lang/ru.umd.prod.js +1 -1
  94. package/dist/lang/sk.umd.prod.js +1 -1
  95. package/dist/lang/sl.umd.prod.js +1 -1
  96. package/dist/lang/sm.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/uz-Cyrl.umd.prod.js +1 -1
  106. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  107. package/dist/lang/vi.umd.prod.js +1 -1
  108. package/dist/lang/zh-CN.umd.prod.js +1 -1
  109. package/dist/lang/zh-TW.umd.prod.js +1 -1
  110. package/dist/quasar.cjs.prod.js +2 -2
  111. package/dist/quasar.esm.js +92 -102
  112. package/dist/quasar.esm.prod.js +2 -2
  113. package/dist/quasar.sass +1 -1
  114. package/dist/quasar.umd.js +92 -102
  115. package/dist/quasar.umd.prod.js +2 -2
  116. package/dist/types/index.d.ts +4 -4
  117. package/dist/web-types/web-types.json +1 -1
  118. package/lang/de-CH.js +1 -1
  119. package/lang/de-CH.mjs +1 -1
  120. package/lang/de-DE.js +2 -2
  121. package/lang/de-DE.mjs +2 -2
  122. package/lang/de.js +1 -1
  123. package/lang/de.mjs +1 -1
  124. package/package.json +3 -3
  125. package/src/Lang.json +1 -1
  126. package/src/components/ajax-bar/QAjaxBar.js +12 -2
  127. package/src/components/btn-dropdown/QBtnDropdown.js +4 -4
  128. package/src/components/expansion-item/QExpansionItem.js +4 -3
  129. package/src/components/fab/QFab.js +4 -4
  130. package/src/components/field/QField.json +1 -1
  131. package/src/components/icon/QIcon.js +3 -3
  132. package/src/components/img/QImg.js +1 -0
  133. package/src/components/infinite-scroll/QInfiniteScroll.js +1 -1
  134. package/src/components/menu/__tests__/QMenu.cy.js +24 -0
  135. package/src/components/pagination/QPagination.json +1 -1
  136. package/src/components/slide-item/QSlideItem.js +1 -0
  137. package/src/components/tabs/use-tab.js +1 -1
  138. package/src/composables/private/use-field.js +13 -30
  139. package/src/composables/private/use-id.js +34 -0
  140. package/src/composables/private/use-validate.js +16 -29
  141. package/src/directives/Morph.json +1 -1
  142. package/src/plugins/Dark.js +3 -27
  143. package/src/utils/copy-to-clipboard.js +0 -1
  144. package/src/utils/get-css-var.js +0 -1
  145. package/src/utils/is.js +0 -1
  146. package/src/utils/private/define-reactive-plugin.js +0 -1
  147. package/src/utils/private/global-config.js +0 -1
  148. package/src/utils/private/touch.js +0 -1
  149. package/src/utils/private/vm.js +0 -1
  150. package/src/utils/run-sequential-promises.js +0 -1
@@ -31,7 +31,7 @@ export default function (focused, innerLoading) {
31
31
 
32
32
  const innerError = ref(false)
33
33
  const innerErrorMessage = ref(null)
34
- const isDirtyModel = ref(null)
34
+ const isDirtyModel = ref(false)
35
35
 
36
36
  useFormChild({ validate, resetValidation })
37
37
 
@@ -74,18 +74,20 @@ export default function (focused, innerLoading) {
74
74
  }
75
75
  })
76
76
 
77
+ function onRulesChange () {
78
+ if (
79
+ props.lazyRules !== 'ondemand'
80
+ && canDebounceValidate.value === true
81
+ && isDirtyModel.value === true
82
+ ) {
83
+ debouncedValidate()
84
+ }
85
+ }
86
+
77
87
  watch(() => props.reactiveRules, val => {
78
88
  if (val === true) {
79
89
  if (unwatchRules === void 0) {
80
- unwatchRules = watch(() => props.rules, () => {
81
- if (
82
- canDebounceValidate.value === true
83
- && isDirtyModel.value === true
84
- && props.lazyRules !== 'ondemand'
85
- ) {
86
- debouncedValidate()
87
- }
88
- }, { immediate: true })
90
+ unwatchRules = watch(() => props.rules, onRulesChange, { immediate: true, deep: true })
89
91
  }
90
92
  }
91
93
  else if (unwatchRules !== void 0) {
@@ -94,30 +96,15 @@ export default function (focused, innerLoading) {
94
96
  }
95
97
  }, { immediate: true })
96
98
 
97
- watch(() => props.lazyRules, val => {
98
- if (
99
- val === false
100
- && canDebounceValidate.value === true
101
- && isDirtyModel.value === true
102
- ) {
103
- debouncedValidate()
104
- }
105
- })
99
+ watch(() => props.lazyRules, onRulesChange)
106
100
 
107
101
  watch(focused, val => {
108
102
  if (val === true) {
109
- if (isDirtyModel.value === null) {
110
- isDirtyModel.value = props.lazyRules === true
111
- }
103
+ isDirtyModel.value = true
112
104
  }
113
105
  else if (
114
106
  canDebounceValidate.value === true
115
- && (
116
- // props.lazyRules can also be 'ondemand',
117
- // hence the following form:
118
- props.lazyRules === false
119
- || (props.lazyRules === true && isDirtyModel.value === true)
120
- )
107
+ && props.lazyRules !== 'ondemand'
121
108
  ) {
122
109
  debouncedValidate()
123
110
  }
@@ -126,7 +113,7 @@ export default function (focused, innerLoading) {
126
113
  function resetValidation () {
127
114
  validateIndex++
128
115
  innerLoading.value = false
129
- isDirtyModel.value = null
116
+ isDirtyModel.value = false
130
117
  innerError.value = false
131
118
  innerErrorMessage.value = null
132
119
  debouncedValidate.cancel()
@@ -102,7 +102,7 @@
102
102
 
103
103
  "waitFor": {
104
104
  "type": [ "Number", "String", "Promise<void>" ],
105
- "desc": "Delay animation start for that number of milliseconds, or until a 'transitionend' event is emitted by the destination element, or until the promise is resolved (if the promise is rejected the morphing will abort, but the `toggle function` was already called)",
105
+ "desc": "Delay animation start for that number of milliseconds, or until a 'transitionend' event is emitted by the destination element, or until the promise is resolved (if the promise is rejected the morphing will abort, but the 'toggle function' was already called)",
106
106
  "default": "0",
107
107
  "examples": [ "300", "transitionend" ]
108
108
  },
@@ -1,5 +1,4 @@
1
1
  import defineReactivePlugin from '../utils/private/define-reactive-plugin.js'
2
- import { isRuntimeSsrPreHydration } from './Platform.js'
3
2
 
4
3
  const Plugin = defineReactivePlugin({
5
4
  isActive: false,
@@ -38,7 +37,7 @@ const Plugin = defineReactivePlugin({
38
37
  }
39
38
  },
40
39
 
41
- install ({ $q, onSSRHydrated, ssrContext }) {
40
+ install ({ $q, ssrContext }) {
42
41
  const { dark } = $q.config
43
42
 
44
43
  if (__QUASAR_SSR_SERVER__) {
@@ -66,31 +65,8 @@ const Plugin = defineReactivePlugin({
66
65
 
67
66
  $q.dark = this
68
67
 
69
- if (this.__installed === true && dark === void 0) {
70
- return
71
- }
72
-
73
- this.isActive = dark === true
74
-
75
- const initialVal = dark !== void 0 ? dark : false
76
-
77
- if (isRuntimeSsrPreHydration.value === true) {
78
- const ssrSet = val => {
79
- this.__fromSSR = val
80
- }
81
-
82
- const originalSet = this.set
83
-
84
- this.set = ssrSet
85
- ssrSet(initialVal)
86
-
87
- onSSRHydrated.push(() => {
88
- this.set = originalSet
89
- this.set(this.__fromSSR)
90
- })
91
- }
92
- else {
93
- this.set(initialVal)
68
+ if (this.__installed !== true) {
69
+ this.set(dark !== void 0 ? dark : false)
94
70
  }
95
71
  }
96
72
  })
@@ -1,4 +1,3 @@
1
-
2
1
  import { addFocusout, removeFocusout } from './private/focusout.js'
3
2
 
4
3
  function fallback (text) {
@@ -1,4 +1,3 @@
1
-
2
1
  export default function getCssVar (propName, element = document.body) {
3
2
  if (typeof propName !== 'string') {
4
3
  throw new TypeError('Expected a string as propName')
package/src/utils/is.js CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  export function isDeepEqual (a, b) {
3
2
  if (a === b) {
4
3
  return true
@@ -1,4 +1,3 @@
1
-
2
1
  import { reactive } from 'vue'
3
2
  import { injectProp } from './inject-obj-prop.js'
4
3
 
@@ -1,4 +1,3 @@
1
-
2
1
  export const globalConfig = {}
3
2
  export let globalConfigIsFrozen = false
4
3
 
@@ -1,4 +1,3 @@
1
-
2
1
  const modifiersAll = {
3
2
  left: true,
4
3
  right: true,
@@ -1,4 +1,3 @@
1
-
2
1
  // copied to docs too
3
2
  export function getParentProxy (proxy) {
4
3
  if (Object(proxy.$parent) === proxy.$parent) {
@@ -1,4 +1,3 @@
1
-
2
1
  function parsePromises (sequentialPromises) {
3
2
  const isList = Array.isArray(sequentialPromises)
4
3