quasar 2.5.5 → 2.6.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/README.md +1 -1
  2. package/dist/api/Dialog.json +9 -2
  3. package/dist/api/QKnob.json +5 -0
  4. package/dist/api/QSelect.json +8 -9
  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 +6 -0
  10. package/dist/icon-set/fontawesome-v6.umd.prod.js +6 -0
  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/mdi-v3.umd.prod.js +1 -1
  18. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  19. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  20. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  21. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +2 -2
  22. package/dist/icon-set/svg-eva-icons.umd.prod.js +2 -2
  23. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +2 -2
  24. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +6 -0
  25. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +2 -2
  28. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-mdi-v6.umd.prod.js +2 -2
  36. package/dist/icon-set/svg-themify.umd.prod.js +2 -2
  37. package/dist/icon-set/themify.umd.prod.js +1 -1
  38. package/dist/lang/ar.umd.prod.js +1 -1
  39. package/dist/lang/az-Latn.umd.prod.js +1 -1
  40. package/dist/lang/bg.umd.prod.js +1 -1
  41. package/dist/lang/bn.umd.prod.js +1 -1
  42. package/dist/lang/ca.umd.prod.js +1 -1
  43. package/dist/lang/cs.umd.prod.js +1 -1
  44. package/dist/lang/da.umd.prod.js +1 -1
  45. package/dist/lang/de.umd.prod.js +1 -1
  46. package/dist/lang/el.umd.prod.js +1 -1
  47. package/dist/lang/en-GB.umd.prod.js +1 -1
  48. package/dist/lang/en-US.umd.prod.js +1 -1
  49. package/dist/lang/eo.umd.prod.js +1 -1
  50. package/dist/lang/es.umd.prod.js +1 -1
  51. package/dist/lang/et.umd.prod.js +1 -1
  52. package/dist/lang/eu.umd.prod.js +6 -0
  53. package/dist/lang/fa-IR.umd.prod.js +1 -1
  54. package/dist/lang/fa.umd.prod.js +1 -1
  55. package/dist/lang/fi.umd.prod.js +1 -1
  56. package/dist/lang/fr.umd.prod.js +1 -1
  57. package/dist/lang/gn.umd.prod.js +1 -1
  58. package/dist/lang/he.umd.prod.js +1 -1
  59. package/dist/lang/hr.umd.prod.js +1 -1
  60. package/dist/lang/hu.umd.prod.js +1 -1
  61. package/dist/lang/id.umd.prod.js +1 -1
  62. package/dist/lang/is.umd.prod.js +1 -1
  63. package/dist/lang/it.umd.prod.js +1 -1
  64. package/dist/lang/ja.umd.prod.js +1 -1
  65. package/dist/lang/km.umd.prod.js +1 -1
  66. package/dist/lang/ko-KR.umd.prod.js +1 -1
  67. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  68. package/dist/lang/kz.umd.prod.js +6 -0
  69. package/dist/lang/lt.umd.prod.js +1 -1
  70. package/dist/lang/lu.umd.prod.js +1 -1
  71. package/dist/lang/lv.umd.prod.js +1 -1
  72. package/dist/lang/ml.umd.prod.js +1 -1
  73. package/dist/lang/ms.umd.prod.js +1 -1
  74. package/dist/lang/my.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 +2 -2
  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.css +2 -4
  97. package/dist/quasar.esm.prod.js +2 -2
  98. package/dist/quasar.prod.css +1 -1
  99. package/dist/quasar.rtl.css +2 -4
  100. package/dist/quasar.rtl.prod.css +1 -1
  101. package/dist/quasar.sass +2 -1
  102. package/dist/quasar.umd.js +277 -235
  103. package/dist/quasar.umd.prod.js +2 -2
  104. package/dist/types/extras/icon-set.d.ts +3 -0
  105. package/dist/types/globals.d.ts +2 -2
  106. package/dist/types/index.d.ts +11 -3
  107. package/dist/vetur/quasar-attributes.json +4 -0
  108. package/dist/vetur/quasar-tags.json +1 -0
  109. package/dist/web-types/web-types.json +11 -1
  110. package/icon-set/fontawesome-v6-pro.js +128 -0
  111. package/icon-set/fontawesome-v6.js +128 -0
  112. package/icon-set/svg-fontawesome-v6.js +198 -0
  113. package/lang/eu.js +91 -0
  114. package/lang/index.json +8 -0
  115. package/lang/kz.js +95 -0
  116. package/lang/ug.js +49 -50
  117. package/package.json +1 -1
  118. package/src/components/btn/QBtn.js +16 -14
  119. package/src/components/btn/use-btn.js +7 -7
  120. package/src/components/date/QDate.js +2 -2
  121. package/src/components/dialog/QDialog.js +11 -11
  122. package/src/components/dialog-bottom-sheet/BottomSheet.js +11 -11
  123. package/src/components/dialog-plugin/DialogPlugin.js +6 -6
  124. package/src/components/editor/QEditor.js +10 -10
  125. package/src/components/editor/editor-utils.js +2 -2
  126. package/src/components/file/QFile.js +2 -1
  127. package/src/components/icon/QIcon.js +2 -1
  128. package/src/components/infinite-scroll/QInfiniteScroll.js +3 -1
  129. package/src/components/inner-loading/QInnerLoading.js +7 -7
  130. package/src/components/input/QInput.js +4 -1
  131. package/src/components/knob/QKnob.js +5 -2
  132. package/src/components/knob/QKnob.json +6 -0
  133. package/src/components/linear-progress/QLinearProgress.sass +1 -0
  134. package/src/components/menu/QMenu.js +13 -13
  135. package/src/components/page-scroller/QPageScroller.js +4 -4
  136. package/src/components/pull-to-refresh/QPullToRefresh.js +5 -5
  137. package/src/components/select/QSelect.js +13 -7
  138. package/src/components/select/QSelect.json +4 -7
  139. package/src/components/slider/use-slider.js +4 -4
  140. package/src/components/stepper/QStep.js +6 -6
  141. package/src/components/table/table-column-selection.js +6 -6
  142. package/src/components/table/table-sort.js +2 -2
  143. package/src/components/tabs/QTabs.js +4 -4
  144. package/src/components/tooltip/QTooltip.js +12 -12
  145. package/src/components/uploader/uploader-core.js +11 -10
  146. package/src/components/virtual-scroll/QVirtualScroll.js +3 -3
  147. package/src/components/virtual-scroll/use-virtual-scroll.js +20 -20
  148. package/src/composables/private/use-field.js +25 -17
  149. package/src/composables/private/use-file-dom-props.js +5 -5
  150. package/src/composables/private/use-file.js +15 -12
  151. package/src/composables/private/use-router-link.js +2 -2
  152. package/src/directives/Morph.js +12 -3
  153. package/src/install-quasar.js +3 -3
  154. package/src/plugins/AddressbarColor.js +7 -7
  155. package/src/plugins/Cookies.js +5 -1
  156. package/src/plugins/Dialog.json +3 -2
  157. package/src/plugins/Loading.js +3 -3
  158. package/src/plugins/LoadingBar.js +12 -6
  159. package/src/plugins/Notify.js +4 -4
  160. package/src/utils/create-meta-mixin.js +4 -4
  161. package/src/utils/create-uploader-component.js +2 -2
  162. package/src/utils/event.js +3 -3
  163. package/src/utils/extend.js +3 -3
  164. package/src/utils/morph.js +2 -2
  165. package/src/utils/private/is.js +4 -2
  166. package/src/utils/private/noop-ssr-directive-transform.js +1 -1
  167. package/wrappers/index.js +33 -5
  168. package/wrappers/index.mjs +63 -0
  169. package/dist/ssr-directives/Morph.js +0 -55
  170. package/dist/ssr-directives/index.js +0 -14
  171. package/src/directives/Morph.ssr.js +0 -45
package/lang/kz.js ADDED
@@ -0,0 +1,95 @@
1
+ function plurals (n, opts) {
2
+ return opts[ n % 10 === 1 && n % 100 !== 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2 ]
3
+ }
4
+
5
+ export default {
6
+ isoName: 'kz',
7
+ nativeName: 'Қазақша',
8
+ label: {
9
+ clear: 'Тазалау',
10
+ ok: 'OK',
11
+ cancel: 'Бас тарту',
12
+ close: 'Жабу',
13
+ set: 'Орнату',
14
+ select: 'Таңдау',
15
+ reset: 'Қалпына келтіру',
16
+ remove: 'Өшіру',
17
+ update: 'Жаңарту',
18
+ create: 'Жасау',
19
+ search: 'Іздеу',
20
+ filter: 'Сүзгі',
21
+ refresh: 'Жаңарту'
22
+ },
23
+ date: {
24
+ days: 'Жексенбі_Дүйсенбі_Сейсенбі_Сәрсенбі_Бейсенбі_Жұма_Сенбі'.split('_'),
25
+ daysShort: 'Жс_Дс_Сс_Ср_Бс_Жм_Сб'.split('_'),
26
+ months: 'Қаңтар_Ақпан_Наурыз_Сәуір_Мамыр_Маусым_Шілде_Тамыз_Қыркүйек_Қазан_Қараша_Желтоқсан'.split('_'),
27
+ monthsShort: 'Қаң_Ақп_Нау_Сәу_Мам_Мау_Шіл_Там_Қыр_Қаз_Қар_Жел'.split('_'),
28
+ firstDayOfWeek: 1, // 0-6, 0 - Sunday, 1 Monday, ...
29
+ format24h: true,
30
+ pluralDay: 'күн'
31
+ },
32
+ table: {
33
+ noData: 'Мәлімет жоқ',
34
+ noResults: 'Сәйкестік табылмады',
35
+ loading: 'Жүктеу...',
36
+ selectedRecords: rows => (
37
+ rows > 0
38
+ ? rows + ' ' + plurals(rows, [ 'жол таңдалды', 'жол таңдалды', 'жол таңдалды' ]) + '.'
39
+ : 'Ешбір жол таңдалмады.'
40
+ ),
41
+ recordsPerPage: 'Беттегі жолдар:',
42
+ allRows: 'Бәрі',
43
+ pagination: (start, end, total) => start + '-' + end + ' из ' + total,
44
+ columns: 'Бағандар'
45
+ },
46
+ editor: {
47
+ url: 'URL',
48
+ bold: 'Қалың',
49
+ italic: 'Курсив',
50
+ strikethrough: 'Сызылған',
51
+ underline: 'Асты сызылған',
52
+ unorderedList: 'Маркерленген тізім',
53
+ orderedList: 'Нөмірленген тізім',
54
+ subscript: 'Астыңғы таңба',
55
+ superscript: 'Үстінгі таңба',
56
+ hyperlink: 'Гиперсілтеме',
57
+ toggleFullscreen: 'Толық экран режимі',
58
+ quote: 'Жазба',
59
+ left: 'Солға туралау',
60
+ center: 'Ортаға туралау',
61
+ right: 'Оңға туралау',
62
+ justify: 'Ені бойынша туралау',
63
+ print: 'Басып шығару',
64
+ outdent: 'Шегірісті азайту',
65
+ indent: 'Шегірісті үлкейту',
66
+ removeFormat: 'Пішімдеуді жою',
67
+ formatting: 'Пішімдеу',
68
+ fontSize: 'Қаріп өлшемі',
69
+ align: 'Туралау',
70
+ hr: 'Көлденең сызықты енгізу',
71
+ undo: 'Болдырмау',
72
+ redo: 'Қайталау',
73
+ heading1: 'Тақырып 1',
74
+ heading2: 'Тақырып 2',
75
+ heading3: 'Тақырып 3',
76
+ heading4: 'Тақырып 4',
77
+ heading5: 'Тақырып 5',
78
+ heading6: 'Тақырып 6',
79
+ paragraph: 'Параграф',
80
+ code: 'Код',
81
+ size1: 'Өте кішкентай',
82
+ size2: 'Кішкентай',
83
+ size3: 'Қалыпты',
84
+ size4: 'Орташа',
85
+ size5: 'Үлкен',
86
+ size6: 'Өте үлкен',
87
+ size7: 'Дәу',
88
+ defaultFont: 'Әдепкі қаріп',
89
+ viewSource: 'Бастапқы кодты қарау'
90
+ },
91
+ tree: {
92
+ noNodes: 'Түйіндер қолжетімді емес',
93
+ noResults: 'Сәйкестік табылмады'
94
+ }
95
+ }
package/lang/ug.js CHANGED
@@ -1,40 +1,39 @@
1
- const days = 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split('_')
2
- const monthsShort = '1-ئاي_2-ئاي_3-ئاي_4-ئاي_5-ئاي_6-ئاي_7-ئاي_8-ئاي_9-ئاي_10-ئاي_11-ئاي_12-ئاي'.split('_')
1
+ const days = 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە_يەكشەنبە'.split('_')
3
2
 
4
3
  export default {
5
4
  isoName: 'ug',
6
5
  nativeName: 'ئۇيغۇرچە',
7
- rtl: true,
6
+ rtl: true,
8
7
  label: {
9
- clear: 'تازلاش',
10
- ok: 'جەزملەش',
11
- cancel: 'بىكار قىلىش',
8
+ clear: 'تازىلاش',
9
+ ok: 'ھەئە',
10
+ cancel: 'بولدىلا',
12
11
  close: 'تاقاش',
13
- set: 'تەڭشەك',
12
+ set: 'تەڭشەش',
14
13
  select: 'تاللاش',
15
14
  reset: 'ئەسلىگە قايتۇرۇش',
16
- remove: 'چىقىرۋىتىش',
17
- update: 'يېڭىلاش',
15
+ remove: 'چىقىرىۋېتىش',
16
+ update: 'نەشىر يېڭىلاش',
18
17
  create: 'قۇرۇش',
19
18
  search: 'ئىزدەش',
20
- filter: 'سۈزۈش',
19
+ filter: 'سۈزگۈچ',
21
20
  refresh: 'يېڭىلاش'
22
21
  },
23
22
  date: {
24
- days: days,
23
+ days,
25
24
  daysShort: 'ي_د_س_چ_پ_ج_ش'.split('_'),
26
- months: monthsShort,
27
- monthsShort: monthsShort,
28
- headerTitle: (date, model) => monthsShort[ model.month - 1 ] + 'نىڭ ' + model.day + '-كۈنى، ' + days[ date.getDay() ],
25
+ months: 'يانۋار(1)_فېۋرال(2)_مارت(3)_ئاپرىل(4)_ماي(5)_ئىيۇن(6)_ئىيۇل(7)_ئاۋغۇست (8)_سېنتەبىر(9)_ئۆكتەبىر(10)_نويابىر(11)_دېكابىر(12)'.split('_'),
26
+ monthsShort: '1-ئاي_2-ئاي_3-ئاي_4-ئاي_5-ئاي_6-ئاي_7-ئاي_8-ئاي_9-ئاي_10-ئاي_11-ئاي_12-ئاي'.split('_'),
29
27
  firstDayOfWeek: 1, // 0-6, 0 - Sunday, 1 Monday, ...
30
28
  format24h: false,
29
+ headerTitle: (date, model) => model.month + '-ئاينىڭ ' + model.day + '-كۈنى ، ' + days[ date.getDay() ],
31
30
  pluralDay: 'كۈن'
32
31
  },
33
32
  table: {
34
33
  noData: 'ئۇچۇر يوق',
35
34
  noResults: 'مۇناسىۋەتلىك ئۇچۇر تېپىلمىدى',
36
- loading: 'يۈكلىنىۋاتىدۇ...',
37
- selectedRecords: rows => rows + ' قۇر تاللاندى',
35
+ loading: 'يۈكلىنىۋاتىدۇ ...',
36
+ selectedRecords: rows => 'جەمئىي ' + rows + ' قۇر تاللاندى',
38
37
  recordsPerPage: 'ھەربەتتىكى قۇر سانى:',
39
38
  allRows: 'ھەممىسى',
40
39
  pagination: (start, end, total) => start + '-' + end + ' / ' + total,
@@ -42,51 +41,51 @@ export default {
42
41
  },
43
42
  editor: {
44
43
  url: 'URL',
45
- bold: 'Bold',
46
- italic: 'ئىتالىيان',
47
- strikethrough: 'Strikethrough',
44
+ bold: 'توم',
45
+ italic: 'يانتۇ',
46
+ strikethrough: 'جىجاش',
48
47
  underline: 'ئاستى سىزىق',
49
- unorderedList: 'تەرتىپسىز تىزىملىك',
50
- orderedList: 'زاكاز تىزىملىكى',
51
- subscript: 'مۇشتەرى',
52
- superscript: 'Superscript',
53
- hyperlink: 'Hyperlink',
54
- toggleFullscreen: 'تولۇق ئېكراننى ئالماشتۇرۇڭ',
48
+ unorderedList: 'تەرتىپسىز',
49
+ orderedList: 'تەرتىپلىك',
50
+ subscript: 'تۆۋەن ئىندېكىس',
51
+ superscript: 'يۇقىرى ئىندېكىس',
52
+ hyperlink: 'ئۇلانما',
53
+ toggleFullscreen: 'پۈتۈن ئېكران',
55
54
  quote: 'نەقىل',
56
- left: 'سول تەڭگە',
57
- center: 'Center align',
58
- right: 'ئوڭ توغرىلاش',
59
- justify: 'توغرىلاشنى توغرىلاڭ',
60
- print: 'بېسىش',
61
- outdent: 'تەۋەككۈلچىلىكنى ئازايتىش',
62
- indent: 'تەۋەككۈلچىلىكنى ئاشۇرۇش',
63
- removeFormat: 'فورماتنى ئۆچۈرۈڭ',
55
+ left: 'سولغا توغرىلاش',
56
+ center: 'ئوتتۇرىغا توغرىلاش',
57
+ right: 'ئوڭغا توغرىلاش',
58
+ justify: 'ئىككى يانغا توغرىلاش',
59
+ print: 'بېسىپ چىقىرىش',
60
+ outdent: 'كېڭەيتىش',
61
+ indent: 'تارايتىش',
62
+ removeFormat: 'فورماتىنى چىقىرىۋېتىش',
64
63
  formatting: 'فورماتلاش',
65
- fontSize: 'خەت چوڭلۇقى',
64
+ fontSize: 'خەت چوڭلىقى',
66
65
  align: 'توغرىلاش',
67
- hr: 'توغرىسىغا قائىدە قىستۇرۇش',
68
- undo: 'ئەمەلدىن قالدۇرۇش',
69
- redo: 'Redo',
70
- heading1: 'Heading 1',
71
- heading2: 'Heading 2',
72
- heading3: 'Heading 3',
73
- heading4: 'Heading 4',
74
- heading5: 'Heading 5',
75
- heading6: 'Heading 6',
66
+ hr: 'توغرا سىزىق',
67
+ undo: 'قايتۇرۇش',
68
+ redo: 'قايتىلاش',
69
+ heading1: 'تىما 1',
70
+ heading2: 'تىما 2',
71
+ heading3: 'تىما 3',
72
+ heading4: 'تىما 4',
73
+ heading5: 'تىما 5',
74
+ heading6: 'تىما 6',
76
75
  paragraph: 'ئابزاس',
77
76
  code: 'كود',
78
- size1: 'بەك كىچىك',
79
- size2: 'ئازراق كىچىك',
77
+ size1: 'كىچىك',
78
+ size2: 'كىچىكراق',
80
79
  size3: 'نورمال',
81
- size4: 'ئوتتۇراھال چوڭ',
80
+ size4: 'چوڭراق',
82
81
  size5: 'چوڭ',
83
- size6: 'بەك چوڭ',
82
+ size6: 'ئىنتايىن چوڭ',
84
83
  size7: 'ئەڭ چوڭ',
85
84
  defaultFont: 'كۆڭۈلدىكى خەت نۇسخىسى',
86
- viewSource: 'مەنبەنى كۆرۈش',
85
+ viewSource: 'مەنبەنى كۆرۈش'
87
86
  },
88
87
  tree: {
89
- noNodes: 'ئۇچۇر يوق',
90
- noResults: 'مۇناسىۋەتلىك ئۇچۇر تېپىلمىدى'
88
+ noNodes: 'تۈگۈن يوق',
89
+ noResults: 'ئۇچۇر يوق'
91
90
  }
92
91
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.5.5",
3
+ "version": "2.6.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",
@@ -84,7 +84,7 @@ export default createComponent({
84
84
  onClick,
85
85
  onKeydown,
86
86
  onMousedown,
87
- onTouchstartPassive
87
+ onTouchstart
88
88
  }
89
89
  }
90
90
 
@@ -153,12 +153,12 @@ export default createComponent({
153
153
  // is it already destroyed?
154
154
  if (rootRef.value === null) { return }
155
155
 
156
- if (isKeyCode(e, [ 13, 32 ]) === true) {
157
- stopAndPrevent(e)
156
+ emit('keydown', e)
158
157
 
159
- if (keyboardTarget !== rootRef.value) {
160
- keyboardTarget !== null && cleanup()
158
+ if (isKeyCode(e, [ 13, 32 ]) === true && keyboardTarget !== rootRef.value) {
159
+ keyboardTarget !== null && cleanup()
161
160
 
161
+ if (e.defaultPrevented !== true) {
162
162
  // focus external button if the focus helper was focused before
163
163
  rootRef.value.focus()
164
164
 
@@ -167,15 +167,19 @@ export default createComponent({
167
167
  document.addEventListener('keyup', onPressEnd, true)
168
168
  rootRef.value.addEventListener('blur', onPressEnd, passiveCapture)
169
169
  }
170
- }
171
170
 
172
- emit('keydown', e)
171
+ stopAndPrevent(e)
172
+ }
173
173
  }
174
174
 
175
- function onTouchstartPassive (e) {
175
+ function onTouchstart (e) {
176
176
  // is it already destroyed?
177
177
  if (rootRef.value === null) { return }
178
178
 
179
+ emit('touchstart', e)
180
+
181
+ if (e.defaultPrevented === true) { return }
182
+
179
183
  if (touchTarget !== rootRef.value) {
180
184
  touchTarget !== null && cleanup()
181
185
  touchTarget = rootRef.value
@@ -192,23 +196,21 @@ export default createComponent({
192
196
  mouseTimer = setTimeout(() => {
193
197
  avoidMouseRipple = false
194
198
  }, 200)
195
-
196
- emit('touchstart', e)
197
199
  }
198
200
 
199
201
  function onMousedown (e) {
200
202
  // is it already destroyed?
201
203
  if (rootRef.value === null) { return }
202
204
 
203
- if (mouseTarget !== rootRef.value) {
205
+ e.qSkipRipple = avoidMouseRipple === true
206
+ emit('mousedown', e)
207
+
208
+ if (e.defaultPrevented !== true && mouseTarget !== rootRef.value) {
204
209
  mouseTarget !== null && cleanup()
205
210
  mouseTarget = rootRef.value
206
211
  rootRef.value.classList.add('q-btn--active')
207
212
  document.addEventListener('mouseup', onPressEnd, passiveCapture)
208
213
  }
209
-
210
- e.qSkipRipple = avoidMouseRipple === true
211
- emit('mousedown', e)
212
214
  }
213
215
 
214
216
  function onPressEnd (e) {
@@ -88,13 +88,13 @@ export default function (props) {
88
88
 
89
89
  return props.padding !== void 0
90
90
  ? Object.assign({}, obj, {
91
- padding: props.padding
92
- .split(/\s+/)
93
- .map(v => (v in padding ? padding[ v ] + 'px' : v))
94
- .join(' '),
95
- minWidth: '0',
96
- minHeight: '0'
97
- })
91
+ padding: props.padding
92
+ .split(/\s+/)
93
+ .map(v => (v in padding ? padding[ v ] + 'px' : v))
94
+ .join(' '),
95
+ minWidth: '0',
96
+ minHeight: '0'
97
+ })
98
98
  : obj
99
99
  })
100
100
 
@@ -12,7 +12,7 @@ import { hSlot } from '../../utils/private/render.js'
12
12
  import { formatDate, __splitDate, getDateDiff } from '../../utils/date.js'
13
13
  import { pad } from '../../utils/format.js'
14
14
  import { jalaaliMonthLength, toGregorian } from '../../utils/private/date-persian.js'
15
- import { isPlainObject } from '../../utils/private/is.js'
15
+ import { isObject } from '../../utils/private/is.js'
16
16
 
17
17
  const yearsInterval = 20
18
18
  const views = [ 'Calendar', 'Years', 'Months' ]
@@ -165,7 +165,7 @@ export default createComponent({
165
165
  const rangeModel = computed(() => {
166
166
  const fn = date => decodeString(date, innerMask.value, innerLocale.value)
167
167
  return normalizedModel.value
168
- .filter(date => isPlainObject(date) === true && date.from !== void 0 && date.to !== void 0)
168
+ .filter(date => isObject(date) === true && date.from !== void 0 && date.to !== void 0)
169
169
  .map(range => ({ from: fn(range.from), to: fn(range.to) }))
170
170
  .filter(range => range.from.dateHash !== null && range.to.dateHash !== null && range.from.dateHash < range.to.dateHash)
171
171
  })
@@ -381,11 +381,11 @@ export default createComponent({
381
381
  }, () => (
382
382
  useBackdrop.value === true
383
383
  ? h('div', {
384
- class: 'q-dialog__backdrop fixed-full',
385
- style: transitionStyle.value,
386
- 'aria-hidden': 'true',
387
- onMousedown: onBackdropClick
388
- })
384
+ class: 'q-dialog__backdrop fixed-full',
385
+ style: transitionStyle.value,
386
+ 'aria-hidden': 'true',
387
+ onMousedown: onBackdropClick
388
+ })
389
389
  : null
390
390
  )),
391
391
 
@@ -395,12 +395,12 @@ export default createComponent({
395
395
  () => (
396
396
  showing.value === true
397
397
  ? h('div', {
398
- ref: innerRef,
399
- class: classes.value,
400
- style: transitionStyle.value,
401
- tabindex: -1,
402
- ...onEvents.value
403
- }, hSlot(slots.default))
398
+ ref: innerRef,
399
+ class: classes.value,
400
+ style: transitionStyle.value,
401
+ tabindex: -1,
402
+ ...onEvents.value
403
+ }, hSlot(slots.default))
404
404
  : null
405
405
  )
406
406
  )
@@ -61,9 +61,9 @@ export default createComponent({
61
61
 
62
62
  return action.label === void 0
63
63
  ? h(QSeparator, {
64
- class: 'col-all',
65
- dark: isDark.value
66
- })
64
+ class: 'col-all',
65
+ dark: isDark.value
66
+ })
67
67
  : h('div', {
68
68
  class: [
69
69
  'q-bottom-sheet__item q-hoverable q-focusable cursor-pointer relative-position',
@@ -80,9 +80,9 @@ export default createComponent({
80
80
  : (
81
81
  img
82
82
  ? h('img', {
83
- class: action.avatar ? 'q-bottom-sheet__avatar' : '',
84
- src: img
85
- })
83
+ class: action.avatar ? 'q-bottom-sheet__avatar' : '',
84
+ src: img
85
+ })
86
86
  : h('div', { class: 'q-bottom-sheet__empty-icon' })
87
87
  ),
88
88
 
@@ -114,9 +114,9 @@ export default createComponent({
114
114
  : (
115
115
  img
116
116
  ? h('img', {
117
- class: action.avatar ? 'q-bottom-sheet__avatar' : '',
118
- src: img
119
- })
117
+ class: action.avatar ? 'q-bottom-sheet__avatar' : '',
118
+ src: img
119
+ })
120
120
  : null
121
121
  )
122
122
  )
@@ -145,8 +145,8 @@ export default createComponent({
145
145
  child.push(
146
146
  props.grid === true
147
147
  ? h('div', {
148
- class: 'row items-stretch justify-start'
149
- }, getGrid())
148
+ class: 'row items-stretch justify-start'
149
+ }, getGrid())
150
150
  : h('div', getList())
151
151
  )
152
152
 
@@ -17,7 +17,7 @@ import { createComponent } from '../../utils/private/create.js'
17
17
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
18
18
 
19
19
  import { isKeyCode } from '../../utils/private/key-composition.js'
20
- import { isPlainObject } from '../../utils/private/is.js'
20
+ import { isObject } from '../../utils/private/is.js'
21
21
 
22
22
  export default createComponent({
23
23
  name: 'DialogPlugin',
@@ -81,7 +81,7 @@ export default createComponent({
81
81
  props.progress === false
82
82
  ? null
83
83
  : (
84
- isPlainObject(props.progress) === true
84
+ isObject(props.progress) === true
85
85
  ? {
86
86
  component: props.progress.spinner || QSpinner,
87
87
  props: { color: props.progress.color || vmColor.value }
@@ -110,7 +110,7 @@ export default createComponent({
110
110
  })
111
111
 
112
112
  const okLabel = computed(() => (
113
- isPlainObject(props.ok) === true
113
+ isObject(props.ok) === true
114
114
  ? $q.lang.label.ok
115
115
  : (
116
116
  props.ok === true
@@ -120,7 +120,7 @@ export default createComponent({
120
120
  ))
121
121
 
122
122
  const cancelLabel = computed(() => (
123
- isPlainObject(props.cancel) === true
123
+ isObject(props.cancel) === true
124
124
  ? $q.lang.label.cancel
125
125
  : (
126
126
  props.cancel === true
@@ -146,7 +146,7 @@ export default createComponent({
146
146
  label: okLabel.value,
147
147
  ripple: false,
148
148
  disable: okDisabled.value,
149
- ...(isPlainObject(props.ok) === true ? props.ok : { flat: true }),
149
+ ...(isObject(props.ok) === true ? props.ok : { flat: true }),
150
150
  'data-autofocus': (props.focus === 'ok' && hasForm.value !== true) || void 0,
151
151
  onClick: onOk
152
152
  }))
@@ -155,7 +155,7 @@ export default createComponent({
155
155
  color: vmColor.value,
156
156
  label: cancelLabel.value,
157
157
  ripple: false,
158
- ...(isPlainObject(props.cancel) === true ? props.cancel : { flat: true }),
158
+ ...(isObject(props.cancel) === true ? props.cancel : { flat: true }),
159
159
  'data-autofocus': (props.focus === 'cancel' && hasForm.value !== true) || void 0,
160
160
  onClick: onCancel
161
161
  }))
@@ -180,17 +180,17 @@ export default createComponent({
180
180
  const userDef = props.definitions || {}
181
181
  const def = props.definitions || props.fonts
182
182
  ? extend(
183
- true,
184
- {},
185
- buttonDef.value,
186
- userDef,
187
- getFonts(
188
- defaultFont,
189
- $q.lang.editor.defaultFont,
190
- $q.iconSet.editor.font,
191
- props.fonts
192
- )
183
+ true,
184
+ {},
185
+ buttonDef.value,
186
+ userDef,
187
+ getFonts(
188
+ defaultFont,
189
+ $q.lang.editor.defaultFont,
190
+ $q.iconSet.editor.font,
191
+ props.fonts
193
192
  )
193
+ )
194
194
  : buttonDef.value
195
195
 
196
196
  return props.toolbar.map(
@@ -34,8 +34,8 @@ function getBtn (eVm, btn, clickHandler, active = false) {
34
34
  if (btn.tip && eVm.$q.platform.is.desktop) {
35
35
  const Key = btn.key
36
36
  ? h('div', [
37
- h('small', `(CTRL + ${ String.fromCharCode(btn.key) })`)
38
- ])
37
+ h('small', `(CTRL + ${ String.fromCharCode(btn.key) })`)
38
+ ])
39
39
  : null
40
40
  child.push(
41
41
  h(QTooltip, { delay: 1000 }, () => [
@@ -58,6 +58,7 @@ export default createComponent({
58
58
  const {
59
59
  pickFiles,
60
60
  onDragover,
61
+ onDragleave,
61
62
  processFiles,
62
63
  getDndNode
63
64
  } = useFile({ editable: state.editable, dnd, getFileInput, addFilesToQueue })
@@ -263,7 +264,7 @@ export default createComponent({
263
264
  }
264
265
 
265
266
  if (state.editable.value === true) {
266
- Object.assign(data, { onDragover, onKeydown, onKeyup })
267
+ Object.assign(data, { onDragover, onDragleave, onKeydown, onKeyup })
267
268
  }
268
269
 
269
270
  return h('div', data, [ getInput() ].concat(getSelection()))
@@ -36,6 +36,7 @@ const imgRE = /^img:/
36
36
  const svgUseRE = /^svguse:/
37
37
  const ionRE = /^ion-/
38
38
  const faLaRE = /^[lf]a[srlbdk]? /
39
+ const fa6RE = /^fa-(brand|regular|solid)/
39
40
 
40
41
  export default createComponent({
41
42
  name: 'QIcon',
@@ -129,7 +130,7 @@ export default createComponent({
129
130
  if (matches !== null) {
130
131
  cls = libMap[ matches[ 1 ] ](icon)
131
132
  }
132
- else if (faLaRE.test(icon) === true) {
133
+ else if (faLaRE.test(icon) === true || fa6RE.test(icon) === true) {
133
134
  cls = icon
134
135
  }
135
136
  else if (ionRE.test(icon) === true) {
@@ -120,7 +120,9 @@ export default createComponent({
120
120
  isWorking.value = false
121
121
  isFetching.value = false
122
122
  localScrollTarget.removeEventListener('scroll', poll, passive)
123
- poll !== void 0 && poll.cancel()
123
+ if (poll !== void 0 && poll.cancel !== void 0) {
124
+ poll.cancel()
125
+ }
124
126
  }
125
127
  }
126
128
 
@@ -39,7 +39,7 @@ export default createComponent({
39
39
 
40
40
  const labelClass = computed(() =>
41
41
  'q-inner-loading__label'
42
- + (props.labelClass !== void 0 ? ` ${ props.labelClass}` : '')
42
+ + (props.labelClass !== void 0 ? ` ${ props.labelClass }` : '')
43
43
  )
44
44
 
45
45
  function getInner () {
@@ -65,12 +65,12 @@ export default createComponent({
65
65
  function getContent () {
66
66
  return props.showing === true
67
67
  ? h(
68
- 'div',
69
- { class: classes.value, style: transitionStyle.value },
70
- slots.default !== void 0
71
- ? slots.default()
72
- : getInner()
73
- )
68
+ 'div',
69
+ { class: classes.value, style: transitionStyle.value },
70
+ slots.default !== void 0
71
+ ? slots.default()
72
+ : getInner()
73
+ )
74
74
  : null
75
75
  }
76
76
 
@@ -138,7 +138,10 @@ export default createComponent({
138
138
  if (hasMask.value === true) {
139
139
  if (stopValueWatcher === true) {
140
140
  stopValueWatcher = false
141
- return
141
+
142
+ if (String(v) === emitCachedValue) {
143
+ return
144
+ }
142
145
  }
143
146
 
144
147
  updateMaskValue(v)
@@ -203,11 +203,14 @@ export default createComponent({
203
203
  angle = centerPosition.left < pos.left ? angle + 90 : 270 - angle
204
204
  }
205
205
 
206
- if (props.angle) {
206
+ if ($q.lang.rtl === true) {
207
+ angle = normalizeToInterval(-angle - props.angle, 0, 360)
208
+ }
209
+ else if (props.angle) {
207
210
  angle = normalizeToInterval(angle - props.angle, 0, 360)
208
211
  }
209
212
 
210
- if ($q.lang.rtl === true) {
213
+ if (props.reverse === true) {
211
214
  angle = 360 - angle
212
215
  }
213
216