quasar 2.6.6 → 2.7.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 (182) hide show
  1. package/dist/api/QBtnDropdown.json +1 -0
  2. package/dist/api/QBtnToggle.json +1 -0
  3. package/dist/api/QCarousel.json +2 -1
  4. package/dist/api/QCheckbox.json +1 -0
  5. package/dist/api/QChip.json +3 -1
  6. package/dist/api/QColor.json +1 -0
  7. package/dist/api/QDate.json +1 -0
  8. package/dist/api/QEditor.json +3 -1
  9. package/dist/api/QExpansionItem.json +1 -0
  10. package/dist/api/QFab.json +1 -0
  11. package/dist/api/QFile.json +1 -0
  12. package/dist/api/QFooter.json +1 -0
  13. package/dist/api/QHeader.json +1 -0
  14. package/dist/api/QInput.json +1 -0
  15. package/dist/api/QItem.json +3 -1
  16. package/dist/api/QKnob.json +1 -0
  17. package/dist/api/QOptionGroup.json +1 -0
  18. package/dist/api/QPagination.json +1 -0
  19. package/dist/api/QPopupEdit.json +1 -0
  20. package/dist/api/QPopupProxy.json +1 -0
  21. package/dist/api/QRadio.json +1 -0
  22. package/dist/api/QRange.json +1 -0
  23. package/dist/api/QRating.json +1 -0
  24. package/dist/api/QSelect.json +1 -0
  25. package/dist/api/QSlider.json +1 -0
  26. package/dist/api/QSplitter.json +1 -0
  27. package/dist/api/QTable.json +5 -1
  28. package/dist/api/QTabs.json +1 -0
  29. package/dist/api/QTime.json +1 -0
  30. package/dist/api/QToggle.json +1 -0
  31. package/dist/api/QTree.json +6 -3
  32. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  33. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  34. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  35. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  36. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  37. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  38. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  39. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  40. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  41. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  42. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  43. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  44. package/dist/icon-set/material-symbols-outlined.umd.prod.js +6 -0
  45. package/dist/icon-set/material-symbols-rounded.umd.prod.js +6 -0
  46. package/dist/icon-set/material-symbols-sharp.umd.prod.js +6 -0
  47. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  48. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  49. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  50. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  51. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  52. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  53. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  54. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  55. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  56. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  57. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  58. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  59. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  60. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  61. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  62. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  63. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +6 -0
  64. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +6 -0
  65. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +6 -0
  66. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  67. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  68. package/dist/icon-set/themify.umd.prod.js +1 -1
  69. package/dist/lang/ar-TN.umd.prod.js +1 -1
  70. package/dist/lang/ar.umd.prod.js +1 -1
  71. package/dist/lang/az-Latn.umd.prod.js +1 -1
  72. package/dist/lang/bg.umd.prod.js +1 -1
  73. package/dist/lang/bn.umd.prod.js +1 -1
  74. package/dist/lang/ca.umd.prod.js +1 -1
  75. package/dist/lang/cs.umd.prod.js +1 -1
  76. package/dist/lang/da.umd.prod.js +1 -1
  77. package/dist/lang/de.umd.prod.js +1 -1
  78. package/dist/lang/el.umd.prod.js +1 -1
  79. package/dist/lang/en-GB.umd.prod.js +1 -1
  80. package/dist/lang/en-US.umd.prod.js +1 -1
  81. package/dist/lang/eo.umd.prod.js +1 -1
  82. package/dist/lang/es.umd.prod.js +2 -2
  83. package/dist/lang/et.umd.prod.js +1 -1
  84. package/dist/lang/eu.umd.prod.js +1 -1
  85. package/dist/lang/fa-IR.umd.prod.js +1 -1
  86. package/dist/lang/fa.umd.prod.js +1 -1
  87. package/dist/lang/fi.umd.prod.js +1 -1
  88. package/dist/lang/fr.umd.prod.js +1 -1
  89. package/dist/lang/gn.umd.prod.js +1 -1
  90. package/dist/lang/he.umd.prod.js +1 -1
  91. package/dist/lang/hr.umd.prod.js +1 -1
  92. package/dist/lang/hu.umd.prod.js +1 -1
  93. package/dist/lang/id.umd.prod.js +1 -1
  94. package/dist/lang/is.umd.prod.js +1 -1
  95. package/dist/lang/it.umd.prod.js +1 -1
  96. package/dist/lang/ja.umd.prod.js +1 -1
  97. package/dist/lang/km.umd.prod.js +1 -1
  98. package/dist/lang/ko-KR.umd.prod.js +1 -1
  99. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  100. package/dist/lang/kz.umd.prod.js +1 -1
  101. package/dist/lang/lt.umd.prod.js +1 -1
  102. package/dist/lang/lu.umd.prod.js +1 -1
  103. package/dist/lang/lv.umd.prod.js +1 -1
  104. package/dist/lang/ml.umd.prod.js +1 -1
  105. package/dist/lang/mm.umd.prod.js +6 -0
  106. package/dist/lang/ms.umd.prod.js +1 -1
  107. package/dist/lang/my.umd.prod.js +1 -1
  108. package/dist/lang/nb-NO.umd.prod.js +1 -1
  109. package/dist/lang/nl.umd.prod.js +1 -1
  110. package/dist/lang/pl.umd.prod.js +1 -1
  111. package/dist/lang/pt-BR.umd.prod.js +1 -1
  112. package/dist/lang/pt.umd.prod.js +1 -1
  113. package/dist/lang/ro.umd.prod.js +1 -1
  114. package/dist/lang/ru.umd.prod.js +1 -1
  115. package/dist/lang/sk.umd.prod.js +1 -1
  116. package/dist/lang/sl.umd.prod.js +1 -1
  117. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  118. package/dist/lang/sr.umd.prod.js +1 -1
  119. package/dist/lang/sv.umd.prod.js +1 -1
  120. package/dist/lang/ta.umd.prod.js +1 -1
  121. package/dist/lang/th.umd.prod.js +1 -1
  122. package/dist/lang/tr.umd.prod.js +1 -1
  123. package/dist/lang/ug.umd.prod.js +1 -1
  124. package/dist/lang/uk.umd.prod.js +1 -1
  125. package/dist/lang/vi.umd.prod.js +1 -1
  126. package/dist/lang/zh-CN.umd.prod.js +1 -1
  127. package/dist/lang/zh-TW.umd.prod.js +1 -1
  128. package/dist/quasar.addon.rtl.css +251 -0
  129. package/dist/quasar.cjs.prod.js +2 -2
  130. package/dist/quasar.css +4 -1
  131. package/dist/quasar.esm.prod.js +2 -2
  132. package/dist/quasar.prod.css +1 -1
  133. package/dist/quasar.rtl.css +1225 -1
  134. package/dist/quasar.rtl.prod.css +1 -1
  135. package/dist/quasar.sass +5 -2
  136. package/dist/quasar.umd.js +88 -65
  137. package/dist/quasar.umd.prod.js +2 -2
  138. package/dist/types/api/quploader.d.ts +7 -7
  139. package/dist/types/extras/icon-set.d.ts +6 -0
  140. package/dist/types/index.d.ts +259 -254
  141. package/dist/types/utils/dom.d.ts +1 -1
  142. package/dist/types/utils.d.ts +11 -0
  143. package/dist/web-types/web-types.json +1 -1
  144. package/icon-set/material-symbols-outlined.js +133 -0
  145. package/icon-set/material-symbols-outlined.mjs +128 -0
  146. package/icon-set/material-symbols-rounded.js +133 -0
  147. package/icon-set/material-symbols-rounded.mjs +128 -0
  148. package/icon-set/material-symbols-sharp.js +133 -0
  149. package/icon-set/material-symbols-sharp.mjs +128 -0
  150. package/icon-set/svg-material-symbols-outlined.js +201 -0
  151. package/icon-set/svg-material-symbols-outlined.mjs +201 -0
  152. package/icon-set/svg-material-symbols-rounded.js +201 -0
  153. package/icon-set/svg-material-symbols-rounded.mjs +201 -0
  154. package/icon-set/svg-material-symbols-sharp.js +201 -0
  155. package/icon-set/svg-material-symbols-sharp.mjs +201 -0
  156. package/lang/es.js +1 -1
  157. package/lang/es.mjs +1 -1
  158. package/lang/index.json +4 -0
  159. package/lang/mm.js +96 -0
  160. package/lang/mm.mjs +91 -0
  161. package/package.json +4 -5
  162. package/src/api.extends.json +1 -0
  163. package/src/components/avatar/__tests__/QAvatar.spec.js +1 -1
  164. package/src/components/badge/__tests__/QBadge.spec.js +1 -1
  165. package/src/components/btn/QBtn.js +2 -2
  166. package/src/components/editor/QEditor.js +11 -25
  167. package/src/components/icon/QIcon.js +24 -1
  168. package/src/components/icon/QIcon.sass +4 -1
  169. package/src/components/infinite-scroll/QInfiniteScroll.js +10 -10
  170. package/src/components/input/QInput.js +5 -0
  171. package/src/components/item/QItem.js +5 -2
  172. package/src/components/item/QItem.json +2 -1
  173. package/src/components/layout/QLayout.js +2 -1
  174. package/src/components/select/QSelect.js +1 -1
  175. package/src/components/slider/use-slider.js +1 -1
  176. package/src/components/table/QTable.json +3 -0
  177. package/src/components/uploader/uploader-core.js +22 -18
  178. package/src/components/virtual-scroll/use-virtual-scroll.js +3 -3
  179. package/src/composables/private/__tests__/use-model-toggle.spec.js +2 -2
  180. package/src/composables/private/__tests__/use-size.spec.js +2 -2
  181. package/src/composables/private/__tests__/use-validate.spec.js +1 -1
  182. package/src/composables/private/use-field.js +1 -0
@@ -0,0 +1,201 @@
1
+
2
+ /*
3
+ * DO NOT EDIT THIS FILE. It is automatically generated
4
+ * from its webfont counterpart (same filename without "svg-" prefix).
5
+ * Edit that file instead (material-symbols-sharp.mjs).
6
+ */
7
+
8
+ import {
9
+ symSharpCheckCircle,
10
+ symSharpWarning,
11
+ symSharpInfo,
12
+ symSharpPriorityHigh,
13
+ symSharpArrowUpward,
14
+ symSharpArrowForward,
15
+ symSharpArrowDownward,
16
+ symSharpArrowBack,
17
+ symSharpArrowDropDown,
18
+ symSharpChevronLeft,
19
+ symSharpChevronRight,
20
+ symSharpGradient,
21
+ symSharpTune,
22
+ symSharpStyle,
23
+ symSharpRefresh,
24
+ symSharpKeyboardArrowUp,
25
+ symSharpKeyboardArrowDown,
26
+ symSharpLens,
27
+ symSharpCancel,
28
+ symSharpCheck,
29
+ symSharpSchedule,
30
+ symSharpToday,
31
+ symSharpFormatBold,
32
+ symSharpFormatItalic,
33
+ symSharpStrikethroughS,
34
+ symSharpFormatUnderlined,
35
+ symSharpFormatListBulleted,
36
+ symSharpFormatListNumbered,
37
+ symSharpVerticalAlignBottom,
38
+ symSharpVerticalAlignTop,
39
+ symSharpLink,
40
+ symSharpFullscreen,
41
+ symSharpFormatQuote,
42
+ symSharpFormatAlignLeft,
43
+ symSharpFormatAlignCenter,
44
+ symSharpFormatAlignRight,
45
+ symSharpFormatAlignJustify,
46
+ symSharpPrint,
47
+ symSharpFormatIndentDecrease,
48
+ symSharpFormatIndentIncrease,
49
+ symSharpFormatClear,
50
+ symSharpTextFormat,
51
+ symSharpFormatSize,
52
+ symSharpRemove,
53
+ symSharpUndo,
54
+ symSharpRedo,
55
+ symSharpCode,
56
+ symSharpFontDownload,
57
+ symSharpAdd,
58
+ symSharpClose,
59
+ symSharpError,
60
+ symSharpFirstPage,
61
+ symSharpKeyboardArrowLeft,
62
+ symSharpKeyboardArrowRight,
63
+ symSharpLastPage,
64
+ symSharpGrade,
65
+ symSharpEdit,
66
+ symSharpPlayArrow,
67
+ symSharpDone,
68
+ symSharpAddBox,
69
+ symSharpCloudUpload,
70
+ symSharpClearAll,
71
+ symSharpDoneAll
72
+ } from '@quasar/extras/material-symbols-sharp'
73
+
74
+ export default {
75
+ name: 'svg-material-symbols-sharp',
76
+ type: {
77
+ positive: symSharpCheckCircle,
78
+ negative: symSharpWarning,
79
+ info: symSharpInfo,
80
+ warning: symSharpPriorityHigh
81
+ },
82
+ arrow: {
83
+ up: symSharpArrowUpward,
84
+ right: symSharpArrowForward,
85
+ down: symSharpArrowDownward,
86
+ left: symSharpArrowBack,
87
+ dropdown: symSharpArrowDropDown
88
+ },
89
+ chevron: {
90
+ left: symSharpChevronLeft,
91
+ right: symSharpChevronRight
92
+ },
93
+ colorPicker: {
94
+ spectrum: symSharpGradient,
95
+ tune: symSharpTune,
96
+ palette: symSharpStyle
97
+ },
98
+ pullToRefresh: {
99
+ icon: symSharpRefresh
100
+ },
101
+ carousel: {
102
+ left: symSharpChevronLeft,
103
+ right: symSharpChevronRight,
104
+ up: symSharpKeyboardArrowUp,
105
+ down: symSharpKeyboardArrowDown,
106
+ navigationIcon: symSharpLens
107
+ },
108
+ chip: {
109
+ remove: symSharpCancel,
110
+ selected: symSharpCheck
111
+ },
112
+ datetime: {
113
+ arrowLeft: symSharpChevronLeft,
114
+ arrowRight: symSharpChevronRight,
115
+ now: symSharpSchedule,
116
+ today: symSharpToday
117
+ },
118
+ editor: {
119
+ bold: symSharpFormatBold,
120
+ italic: symSharpFormatItalic,
121
+ strikethrough: symSharpStrikethroughS,
122
+ underline: symSharpFormatUnderlined,
123
+ unorderedList: symSharpFormatListBulleted,
124
+ orderedList: symSharpFormatListNumbered,
125
+ subscript: symSharpVerticalAlignBottom,
126
+ superscript: symSharpVerticalAlignTop,
127
+ hyperlink: symSharpLink,
128
+ toggleFullscreen: symSharpFullscreen,
129
+ quote: symSharpFormatQuote,
130
+ left: symSharpFormatAlignLeft,
131
+ center: symSharpFormatAlignCenter,
132
+ right: symSharpFormatAlignRight,
133
+ justify: symSharpFormatAlignJustify,
134
+ print: symSharpPrint,
135
+ outdent: symSharpFormatIndentDecrease,
136
+ indent: symSharpFormatIndentIncrease,
137
+ removeFormat: symSharpFormatClear,
138
+ formatting: symSharpTextFormat,
139
+ fontSize: symSharpFormatSize,
140
+ align: symSharpFormatAlignLeft,
141
+ hr: symSharpRemove,
142
+ undo: symSharpUndo,
143
+ redo: symSharpRedo,
144
+ heading: symSharpFormatSize,
145
+ code: symSharpCode,
146
+ size: symSharpFormatSize,
147
+ font: symSharpFontDownload,
148
+ viewSource: symSharpCode
149
+ },
150
+ expansionItem: {
151
+ icon: symSharpKeyboardArrowDown,
152
+ denseIcon: symSharpArrowDropDown
153
+ },
154
+ fab: {
155
+ icon: symSharpAdd,
156
+ activeIcon: symSharpClose
157
+ },
158
+ field: {
159
+ clear: symSharpCancel,
160
+ error: symSharpError
161
+ },
162
+ pagination: {
163
+ first: symSharpFirstPage,
164
+ prev: symSharpKeyboardArrowLeft,
165
+ next: symSharpKeyboardArrowRight,
166
+ last: symSharpLastPage
167
+ },
168
+ rating: {
169
+ icon: symSharpGrade
170
+ },
171
+ stepper: {
172
+ done: symSharpCheck,
173
+ active: symSharpEdit,
174
+ error: symSharpWarning
175
+ },
176
+ tabs: {
177
+ left: symSharpChevronLeft,
178
+ right: symSharpChevronRight,
179
+ up: symSharpKeyboardArrowUp,
180
+ down: symSharpKeyboardArrowDown
181
+ },
182
+ table: {
183
+ arrowUp: symSharpArrowUpward,
184
+ warning: symSharpWarning,
185
+ firstPage: symSharpFirstPage,
186
+ prevPage: symSharpChevronLeft,
187
+ nextPage: symSharpChevronRight,
188
+ lastPage: symSharpLastPage
189
+ },
190
+ tree: {
191
+ icon: symSharpPlayArrow
192
+ },
193
+ uploader: {
194
+ done: symSharpDone,
195
+ clear: symSharpClose,
196
+ add: symSharpAddBox,
197
+ upload: symSharpCloudUpload,
198
+ removeQueue: symSharpClearAll,
199
+ removeUploaded: symSharpDoneAll
200
+ }
201
+ }
package/lang/es.js CHANGED
@@ -32,7 +32,7 @@ module.exports = {
32
32
  },
33
33
  table: {
34
34
  noData: 'Sin datos disponibles',
35
- noResults: 'No se han encontrado resultado',
35
+ noResults: 'No se han encontrado resultados',
36
36
  loading: 'Cargando...',
37
37
  selectedRecords: rows => (
38
38
  rows > 1
package/lang/es.mjs CHANGED
@@ -27,7 +27,7 @@ export default {
27
27
  },
28
28
  table: {
29
29
  noData: 'Sin datos disponibles',
30
- noResults: 'No se han encontrado resultado',
30
+ noResults: 'No se han encontrado resultados',
31
31
  loading: 'Cargando...',
32
32
  selectedRecords: rows => (
33
33
  rows > 1
package/lang/index.json CHANGED
@@ -143,6 +143,10 @@
143
143
  "isoName": "ml",
144
144
  "nativeName": "മലയാളം"
145
145
  },
146
+ {
147
+ "isoName": "mm",
148
+ "nativeName": "မြန်မာ(ဗမာ)"
149
+ },
146
150
  {
147
151
  "isoName": "ms",
148
152
  "nativeName": "Bahasa Melayu"
package/lang/mm.js ADDED
@@ -0,0 +1,96 @@
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 (mm.mjs).
5
+ */
6
+ module.exports = {
7
+ isoName: 'mm',
8
+ nativeName: 'မြန်မာ(ဗမာ)',
9
+ label: {
10
+ clear: 'ရှင်းလင်းမည်',
11
+ ok: 'အဆင်ပြေသည်',
12
+ cancel: 'ပယ်ဖျက်မည်',
13
+ close: 'ပိတ်မည်',
14
+ set: 'သတ်မှတ်မည်',
15
+ select: 'ရွေးမည်',
16
+ reset: 'ပြန်လည်သတ်မှတ်မည်',
17
+ remove: 'ပယ်ဖျက်မည်',
18
+ update: 'အသစ်ပြင်ဆင်မည်',
19
+ create: 'ဖန်တီးမည်',
20
+ search: 'ရှာမည်',
21
+ filter: 'စစ်ထုတ်မည်',
22
+ refresh: 'အသစ်ပြန်လုပ်မည်'
23
+ },
24
+ date: {
25
+ days: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
26
+ daysShort: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
27
+ months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
28
+ monthsShort: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
29
+ firstDayOfWeek: 1, // 0-6, 0 - Sunday, 1 Monday, ...
30
+ format24h: false,
31
+ pluralDay: 'ရက်'
32
+ },
33
+ table: {
34
+ noData: 'ဒေတာမရှိပါ',
35
+ noResults: 'ကိုက်ညီသောရလဒ်မရှိပါ',
36
+ loading: 'လုပ်ဆောင်နေသည်',
37
+ selectedRecords: rows => (
38
+ rows > 0
39
+ ? rows + ' ကြောင်းရွေးချယ်ထားသည်'
40
+ : 'ဘာမှ မရွေးချယ်ထားပါ'
41
+ ),
42
+ recordsPerPage: 'တစ်မျက်နှာ အကြောင်းရေတွက်',
43
+ allRows: 'အားလုံး',
44
+ pagination: (start, end, total) => start + 'မှ' + end + 'ထိ' + 'အားလုံး' + total + 'ရှိ',
45
+ columns: 'ကော်လံ'
46
+ },
47
+ editor: {
48
+ url: 'URL',
49
+ bold: 'Bold',
50
+ italic: 'Italic',
51
+ strikethrough: 'Strikethrough',
52
+ underline: 'Underline',
53
+ unorderedList: 'Unordered List',
54
+ orderedList: 'Ordered List',
55
+ subscript: 'Subscript',
56
+ superscript: 'Superscript',
57
+ hyperlink: 'Hyperlink',
58
+ toggleFullscreen: 'Toggle Fullscreen',
59
+ quote: 'Quote',
60
+ left: 'Left align',
61
+ center: 'Center align',
62
+ right: 'Right align',
63
+ justify: 'Justify align',
64
+ print: 'Print',
65
+ outdent: 'Decrease indentation',
66
+ indent: 'Increase indentation',
67
+ removeFormat: 'Remove formatting',
68
+ formatting: 'Formatting',
69
+ fontSize: 'Font Size',
70
+ align: 'Align',
71
+ hr: 'Insert Horizontal Rule',
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: 'Paragraph',
81
+ code: 'Code',
82
+ size1: 'Very small',
83
+ size2: 'A bit small',
84
+ size3: 'Normal',
85
+ size4: 'Medium-large',
86
+ size5: 'Big',
87
+ size6: 'Very big',
88
+ size7: 'Maximum',
89
+ defaultFont: 'Default Font',
90
+ viewSource: 'View Source'
91
+ },
92
+ tree: {
93
+ noNodes: 'No nodes available',
94
+ noResults: 'No matching nodes found'
95
+ }
96
+ }
package/lang/mm.mjs ADDED
@@ -0,0 +1,91 @@
1
+ export default {
2
+ isoName: 'mm',
3
+ nativeName: 'မြန်မာ(ဗမာ)',
4
+ label: {
5
+ clear: 'ရှင်းလင်းမည်',
6
+ ok: 'အဆင်ပြေသည်',
7
+ cancel: 'ပယ်ဖျက်မည်',
8
+ close: 'ပိတ်မည်',
9
+ set: 'သတ်မှတ်မည်',
10
+ select: 'ရွေးမည်',
11
+ reset: 'ပြန်လည်သတ်မှတ်မည်',
12
+ remove: 'ပယ်ဖျက်မည်',
13
+ update: 'အသစ်ပြင်ဆင်မည်',
14
+ create: 'ဖန်တီးမည်',
15
+ search: 'ရှာမည်',
16
+ filter: 'စစ်ထုတ်မည်',
17
+ refresh: 'အသစ်ပြန်လုပ်မည်'
18
+ },
19
+ date: {
20
+ days: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
21
+ daysShort: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),
22
+ months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
23
+ monthsShort: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),
24
+ firstDayOfWeek: 1, // 0-6, 0 - Sunday, 1 Monday, ...
25
+ format24h: false,
26
+ pluralDay: 'ရက်'
27
+ },
28
+ table: {
29
+ noData: 'ဒေတာမရှိပါ',
30
+ noResults: 'ကိုက်ညီသောရလဒ်မရှိပါ',
31
+ loading: 'လုပ်ဆောင်နေသည်',
32
+ selectedRecords: rows => (
33
+ rows > 0
34
+ ? rows + ' ကြောင်းရွေးချယ်ထားသည်'
35
+ : 'ဘာမှ မရွေးချယ်ထားပါ'
36
+ ),
37
+ recordsPerPage: 'တစ်မျက်နှာ အကြောင်းရေတွက်',
38
+ allRows: 'အားလုံး',
39
+ pagination: (start, end, total) => start + 'မှ' + end + 'ထိ' + 'အားလုံး' + total + 'ရှိ',
40
+ columns: 'ကော်လံ'
41
+ },
42
+ editor: {
43
+ url: 'URL',
44
+ bold: 'Bold',
45
+ italic: 'Italic',
46
+ strikethrough: 'Strikethrough',
47
+ underline: 'Underline',
48
+ unorderedList: 'Unordered List',
49
+ orderedList: 'Ordered List',
50
+ subscript: 'Subscript',
51
+ superscript: 'Superscript',
52
+ hyperlink: 'Hyperlink',
53
+ toggleFullscreen: 'Toggle Fullscreen',
54
+ quote: 'Quote',
55
+ left: 'Left align',
56
+ center: 'Center align',
57
+ right: 'Right align',
58
+ justify: 'Justify align',
59
+ print: 'Print',
60
+ outdent: 'Decrease indentation',
61
+ indent: 'Increase indentation',
62
+ removeFormat: 'Remove formatting',
63
+ formatting: 'Formatting',
64
+ fontSize: 'Font Size',
65
+ align: 'Align',
66
+ hr: 'Insert Horizontal Rule',
67
+ undo: 'Undo',
68
+ redo: 'Redo',
69
+ heading1: 'Heading 1',
70
+ heading2: 'Heading 2',
71
+ heading3: 'Heading 3',
72
+ heading4: 'Heading 4',
73
+ heading5: 'Heading 5',
74
+ heading6: 'Heading 6',
75
+ paragraph: 'Paragraph',
76
+ code: 'Code',
77
+ size1: 'Very small',
78
+ size2: 'A bit small',
79
+ size3: 'Normal',
80
+ size4: 'Medium-large',
81
+ size5: 'Big',
82
+ size6: 'Very big',
83
+ size7: 'Maximum',
84
+ defaultFont: 'Default Font',
85
+ viewSource: 'View Source'
86
+ },
87
+ tree: {
88
+ noNodes: 'No nodes available',
89
+ noResults: 'No matching nodes found'
90
+ }
91
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.6.6",
3
+ "version": "2.7.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,11 +27,10 @@
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
- "test": "yarn lint && yarn build",
31
30
  "lint": "eslint --ext .js,.vue src dev",
32
31
  "lint-fix": "eslint --ext .js,.vue src dev --fix",
33
- "test:unit": "cd ./dev && cypress open-ct && cd ..",
34
- "test:unit:ci": "cd ./dev && cypress run-ct && cd ..",
32
+ "test:component": "cd ./dev && cypress open-ct && cd ..",
33
+ "test:component:ci": "cd ./dev && cypress run-ct && cd ..",
35
34
  "test:create": "node ./test/cypress/helpers/create-spec.js -c"
36
35
  },
37
36
  "repository": {
@@ -68,7 +67,7 @@
68
67
  "devDependencies": {
69
68
  "@quasar/app-vite": "^1.0.0-beta.5",
70
69
  "@quasar/extras": "^1.12.0",
71
- "@quasar/quasar-app-extension-testing-e2e-cypress": "^4.0.1",
70
+ "@quasar/quasar-app-extension-testing-e2e-cypress": "^4.1.2",
72
71
  "@rollup/plugin-node-resolve": "^11.2.1",
73
72
  "@rollup/plugin-replace": "^2.3.3",
74
73
  "autoprefixer": "^10.4.4",
@@ -105,6 +105,7 @@
105
105
  "model-value": {
106
106
  "desc": "Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive",
107
107
  "required": true,
108
+ "syncable": true,
108
109
  "category": "model"
109
110
  },
110
111
 
@@ -1,5 +1,5 @@
1
1
  import { mount } from '@cypress/vue'
2
- import QAvatar from '../QAvatar'
2
+ import QAvatar from '../QAvatar.js'
3
3
 
4
4
  describe('Avatar API', () => {
5
5
  describe('Props', () => {
@@ -1,5 +1,5 @@
1
1
  // import { mount } from '@cypress/vue'
2
- // import QBadge from '../QBadge'
2
+ // import QBadge from '../QBadge.js'
3
3
 
4
4
  // const snapshotOptions = { customSnapshotsDir: '../src/components/badge/__tests__' }
5
5
 
@@ -329,10 +329,10 @@ export default createComponent({
329
329
  if (props.loading === true && props.percentage !== void 0) {
330
330
  child.push(
331
331
  h('span', {
332
- class: 'q-btn__progress absolute-full overflow-hidden'
332
+ class: 'q-btn__progress absolute-full overflow-hidden' + (props.darkPercentage === true ? ' q-btn__progress--dark' : '')
333
333
  }, [
334
334
  h('span', {
335
- class: 'q-btn__progress-indicator fit block' + (props.darkPercentage === true ? ' q-btn__progress--dark' : ''),
335
+ class: 'q-btn__progress-indicator fit block',
336
336
  style: percentageStyle.value
337
337
  })
338
338
  ])
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, watch, onMounted, nextTick, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, watch, onMounted, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'
2
2
 
3
3
  import Caret from './editor-caret.js'
4
4
  import { getToolbar, getFonts, getLinkEditor } from './editor-utils.js'
@@ -400,27 +400,12 @@ export default createComponent({
400
400
  }
401
401
  }
402
402
 
403
- function onMousedown () {
403
+ function onPointerStart () {
404
404
  offsetBottom = void 0
405
405
  }
406
406
 
407
- function onMouseup (e) {
407
+ function onSelectionchange (e) {
408
408
  eVm.caret.save()
409
- emit('mouseup', e)
410
- }
411
-
412
- function onTouchstartPassive () {
413
- offsetBottom = void 0
414
- }
415
-
416
- function onKeyup (e) {
417
- eVm.caret.save()
418
- emit('keyup', e)
419
- }
420
-
421
- function onTouchend (e) {
422
- eVm.caret.save()
423
- emit('touchend', e)
424
409
  }
425
410
 
426
411
  function setContent (v, restorePosition) {
@@ -477,6 +462,12 @@ export default createComponent({
477
462
  eVm.caret = proxy.caret = new Caret(contentRef.value, eVm)
478
463
  setContent(props.modelValue)
479
464
  refreshToolbar()
465
+
466
+ document.addEventListener('selectionchange', onSelectionchange)
467
+ })
468
+
469
+ onBeforeUnmount(() => {
470
+ document.removeEventListener('selectionchange', onSelectionchange)
480
471
  })
481
472
 
482
473
  return () => {
@@ -532,13 +523,8 @@ export default createComponent({
532
523
  onFocus,
533
524
 
534
525
  // clean saved scroll position
535
- onMousedown,
536
- onTouchstartPassive,
537
-
538
- // save caret
539
- onMouseup,
540
- onKeyup,
541
- onTouchend
526
+ onMousedown: onPointerStart,
527
+ onTouchstartPassive: onPointerStart
542
528
  })
543
529
  ])
544
530
  }
@@ -29,8 +29,15 @@ const matMap = {
29
29
  s_: '-sharp'
30
30
  }
31
31
 
32
+ const symMap = {
33
+ sym_o_: '-outlined',
34
+ sym_r_: '-rounded',
35
+ sym_s_: '-sharp'
36
+ }
37
+
32
38
  const libRE = new RegExp('^(' + Object.keys(libMap).join('|') + ')')
33
39
  const matRE = new RegExp('^(' + Object.keys(matMap).join('|') + ')')
40
+ const symRE = new RegExp('^(' + Object.keys(symMap).join('|') + ')')
34
41
  const mRE = /^[Mm]\s?[-+]?\.?\d/
35
42
  const imgRE = /^img:/
36
43
  const svgUseRE = /^svguse:/
@@ -135,6 +142,22 @@ export default createComponent({
135
142
  else if (ionRE.test(icon) === true) {
136
143
  cls = `ionicons ion-${ $q.platform.is.ios === true ? 'ios' : 'md' }${ icon.substring(3) }`
137
144
  }
145
+ else if (symRE.test(icon) === true) {
146
+ // "notranslate" class is for Google Translate
147
+ // to avoid tampering with Material Symbols ligature font
148
+ //
149
+ // Caution: To be able to add suffix to the class name,
150
+ // keep the 'material-symbols' at the end of the string.
151
+ cls = 'notranslate material-symbols'
152
+
153
+ const matches = icon.match(symRE)
154
+ if (matches !== null) {
155
+ icon = icon.substring(6)
156
+ cls += symMap[ matches[ 1 ] ]
157
+ }
158
+
159
+ content = icon
160
+ }
138
161
  else {
139
162
  // "notranslate" class is for Google Translate
140
163
  // to avoid tampering with Material Icons ligature font
@@ -179,7 +202,7 @@ export default createComponent({
179
202
  if (type.value.svg === true) {
180
203
  return h('span', data, hMergeSlot(slots.default, [
181
204
  h('svg', {
182
- viewBox: type.value.viewBox
205
+ viewBox: type.value.viewBox || '0 0 24 24'
183
206
  }, type.value.nodes)
184
207
  ]))
185
208
  }
@@ -28,7 +28,10 @@
28
28
  .material-icons,
29
29
  .material-icons-outlined,
30
30
  .material-icons-round,
31
- .material-icons-sharp
31
+ .material-icons-sharp,
32
+ .material-symbols-outlined,
33
+ .material-symbols-rounded,
34
+ .material-symbols-sharp
32
35
  user-select: none
33
36
  cursor: inherit
34
37
  font-size: inherit
@@ -135,6 +135,16 @@ export default createComponent({
135
135
 
136
136
  if (isWorking.value === true) {
137
137
  localScrollTarget.addEventListener('scroll', poll, passive)
138
+
139
+ if (props.reverse === true) {
140
+ const
141
+ scrollHeight = getScrollHeight(localScrollTarget),
142
+ containerHeight = height(localScrollTarget)
143
+
144
+ setVerticalScrollPosition(localScrollTarget, scrollHeight - containerHeight)
145
+ }
146
+
147
+ immediatePoll()
138
148
  }
139
149
  }
140
150
 
@@ -205,16 +215,6 @@ export default createComponent({
205
215
  setDebounce(props.debounce)
206
216
 
207
217
  updateScrollTarget()
208
-
209
- if (props.reverse === true) {
210
- const
211
- scrollHeight = getScrollHeight(localScrollTarget),
212
- containerHeight = height(localScrollTarget)
213
-
214
- setVerticalScrollPosition(localScrollTarget, scrollHeight - containerHeight)
215
- }
216
-
217
- immediatePoll()
218
218
  })
219
219
 
220
220
  return () => {
@@ -253,6 +253,8 @@ export default createComponent({
253
253
  }
254
254
 
255
255
  if (props.modelValue !== val && emitCachedValue !== val) {
256
+ emitCachedValue = val
257
+
256
258
  stopWatcher === true && (stopValueWatcher = true)
257
259
  emit('update:modelValue', val)
258
260
 
@@ -284,13 +286,16 @@ export default createComponent({
284
286
  const inp = inputRef.value
285
287
  if (inp !== null) {
286
288
  const parentStyle = inp.parentNode.style
289
+ const { overflow } = inp.style
287
290
 
288
291
  // reset height of textarea to a small size to detect the real height
289
292
  // but keep the total control size the same
290
293
  parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px'
291
294
  inp.style.height = '1px'
295
+ inp.style.overflow = 'hidden'
292
296
 
293
297
  inp.style.height = inp.scrollHeight + 'px'
298
+ inp.style.overflow = overflow
294
299
  parentStyle.marginBottom = ''
295
300
  }
296
301
  }