quasar 2.11.9 → 2.12.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 (157) hide show
  1. package/dist/api/QDrawer.json +11 -5
  2. package/dist/api/QIntersection.json +4 -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/material-symbols-outlined.umd.prod.js +1 -1
  16. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  17. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  18. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  19. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  20. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  21. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  41. package/dist/icon-set/themify.umd.prod.js +1 -1
  42. package/dist/lang/ar-TN.umd.prod.js +1 -1
  43. package/dist/lang/ar.umd.prod.js +1 -1
  44. package/dist/lang/az-Latn.umd.prod.js +1 -1
  45. package/dist/lang/bg.umd.prod.js +1 -1
  46. package/dist/lang/bn.umd.prod.js +1 -1
  47. package/dist/lang/ca.umd.prod.js +1 -1
  48. package/dist/lang/cs.umd.prod.js +1 -1
  49. package/dist/lang/da.umd.prod.js +1 -1
  50. package/dist/lang/de.umd.prod.js +1 -1
  51. package/dist/lang/el.umd.prod.js +1 -1
  52. package/dist/lang/en-GB.umd.prod.js +1 -1
  53. package/dist/lang/en-US.umd.prod.js +1 -1
  54. package/dist/lang/eo.umd.prod.js +1 -1
  55. package/dist/lang/es.umd.prod.js +1 -1
  56. package/dist/lang/et.umd.prod.js +1 -1
  57. package/dist/lang/eu.umd.prod.js +1 -1
  58. package/dist/lang/fa-IR.umd.prod.js +1 -1
  59. package/dist/lang/fa.umd.prod.js +1 -1
  60. package/dist/lang/fi.umd.prod.js +1 -1
  61. package/dist/lang/fr.umd.prod.js +1 -1
  62. package/dist/lang/gn.umd.prod.js +1 -1
  63. package/dist/lang/he.umd.prod.js +1 -1
  64. package/dist/lang/hr.umd.prod.js +1 -1
  65. package/dist/lang/hu.umd.prod.js +1 -1
  66. package/dist/lang/id.umd.prod.js +1 -1
  67. package/dist/lang/is.umd.prod.js +1 -1
  68. package/dist/lang/it.umd.prod.js +1 -1
  69. package/dist/lang/ja.umd.prod.js +1 -1
  70. package/dist/lang/kk.umd.prod.js +1 -1
  71. package/dist/lang/km.umd.prod.js +1 -1
  72. package/dist/lang/ko-KR.umd.prod.js +1 -1
  73. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  74. package/dist/lang/lt.umd.prod.js +1 -1
  75. package/dist/lang/lu.umd.prod.js +1 -1
  76. package/dist/lang/lv.umd.prod.js +1 -1
  77. package/dist/lang/mk.umd.prod.js +6 -0
  78. package/dist/lang/ml.umd.prod.js +1 -1
  79. package/dist/lang/mm.umd.prod.js +1 -1
  80. package/dist/lang/ms.umd.prod.js +1 -1
  81. package/dist/lang/my.umd.prod.js +1 -1
  82. package/dist/lang/nb-NO.umd.prod.js +1 -1
  83. package/dist/lang/nl.umd.prod.js +1 -1
  84. package/dist/lang/pl.umd.prod.js +1 -1
  85. package/dist/lang/pt-BR.umd.prod.js +1 -1
  86. package/dist/lang/pt.umd.prod.js +1 -1
  87. package/dist/lang/ro.umd.prod.js +1 -1
  88. package/dist/lang/ru.umd.prod.js +1 -1
  89. package/dist/lang/sk.umd.prod.js +1 -1
  90. package/dist/lang/sl.umd.prod.js +1 -1
  91. package/dist/lang/sm.umd.prod.js +1 -1
  92. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  93. package/dist/lang/sr.umd.prod.js +1 -1
  94. package/dist/lang/sv.umd.prod.js +1 -1
  95. package/dist/lang/ta.umd.prod.js +1 -1
  96. package/dist/lang/th.umd.prod.js +1 -1
  97. package/dist/lang/tr.umd.prod.js +1 -1
  98. package/dist/lang/ug.umd.prod.js +1 -1
  99. package/dist/lang/uk.umd.prod.js +1 -1
  100. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  101. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  102. package/dist/lang/vi.umd.prod.js +1 -1
  103. package/dist/lang/zh-CN.umd.prod.js +1 -1
  104. package/dist/lang/zh-TW.umd.prod.js +1 -1
  105. package/dist/quasar.cjs.prod.js +2 -2
  106. package/dist/quasar.esm.js +110 -87
  107. package/dist/quasar.esm.prod.js +2 -2
  108. package/dist/quasar.sass +1 -1
  109. package/dist/quasar.umd.js +110 -87
  110. package/dist/quasar.umd.prod.js +2 -2
  111. package/dist/types/index.d.ts +13 -4
  112. package/dist/types/utils.d.ts +21 -5
  113. package/dist/vetur/quasar-attributes.json +8 -4
  114. package/dist/vetur/quasar-tags.json +2 -1
  115. package/dist/web-types/web-types.json +20 -5
  116. package/lang/index.json +4 -0
  117. package/lang/mk.js +98 -0
  118. package/lang/mk.mjs +93 -0
  119. package/package.json +1 -1
  120. package/src/components/btn-group/QBtnGroup.js +1 -1
  121. package/src/components/color/QColor.js +1 -1
  122. package/src/components/date/QDate.js +2 -2
  123. package/src/components/drawer/QDrawer.js +2 -0
  124. package/src/components/drawer/QDrawer.json +11 -4
  125. package/src/components/editor/QEditor.js +1 -1
  126. package/src/components/editor/editor-caret.js +1 -1
  127. package/src/components/file/QFile.js +2 -2
  128. package/src/components/icon/QIcon.js +1 -1
  129. package/src/components/input/QInput.js +1 -1
  130. package/src/components/input/use-mask.js +4 -4
  131. package/src/components/intersection/QIntersection.js +7 -3
  132. package/src/components/intersection/QIntersection.json +5 -0
  133. package/src/components/rating/QRating.js +1 -1
  134. package/src/components/select/QSelect.js +10 -10
  135. package/src/components/table/QTable.js +1 -1
  136. package/src/components/table/table-pagination.js +1 -1
  137. package/src/components/table/table-row-selection.js +1 -1
  138. package/src/components/time/QTime.js +2 -2
  139. package/src/components/tree/QTree.js +10 -11
  140. package/src/components/uploader/__tests__/QUploader.cy.js +2 -2
  141. package/src/components/uploader/uploader-core.js +5 -5
  142. package/src/components/uploader/xhr-uploader-plugin.js +2 -2
  143. package/src/composables/private/use-field.js +2 -2
  144. package/src/composables/private/use-file.js +4 -4
  145. package/src/composables/private/use-panel.js +1 -1
  146. package/src/composables/private/use-validate.js +2 -2
  147. package/src/directives/Morph.js +1 -1
  148. package/src/directives/TouchHold.js +1 -1
  149. package/src/directives/TouchRepeat.js +1 -1
  150. package/src/directives/TouchSwipe.js +7 -0
  151. package/src/lang.js +1 -1
  152. package/src/plugins/Meta.js +5 -5
  153. package/src/plugins/Screen.js +1 -1
  154. package/src/utils/EventBus.js +17 -13
  155. package/src/utils/morph.js +2 -2
  156. package/src/utils/private/focus-manager.js +1 -1
  157. package/src/utils/private/touch.js +9 -1
@@ -3212,14 +3212,18 @@ export interface QDrawerProps {
3212
3212
  * Default value: 60
3213
3213
  */
3214
3214
  miniWidth?: number | undefined;
3215
- /**
3216
- * Notify the component that the background is a dark color
3217
- */
3218
- dark?: boolean | undefined;
3219
3215
  /**
3220
3216
  * Mini mode will expand as an overlay
3221
3217
  */
3222
3218
  miniToOverlay?: boolean | undefined;
3219
+ /**
3220
+ * Disables animation of the drawer when toggling mini mode
3221
+ */
3222
+ noMiniAnimation?: boolean | undefined;
3223
+ /**
3224
+ * Notify the component that the background is a dark color
3225
+ */
3226
+ dark?: boolean | undefined;
3223
3227
  /**
3224
3228
  * Breakpoint (in pixels) of layout width up to which mobile mode is used
3225
3229
  * Default value: 1023
@@ -5571,6 +5575,10 @@ export interface QIntersectionSlots {
5571
5575
  * Default slot in the devland unslotted content of the component
5572
5576
  */
5573
5577
  default: () => VNode[];
5578
+ /**
5579
+ * Slot for content to render when component is not on screen; Example: a text that the user can search for with the browser's search function
5580
+ */
5581
+ hidden: () => VNode[];
5574
5582
  }
5575
5583
 
5576
5584
  export interface QIntersection
@@ -14155,6 +14163,7 @@ declare module "./lang" {
14155
14163
  lt: true;
14156
14164
  lu: true;
14157
14165
  lv: true;
14166
+ mk: true;
14158
14167
  ml: true;
14159
14168
  mm: true;
14160
14169
  ms: true;
@@ -103,11 +103,27 @@ export function setCssVar(
103
103
  element?: Element
104
104
  ): void;
105
105
 
106
- export class EventBus {
107
- on(event: string, callback: Function, ctx?: any): this;
108
- once(event: string, callback: Function, ctx?: any): this;
109
- emit(event: string, ...args: any[]): this;
110
- off(event: string, callback?: Function): this;
106
+ interface Callbacks {
107
+ [key: string]: (...args: any[]) => void;
108
+ }
109
+
110
+ export class EventBus<T extends Callbacks = Callbacks> {
111
+ on<K extends keyof T>(
112
+ event: K,
113
+ callback: T[K],
114
+ ...ctx: unknown extends ThisParameterType<T[K]>
115
+ ? []
116
+ : [ctx: ThisParameterType<T[K]>]
117
+ ): this;
118
+ once<K extends keyof T>(
119
+ event: K,
120
+ callback: T[K],
121
+ ...ctx: unknown extends ThisParameterType<T[K]>
122
+ ? []
123
+ : [ctx: ThisParameterType<T[K]>]
124
+ ): this;
125
+ emit<K extends keyof T>(event: K, ...args: Parameters<T[K]>): this;
126
+ off<K extends keyof T>(event: K, callback?: T[K]): this;
111
127
  }
112
128
 
113
129
  interface CreateMetaMixinContext extends ComponentPublicInstance {
@@ -1379,14 +1379,18 @@
1379
1379
  "type": "number",
1380
1380
  "description": "Width of drawer (in pixels) when in mini mode"
1381
1381
  },
1382
- "q-drawer/dark": {
1383
- "type": "boolean",
1384
- "description": "Notify the component that the background is a dark color"
1385
- },
1386
1382
  "q-drawer/mini-to-overlay": {
1387
1383
  "type": "boolean",
1388
1384
  "description": "Mini mode will expand as an overlay"
1389
1385
  },
1386
+ "q-drawer/no-mini-animation": {
1387
+ "type": "boolean",
1388
+ "description": "Disables animation of the drawer when toggling mini mode"
1389
+ },
1390
+ "q-drawer/dark": {
1391
+ "type": "boolean",
1392
+ "description": "Notify the component that the background is a dark color"
1393
+ },
1390
1394
  "q-drawer/breakpoint": {
1391
1395
  "type": "number",
1392
1396
  "description": "Breakpoint (in pixels) of layout width up to which mobile mode is used"
@@ -466,8 +466,9 @@
466
466
  "width",
467
467
  "mini",
468
468
  "mini-width",
469
- "dark",
470
469
  "mini-to-overlay",
470
+ "no-mini-animation",
471
+ "dark",
471
472
  "breakpoint",
472
473
  "behavior",
473
474
  "bordered",
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.11.9",
5
+ "version": "2.12.0",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -4291,22 +4291,32 @@
4291
4291
  "default": "60"
4292
4292
  },
4293
4293
  {
4294
- "name": "dark",
4294
+ "name": "mini-to-overlay",
4295
4295
  "value": {
4296
4296
  "kind": "expression",
4297
4297
  "type": "boolean"
4298
4298
  },
4299
- "description": "Notify the component that the background is a dark color",
4299
+ "description": "Mini mode will expand as an overlay",
4300
4300
  "doc-url": "https://v2.quasar.dev/layout/drawer",
4301
4301
  "type": "boolean"
4302
4302
  },
4303
4303
  {
4304
- "name": "mini-to-overlay",
4304
+ "name": "no-mini-animation",
4305
4305
  "value": {
4306
4306
  "kind": "expression",
4307
4307
  "type": "boolean"
4308
4308
  },
4309
- "description": "Mini mode will expand as an overlay",
4309
+ "description": "Disables animation of the drawer when toggling mini mode",
4310
+ "doc-url": "https://v2.quasar.dev/layout/drawer",
4311
+ "type": "boolean"
4312
+ },
4313
+ {
4314
+ "name": "dark",
4315
+ "value": {
4316
+ "kind": "expression",
4317
+ "type": "boolean"
4318
+ },
4319
+ "description": "Notify the component that the background is a dark color",
4310
4320
  "doc-url": "https://v2.quasar.dev/layout/drawer",
4311
4321
  "type": "boolean"
4312
4322
  },
@@ -8544,6 +8554,11 @@
8544
8554
  "name": "default",
8545
8555
  "description": "Default slot in the devland unslotted content of the component",
8546
8556
  "doc-url": "https://v2.quasar.dev/vue-components/intersection"
8557
+ },
8558
+ {
8559
+ "name": "hidden",
8560
+ "description": "Slot for content to render when component is not on screen; Example: a text that the user can search for with the browser's search function",
8561
+ "doc-url": "https://v2.quasar.dev/vue-components/intersection"
8547
8562
  }
8548
8563
  ],
8549
8564
  "description": "QIntersection - Quasar component",
package/lang/index.json CHANGED
@@ -139,6 +139,10 @@
139
139
  "isoName": "lv",
140
140
  "nativeName": "Latviešu valoda"
141
141
  },
142
+ {
143
+ "isoName": "mk",
144
+ "nativeName": "Македонски"
145
+ },
142
146
  {
143
147
  "isoName": "ml",
144
148
  "nativeName": "മലയാളം"
package/lang/mk.js ADDED
@@ -0,0 +1,98 @@
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 (mk.mjs).
5
+ */
6
+ module.exports = {
7
+ isoName: 'mk',
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
+ expand: label => (label ? `Прошири "${ label }"` : 'Прошири'),
24
+ collapse: label => (label ? `Собери на "${ label }"` : 'Собери')
25
+ },
26
+ date: {
27
+ days: 'Недела_Понеделник_Вторник_Среда_Четврток_Петок_Сабота'.split(''),
28
+ daysShort: 'Нед_Пон_Вто_Сре_Чет_Пет_Саб'.split(''),
29
+ months: 'Јануари_Февруари_Март_Април_Мај_Јуни_Јули_Август_Септември_Октомври_Ноември_Декември'.split(''),
30
+ monthsShort: 'Јан_Фев_Мар_Апр_Мај_Јун_Јул_Авг_Сеп_Окт_Ное_Дек'.split(''),
31
+ firstDayOfWeek: 0, // 0-6, 0 - Недела, 1 - Понеделник, ...
32
+ format24h: false,
33
+ pluralDay: 'денови'
34
+ },
35
+ table: {
36
+ noData: 'Нема достапни податоци',
37
+ noResults: 'Нема резултати за пребарување',
38
+ loading: 'Вчитување...',
39
+ selectedRecords: rows => (
40
+ rows === 1
41
+ ? 'Избран е 1 запис.'
42
+ : (rows === 0 ? 'Нема' : rows) + ' записи се избрани.'
43
+ ),
44
+ recordsPerPage: 'Записи по страница:',
45
+ allRows: 'Сите',
46
+ pagination: (start, end, total) => start + '-' + end + ' од ' + total,
47
+ columns: 'Колони'
48
+ },
49
+ editor: {
50
+ url: 'URL',
51
+ bold: 'Задебелено',
52
+ italic: 'Курзив',
53
+ strikethrough: 'Прецртано',
54
+ underline: 'Подвлечено',
55
+ unorderedList: 'Неподредена листа',
56
+ orderedList: 'Подредена листа',
57
+ subscript: 'Индекс',
58
+ superscript: 'Степен',
59
+ hyperlink: 'Хиперврска',
60
+ toggleFullscreen: 'Цел екран',
61
+ quote: 'Цитат',
62
+ left: 'Лева подредба',
63
+ center: 'Центрирана подредба',
64
+ right: 'Десна подредба',
65
+ justify: 'Равномерна подредба',
66
+ print: 'Печати',
67
+ outdent: 'Намали маргина',
68
+ indent: 'Зголеми маргина',
69
+ removeFormat: 'Отстрани форматирање',
70
+ formatting: 'Форматирање',
71
+ fontSize: 'Големина на фонт',
72
+ align: 'Подредба',
73
+ hr: 'Вметни хоризонтална линија',
74
+ undo: 'Поништи',
75
+ redo: 'Врати',
76
+ heading1: 'Наслов 1',
77
+ heading2: 'Наслов 2',
78
+ heading3: 'Наслов 3',
79
+ heading4: 'Наслов 4',
80
+ heading5: 'Наслов 5',
81
+ heading6: 'Наслов 6',
82
+ paragraph: 'Параграф',
83
+ code: 'Код',
84
+ size1: 'Многу мала',
85
+ size2: 'Малку помала',
86
+ size3: 'Нормална',
87
+ size4: 'Средно-голема',
88
+ size5: 'Голема',
89
+ size6: 'Многу голема',
90
+ size7: 'Максимална',
91
+ defaultFont: 'Стандарден фонт',
92
+ viewSource: 'Преглед на изворниот код'
93
+ },
94
+ tree: {
95
+ noNodes: 'Нема достапни јазли',
96
+ noResults: 'Нема пронајдено резултати'
97
+ }
98
+ }
package/lang/mk.mjs ADDED
@@ -0,0 +1,93 @@
1
+ export default {
2
+ isoName: 'mk',
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
+ expand: label => (label ? `Прошири "${ label }"` : 'Прошири'),
19
+ collapse: label => (label ? `Собери на "${ label }"` : 'Собери')
20
+ },
21
+ date: {
22
+ days: 'Недела_Понеделник_Вторник_Среда_Четврток_Петок_Сабота'.split(''),
23
+ daysShort: 'Нед_Пон_Вто_Сре_Чет_Пет_Саб'.split(''),
24
+ months: 'Јануари_Февруари_Март_Април_Мај_Јуни_Јули_Август_Септември_Октомври_Ноември_Декември'.split(''),
25
+ monthsShort: 'Јан_Фев_Мар_Апр_Мај_Јун_Јул_Авг_Сеп_Окт_Ное_Дек'.split(''),
26
+ firstDayOfWeek: 0, // 0-6, 0 - Недела, 1 - Понеделник, ...
27
+ format24h: false,
28
+ pluralDay: 'денови'
29
+ },
30
+ table: {
31
+ noData: 'Нема достапни податоци',
32
+ noResults: 'Нема резултати за пребарување',
33
+ loading: 'Вчитување...',
34
+ selectedRecords: rows => (
35
+ rows === 1
36
+ ? 'Избран е 1 запис.'
37
+ : (rows === 0 ? 'Нема' : rows) + ' записи се избрани.'
38
+ ),
39
+ recordsPerPage: 'Записи по страница:',
40
+ allRows: 'Сите',
41
+ pagination: (start, end, total) => start + '-' + end + ' од ' + total,
42
+ columns: 'Колони'
43
+ },
44
+ editor: {
45
+ url: 'URL',
46
+ bold: 'Задебелено',
47
+ italic: 'Курзив',
48
+ strikethrough: 'Прецртано',
49
+ underline: 'Подвлечено',
50
+ unorderedList: 'Неподредена листа',
51
+ orderedList: 'Подредена листа',
52
+ subscript: 'Индекс',
53
+ superscript: 'Степен',
54
+ hyperlink: 'Хиперврска',
55
+ toggleFullscreen: 'Цел екран',
56
+ quote: 'Цитат',
57
+ left: 'Лева подредба',
58
+ center: 'Центрирана подредба',
59
+ right: 'Десна подредба',
60
+ justify: 'Равномерна подредба',
61
+ print: 'Печати',
62
+ outdent: 'Намали маргина',
63
+ indent: 'Зголеми маргина',
64
+ removeFormat: 'Отстрани форматирање',
65
+ formatting: 'Форматирање',
66
+ fontSize: 'Големина на фонт',
67
+ align: 'Подредба',
68
+ hr: 'Вметни хоризонтална линија',
69
+ undo: 'Поништи',
70
+ redo: 'Врати',
71
+ heading1: 'Наслов 1',
72
+ heading2: 'Наслов 2',
73
+ heading3: 'Наслов 3',
74
+ heading4: 'Наслов 4',
75
+ heading5: 'Наслов 5',
76
+ heading6: 'Наслов 6',
77
+ paragraph: 'Параграф',
78
+ code: 'Код',
79
+ size1: 'Многу мала',
80
+ size2: 'Малку помала',
81
+ size3: 'Нормална',
82
+ size4: 'Средно-голема',
83
+ size5: 'Голема',
84
+ size6: 'Многу голема',
85
+ size7: 'Максимална',
86
+ defaultFont: 'Стандарден фонт',
87
+ viewSource: 'Преглед на изворниот код'
88
+ },
89
+ tree: {
90
+ noNodes: 'Нема достапни јазли',
91
+ noResults: 'Нема пронајдено резултати'
92
+ }
93
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.11.9",
3
+ "version": "2.12.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",
@@ -24,7 +24,7 @@ export default createComponent({
24
24
  .filter(t => props[ t ] === true)
25
25
  .map(t => `q-btn-group--${ t }`).join(' ')
26
26
 
27
- return `q-btn-group row no-wrap${ cls.length > 0 ? ' ' + cls : '' }`
27
+ return `q-btn-group row no-wrap${ cls.length !== 0 ? ' ' + cls : '' }`
28
28
  + (props.spread === true ? ' q-btn-group--spread' : ' inline')
29
29
  })
30
30
 
@@ -162,7 +162,7 @@ export default createComponent({
162
162
  }))
163
163
 
164
164
  const computedPalette = computed(() => (
165
- props.palette !== void 0 && props.palette.length > 0
165
+ props.palette !== void 0 && props.palette.length !== 0
166
166
  ? props.palette
167
167
  : palette
168
168
  ))
@@ -210,7 +210,7 @@ export default createComponent({
210
210
  )
211
211
 
212
212
  const headerTitle = computed(() => {
213
- if (props.title !== void 0 && props.title !== null && props.title.length > 0) {
213
+ if (props.title !== void 0 && props.title !== null && props.title.length !== 0) {
214
214
  return props.title
215
215
  }
216
216
 
@@ -262,7 +262,7 @@ export default createComponent({
262
262
  })
263
263
 
264
264
  const headerSubtitle = computed(() => {
265
- if (props.subtitle !== void 0 && props.subtitle !== null && props.subtitle.length > 0) {
265
+ if (props.subtitle !== void 0 && props.subtitle !== null && props.subtitle.length !== 0) {
266
266
  return props.subtitle
267
267
  }
268
268
 
@@ -41,6 +41,7 @@ export default createComponent({
41
41
  type: Number,
42
42
  default: 57
43
43
  },
44
+ noMiniAnimation: Boolean,
44
45
 
45
46
  breakpoint: {
46
47
  type: Number,
@@ -417,6 +418,7 @@ export default createComponent({
417
418
  watch(() => $q.lang.rtl, () => { applyPosition() })
418
419
 
419
420
  watch(() => props.mini, () => {
421
+ if (props.noMiniAnimation) return
420
422
  if (props.modelValue === true) {
421
423
  animateMini()
422
424
  $layout.animate()
@@ -42,16 +42,23 @@
42
42
  "category": "style"
43
43
  },
44
44
 
45
- "dark": {
46
- "extends": "dark"
47
- },
48
-
49
45
  "mini-to-overlay": {
50
46
  "type": "Boolean",
51
47
  "desc": "Mini mode will expand as an overlay",
52
48
  "category": "behavior"
53
49
  },
54
50
 
51
+ "no-mini-animation": {
52
+ "type": "Boolean",
53
+ "desc": "Disables animation of the drawer when toggling mini mode",
54
+ "category": "behavior",
55
+ "addedIn": "v2.12.0"
56
+ },
57
+
58
+ "dark": {
59
+ "extends": "dark"
60
+ },
61
+
55
62
  "breakpoint": {
56
63
  "type": "Number",
57
64
  "desc": "Breakpoint (in pixels) of layout width up to which mobile mode is used",
@@ -264,7 +264,7 @@ export default createComponent({
264
264
  emit(`link-${ v ? 'Show' : 'Hide' }`)
265
265
  })
266
266
 
267
- const hasToolbar = computed(() => props.toolbar && props.toolbar.length > 0)
267
+ const hasToolbar = computed(() => props.toolbar && props.toolbar.length !== 0)
268
268
 
269
269
  const keys = computed(() => {
270
270
  const
@@ -84,7 +84,7 @@ export default class Caret {
84
84
 
85
85
  get hasSelection () {
86
86
  return this.selection !== null
87
- ? this.selection.toString().length > 0
87
+ ? this.selection.toString().length !== 0
88
88
  : false
89
89
  }
90
90
 
@@ -120,7 +120,7 @@ export default createComponent({
120
120
  }
121
121
 
122
122
  function removeFile (file) {
123
- const index = innerValue.value.findIndex(file)
123
+ const index = innerValue.value.indexOf(file)
124
124
  if (index > -1) {
125
125
  removeAtIndex(index)
126
126
  }
@@ -218,7 +218,7 @@ export default createComponent({
218
218
  ? props.displayValue
219
219
  : selectedString.value
220
220
 
221
- return textContent.length > 0
221
+ return textContent.length !== 0
222
222
  ? [
223
223
  h('div', {
224
224
  class: props.inputClass,
@@ -42,7 +42,7 @@ const mRE = /^[Mm]\s?[-+]?\.?\d/
42
42
  const imgRE = /^img:/
43
43
  const svgUseRE = /^svguse:/
44
44
  const ionRE = /^ion-/
45
- const faRE = /^(fa-(solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /
45
+ const faRE = /^(fa-(sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /
46
46
 
47
47
  export default createComponent({
48
48
  name: 'QIcon',
@@ -397,7 +397,7 @@ export default createComponent({
397
397
  hasShadow: computed(() =>
398
398
  props.type !== 'file'
399
399
  && typeof props.shadowText === 'string'
400
- && props.shadowText.length > 0
400
+ && props.shadowText.length !== 0
401
401
  ),
402
402
 
403
403
  inputRef,
@@ -110,7 +110,7 @@ export default function (props, emit, emitValue, inputRef) {
110
110
 
111
111
  function updateMaskInternals () {
112
112
  hasMask.value = props.mask !== void 0
113
- && props.mask.length > 0
113
+ && props.mask.length !== 0
114
114
  && getIsTypeText()
115
115
 
116
116
  if (hasMask.value === false) {
@@ -124,7 +124,7 @@ export default function (props, emit, emitValue, inputRef) {
124
124
  localComputedMask = NAMED_MASKS[ props.mask ] === void 0
125
125
  ? props.mask
126
126
  : NAMED_MASKS[ props.mask ],
127
- fillChar = typeof props.fillMask === 'string' && props.fillMask.length > 0
127
+ fillChar = typeof props.fillMask === 'string' && props.fillMask.length !== 0
128
128
  ? props.fillMask.slice(0, 1)
129
129
  : '_',
130
130
  fillCharEscaped = fillChar.replace(escRegex, '\\$&'),
@@ -205,7 +205,7 @@ export default function (props, emit, emitValue, inputRef) {
205
205
  str = str.slice(m.shift().length)
206
206
  extractMatch.push(...m)
207
207
  }
208
- if (extractMatch.length > 0) {
208
+ if (extractMatch.length !== 0) {
209
209
  return extractMatch.join('')
210
210
  }
211
211
 
@@ -553,7 +553,7 @@ export default function (props, emit, emitValue, inputRef) {
553
553
  return val
554
554
  }
555
555
 
556
- return props.reverseFillMask === true && val.length > 0
556
+ return props.reverseFillMask === true && val.length !== 0
557
557
  ? maskReplaced.slice(0, -val.length) + val
558
558
  : val + maskReplaced.slice(val.length)
559
559
  }
@@ -79,9 +79,13 @@ export default createComponent({
79
79
  }
80
80
 
81
81
  function getContent () {
82
- return showing.value === true
83
- ? [ h('div', { key: 'content', style: transitionStyle.value }, hSlot(slots.default)) ]
84
- : void 0
82
+ if (showing.value === true) {
83
+ return [ h('div', { key: 'content', style: transitionStyle.value }, hSlot(slots.default)) ]
84
+ }
85
+
86
+ if (slots.hidden !== void 0) {
87
+ return [ h('div', { key: 'hidden', style: transitionStyle.value }, slots.hidden()) ]
88
+ }
85
89
  }
86
90
 
87
91
  return () => {
@@ -69,6 +69,11 @@
69
69
  "slots": {
70
70
  "default": {
71
71
  "extends": "default"
72
+ },
73
+
74
+ "hidden": {
75
+ "desc": "Slot for content to render when component is not on screen; Example: a text that the user can search for with the browser's search function",
76
+ "addedIn": "v2.12.0"
72
77
  }
73
78
  },
74
79
 
@@ -100,7 +100,7 @@ export default createComponent({
100
100
 
101
101
  const iconLabel = computed(() => {
102
102
  if (typeof props.iconAriaLabel === 'string') {
103
- const label = props.iconAriaLabel.length > 0 ? `${ props.iconAriaLabel } ` : ''
103
+ const label = props.iconAriaLabel.length !== 0 ? `${ props.iconAriaLabel } ` : ''
104
104
  return i => `${ label }${ i }`
105
105
  }
106
106