quasar 2.6.2 → 2.6.3

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 (121) hide show
  1. package/dist/api/Notify.json +68 -734
  2. package/dist/api/QTable.json +14 -0
  3. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  4. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  5. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  6. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  9. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  10. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  11. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  12. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  15. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  16. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  17. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  18. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  19. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  20. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  21. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  22. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  33. package/dist/icon-set/themify.umd.prod.js +1 -1
  34. package/dist/lang/ar-TN.umd.prod.js +6 -0
  35. package/dist/lang/ar.umd.prod.js +1 -1
  36. package/dist/lang/az-Latn.umd.prod.js +1 -1
  37. package/dist/lang/bg.umd.prod.js +1 -1
  38. package/dist/lang/bn.umd.prod.js +1 -1
  39. package/dist/lang/ca.umd.prod.js +1 -1
  40. package/dist/lang/cs.umd.prod.js +1 -1
  41. package/dist/lang/da.umd.prod.js +1 -1
  42. package/dist/lang/de.umd.prod.js +1 -1
  43. package/dist/lang/el.umd.prod.js +1 -1
  44. package/dist/lang/en-GB.umd.prod.js +1 -1
  45. package/dist/lang/en-US.umd.prod.js +1 -1
  46. package/dist/lang/eo.umd.prod.js +1 -1
  47. package/dist/lang/es.umd.prod.js +1 -1
  48. package/dist/lang/et.umd.prod.js +1 -1
  49. package/dist/lang/eu.umd.prod.js +1 -1
  50. package/dist/lang/fa-IR.umd.prod.js +1 -1
  51. package/dist/lang/fa.umd.prod.js +1 -1
  52. package/dist/lang/fi.umd.prod.js +1 -1
  53. package/dist/lang/fr.umd.prod.js +1 -1
  54. package/dist/lang/gn.umd.prod.js +1 -1
  55. package/dist/lang/he.umd.prod.js +1 -1
  56. package/dist/lang/hr.umd.prod.js +1 -1
  57. package/dist/lang/hu.umd.prod.js +1 -1
  58. package/dist/lang/id.umd.prod.js +1 -1
  59. package/dist/lang/is.umd.prod.js +1 -1
  60. package/dist/lang/it.umd.prod.js +1 -1
  61. package/dist/lang/ja.umd.prod.js +1 -1
  62. package/dist/lang/km.umd.prod.js +1 -1
  63. package/dist/lang/ko-KR.umd.prod.js +1 -1
  64. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  65. package/dist/lang/kz.umd.prod.js +1 -1
  66. package/dist/lang/lt.umd.prod.js +1 -1
  67. package/dist/lang/lu.umd.prod.js +1 -1
  68. package/dist/lang/lv.umd.prod.js +1 -1
  69. package/dist/lang/ml.umd.prod.js +1 -1
  70. package/dist/lang/ms.umd.prod.js +1 -1
  71. package/dist/lang/my.umd.prod.js +1 -1
  72. package/dist/lang/nb-NO.umd.prod.js +1 -1
  73. package/dist/lang/nl.umd.prod.js +1 -1
  74. package/dist/lang/pl.umd.prod.js +1 -1
  75. package/dist/lang/pt-BR.umd.prod.js +1 -1
  76. package/dist/lang/pt.umd.prod.js +1 -1
  77. package/dist/lang/ro.umd.prod.js +1 -1
  78. package/dist/lang/ru.umd.prod.js +1 -1
  79. package/dist/lang/sk.umd.prod.js +1 -1
  80. package/dist/lang/sl.umd.prod.js +1 -1
  81. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  82. package/dist/lang/sr.umd.prod.js +1 -1
  83. package/dist/lang/sv.umd.prod.js +1 -1
  84. package/dist/lang/ta.umd.prod.js +1 -1
  85. package/dist/lang/th.umd.prod.js +1 -1
  86. package/dist/lang/tr.umd.prod.js +1 -1
  87. package/dist/lang/ug.umd.prod.js +1 -1
  88. package/dist/lang/uk.umd.prod.js +1 -1
  89. package/dist/lang/vi.umd.prod.js +1 -1
  90. package/dist/lang/zh-CN.umd.prod.js +1 -1
  91. package/dist/lang/zh-TW.umd.prod.js +1 -1
  92. package/dist/quasar.cjs.prod.js +2 -2
  93. package/dist/quasar.css +12 -20
  94. package/dist/quasar.esm.prod.js +2 -2
  95. package/dist/quasar.prod.css +1 -1
  96. package/dist/quasar.rtl.css +27 -39
  97. package/dist/quasar.rtl.prod.css +1 -1
  98. package/dist/quasar.sass +9 -15
  99. package/dist/quasar.umd.js +29 -15
  100. package/dist/quasar.umd.prod.js +2 -2
  101. package/dist/types/api/qnotify.d.ts +10 -0
  102. package/dist/types/api.d.ts +1 -0
  103. package/dist/types/index.d.ts +152 -729
  104. package/dist/vetur/quasar-attributes.json +4 -0
  105. package/dist/vetur/quasar-tags.json +1 -0
  106. package/dist/web-types/web-types.json +10 -1
  107. package/lang/ar-TN.js +101 -0
  108. package/lang/ar-TN.mjs +96 -0
  109. package/lang/index.json +4 -0
  110. package/package.json +1 -1
  111. package/src/components/checkbox/QCheckbox.js +1 -1
  112. package/src/components/checkbox/QCheckbox.sass +5 -9
  113. package/src/components/dialog-plugin/DialogPlugin.js +4 -4
  114. package/src/components/icon/QIcon.js +3 -4
  115. package/src/components/radio/QRadio.js +1 -1
  116. package/src/components/radio/QRadio.sass +5 -9
  117. package/src/components/table/QTable.js +4 -0
  118. package/src/components/table/QTable.json +4 -0
  119. package/src/components/table/QTh.js +5 -2
  120. package/src/components/virtual-scroll/QVirtualScroll.js +9 -1
  121. package/src/plugins/Notify.json +55 -533
@@ -4799,6 +4799,10 @@
4799
4799
  "type": "boolean",
4800
4800
  "description": "Display data using QVirtualScroll (for non-grid mode only)"
4801
4801
  },
4802
+ "q-table/virtual-scroll-target": {
4803
+ "type": "element|string",
4804
+ "description": "CSS selector or DOM element to be used as a custom scroll container instead of the auto detected one"
4805
+ },
4802
4806
  "q-table/virtual-scroll-slice-size": {
4803
4807
  "type": "number|string",
4804
4808
  "description": "Minimum number of rows to render in the virtual list"
@@ -1717,6 +1717,7 @@
1717
1717
  "rows",
1718
1718
  "row-key",
1719
1719
  "virtual-scroll",
1720
+ "virtual-scroll-target",
1720
1721
  "virtual-scroll-slice-size",
1721
1722
  "virtual-scroll-slice-ratio-before",
1722
1723
  "virtual-scroll-slice-ratio-after",
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.6.2",
5
+ "version": "2.6.3",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -15506,6 +15506,15 @@
15506
15506
  "doc-url": "https://v2.quasar.dev/vue-components/table",
15507
15507
  "type": "boolean"
15508
15508
  },
15509
+ {
15510
+ "name": "virtual-scroll-target",
15511
+ "value": {
15512
+ "kind": "expression",
15513
+ "type": "Element|string"
15514
+ },
15515
+ "description": "CSS selector or DOM element to be used as a custom scroll container instead of the auto detected one\n\nExamples:\n:scroll-target=\"$refs.scrollTarget\"\nscroll-target=\".scroll-target-class\"\nscroll-target=\"#scroll-target-id\"\nscroll-target=\"body\"",
15516
+ "doc-url": "https://v2.quasar.dev/vue-components/table"
15517
+ },
15509
15518
  {
15510
15519
  "name": "virtual-scroll-slice-size",
15511
15520
  "value": {
package/lang/ar-TN.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 (ar-TN.mjs).
5
+ */
6
+ module.exports = {
7
+ isoName: 'ar-TN',
8
+ nativeName: 'العربية (تونس)',
9
+ rtl: true,
10
+ label: {
11
+ clear: 'مسح',
12
+ ok: 'حسناً',
13
+ cancel: 'إلغاء',
14
+ close: 'إغلاق',
15
+ set: 'ضبط',
16
+ select: 'تحديد',
17
+ reset: 'إعادة ضبط',
18
+ remove: 'حذف',
19
+ update: 'تحديث',
20
+ create: 'إنشاء',
21
+ search: 'بحث',
22
+ filter: 'ترشيح',
23
+ refresh: 'تحديث'
24
+ },
25
+ date: {
26
+ days: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
27
+ daysShort: 'أحد_إثن_ثلا_أرب_خمي_جمع_سبت'.split('_'),
28
+ months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
29
+ monthsShort: 'جان_فيف_مار_أفر_ماي_جوا_جوي_أوت_سبت_أكت_نوف_ديس'.split('_'),
30
+ firstDayOfWeek: 1, // 0-6, 0 - Sunday, 1 Monday, ...
31
+ format24h: false,
32
+ pluralDay: 'أيام'
33
+ },
34
+ table: {
35
+ noData: 'لا توجد بيانات',
36
+ noResults: 'لا توجد نتائج',
37
+ loading: 'جارٍ التحميل...',
38
+ selectedRecords: rows => (
39
+ rows === 0
40
+ ? 'لا توجد مُدخَلات محدّدة.'
41
+ : rows === 1
42
+ ? 'مُدخَلة واحدة محدّدة.'
43
+ : rows === 2
44
+ ? 'مُدخَلتان محدّدتان.'
45
+ : 'عدد المُدخَلات المحدّدة ' + rows + '.'
46
+ ),
47
+ recordsPerPage: 'عدد المُدخَلات في كل صفحة:',
48
+ allRows: 'الكل',
49
+ pagination: (start, end, total) => start + '-' + end + ' من ' + total,
50
+ columns: 'أعمدة'
51
+ },
52
+ editor: {
53
+ url: 'رابط',
54
+ bold: 'عريض',
55
+ italic: 'مائل',
56
+ strikethrough: 'مشطوب',
57
+ underline: 'مسطّر',
58
+ unorderedList: 'قائمة غير مرتبة',
59
+ orderedList: 'قائمة مرتبة',
60
+ subscript: 'منخفض',
61
+ superscript: 'مرتفع',
62
+ hyperlink: 'رابط',
63
+ toggleFullscreen: 'تفعيل أو إيقاف العرض في كامل الشاشة',
64
+ quote: 'اقتباس',
65
+ left: 'انتظام لجهة اليسار',
66
+ center: 'توسيط',
67
+ right: 'انتظام لجهة اليمين',
68
+ justify: 'انتظام بالتساوي',
69
+ print: 'طباعة',
70
+ outdent: 'تقليل مسافة البداية',
71
+ indent: 'زيادة مسافة البداية',
72
+ removeFormat: 'إزالة التنسيق',
73
+ formatting: 'تنسيق',
74
+ fontSize: 'حجم الخط',
75
+ align: 'انتظام',
76
+ hr: 'إضافة خط أفقي',
77
+ undo: 'تراجع',
78
+ redo: 'إعادة',
79
+ heading1: 'عنوان 1',
80
+ heading2: 'عنوان 2',
81
+ heading3: 'عنوان 3',
82
+ heading4: 'عنوان 4',
83
+ heading5: 'عنوان 5',
84
+ heading6: 'عنوان 6',
85
+ paragraph: 'فقرة',
86
+ code: 'تعليمات برمجية',
87
+ size1: 'صغير جداً',
88
+ size2: 'صغير',
89
+ size3: 'عادي',
90
+ size4: 'فوق المتوسط',
91
+ size5: 'كبير',
92
+ size6: 'كبير جداً',
93
+ size7: 'الأقصى',
94
+ defaultFont: 'الخط الإفتراضي',
95
+ viewSource: 'عرض المصدر'
96
+ },
97
+ tree: {
98
+ noNodes: 'لا توجد عُقَد',
99
+ noResults: 'لا توجد نتائج'
100
+ }
101
+ }
package/lang/ar-TN.mjs ADDED
@@ -0,0 +1,96 @@
1
+ export default {
2
+ isoName: 'ar-TN',
3
+ nativeName: 'العربية (تونس)',
4
+ rtl: true,
5
+ label: {
6
+ clear: 'مسح',
7
+ ok: 'حسناً',
8
+ cancel: 'إلغاء',
9
+ close: 'إغلاق',
10
+ set: 'ضبط',
11
+ select: 'تحديد',
12
+ reset: 'إعادة ضبط',
13
+ remove: 'حذف',
14
+ update: 'تحديث',
15
+ create: 'إنشاء',
16
+ search: 'بحث',
17
+ filter: 'ترشيح',
18
+ refresh: 'تحديث'
19
+ },
20
+ date: {
21
+ days: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
22
+ daysShort: 'أحد_إثن_ثلا_أرب_خمي_جمع_سبت'.split('_'),
23
+ months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),
24
+ monthsShort: 'جان_فيف_مار_أفر_ماي_جوا_جوي_أوت_سبت_أكت_نوف_ديس'.split('_'),
25
+ firstDayOfWeek: 1, // 0-6, 0 - Sunday, 1 Monday, ...
26
+ format24h: false,
27
+ pluralDay: 'أيام'
28
+ },
29
+ table: {
30
+ noData: 'لا توجد بيانات',
31
+ noResults: 'لا توجد نتائج',
32
+ loading: 'جارٍ التحميل...',
33
+ selectedRecords: rows => (
34
+ rows === 0
35
+ ? 'لا توجد مُدخَلات محدّدة.'
36
+ : rows === 1
37
+ ? 'مُدخَلة واحدة محدّدة.'
38
+ : rows === 2
39
+ ? 'مُدخَلتان محدّدتان.'
40
+ : 'عدد المُدخَلات المحدّدة ' + rows + '.'
41
+ ),
42
+ recordsPerPage: 'عدد المُدخَلات في كل صفحة:',
43
+ allRows: 'الكل',
44
+ pagination: (start, end, total) => start + '-' + end + ' من ' + total,
45
+ columns: 'أعمدة'
46
+ },
47
+ editor: {
48
+ url: 'رابط',
49
+ bold: 'عريض',
50
+ italic: 'مائل',
51
+ strikethrough: 'مشطوب',
52
+ underline: 'مسطّر',
53
+ unorderedList: 'قائمة غير مرتبة',
54
+ orderedList: 'قائمة مرتبة',
55
+ subscript: 'منخفض',
56
+ superscript: 'مرتفع',
57
+ hyperlink: 'رابط',
58
+ toggleFullscreen: 'تفعيل أو إيقاف العرض في كامل الشاشة',
59
+ quote: 'اقتباس',
60
+ left: 'انتظام لجهة اليسار',
61
+ center: 'توسيط',
62
+ right: 'انتظام لجهة اليمين',
63
+ justify: 'انتظام بالتساوي',
64
+ print: 'طباعة',
65
+ outdent: 'تقليل مسافة البداية',
66
+ indent: 'زيادة مسافة البداية',
67
+ removeFormat: 'إزالة التنسيق',
68
+ formatting: 'تنسيق',
69
+ fontSize: 'حجم الخط',
70
+ align: 'انتظام',
71
+ hr: 'إضافة خط أفقي',
72
+ undo: 'تراجع',
73
+ redo: 'إعادة',
74
+ heading1: 'عنوان 1',
75
+ heading2: 'عنوان 2',
76
+ heading3: 'عنوان 3',
77
+ heading4: 'عنوان 4',
78
+ heading5: 'عنوان 5',
79
+ heading6: 'عنوان 6',
80
+ paragraph: 'فقرة',
81
+ code: 'تعليمات برمجية',
82
+ size1: 'صغير جداً',
83
+ size2: 'صغير',
84
+ size3: 'عادي',
85
+ size4: 'فوق المتوسط',
86
+ size5: 'كبير',
87
+ size6: 'كبير جداً',
88
+ size7: 'الأقصى',
89
+ defaultFont: 'الخط الإفتراضي',
90
+ viewSource: 'عرض المصدر'
91
+ },
92
+ tree: {
93
+ noNodes: 'لا توجد عُقَد',
94
+ noResults: 'لا توجد نتائج'
95
+ }
96
+ }
package/lang/index.json CHANGED
@@ -1,4 +1,8 @@
1
1
  [
2
+ {
3
+ "isoName": "ar-TN",
4
+ "nativeName": "العربية (تونس)"
5
+ },
2
6
  {
3
7
  "isoName": "ar",
4
8
  "nativeName": "العربية"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.6.2",
3
+ "version": "2.6.3",
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",
@@ -50,7 +50,7 @@ export default createComponent({
50
50
  ? [
51
51
  h('div', {
52
52
  key: 'icon',
53
- class: 'q-checkbox__icon-container absolute flex flex-center no-wrap'
53
+ class: 'q-checkbox__icon-container absolute-full flex flex-center no-wrap'
54
54
  }, [
55
55
  h(QIcon, {
56
56
  class: 'q-checkbox__icon',
@@ -9,13 +9,13 @@ $checkbox-transition: .22s cubic-bezier(0,0,.2,1) 0ms
9
9
 
10
10
  &__bg,
11
11
  &__icon-container
12
+ user-select: none
13
+
14
+ &__bg
12
15
  top: 25%
13
16
  left: 25%
14
17
  width: 50%
15
18
  height: 50%
16
- user-select: none
17
-
18
- &__bg
19
19
  border: 2px solid currentColor
20
20
  border-radius: 2px
21
21
  transition: background $checkbox-transition
@@ -23,7 +23,7 @@ $checkbox-transition: .22s cubic-bezier(0,0,.2,1) 0ms
23
23
 
24
24
  &__icon
25
25
  color: currentColor
26
- font-size: .6em
26
+ font-size: .5em
27
27
 
28
28
  &__svg
29
29
  color: #fff
@@ -76,16 +76,12 @@ $checkbox-transition: .22s cubic-bezier(0,0,.2,1) 0ms
76
76
 
77
77
  &--dense
78
78
 
79
- .q-checkbox__icon
80
- font-size: .6em
81
-
82
79
  .q-checkbox__inner
83
80
  width: .5em
84
81
  min-width: .5em
85
82
  height: .5em
86
83
 
87
- .q-checkbox__bg,
88
- .q-checkbox__icon-container
84
+ .q-checkbox__bg
89
85
  left: 5%
90
86
  top: 5%
91
87
  width: 90%
@@ -239,14 +239,14 @@ export default createComponent({
239
239
  function getButtons () {
240
240
  const child = []
241
241
 
242
- props.cancel && child.push(
243
- h(QBtn, cancelProps.value)
244
- )
245
-
246
242
  props.ok && child.push(
247
243
  h(QBtn, okProps.value)
248
244
  )
249
245
 
246
+ props.cancel && child.push(
247
+ h(QBtn, cancelProps.value)
248
+ )
249
+
250
250
  return h(QCardActions, {
251
251
  class: props.stackButtons === true ? 'items-end' : '',
252
252
  vertical: props.stackButtons,
@@ -11,13 +11,13 @@ const sameFn = i => i
11
11
  const ionFn = i => `ionicons ${ i }`
12
12
 
13
13
  const libMap = {
14
+ 'mdi-': i => `mdi ${ i }`,
14
15
  'icon-': sameFn, // fontawesome equiv
15
16
  'bt-': i => `bt ${ i }`,
16
17
  'eva-': i => `eva ${ i }`,
17
18
  'ion-md': ionFn,
18
19
  'ion-ios': ionFn,
19
20
  'ion-logo': ionFn,
20
- 'mdi-': i => `mdi ${ i }`,
21
21
  'iconfont ': sameFn,
22
22
  'ti-': i => `themify-icon ${ i }`,
23
23
  'bi-': i => `bootstrap-icons ${ i }`
@@ -35,8 +35,7 @@ const mRE = /^[Mm]\s?[-+]?\.?\d/
35
35
  const imgRE = /^img:/
36
36
  const svgUseRE = /^svguse:/
37
37
  const ionRE = /^ion-/
38
- const faLaRE = /^[lf]a[srlbdk]? /
39
- const fa6RE = /^fa-(solid|regular|light|brands|duotone|thin)/
38
+ const faRE = /^(fa-(solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /
40
39
 
41
40
  export default createComponent({
42
41
  name: 'QIcon',
@@ -130,7 +129,7 @@ export default createComponent({
130
129
  if (matches !== null) {
131
130
  cls = libMap[ matches[ 1 ] ](icon)
132
131
  }
133
- else if (faLaRE.test(icon) === true || fa6RE.test(icon) === true) {
132
+ else if (faRE.test(icon) === true) {
134
133
  cls = icon
135
134
  }
136
135
  else if (ionRE.test(icon) === true) {
@@ -142,7 +142,7 @@ export default createComponent({
142
142
  ? [
143
143
  h('div', {
144
144
  key: 'icon',
145
- class: 'q-radio__icon-container absolute flex flex-center no-wrap'
145
+ class: 'q-radio__icon-container absolute-full flex flex-center no-wrap'
146
146
  }, [
147
147
  h(QIcon, {
148
148
  class: 'q-radio__icon',
@@ -9,20 +9,20 @@ $radio-transition: .22s cubic-bezier(0,0,.2,1) 0ms
9
9
 
10
10
  &__bg,
11
11
  &__icon-container
12
+ user-select: none
13
+
14
+ &__bg
12
15
  top: 25%
13
16
  left: 25%
14
17
  width: 50%
15
18
  height: 50%
16
- user-select: none
17
-
18
- &__bg
19
19
  -webkit-print-color-adjust: exact
20
20
  path
21
21
  fill: currentColor
22
22
 
23
23
  &__icon
24
24
  color: currentColor
25
- font-size: .6em
25
+ font-size: .5em
26
26
 
27
27
  &__check
28
28
  transform-origin: 50% 50%
@@ -56,16 +56,12 @@ $radio-transition: .22s cubic-bezier(0,0,.2,1) 0ms
56
56
 
57
57
  &--dense
58
58
 
59
- .q-checkbox__icon
60
- font-size: .6em
61
-
62
59
  .q-radio__inner
63
60
  width: .5em
64
61
  min-width: .5em
65
62
  height: .5em
66
63
 
67
- .q-radio__bg,
68
- .q-radio__icon-container
64
+ .q-radio__bg
69
65
  left: 0
70
66
  top: 0
71
67
  width: 100%
@@ -71,6 +71,9 @@ export default createComponent({
71
71
  wrapCells: Boolean,
72
72
 
73
73
  virtualScroll: Boolean,
74
+ virtualScrollTarget: {
75
+ default: void 0
76
+ },
74
77
  ...commonVirtPropsObj,
75
78
 
76
79
  noDataLabel: String,
@@ -313,6 +316,7 @@ export default createComponent({
313
316
  class: props.tableClass,
314
317
  style: props.tableStyle,
315
318
  ...virtProps.value,
319
+ scrollTarget: props.virtualScrollTarget,
316
320
  items: computedRows.value,
317
321
  type: '__qtable',
318
322
  tableColspan: computedColspan.value,
@@ -39,6 +39,10 @@
39
39
  "category": "virtual-scroll"
40
40
  },
41
41
 
42
+ "virtual-scroll-target": {
43
+ "extends": "scroll-target"
44
+ },
45
+
42
46
  "virtual-scroll-slice-size": {
43
47
  "type": [ "Number", "String" ],
44
48
  "desc": "Minimum number of rows to render in the virtual list",
@@ -19,10 +19,13 @@ export default createComponent({
19
19
  const vm = getCurrentInstance()
20
20
  const { proxy: { $q } } = vm
21
21
 
22
+ const onClick = evt => { emit('click', evt) }
23
+
22
24
  return () => {
23
25
  if (props.props === void 0) {
24
26
  return h('th', {
25
- class: props.autoWidth === true ? 'q-table--col-auto-width' : ''
27
+ class: props.autoWidth === true ? 'q-table--col-auto-width' : '',
28
+ onClick
26
29
  }, hSlot(slots.default))
27
30
  }
28
31
 
@@ -60,7 +63,7 @@ export default createComponent({
60
63
  style: col.headerStyle,
61
64
  onClick: evt => {
62
65
  col.sortable === true && props.props.sort(col) // eslint-disable-line
63
- emit('click', evt)
66
+ onClick(evt)
64
67
  }
65
68
  }
66
69
 
@@ -1,4 +1,4 @@
1
- import { h, ref, computed, watch, onBeforeMount, onMounted, onBeforeUnmount } from 'vue'
1
+ import { h, ref, computed, watch, onBeforeMount, onMounted, onBeforeUnmount, onActivated, onDeactivated } from 'vue'
2
2
 
3
3
  import QList from '../item/QList.js'
4
4
  import QMarkupTable from '../markup-table/QMarkupTable.js'
@@ -136,6 +136,14 @@ export default createComponent({
136
136
  configureScrollTarget()
137
137
  })
138
138
 
139
+ onActivated(() => {
140
+ configureScrollTarget()
141
+ })
142
+
143
+ onDeactivated(() => {
144
+ unconfigureScrollTarget()
145
+ })
146
+
139
147
  onBeforeUnmount(() => {
140
148
  unconfigureScrollTarget()
141
149
  })