quasar 2.14.6 → 2.15.0

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 (171) hide show
  1. package/dist/api/Intersection.json +1 -1
  2. package/dist/api/QDialog.json +1 -1
  3. package/dist/api/QImg.json +1 -1
  4. package/dist/api/QSelect.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 +1 -1
  53. package/dist/lang/de-DE.umd.prod.js +1 -1
  54. package/dist/lang/de.umd.prod.js +1 -1
  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-MY.umd.prod.js +7 -0
  86. package/dist/lang/ms.umd.prod.js +1 -1
  87. package/dist/lang/my.umd.prod.js +1 -1
  88. package/dist/lang/nb-NO.umd.prod.js +1 -1
  89. package/dist/lang/nl.umd.prod.js +1 -1
  90. package/dist/lang/pl.umd.prod.js +1 -1
  91. package/dist/lang/pt-BR.umd.prod.js +1 -1
  92. package/dist/lang/pt.umd.prod.js +1 -1
  93. package/dist/lang/ro.umd.prod.js +1 -1
  94. package/dist/lang/ru.umd.prod.js +1 -1
  95. package/dist/lang/sk.umd.prod.js +1 -1
  96. package/dist/lang/sl.umd.prod.js +1 -1
  97. package/dist/lang/sm.umd.prod.js +1 -1
  98. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  99. package/dist/lang/sr.umd.prod.js +1 -1
  100. package/dist/lang/sv.umd.prod.js +1 -1
  101. package/dist/lang/ta.umd.prod.js +1 -1
  102. package/dist/lang/th.umd.prod.js +1 -1
  103. package/dist/lang/tl.umd.prod.js +1 -1
  104. package/dist/lang/tr.umd.prod.js +1 -1
  105. package/dist/lang/ug.umd.prod.js +1 -1
  106. package/dist/lang/uk.umd.prod.js +1 -1
  107. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  108. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  109. package/dist/lang/vi.umd.prod.js +1 -1
  110. package/dist/lang/zh-CN.umd.prod.js +1 -1
  111. package/dist/lang/zh-TW.umd.prod.js +1 -1
  112. package/dist/quasar.cjs.prod.js +59 -59
  113. package/dist/quasar.css +5 -2
  114. package/dist/quasar.esm.js +959 -930
  115. package/dist/quasar.esm.prod.js +53 -53
  116. package/dist/quasar.rtl.css +5 -2
  117. package/dist/quasar.sass +9 -7
  118. package/dist/quasar.umd.js +146 -117
  119. package/dist/quasar.umd.prod.js +55 -55
  120. package/dist/transforms/import-map.json +1 -1
  121. package/dist/transforms/loader-asset-urls.json +1 -1
  122. package/dist/types/composables.d.ts +33 -0
  123. package/dist/types/index.d.ts +15 -130
  124. package/dist/vetur/quasar-attributes.json +1 -1
  125. package/dist/vetur/quasar-tags.json +1 -1
  126. package/dist/web-types/web-types.json +1 -1
  127. package/lang/index.json +1 -1
  128. package/lang/ms-MY.js +101 -0
  129. package/lang/ms-MY.mjs +96 -0
  130. package/lang/tl.js +1 -1
  131. package/lang/tl.mjs +1 -1
  132. package/package.json +5 -5
  133. package/src/components/btn-dropdown/QBtnDropdown.js +1 -1
  134. package/src/components/color/QColor.js +19 -13
  135. package/src/components/color/QColor.sass +1 -1
  136. package/src/components/date/QDate.js +2 -2
  137. package/src/components/dialog/QDialog.js +15 -3
  138. package/src/components/dialog/QDialog.json +19 -0
  139. package/src/components/drawer/QDrawer.js +1 -1
  140. package/src/components/editor/QEditor.js +4 -4
  141. package/src/components/expansion-item/QExpansionItem.js +1 -1
  142. package/src/components/fab/QFab.js +1 -1
  143. package/src/components/field/QField.sass +2 -1
  144. package/src/components/img/QImg.js +76 -56
  145. package/src/components/img/QImg.json +20 -6
  146. package/src/components/menu/QMenu.js +2 -2
  147. package/src/components/no-ssr/QNoSsr.js +3 -3
  148. package/src/components/resize-observer/QResizeObserver.js +3 -3
  149. package/src/components/select/QSelect.js +3 -0
  150. package/src/components/select/QSelect.json +7 -0
  151. package/src/components/slide-item/QSlideItem.js +3 -3
  152. package/src/components/stepper/QStep.js +3 -3
  153. package/src/components/table/QTable.sass +2 -2
  154. package/src/components/tabs/QTabs.js +2 -2
  155. package/src/components/tooltip/QTooltip.js +2 -2
  156. package/src/composables/private/use-field.js +9 -12
  157. package/src/composables/private/use-panel.js +3 -3
  158. package/src/composables/use-hydration.js +16 -0
  159. package/src/composables/use-id.js +50 -0
  160. package/src/composables/use-render-cache.js +40 -0
  161. package/src/composables/{private/use-split-attrs.js → use-split-attrs.js} +4 -2
  162. package/src/composables/{private/use-tick.js → use-tick.js} +1 -1
  163. package/src/composables/{private/use-timeout.js → use-timeout.js} +1 -1
  164. package/src/composables.js +15 -1
  165. package/src/css/core/colors.sass +0 -2
  166. package/src/css/core/visibility.sass +2 -1
  167. package/src/css/normalize.sass +1 -1
  168. package/src/directives/Intersection.json +13 -0
  169. package/src/composables/private/use-cache.js +0 -21
  170. package/src/composables/private/use-can-render.js +0 -16
  171. package/src/composables/private/use-id.js +0 -34
package/lang/index.json CHANGED
@@ -1 +1 @@
1
- [{"isoName":"ar-TN","nativeName":"العربية (تونس)"},{"isoName":"ar","nativeName":"العربية"},{"isoName":"az-Latn","nativeName":"Azerbaijani (latin)"},{"isoName":"bg","nativeName":"български език"},{"isoName":"bn","nativeName":"বাংলা"},{"isoName":"ca","nativeName":"Català"},{"isoName":"cs","nativeName":"Čeština"},{"isoName":"da","nativeName":"Dansk"},{"isoName":"de-CH","nativeName":"Deutsch (CH)"},{"isoName":"de-DE","nativeName":"Deutsch (DE)"},{"isoName":"de","nativeName":"Deutsch"},{"isoName":"el","nativeName":"ελληνικά"},{"isoName":"en-GB","nativeName":"English (UK)"},{"isoName":"en-US","nativeName":"English (US)"},{"isoName":"eo","nativeName":"Esperanto"},{"isoName":"es","nativeName":"Español"},{"isoName":"et","nativeName":"Eesti"},{"isoName":"eu","nativeName":"Euskara"},{"isoName":"fa-IR","nativeName":"فارسی"},{"isoName":"fa","nativeName":"فارسی"},{"isoName":"fi","nativeName":"Suomi"},{"isoName":"fr","nativeName":"Français"},{"isoName":"gn","nativeName":"Avañe'ẽ"},{"isoName":"he","nativeName":"עברית"},{"isoName":"hi","nativeName":"अमेरिकी अंग्रेज़ी"},{"isoName":"hr","nativeName":"Hrvatski jezik"},{"isoName":"hu","nativeName":"Magyar"},{"isoName":"id","nativeName":"Bahasa Indonesia"},{"isoName":"is","nativeName":"Íslenska"},{"isoName":"it","nativeName":"Italiano"},{"isoName":"ja","nativeName":"日本語 (にほんご)"},{"isoName":"kk","nativeName":"Қазақша"},{"isoName":"km","nativeName":"ខ្មែរ"},{"isoName":"ko-KR","nativeName":"한국어"},{"isoName":"kur-CKB","nativeName":"کوردی سۆرانی"},{"isoName":"lt","nativeName":"Lithuanian"},{"isoName":"lu","nativeName":"Kiluba"},{"isoName":"lv","nativeName":"Latviešu valoda"},{"isoName":"mk","nativeName":"Македонски"},{"isoName":"ml","nativeName":"മലയാളം"},{"isoName":"mm","nativeName":"မြန်မာ(ဗမာ)"},{"isoName":"ms","nativeName":"Bahasa Melayu"},{"isoName":"my","nativeName":"Malaysia"},{"isoName":"nb-NO","nativeName":"Norsk"},{"isoName":"nl","nativeName":"Nederlands"},{"isoName":"pl","nativeName":"Polski"},{"isoName":"pt-BR","nativeName":"Português (BR)"},{"isoName":"pt","nativeName":"Português"},{"isoName":"ro","nativeName":"Română"},{"isoName":"ru","nativeName":"русский"},{"isoName":"sk","nativeName":"Slovenčina"},{"isoName":"sl","nativeName":"Slovenski Jezik"},{"isoName":"sm","nativeName":"Fa'asāmoa"},{"isoName":"sr-CYR","nativeName":"српски језик"},{"isoName":"sr","nativeName":"srpski jezik"},{"isoName":"sv","nativeName":"Svenska"},{"isoName":"ta","nativeName":"தமிழ்"},{"isoName":"th","nativeName":"ไทย"},{"isoName":"tl","nativeName":"Tagalog"},{"isoName":"tr","nativeName":"Türkçe"},{"isoName":"ug","nativeName":"ئۇيغۇرچە"},{"isoName":"uk","nativeName":"Українська"},{"isoName":"uz-Cyrl","nativeName":"Ўзбекча (Кирил)"},{"isoName":"uz-Latn","nativeName":"O'zbekcha (Lotin)"},{"isoName":"vi","nativeName":"Tiếng Việt"},{"isoName":"zh-CN","nativeName":"中文(简体)"},{"isoName":"zh-TW","nativeName":"中文(繁體)"}]
1
+ [{"isoName":"ar-TN","nativeName":"العربية (تونس)"},{"isoName":"ar","nativeName":"العربية"},{"isoName":"az-Latn","nativeName":"Azerbaijani (latin)"},{"isoName":"bg","nativeName":"български език"},{"isoName":"bn","nativeName":"বাংলা"},{"isoName":"ca","nativeName":"Català"},{"isoName":"cs","nativeName":"Čeština"},{"isoName":"da","nativeName":"Dansk"},{"isoName":"de-CH","nativeName":"Deutsch (CH)"},{"isoName":"de-DE","nativeName":"Deutsch (DE)"},{"isoName":"de","nativeName":"Deutsch"},{"isoName":"el","nativeName":"ελληνικά"},{"isoName":"en-GB","nativeName":"English (UK)"},{"isoName":"en-US","nativeName":"English (US)"},{"isoName":"eo","nativeName":"Esperanto"},{"isoName":"es","nativeName":"Español"},{"isoName":"et","nativeName":"Eesti"},{"isoName":"eu","nativeName":"Euskara"},{"isoName":"fa-IR","nativeName":"فارسی"},{"isoName":"fa","nativeName":"فارسی"},{"isoName":"fi","nativeName":"Suomi"},{"isoName":"fr","nativeName":"Français"},{"isoName":"gn","nativeName":"Avañe'ẽ"},{"isoName":"he","nativeName":"עברית"},{"isoName":"hi","nativeName":"अमेरिकी अंग्रेज़ी"},{"isoName":"hr","nativeName":"Hrvatski jezik"},{"isoName":"hu","nativeName":"Magyar"},{"isoName":"id","nativeName":"Bahasa Indonesia"},{"isoName":"is","nativeName":"Íslenska"},{"isoName":"it","nativeName":"Italiano"},{"isoName":"ja","nativeName":"日本語 (にほんご)"},{"isoName":"kk","nativeName":"Қазақша"},{"isoName":"km","nativeName":"ខ្មែរ"},{"isoName":"ko-KR","nativeName":"한국어"},{"isoName":"kur-CKB","nativeName":"کوردی سۆرانی"},{"isoName":"lt","nativeName":"Lithuanian"},{"isoName":"lu","nativeName":"Kiluba"},{"isoName":"lv","nativeName":"Latviešu valoda"},{"isoName":"mk","nativeName":"Македонски"},{"isoName":"ml","nativeName":"മലയാളം"},{"isoName":"mm","nativeName":"မြန်မာ(ဗမာ)"},{"isoName":"ms-MY","nativeName":"Malaysia"},{"isoName":"ms","nativeName":"Bahasa Melayu"},{"isoName":"my","nativeName":"Malaysia"},{"isoName":"nb-NO","nativeName":"Norsk"},{"isoName":"nl","nativeName":"Nederlands"},{"isoName":"pl","nativeName":"Polski"},{"isoName":"pt-BR","nativeName":"Português (BR)"},{"isoName":"pt","nativeName":"Português"},{"isoName":"ro","nativeName":"Română"},{"isoName":"ru","nativeName":"русский"},{"isoName":"sk","nativeName":"Slovenčina"},{"isoName":"sl","nativeName":"Slovenski Jezik"},{"isoName":"sm","nativeName":"Fa'asāmoa"},{"isoName":"sr-CYR","nativeName":"српски језик"},{"isoName":"sr","nativeName":"srpski jezik"},{"isoName":"sv","nativeName":"Svenska"},{"isoName":"ta","nativeName":"தமிழ்"},{"isoName":"th","nativeName":"ไทย"},{"isoName":"tl","nativeName":"Tagalog"},{"isoName":"tr","nativeName":"Türkçe"},{"isoName":"ug","nativeName":"ئۇيغۇرچە"},{"isoName":"uk","nativeName":"Українська"},{"isoName":"uz-Cyrl","nativeName":"Ўзбекча (Кирил)"},{"isoName":"uz-Latn","nativeName":"O'zbekcha (Lotin)"},{"isoName":"vi","nativeName":"Tiếng Việt"},{"isoName":"zh-CN","nativeName":"中文(简体)"},{"isoName":"zh-TW","nativeName":"中文(繁體)"}]
package/lang/ms-MY.js ADDED
@@ -0,0 +1,101 @@
1
+ /**
2
+ * DO NOT EDIT THIS FILE. It is automatically generated
3
+ * from its .mjs counterpart (same filename but with .mjs extension).
4
+ * Edit that file instead (ms-MY.mjs).
5
+ */
6
+ module.exports = {
7
+ isoName: 'ms-MY',
8
+ nativeName: 'Malaysia',
9
+ label: {
10
+ clear: 'Semula',
11
+ ok: 'OK',
12
+ cancel: 'Batal',
13
+ close: 'Tutup',
14
+ set: 'Set',
15
+ select: 'Pilih',
16
+ reset: 'Reset',
17
+ remove: 'Keluarkan',
18
+ update: 'Kemaskini',
19
+ create: 'Cipta',
20
+ search: 'Cari',
21
+ filter: 'Saring',
22
+ refresh: 'Muat semula',
23
+ expand: label => (label ? `Kembangkan "${ label }"` : 'Kembangkan'),
24
+ collapse: label => (label ? `Runtuhkan "${ label }"` : 'Runtuh')
25
+ },
26
+ date: {
27
+ days: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
28
+ daysShort: 'Aha_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
29
+ months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
30
+ monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogo_Sep_Okt_Nov_Dis'.split('_'),
31
+ headerTitle: date => new Intl.DateTimeFormat('my', {
32
+ weekday: 'short', month: 'short', day: 'numeric'
33
+ }).format(date),
34
+ firstDayOfWeek: 0, // 0-6, 0 - Sunday, 1 Monday, ...
35
+ format24h: false,
36
+ pluralDay: 'hari'
37
+ },
38
+ table: {
39
+ noData: 'Tiada data tersedia',
40
+ noResults: 'Tiada rekod yang sepadan ditemui',
41
+ loading: 'Dalam proses...',
42
+ selectedRecords: rows => (
43
+ rows > 1
44
+ ? rows + ' rekod terpilih.'
45
+ : (rows === 0 ? 'tiada' : '1') + ' rekod terpilih.'
46
+ ),
47
+ recordsPerPage: 'Rekod setiap halaman:',
48
+ allRows: 'Semua',
49
+ pagination: (start, end, total) => start + '-' + end + ' / ' + total,
50
+ columns: 'Senaraikan'
51
+ },
52
+ editor: {
53
+ url: 'URL',
54
+ bold: 'Tebal',
55
+ italic: 'Italik',
56
+ strikethrough: 'Garis Tengah',
57
+ underline: 'Garis Bawah',
58
+ unorderedList: 'Senarai Tidak Teratur',
59
+ orderedList: 'Senarai Teratur',
60
+ subscript: 'Subskrip',
61
+ superscript: 'Superskrip',
62
+ hyperlink: 'Hyperlink',
63
+ toggleFullscreen: 'Togol Skrin Penuh',
64
+ quote: 'Petikan',
65
+ left: 'Jajar ke Kiri',
66
+ center: 'Penjajaran Tengah',
67
+ right: 'Sejajar ke kanan',
68
+ justify: 'Wajar',
69
+ print: 'Cetak',
70
+ outdent: 'Mengurangkan Lekukan',
71
+ indent: 'Tambah Indentasi',
72
+ removeFormat: 'Buang Format',
73
+ formatting: 'Format',
74
+ fontSize: 'Saiz Huruf',
75
+ align: 'Selaraskan',
76
+ hr: 'Masukkan Garisan Mendatar',
77
+ undo: 'Undo',
78
+ redo: 'Redo',
79
+ heading1: 'Heading 1',
80
+ heading2: 'Heading 2',
81
+ heading3: 'Heading 3',
82
+ heading4: 'Heading 4',
83
+ heading5: 'Heading 5',
84
+ heading6: 'Heading 6',
85
+ paragraph: 'Perenggan',
86
+ code: 'Kod',
87
+ size1: 'Paling Kecil',
88
+ size2: 'Agak Kecil',
89
+ size3: 'Normal',
90
+ size4: 'Sederhana',
91
+ size5: 'Besar',
92
+ size6: 'Paling Besar',
93
+ size7: 'Maksimum',
94
+ defaultFont: 'Tulisan Asal',
95
+ viewSource: 'Lihat Sumber'
96
+ },
97
+ tree: {
98
+ noNodes: 'Tiada nod tersedia',
99
+ noResults: 'Tiada nod yang sepadan dijumpai'
100
+ }
101
+ }
package/lang/ms-MY.mjs ADDED
@@ -0,0 +1,96 @@
1
+ export default {
2
+ isoName: 'ms-MY',
3
+ nativeName: 'Malaysia',
4
+ label: {
5
+ clear: 'Semula',
6
+ ok: 'OK',
7
+ cancel: 'Batal',
8
+ close: 'Tutup',
9
+ set: 'Set',
10
+ select: 'Pilih',
11
+ reset: 'Reset',
12
+ remove: 'Keluarkan',
13
+ update: 'Kemaskini',
14
+ create: 'Cipta',
15
+ search: 'Cari',
16
+ filter: 'Saring',
17
+ refresh: 'Muat semula',
18
+ expand: label => (label ? `Kembangkan "${ label }"` : 'Kembangkan'),
19
+ collapse: label => (label ? `Runtuhkan "${ label }"` : 'Runtuh')
20
+ },
21
+ date: {
22
+ days: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
23
+ daysShort: 'Aha_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
24
+ months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
25
+ monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogo_Sep_Okt_Nov_Dis'.split('_'),
26
+ headerTitle: date => new Intl.DateTimeFormat('my', {
27
+ weekday: 'short', month: 'short', day: 'numeric'
28
+ }).format(date),
29
+ firstDayOfWeek: 0, // 0-6, 0 - Sunday, 1 Monday, ...
30
+ format24h: false,
31
+ pluralDay: 'hari'
32
+ },
33
+ table: {
34
+ noData: 'Tiada data tersedia',
35
+ noResults: 'Tiada rekod yang sepadan ditemui',
36
+ loading: 'Dalam proses...',
37
+ selectedRecords: rows => (
38
+ rows > 1
39
+ ? rows + ' rekod terpilih.'
40
+ : (rows === 0 ? 'tiada' : '1') + ' rekod terpilih.'
41
+ ),
42
+ recordsPerPage: 'Rekod setiap halaman:',
43
+ allRows: 'Semua',
44
+ pagination: (start, end, total) => start + '-' + end + ' / ' + total,
45
+ columns: 'Senaraikan'
46
+ },
47
+ editor: {
48
+ url: 'URL',
49
+ bold: 'Tebal',
50
+ italic: 'Italik',
51
+ strikethrough: 'Garis Tengah',
52
+ underline: 'Garis Bawah',
53
+ unorderedList: 'Senarai Tidak Teratur',
54
+ orderedList: 'Senarai Teratur',
55
+ subscript: 'Subskrip',
56
+ superscript: 'Superskrip',
57
+ hyperlink: 'Hyperlink',
58
+ toggleFullscreen: 'Togol Skrin Penuh',
59
+ quote: 'Petikan',
60
+ left: 'Jajar ke Kiri',
61
+ center: 'Penjajaran Tengah',
62
+ right: 'Sejajar ke kanan',
63
+ justify: 'Wajar',
64
+ print: 'Cetak',
65
+ outdent: 'Mengurangkan Lekukan',
66
+ indent: 'Tambah Indentasi',
67
+ removeFormat: 'Buang Format',
68
+ formatting: 'Format',
69
+ fontSize: 'Saiz Huruf',
70
+ align: 'Selaraskan',
71
+ hr: 'Masukkan Garisan Mendatar',
72
+ undo: 'Undo',
73
+ redo: 'Redo',
74
+ heading1: 'Heading 1',
75
+ heading2: 'Heading 2',
76
+ heading3: 'Heading 3',
77
+ heading4: 'Heading 4',
78
+ heading5: 'Heading 5',
79
+ heading6: 'Heading 6',
80
+ paragraph: 'Perenggan',
81
+ code: 'Kod',
82
+ size1: 'Paling Kecil',
83
+ size2: 'Agak Kecil',
84
+ size3: 'Normal',
85
+ size4: 'Sederhana',
86
+ size5: 'Besar',
87
+ size6: 'Paling Besar',
88
+ size7: 'Maksimum',
89
+ defaultFont: 'Tulisan Asal',
90
+ viewSource: 'Lihat Sumber'
91
+ },
92
+ tree: {
93
+ noNodes: 'Tiada nod tersedia',
94
+ noResults: 'Tiada nod yang sepadan dijumpai'
95
+ }
96
+ }
package/lang/tl.js CHANGED
@@ -95,4 +95,4 @@ module.exports = {
95
95
  noNodes: 'Walang available na node',
96
96
  noResults: 'Walang nakitang tumutugmang node'
97
97
  }
98
- }
98
+ }
package/lang/tl.mjs CHANGED
@@ -90,4 +90,4 @@ export default {
90
90
  noNodes: 'Walang available na node',
91
91
  noResults: 'Walang nakitang tumutugmang node'
92
92
  }
93
- }
93
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.14.6",
3
+ "version": "2.15.0",
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",
@@ -27,8 +27,8 @@
27
27
  "dev:umd": "node build/script.test-umd.js",
28
28
  "dev:quploader": "cd dev/upload-server && yarn && cd ../.. && node dev/upload-server/server.js",
29
29
  "build": "node build/script.build.js",
30
- "lint": "eslint --ext .js,.vue src dev --report-unused-disable-directives",
31
- "lint-fix": "eslint --ext .js,.vue src dev --fix --report-unused-disable-directives",
30
+ "lint": "eslint --ext .js,.cjs,.mjs,.vue src dev --report-unused-disable-directives",
31
+ "lint-fix": "eslint --ext .js,.cjs,.mjs,.vue src dev --fix --report-unused-disable-directives",
32
32
  "format:types": "prettier --write \"types/**/*.{d.ts,ts,json}\"",
33
33
  "test:create": "node ./test/cypress/helpers/create-spec.js -c",
34
34
  "test:build": "yarn build",
@@ -73,13 +73,12 @@
73
73
  "devDependencies": {
74
74
  "@quasar/app-vite": "^2.0.0-beta.1",
75
75
  "@quasar/extras": "^1.16.4",
76
- "@quasar/quasar-app-extension-testing-e2e-cypress": "^5.2.1",
76
+ "@quasar/quasar-app-extension-testing-e2e-cypress": "^6.0.0",
77
77
  "autoprefixer": "^10.4.17",
78
78
  "cli-highlight": "^2.1.11",
79
79
  "cross-env": "^7.0.3",
80
80
  "cssnano": "^6.0.5",
81
81
  "cypress": "^13.6.6",
82
- "cypress-json-results": "^1.2.1",
83
82
  "diff": "^5.2.0",
84
83
  "esbuild": "^0.20.1",
85
84
  "eslint": "^8.57.0",
@@ -101,6 +100,7 @@
101
100
  "recast": "^0.23.4",
102
101
  "table": "^6.8.1",
103
102
  "typescript": "^5.3.3",
103
+ "vite-plugin-checker": "^0.6.4",
104
104
  "vue": "^3.4.20",
105
105
  "vue-router": "^4.2.1",
106
106
  "yargs": "^17.7.2"
@@ -6,7 +6,7 @@ import QBtnGroup from '../btn-group/QBtnGroup.js'
6
6
  import QMenu from '../menu/QMenu.js'
7
7
 
8
8
  import { getBtnDesignAttr, useBtnProps } from '../btn/use-btn.js'
9
- import useId from '../../composables/private/use-id.js'
9
+ import useId from '../../composables/use-id.js'
10
10
  import { useTransitionProps } from '../../composables/private/use-transition.js'
11
11
 
12
12
  import { createComponent } from '../../utils/private/create.js'
@@ -11,7 +11,7 @@ import QTabPanels from '../tab-panels/QTabPanels.js'
11
11
  import QTabPanel from '../tab-panels/QTabPanel.js'
12
12
 
13
13
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
14
- import useCache from '../../composables/private/use-cache.js'
14
+ import useRenderCache from '../../composables/use-render-cache.js'
15
15
  import { useFormInject, useFormProps } from '../../composables/private/use-form.js'
16
16
 
17
17
  import { createComponent } from '../../utils/private/create.js'
@@ -80,7 +80,7 @@ export default createComponent({
80
80
  const { $q } = proxy
81
81
 
82
82
  const isDark = useDark(props, $q)
83
- const { getCache } = useCache()
83
+ const { getCache } = useRenderCache()
84
84
 
85
85
  const spectrumRef = ref(null)
86
86
  const errorIconRef = ref(null)
@@ -290,7 +290,7 @@ export default createComponent({
290
290
  updateModel(rgb, change)
291
291
  }
292
292
 
293
- function onHueChange (val, change) {
293
+ function onHue (val, change) {
294
294
  const h = Math.round(val)
295
295
  const rgb = hsvToRgb({
296
296
  h,
@@ -303,6 +303,10 @@ export default createComponent({
303
303
  updateModel(rgb, change)
304
304
  }
305
305
 
306
+ function onHueChange (val) {
307
+ onHueChange(val, true)
308
+ }
309
+
306
310
  function onNumericChange (value, formatModel, max, evt, change) {
307
311
  evt !== void 0 && stop(evt)
308
312
 
@@ -494,6 +498,10 @@ export default createComponent({
494
498
  }
495
499
  }
496
500
 
501
+ function setTopView (val) {
502
+ topView.value = val
503
+ }
504
+
497
505
  function getHeader () {
498
506
  const child = []
499
507
 
@@ -503,9 +511,7 @@ export default createComponent({
503
511
  modelValue: topView.value,
504
512
  dense: true,
505
513
  align: 'justify',
506
- ...getCache('topVTab', {
507
- 'onUpdate:modelValue': val => { topView.value = val }
508
- })
514
+ 'onUpdate:modelValue': setTopView
509
515
  }, () => [
510
516
  h(QTab, {
511
517
  label: 'HEX' + (hasAlpha.value === true ? 'A' : ''),
@@ -586,6 +592,10 @@ export default createComponent({
586
592
  ])
587
593
  }
588
594
 
595
+ function setView (val) {
596
+ view.value = val
597
+ }
598
+
589
599
  function getFooter () {
590
600
  return h('div', {
591
601
  class: 'q-color-picker__footer relative-position overflow-hidden'
@@ -595,9 +605,7 @@ export default createComponent({
595
605
  modelValue: view.value,
596
606
  dense: true,
597
607
  align: 'justify',
598
- ...getCache('ftIn', {
599
- 'onUpdate:modelValue': val => { view.value = val }
600
- })
608
+ 'onUpdate:modelValue': setView
601
609
  }, () => [
602
610
  h(QTab, {
603
611
  icon: $q.iconSet.colorPicker.spectrum,
@@ -660,10 +668,8 @@ export default createComponent({
660
668
  selectionColor: 'transparent',
661
669
  readonly: editable.value !== true,
662
670
  thumbPath,
663
- 'onUpdate:modelValue': onHueChange,
664
- ...getCache('lazyhue', {
665
- onChange: val => onHueChange(val, true)
666
- })
671
+ 'onUpdate:modelValue': onHue,
672
+ onChange: onHueChange
667
673
  })
668
674
  ]
669
675
 
@@ -98,7 +98,7 @@
98
98
  transform: translate(-5px, -5px)
99
99
 
100
100
  &__hue .q-slider__track
101
- background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%) !important // @stylint ignore
101
+ background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%) !important
102
102
  opacity: 1
103
103
 
104
104
  &__alpha
@@ -3,7 +3,7 @@ import { h, ref, computed, watch, Transition, nextTick, getCurrentInstance } fro
3
3
  import QBtn from '../btn/QBtn.js'
4
4
 
5
5
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
6
- import useCache from '../../composables/private/use-cache.js'
6
+ import useRenderCache from '../../composables/use-render-cache.js'
7
7
  import { useFormProps, useFormAttrs, useFormInject } from '../../composables/private/use-form.js'
8
8
  import useDatetime, { useDatetimeProps, useDatetimeEmits, getDayHash } from './use-datetime.js'
9
9
 
@@ -90,7 +90,7 @@ export default createComponent({
90
90
  const { $q } = proxy
91
91
 
92
92
  const isDark = useDark(props, $q)
93
- const { getCache } = useCache()
93
+ const { getCache } = useRenderCache()
94
94
  const { tabindex, headerClass, getLocale, getCurrentDate } = useDatetime(props, $q)
95
95
 
96
96
  let lastEmitValue
@@ -1,8 +1,8 @@
1
1
  import { h, ref, computed, watch, onBeforeUnmount, Transition, getCurrentInstance } from 'vue'
2
2
 
3
3
  import useHistory from '../../composables/private/use-history.js'
4
- import useTimeout from '../../composables/private/use-timeout.js'
5
- import useTick from '../../composables/private/use-tick.js'
4
+ import useTimeout from '../../composables/use-timeout.js'
5
+ import useTick from '../../composables/use-tick.js'
6
6
  import useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'
7
7
  import useTransition, { useTransitionProps } from '../../composables/private/use-transition.js'
8
8
  import usePortal from '../../composables/private/use-portal.js'
@@ -64,6 +64,8 @@ export default createComponent({
64
64
 
65
65
  square: Boolean,
66
66
 
67
+ backdropFilter: String,
68
+
67
69
  position: {
68
70
  type: String,
69
71
  default: 'standard',
@@ -102,6 +104,16 @@ export default createComponent({
102
104
  () => defaultTransitions[ props.position ][ 1 ]
103
105
  )
104
106
 
107
+ const backdropStyle = computed(() => (
108
+ transitionStyle.value
109
+ + (
110
+ props.backdropFilter !== void 0
111
+ // Safari requires the -webkit prefix
112
+ ? `;backdrop-filter:${ props.backdropFilter };-webkit-backdrop-filter:${ props.backdropFilter }`
113
+ : ''
114
+ )
115
+ ))
116
+
105
117
  const { showPortal, hidePortal, portalIsAccessible, renderPortal } = usePortal(
106
118
  vm, innerRef, renderPortalContent, 'dialog'
107
119
  )
@@ -384,7 +396,7 @@ export default createComponent({
384
396
  useBackdrop.value === true
385
397
  ? h('div', {
386
398
  class: 'q-dialog__backdrop fixed-full',
387
- style: transitionStyle.value,
399
+ style: backdropStyle.value,
388
400
  'aria-hidden': 'true',
389
401
  tabindex: -1,
390
402
  onClick: onBackdropClick
@@ -42,6 +42,25 @@
42
42
  "category": "content"
43
43
  },
44
44
 
45
+ "backdrop-filter": {
46
+ "type": "String",
47
+ "desc": "Apply a backdrop filter; The value needs to be the same as in the CSS specs for backdrop-filter; The examples are not an exhaustive list",
48
+ "examples": [
49
+ "blur(4px)",
50
+ "blur(4px) saturate(150%)",
51
+ "brightness(60%)",
52
+ "invert(70%)",
53
+ "grayscale(100%)",
54
+ "contrast(40%)",
55
+ "hue-rotate(120deg)",
56
+ "sepia(90%)",
57
+ "saturate(80%)",
58
+ "none"
59
+ ],
60
+ "category": "style",
61
+ "addedIn": "v2.15"
62
+ },
63
+
45
64
  "maximized": {
46
65
  "type": "Boolean",
47
66
  "desc": "Put Dialog into maximized mode",
@@ -3,7 +3,7 @@ import { h, withDirectives, ref, computed, watch, onMounted, onBeforeUnmount, ne
3
3
  import useHistory from '../../composables/private/use-history.js'
4
4
  import useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'
5
5
  import usePreventScroll from '../../composables/private/use-prevent-scroll.js'
6
- import useTimeout from '../../composables/private/use-timeout.js'
6
+ import useTimeout from '../../composables/use-timeout.js'
7
7
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
8
8
 
9
9
  import TouchPan from '../../directives/TouchPan.js'
@@ -5,7 +5,7 @@ import { getToolbar, getFonts, getLinkEditor } from './editor-utils.js'
5
5
 
6
6
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
7
7
  import useFullscreen, { useFullscreenProps, useFullscreenEmits } from '../../composables/private/use-fullscreen.js'
8
- import useSplitAttrs from '../../composables/private/use-split-attrs.js'
8
+ import useSplitAttrs from '../../composables/use-split-attrs.js'
9
9
 
10
10
  import { createComponent } from '../../utils/private/create.js'
11
11
  import { stopAndPrevent } from '../../utils/event.js'
@@ -85,13 +85,13 @@ export default createComponent({
85
85
  'linkHide'
86
86
  ],
87
87
 
88
- setup (props, { slots, emit, attrs }) {
89
- const { proxy, vnode } = getCurrentInstance()
88
+ setup (props, { slots, emit }) {
89
+ const { proxy } = getCurrentInstance()
90
90
  const { $q } = proxy
91
91
 
92
92
  const isDark = useDark(props, $q)
93
93
  const { inFullscreen, toggleFullscreen } = useFullscreen()
94
- const splitAttrs = useSplitAttrs(attrs, vnode)
94
+ const splitAttrs = useSplitAttrs()
95
95
 
96
96
  const rootRef = ref(null)
97
97
  const contentRef = ref(null)
@@ -8,7 +8,7 @@ import QSlideTransition from '../slide-transition/QSlideTransition.js'
8
8
  import QSeparator from '../separator/QSeparator.js'
9
9
 
10
10
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
11
- import useId from '../../composables/private/use-id.js'
11
+ import useId from '../../composables/use-id.js'
12
12
  import { useRouterLinkProps } from '../../composables/private/use-router-link.js'
13
13
  import useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'
14
14
 
@@ -4,7 +4,7 @@ import QBtn from '../btn/QBtn.js'
4
4
  import QIcon from '../icon/QIcon.js'
5
5
 
6
6
  import useFab, { useFabProps } from './use-fab.js'
7
- import useId from '../../composables/private/use-id.js'
7
+ import useId from '../../composables/use-id.js'
8
8
  import useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'
9
9
 
10
10
  import { createComponent } from '../../utils/private/create.js'
@@ -182,7 +182,8 @@ $field-transition-label-right-up: .324s cubic-bezier(.4,0,.2,1)
182
182
  .q-field__control > div
183
183
  opacity: .6 !important
184
184
 
185
- &, * // @stylint ignore
185
+ &,
186
+ *
186
187
  outline: 0 !important
187
188
 
188
189
  &__label