quasar 2.1.4 → 2.1.8

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 (131) hide show
  1. package/dist/api/Loading.json +5 -2
  2. package/dist/api/QColor.json +9 -2
  3. package/dist/api/QDate.json +5 -2
  4. package/dist/api/QFile.json +3 -1
  5. package/dist/api/QImg.json +15 -0
  6. package/dist/api/QInput.json +5 -2
  7. package/dist/api/QRadio.json +3 -1
  8. package/dist/api/QRange.json +13 -3
  9. package/dist/api/QSelect.json +3 -1
  10. package/dist/api/QSlider.json +9 -2
  11. package/dist/api/QTabs.json +3 -1
  12. package/dist/api/QTime.json +9 -2
  13. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  14. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  15. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  16. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  17. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  18. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  19. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  20. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  21. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  22. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  23. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  24. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  25. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  26. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-ionicons-v5.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-mdi-v4.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-mdi-v5.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.umd.prod.js +1 -1
  43. package/dist/lang/az-Latn.umd.prod.js +1 -1
  44. package/dist/lang/bg.umd.prod.js +1 -1
  45. package/dist/lang/bn.umd.prod.js +1 -1
  46. package/dist/lang/ca.umd.prod.js +1 -1
  47. package/dist/lang/cs.umd.prod.js +1 -1
  48. package/dist/lang/da.umd.prod.js +1 -1
  49. package/dist/lang/de.umd.prod.js +1 -1
  50. package/dist/lang/el.umd.prod.js +1 -1
  51. package/dist/lang/en-GB.umd.prod.js +1 -1
  52. package/dist/lang/en-US.umd.prod.js +1 -1
  53. package/dist/lang/eo.umd.prod.js +1 -1
  54. package/dist/lang/es.umd.prod.js +1 -1
  55. package/dist/lang/et.umd.prod.js +1 -1
  56. package/dist/lang/fa-IR.umd.prod.js +1 -1
  57. package/dist/lang/fa.umd.prod.js +1 -1
  58. package/dist/lang/fi.umd.prod.js +1 -1
  59. package/dist/lang/fr.umd.prod.js +1 -1
  60. package/dist/lang/gn.umd.prod.js +1 -1
  61. package/dist/lang/he.umd.prod.js +1 -1
  62. package/dist/lang/hr.umd.prod.js +1 -1
  63. package/dist/lang/hu.umd.prod.js +1 -1
  64. package/dist/lang/id.umd.prod.js +1 -1
  65. package/dist/lang/is.umd.prod.js +1 -1
  66. package/dist/lang/it.umd.prod.js +1 -1
  67. package/dist/lang/ja.umd.prod.js +1 -1
  68. package/dist/lang/km.umd.prod.js +1 -1
  69. package/dist/lang/ko-KR.umd.prod.js +1 -1
  70. package/dist/lang/kur-CKB.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/ms.umd.prod.js +1 -1
  75. package/dist/lang/nb-NO.umd.prod.js +1 -1
  76. package/dist/lang/nl.umd.prod.js +1 -1
  77. package/dist/lang/pl.umd.prod.js +1 -1
  78. package/dist/lang/pt-BR.umd.prod.js +1 -1
  79. package/dist/lang/pt.umd.prod.js +1 -1
  80. package/dist/lang/ro.umd.prod.js +1 -1
  81. package/dist/lang/ru.umd.prod.js +1 -1
  82. package/dist/lang/sk.umd.prod.js +1 -1
  83. package/dist/lang/sl.umd.prod.js +1 -1
  84. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  85. package/dist/lang/sr.umd.prod.js +1 -1
  86. package/dist/lang/sv.umd.prod.js +1 -1
  87. package/dist/lang/ta.umd.prod.js +1 -1
  88. package/dist/lang/th.umd.prod.js +1 -1
  89. package/dist/lang/tr.umd.prod.js +1 -1
  90. package/dist/lang/ug.umd.prod.js +1 -1
  91. package/dist/lang/uk.umd.prod.js +1 -1
  92. package/dist/lang/vi.umd.prod.js +1 -1
  93. package/dist/lang/zh-CN.umd.prod.js +1 -1
  94. package/dist/lang/zh-TW.umd.prod.js +1 -1
  95. package/dist/quasar.cjs.prod.js +2 -2
  96. package/dist/quasar.esm.prod.js +2 -2
  97. package/dist/quasar.sass +1 -1
  98. package/dist/quasar.umd.js +123 -125
  99. package/dist/quasar.umd.prod.js +2 -2
  100. package/dist/ssr-directives/Morph.js +1 -1
  101. package/dist/types/index.d.ts +1824 -1522
  102. package/dist/vetur/quasar-attributes.json +18 -10
  103. package/dist/vetur/quasar-tags.json +2 -0
  104. package/dist/web-types/web-types.json +34 -16
  105. package/package.json +1 -1
  106. package/src/components/color/QColor.json +7 -2
  107. package/src/components/date/QDate.js +1 -1
  108. package/src/components/date/QDate.json +2 -2
  109. package/src/components/file/QFile.js +2 -1
  110. package/src/components/file/QFile.json +1 -1
  111. package/src/components/img/QImg.js +9 -13
  112. package/src/components/img/QImg.json +14 -0
  113. package/src/components/input/QInput.json +2 -2
  114. package/src/components/menu/QMenu.js +4 -1
  115. package/src/components/radio/QRadio.json +1 -1
  116. package/src/components/range/QRange.json +3 -3
  117. package/src/components/select/QSelect.js +23 -60
  118. package/src/components/select/QSelect.json +1 -1
  119. package/src/components/slider/QSlider.json +7 -2
  120. package/src/components/tabs/QTabs.js +41 -12
  121. package/src/components/tabs/QTabs.json +1 -1
  122. package/src/components/time/QTime.json +2 -2
  123. package/src/components/tooltip/QTooltip.js +4 -1
  124. package/src/components/virtual-scroll/use-virtual-scroll.js +4 -28
  125. package/src/composables/private/use-field.js +4 -6
  126. package/src/plugins/Loading.json +3 -2
  127. package/src/plugins/LoadingBar.js +4 -0
  128. package/src/plugins/Meta.js +16 -8
  129. package/src/plugins/Notify.js +3 -0
  130. package/src/utils/private/global-dialog.js +2 -1
  131. package/src/utils/private/rtl.js +27 -0
@@ -1028,7 +1028,7 @@
1028
1028
  "description": "Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL"
1029
1029
  },
1030
1030
  "q-color/model-value": {
1031
- "type": "string",
1031
+ "type": "string|null|undefined",
1032
1032
  "description": "Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive"
1033
1033
  },
1034
1034
  "q-color/default-value": {
@@ -1132,7 +1132,7 @@
1132
1132
  "description": "Put component in disabled mode"
1133
1133
  },
1134
1134
  "q-date/model-value": {
1135
- "type": "string|array|object",
1135
+ "type": "string|array|object|null|undefined",
1136
1136
  "description": "Date(s) of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive"
1137
1137
  },
1138
1138
  "q-date/title": {
@@ -1936,7 +1936,7 @@
1936
1936
  "description": "Custom filter for added files; Only files that pass this filter will be added to the queue and uploaded; For best performance, reference it from your scope and do not define it inline"
1937
1937
  },
1938
1938
  "q-file/model-value": {
1939
- "type": "file|filelist|array",
1939
+ "type": "file|filelist|array|null|undefined",
1940
1940
  "description": "Model of the component; Must be FileList or Array if using 'multiple' prop; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive"
1941
1941
  },
1942
1942
  "q-file/error": {
@@ -2231,6 +2231,14 @@
2231
2231
  "type": "string",
2232
2232
  "description": "Same syntax as <img> crossorigin attribute"
2233
2233
  },
2234
+ "q-img/decoding": {
2235
+ "type": "string",
2236
+ "description": "Same syntax as <img> decoding attribute"
2237
+ },
2238
+ "q-img/referrerpolicy": {
2239
+ "type": "string",
2240
+ "description": "Same syntax as <img> referrerpolicy attribute"
2241
+ },
2234
2242
  "q-img/fit": {
2235
2243
  "type": "string",
2236
2244
  "description": "How the image will fit into the container; Equivalent of the object-fit prop; Can be coordinated with 'position' prop"
@@ -2348,7 +2356,7 @@
2348
2356
  "description": "Model will be unmasked (won't contain tokens/separation characters)"
2349
2357
  },
2350
2358
  "q-input/model-value": {
2351
- "type": "string|number",
2359
+ "type": "string|number|null|undefined",
2352
2360
  "description": "Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive"
2353
2361
  },
2354
2362
  "q-input/error": {
@@ -3296,7 +3304,7 @@
3296
3304
  "description": "Size in CSS units, including unit name or standard size name (xs|sm|md|lg|xl)"
3297
3305
  },
3298
3306
  "q-radio/model-value": {
3299
- "type": "number|string",
3307
+ "type": "number|string|null|undefined",
3300
3308
  "description": "Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive"
3301
3309
  },
3302
3310
  "q-radio/val": {
@@ -3340,7 +3348,7 @@
3340
3348
  "description": "Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL"
3341
3349
  },
3342
3350
  "q-range/model-value": {
3343
- "type": "object",
3351
+ "type": "object|null|undefined",
3344
3352
  "description": "Model of the component of type { min, max } (both values must be between global min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive"
3345
3353
  },
3346
3354
  "q-range/min": {
@@ -3608,7 +3616,7 @@
3608
3616
  "description": "The number of columns in the table (you need this if you use table-layout: fixed)"
3609
3617
  },
3610
3618
  "q-select/model-value": {
3611
- "type": "number|string|array",
3619
+ "type": "number|string|array|null|undefined",
3612
3620
  "description": "Model of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive"
3613
3621
  },
3614
3622
  "q-select/error": {
@@ -3992,7 +4000,7 @@
3992
4000
  "description": "Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL"
3993
4001
  },
3994
4002
  "q-slider/model-value": {
3995
- "type": "number",
4003
+ "type": "number|null|undefined",
3996
4004
  "description": "Model of the component (must be between min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive"
3997
4005
  },
3998
4006
  "q-slider/min": {
@@ -4900,7 +4908,7 @@
4900
4908
  "description": "Put component in disabled mode"
4901
4909
  },
4902
4910
  "q-tabs/model-value": {
4903
- "type": "number|string",
4911
+ "type": "number|string|null|undefined",
4904
4912
  "description": "Model of the component defining current panel name; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive"
4905
4913
  },
4906
4914
  "q-tabs/vertical": {
@@ -5032,7 +5040,7 @@
5032
5040
  "description": "Put component in disabled mode"
5033
5041
  },
5034
5042
  "q-time/model-value": {
5035
- "type": "string",
5043
+ "type": "string|null|undefined",
5036
5044
  "description": "Time of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive"
5037
5045
  },
5038
5046
  "q-time/format24h": {
@@ -738,6 +738,8 @@
738
738
  "height",
739
739
  "loading",
740
740
  "crossorigin",
741
+ "decoding",
742
+ "referrerpolicy",
741
743
  "fit",
742
744
  "position",
743
745
  "alt",
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.1.4",
5
+ "version": "2.1.8",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -3181,7 +3181,7 @@
3181
3181
  "name": "model-value",
3182
3182
  "value": {
3183
3183
  "kind": "expression",
3184
- "type": "string"
3184
+ "type": "string|null|undefined"
3185
3185
  },
3186
3186
  "description": "Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive\n\nExamples:\nv-model=\"myColor\"",
3187
3187
  "doc-url": "https://v2.quasar.dev/vue-components/color-picker",
@@ -3313,7 +3313,7 @@
3313
3313
  "arguments": [
3314
3314
  {
3315
3315
  "name": "value",
3316
- "type": "any",
3316
+ "type": "string|null",
3317
3317
  "description": "New model value",
3318
3318
  "doc-url": "https://v2.quasar.dev/vue-components/color-picker"
3319
3319
  }
@@ -3476,7 +3476,7 @@
3476
3476
  "name": "model-value",
3477
3477
  "value": {
3478
3478
  "kind": "expression",
3479
- "type": "string|any[]|object"
3479
+ "type": "string|any[]|object|null|undefined"
3480
3480
  },
3481
3481
  "description": "Date(s) of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive\n\nExamples:\nv-model=\"myDate\"\nv-model=\"[myDate1, myDate2]\"\nv-model=\"[{ from: myDateFrom, to: myDateTo }]\"\nv-model=\"[myDate1, { from: myDateFrom, to: myDateTo }, myDate2]\"",
3482
3482
  "doc-url": "https://v2.quasar.dev/vue-components/date",
@@ -3651,7 +3651,7 @@
3651
3651
  "arguments": [
3652
3652
  {
3653
3653
  "name": "value",
3654
- "type": "string|any[]|object",
3654
+ "type": "string|any[]|object|null",
3655
3655
  "description": "New model value",
3656
3656
  "doc-url": "https://v2.quasar.dev/vue-components/date"
3657
3657
  },
@@ -6118,7 +6118,7 @@
6118
6118
  "name": "model-value",
6119
6119
  "value": {
6120
6120
  "kind": "expression",
6121
- "type": "File|FileList|any[]"
6121
+ "type": "File|FileList|any[]|null|undefined"
6122
6122
  },
6123
6123
  "description": "Model of the component; Must be FileList or Array if using 'multiple' prop; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive\n\nExamples:\nv-model=\"myModel\"",
6124
6124
  "doc-url": "https://v2.quasar.dev/vue-components/file",
@@ -7083,6 +7083,24 @@
7083
7083
  "description": "Same syntax as <img> crossorigin attribute",
7084
7084
  "doc-url": "https://v2.quasar.dev/vue-components/img"
7085
7085
  },
7086
+ {
7087
+ "name": "decoding",
7088
+ "value": {
7089
+ "kind": "expression",
7090
+ "type": "'sync'|'async'|'auto'"
7091
+ },
7092
+ "description": "Same syntax as <img> decoding attribute",
7093
+ "doc-url": "https://v2.quasar.dev/vue-components/img"
7094
+ },
7095
+ {
7096
+ "name": "referrerpolicy",
7097
+ "value": {
7098
+ "kind": "expression",
7099
+ "type": "string"
7100
+ },
7101
+ "description": "Same syntax as <img> referrerpolicy attribute",
7102
+ "doc-url": "https://v2.quasar.dev/vue-components/img"
7103
+ },
7086
7104
  {
7087
7105
  "name": "fit",
7088
7106
  "value": {
@@ -7484,7 +7502,7 @@
7484
7502
  "name": "model-value",
7485
7503
  "value": {
7486
7504
  "kind": "expression",
7487
- "type": "string|number"
7505
+ "type": "string|number|null|undefined"
7488
7506
  },
7489
7507
  "description": "Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive\n\nExamples:\nv-model=\"myText\"",
7490
7508
  "doc-url": "https://v2.quasar.dev/vue-components/input",
@@ -7912,7 +7930,7 @@
7912
7930
  "arguments": [
7913
7931
  {
7914
7932
  "name": "value",
7915
- "type": "string|number",
7933
+ "type": "string|number|null",
7916
7934
  "description": "New model value",
7917
7935
  "doc-url": "https://v2.quasar.dev/vue-components/input"
7918
7936
  }
@@ -10641,7 +10659,7 @@
10641
10659
  "name": "model-value",
10642
10660
  "value": {
10643
10661
  "kind": "expression",
10644
- "type": "number|string"
10662
+ "type": "number|string|null|undefined"
10645
10663
  },
10646
10664
  "description": "Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive\n\nExamples:\nv-model=\"option\"",
10647
10665
  "doc-url": "https://v2.quasar.dev/vue-components/radio",
@@ -10786,7 +10804,7 @@
10786
10804
  "name": "model-value",
10787
10805
  "value": {
10788
10806
  "kind": "expression",
10789
- "type": "object"
10807
+ "type": "object|null|undefined"
10790
10808
  },
10791
10809
  "description": "Model of the component of type { min, max } (both values must be between global min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive\n\nExamples:\nv-model=\"positionModel\"",
10792
10810
  "doc-url": "https://v2.quasar.dev/vue-components/range",
@@ -11613,7 +11631,7 @@
11613
11631
  "name": "model-value",
11614
11632
  "value": {
11615
11633
  "kind": "expression",
11616
- "type": "number|string|any[]"
11634
+ "type": "number|string|any[]|null|undefined"
11617
11635
  },
11618
11636
  "description": "Model of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive\n\nExamples:\nv-model=\"myModel\"",
11619
11637
  "doc-url": "https://v2.quasar.dev/vue-components/select",
@@ -12963,7 +12981,7 @@
12963
12981
  "name": "model-value",
12964
12982
  "value": {
12965
12983
  "kind": "expression",
12966
- "type": "number"
12984
+ "type": "number|null|undefined"
12967
12985
  },
12968
12986
  "description": "Model of the component (must be between min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive\n\nExamples:\nv-model=\"positionModel\"",
12969
12987
  "doc-url": "https://v2.quasar.dev/vue-components/slider",
@@ -13160,7 +13178,7 @@
13160
13178
  "arguments": [
13161
13179
  {
13162
13180
  "name": "value",
13163
- "type": "any",
13181
+ "type": "number|null",
13164
13182
  "description": "New model value",
13165
13183
  "doc-url": "https://v2.quasar.dev/vue-components/slider"
13166
13184
  }
@@ -16073,7 +16091,7 @@
16073
16091
  "name": "model-value",
16074
16092
  "value": {
16075
16093
  "kind": "expression",
16076
- "type": "number|string"
16094
+ "type": "number|string|null|undefined"
16077
16095
  },
16078
16096
  "description": "Model of the component defining current panel name; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive\n\nExamples:\nv-model=\"selectedTab\"",
16079
16097
  "doc-url": "https://v2.quasar.dev/vue-components/tabs"
@@ -16424,7 +16442,7 @@
16424
16442
  "name": "model-value",
16425
16443
  "value": {
16426
16444
  "kind": "expression",
16427
- "type": "string"
16445
+ "type": "string|null|undefined"
16428
16446
  },
16429
16447
  "description": "Time of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive\n\nExamples:\nv-model=\"currentTime\"",
16430
16448
  "doc-url": "https://v2.quasar.dev/vue-components/time",
@@ -16514,7 +16532,7 @@
16514
16532
  "arguments": [
16515
16533
  {
16516
16534
  "name": "value",
16517
- "type": "string",
16535
+ "type": "string|null",
16518
16536
  "description": "New model value",
16519
16537
  "doc-url": "https://v2.quasar.dev/vue-components/time"
16520
16538
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.1.4",
3
+ "version": "2.1.8",
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",
@@ -8,7 +8,7 @@
8
8
  "props": {
9
9
  "model-value": {
10
10
  "extends": "model-value",
11
- "type": "String",
11
+ "type": [ "String", "null", "undefined" ],
12
12
  "examples": [ "v-model=\"myColor\"" ]
13
13
  },
14
14
 
@@ -85,7 +85,12 @@
85
85
 
86
86
  "events": {
87
87
  "update:model-value": {
88
- "extends": "update:model-value"
88
+ "extends": "update:model-value",
89
+ "params": {
90
+ "value": {
91
+ "type": [ "String", "null" ]
92
+ }
93
+ }
89
94
  },
90
95
 
91
96
  "change": {
@@ -1369,7 +1369,7 @@ export default defineComponent({
1369
1369
  if (editRange.value === null) {
1370
1370
  const dayProps = days.value.find(day => day.fill !== true && day.i === dayIndex)
1371
1371
 
1372
- if (dayProps.range !== void 0) {
1372
+ if (props.noUnset !== true && dayProps.range !== void 0) {
1373
1373
  removeFromModel({ target: day, from: dayProps.range.from, to: dayProps.range.to })
1374
1374
  return
1375
1375
  }
@@ -8,7 +8,7 @@
8
8
  "props": {
9
9
  "model-value": {
10
10
  "extends": "model-value",
11
- "type": [ "String", "Array", "Object" ],
11
+ "type": [ "String", "Array", "Object", "null", "undefined" ],
12
12
  "desc": "Date(s) of the component; Must be Array if using 'multiple' prop; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive",
13
13
  "examples": [
14
14
  "v-model=\"myDate\"",
@@ -162,7 +162,7 @@
162
162
  "extends": "update:model-value",
163
163
  "params": {
164
164
  "value": {
165
- "type": [ "String", "Array", "Object" ]
165
+ "type": [ "String", "Array", "Object", "null" ]
166
166
  },
167
167
  "reason": {
168
168
  "type": "String",
@@ -12,6 +12,8 @@ import { humanStorageSize } from '../../utils/format.js'
12
12
  export default defineComponent({
13
13
  name: 'QFile',
14
14
 
15
+ inheritAttrs: false,
16
+
15
17
  props: {
16
18
  ...useFieldProps,
17
19
  ...useFormProps,
@@ -224,7 +226,6 @@ export default defineComponent({
224
226
  }
225
227
 
226
228
  Object.assign(state, {
227
- inheritAttrs: true,
228
229
  fieldClass: { value: 'q-file q-field--auto-height' },
229
230
  emitValue,
230
231
  hasValue,
@@ -8,7 +8,7 @@
8
8
  "props": {
9
9
  "model-value": {
10
10
  "extends": "model-value",
11
- "type": [ "File", "FileList", "Array" ],
11
+ "type": [ "File", "FileList", "Array", "null", "undefined" ],
12
12
  "desc": "Model of the component; Must be FileList or Array if using 'multiple' prop; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",
13
13
  "examples": [ "v-model=\"myModel\"" ]
14
14
  },
@@ -5,9 +5,6 @@ import useRatio, { useRatioProps } from '../../composables/private/use-ratio.js'
5
5
  import { hSlot } from '../../utils/private/render.js'
6
6
  import { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'
7
7
 
8
- const crossoriginValues = [ 'anonymous', 'use-credentials' ]
9
- const loadingValues = [ 'eager', 'lazy' ]
10
- const fitValues = [ 'cover', 'fill', 'contain', 'none', 'scale-down' ]
11
8
  const defaultRatio = 16 / 9
12
9
 
13
10
  export default defineComponent({
@@ -21,16 +18,15 @@ export default defineComponent({
21
18
  sizes: String,
22
19
 
23
20
  alt: String,
24
- crossorigin: {
25
- type: String,
26
- validator: val => crossoriginValues.includes(val)
27
- },
21
+ crossorigin: String,
22
+ decoding: String,
23
+ referrerpolicy: String,
24
+
28
25
  draggable: Boolean,
29
26
 
30
27
  loading: {
31
28
  type: String,
32
- default: 'lazy',
33
- validator: val => loadingValues.includes(val)
29
+ default: 'lazy'
34
30
  },
35
31
  width: String,
36
32
  height: String,
@@ -43,8 +39,7 @@ export default defineComponent({
43
39
 
44
40
  fit: {
45
41
  type: String,
46
- default: 'cover',
47
- validator: val => fitValues.includes(val)
42
+ default: 'cover'
48
43
  },
49
44
  position: {
50
45
  type: String,
@@ -64,7 +59,7 @@ export default defineComponent({
64
59
 
65
60
  emits: [ 'load', 'error' ],
66
61
 
67
- setup (props, { slots, attrs, emit }) {
62
+ setup (props, { slots, emit }) {
68
63
  const naturalRatio = ref(props.initialRatio)
69
64
  const ratioStyle = useRatio(props, naturalRatio)
70
65
 
@@ -187,10 +182,11 @@ export default defineComponent({
187
182
 
188
183
  const data = {
189
184
  key: 'img_' + index,
190
- ...attrs,
191
185
  class: imgClass.value,
192
186
  style: imgStyle.value,
193
187
  crossorigin: props.crossorigin,
188
+ decoding: props.decoding,
189
+ referrerpolicy: props.referrerpolicy,
194
190
  height: props.height,
195
191
  width: props.width,
196
192
  loading: props.loading,
@@ -108,6 +108,20 @@
108
108
  "category": "behavior"
109
109
  },
110
110
 
111
+ "decoding": {
112
+ "type": "String",
113
+ "desc": "Same syntax as <img> decoding attribute",
114
+ "values": [ "sync", "async", "auto" ],
115
+ "category": "behavior"
116
+ },
117
+
118
+ "referrerpolicy": {
119
+ "type": "String",
120
+ "desc": "Same syntax as <img> referrerpolicy attribute",
121
+ "category": "behavior",
122
+ "__exemption": [ "examples" ]
123
+ },
124
+
111
125
  "fit": {
112
126
  "type": "String",
113
127
  "desc": "How the image will fit into the container; Equivalent of the object-fit prop; Can be coordinated with 'position' prop",
@@ -8,7 +8,7 @@
8
8
  "props": {
9
9
  "model-value": {
10
10
  "extends": "model-value",
11
- "type": [ "String", "Number" ],
11
+ "type": [ "String", "Number", "null", "undefined" ],
12
12
  "desc": "Model of the component; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",
13
13
  "examples": [ "v-model=\"myText\"" ]
14
14
  },
@@ -78,7 +78,7 @@
78
78
  "extends": "update:model-value",
79
79
  "params": {
80
80
  "value": {
81
- "type": [ "String", "Number" ]
81
+ "type": [ "String", "Number", "null" ]
82
82
  }
83
83
  }
84
84
  },
@@ -350,7 +350,10 @@ export default defineComponent({
350
350
  'q-menu q-position-engine scroll' + menuClass.value,
351
351
  attrs.class
352
352
  ],
353
- style: [ attrs.style, transitionStyle.value ],
353
+ style: [
354
+ attrs.style,
355
+ transitionStyle.value
356
+ ],
354
357
  ...onEvents.value
355
358
  }, hSlot(slots.default))
356
359
  : null
@@ -8,7 +8,7 @@
8
8
  "props": {
9
9
  "model-value": {
10
10
  "extends": "model-value",
11
- "type": [ "Number", "String" ],
11
+ "type": [ "Number", "String", "null", "undefined" ],
12
12
  "examples": [ "v-model=\"option\"" ]
13
13
  },
14
14
 
@@ -8,16 +8,16 @@
8
8
  "props": {
9
9
  "model-value": {
10
10
  "extends": "model-value",
11
- "type": "Object",
11
+ "type": [ "Object", "null", "undefined" ],
12
12
  "desc": "Model of the component of type { min, max } (both values must be between global min/max); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",
13
13
  "definition": {
14
14
  "min": {
15
- "type": "Number",
15
+ "type": [ "Number", "null" ],
16
16
  "desc": "Model value for left thumb",
17
17
  "examples": [ 2 ]
18
18
  },
19
19
  "max": {
20
- "type": "Number",
20
+ "type": [ "Number", "null" ],
21
21
  "desc": "Model value for right thumb",
22
22
  "examples": [ 12 ]
23
23
  }