quasar 1.16.2 → 1.17.2

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 (309) hide show
  1. package/dist/api/BottomSheet.json +2 -2
  2. package/dist/api/Loading.json +0 -2
  3. package/dist/api/LoadingBar.json +1 -1
  4. package/dist/api/Notify.json +25 -25
  5. package/dist/api/QAjaxBar.json +23 -4
  6. package/dist/api/QAvatar.json +1 -1
  7. package/dist/api/QBreadcrumbsEl.json +32 -11
  8. package/dist/api/QBtn.json +35 -14
  9. package/dist/api/QBtnDropdown.json +36 -15
  10. package/dist/api/QBtnToggle.json +1 -1
  11. package/dist/api/QCarousel.json +7 -7
  12. package/dist/api/QCarouselSlide.json +2 -2
  13. package/dist/api/QChatMessage.json +1 -5
  14. package/dist/api/QChip.json +4 -4
  15. package/dist/api/QColor.json +6 -0
  16. package/dist/api/QDialog.json +7 -1
  17. package/dist/api/QExpansionItem.json +34 -13
  18. package/dist/api/QFab.json +34 -2
  19. package/dist/api/QFabAction.json +9 -1
  20. package/dist/api/QField.json +80 -6
  21. package/dist/api/QFile.json +80 -6
  22. package/dist/api/QImg.json +2 -2
  23. package/dist/api/QInnerLoading.json +32 -0
  24. package/dist/api/QInput.json +82 -6
  25. package/dist/api/QItem.json +31 -10
  26. package/dist/api/QOptionGroup.json +58 -1
  27. package/dist/api/QPagination.json +4 -4
  28. package/dist/api/QParallax.json +1 -1
  29. package/dist/api/QPopupEdit.json +14 -7
  30. package/dist/api/QPullToRefresh.json +1 -1
  31. package/dist/api/QRange.json +581 -96
  32. package/dist/api/QRating.json +3 -3
  33. package/dist/api/QRouteTab.json +32 -12
  34. package/dist/api/QScrollArea.json +188 -20
  35. package/dist/api/QSelect.json +82 -10
  36. package/dist/api/QSeparator.json +1 -1
  37. package/dist/api/QSlider.json +499 -34
  38. package/dist/api/QStep.json +4 -4
  39. package/dist/api/QStepper.json +4 -4
  40. package/dist/api/QTab.json +1 -1
  41. package/dist/api/QTable.json +4 -4
  42. package/dist/api/QTabs.json +9 -0
  43. package/dist/api/QTimelineEntry.json +2 -2
  44. package/dist/api/QToggle.json +1 -1
  45. package/dist/api/QTree.json +7 -1
  46. package/dist/api/QVideo.json +10 -0
  47. package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
  48. package/dist/icon-set/eva-icons.umd.min.js +1 -1
  49. package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
  50. package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
  51. package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
  52. package/dist/icon-set/line-awesome.umd.min.js +1 -1
  53. package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
  54. package/dist/icon-set/material-icons-round.umd.min.js +1 -1
  55. package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
  56. package/dist/icon-set/material-icons.umd.min.js +1 -1
  57. package/dist/icon-set/mdi-v3.umd.min.js +1 -1
  58. package/dist/icon-set/mdi-v4.umd.min.js +1 -1
  59. package/dist/icon-set/mdi-v5.umd.min.js +1 -1
  60. package/dist/icon-set/mdi-v6.umd.min.js +1 -1
  61. package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
  62. package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
  63. package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
  64. package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
  65. package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
  66. package/dist/icon-set/svg-ionicons-v6.umd.min.js +6 -0
  67. package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
  68. package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
  69. package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
  70. package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
  71. package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
  72. package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
  73. package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
  74. package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
  75. package/dist/icon-set/svg-themify.umd.min.js +1 -1
  76. package/dist/icon-set/themify.umd.min.js +1 -1
  77. package/dist/lang/ar.umd.min.js +2 -2
  78. package/dist/lang/az-latn.umd.min.js +1 -1
  79. package/dist/lang/bg.umd.min.js +1 -1
  80. package/dist/lang/ca.umd.min.js +1 -1
  81. package/dist/lang/cs.umd.min.js +1 -1
  82. package/dist/lang/da.umd.min.js +1 -1
  83. package/dist/lang/de.umd.min.js +1 -1
  84. package/dist/lang/el.umd.min.js +1 -1
  85. package/dist/lang/en-gb.umd.min.js +1 -1
  86. package/dist/lang/en-us.umd.min.js +1 -1
  87. package/dist/lang/eo.umd.min.js +1 -1
  88. package/dist/lang/es.umd.min.js +1 -1
  89. package/dist/lang/et.umd.min.js +1 -1
  90. package/dist/lang/fa-ir.umd.min.js +1 -1
  91. package/dist/lang/fa.umd.min.js +1 -1
  92. package/dist/lang/fi.umd.min.js +1 -1
  93. package/dist/lang/fr.umd.min.js +2 -2
  94. package/dist/lang/gn.umd.min.js +1 -1
  95. package/dist/lang/he.umd.min.js +1 -1
  96. package/dist/lang/hr.umd.min.js +1 -1
  97. package/dist/lang/hu.umd.min.js +1 -1
  98. package/dist/lang/id.umd.min.js +1 -1
  99. package/dist/lang/is.umd.min.js +1 -1
  100. package/dist/lang/it.umd.min.js +1 -1
  101. package/dist/lang/ja.umd.min.js +1 -1
  102. package/dist/lang/km.umd.min.js +1 -1
  103. package/dist/lang/ko-kr.umd.min.js +1 -1
  104. package/dist/lang/kur-ckb.umd.min.js +1 -1
  105. package/dist/lang/lu.umd.min.js +1 -1
  106. package/dist/lang/lv.umd.min.js +1 -1
  107. package/dist/lang/ml.umd.min.js +1 -1
  108. package/dist/lang/ms.umd.min.js +1 -1
  109. package/dist/lang/nb-no.umd.min.js +1 -1
  110. package/dist/lang/nl.umd.min.js +1 -1
  111. package/dist/lang/pl.umd.min.js +1 -1
  112. package/dist/lang/pt-br.umd.min.js +1 -1
  113. package/dist/lang/pt.umd.min.js +1 -1
  114. package/dist/lang/ro.umd.min.js +1 -1
  115. package/dist/lang/ru.umd.min.js +1 -1
  116. package/dist/lang/sk.umd.min.js +1 -1
  117. package/dist/lang/sl.umd.min.js +1 -1
  118. package/dist/lang/sr.umd.min.js +2 -2
  119. package/dist/lang/sv.umd.min.js +1 -1
  120. package/dist/lang/ta.umd.min.js +1 -1
  121. package/dist/lang/th.umd.min.js +1 -1
  122. package/dist/lang/tr.umd.min.js +1 -1
  123. package/dist/lang/ug.umd.min.js +2 -2
  124. package/dist/lang/uk.umd.min.js +1 -1
  125. package/dist/lang/vi.umd.min.js +1 -1
  126. package/dist/lang/zh-hans.umd.min.js +2 -2
  127. package/dist/lang/zh-hant.umd.min.js +2 -2
  128. package/dist/quasar.addon.css +1 -1
  129. package/dist/quasar.addon.rtl.css +1 -1
  130. package/dist/quasar.common.js +2 -2
  131. package/dist/quasar.css +378 -226
  132. package/dist/quasar.esm.js +2 -2
  133. package/dist/quasar.ie.polyfills.js +1 -1
  134. package/dist/quasar.ie.polyfills.umd.min.js +1 -1
  135. package/dist/quasar.min.css +1 -1
  136. package/dist/quasar.rtl.css +510 -302
  137. package/dist/quasar.rtl.min.css +1 -1
  138. package/dist/quasar.sass +326 -211
  139. package/dist/quasar.styl +326 -209
  140. package/dist/quasar.umd.js +3240 -1889
  141. package/dist/quasar.umd.min.js +2 -2
  142. package/dist/quasar.umd.modern.js +3199 -1870
  143. package/dist/quasar.umd.modern.min.js +2 -2
  144. package/dist/transform-asset-urls.json +20 -0
  145. package/dist/types/index.d.ts +427 -105
  146. package/dist/types/utils/scroll.d.ts +1 -0
  147. package/dist/vetur/quasar-attributes.json +320 -92
  148. package/dist/vetur/quasar-tags.json +76 -19
  149. package/dist/web-types/web-types.json +1296 -257
  150. package/icon-set/svg-ionicons-v6.js +225 -0
  151. package/lang/ar.js +1 -1
  152. package/lang/fa-ir.js +3 -1
  153. package/lang/fa.js +3 -1
  154. package/lang/fr.js +1 -1
  155. package/lang/index.json +1 -1
  156. package/lang/kur-ckb.js +2 -2
  157. package/lang/sr.js +4 -4
  158. package/lang/ug.js +48 -46
  159. package/lang/zh-hans.js +1 -1
  160. package/lang/zh-hant.js +18 -18
  161. package/package.json +1 -1
  162. package/src/api.extends.json +1 -2
  163. package/src/components/ajax-bar/QAjaxBar.js +48 -26
  164. package/src/components/ajax-bar/QAjaxBar.json +22 -4
  165. package/src/components/breadcrumbs/QBreadcrumbs.js +15 -11
  166. package/src/components/breadcrumbs/QBreadcrumbs.sass +0 -3
  167. package/src/components/breadcrumbs/QBreadcrumbs.styl +0 -3
  168. package/src/components/breadcrumbs/QBreadcrumbsEl.js +25 -9
  169. package/src/components/btn/QBtn.js +3 -3
  170. package/src/components/btn-dropdown/QBtnDropdown.sass +2 -0
  171. package/src/components/btn-dropdown/QBtnDropdown.styl +2 -0
  172. package/src/components/btn-toggle/QBtnToggle.js +4 -1
  173. package/src/components/carousel/QCarousel.js +6 -2
  174. package/src/components/carousel/QCarousel.json +9 -1
  175. package/src/components/carousel/QCarouselSlide.json +2 -2
  176. package/src/components/chat/QChatMessage.json +1 -1
  177. package/src/components/color/QColor.js +100 -85
  178. package/src/components/color/QColor.json +7 -0
  179. package/src/components/color/QColor.sass +14 -24
  180. package/src/components/color/QColor.styl +14 -24
  181. package/src/components/date/QDate.js +7 -1
  182. package/src/components/date/QDate.sass +2 -0
  183. package/src/components/date/QDate.styl +2 -0
  184. package/src/components/dialog/QDialog.js +8 -4
  185. package/src/components/dialog/QDialog.json +8 -1
  186. package/src/components/drawer/QDrawer.js +16 -15
  187. package/src/components/editor/QEditor.js +2 -2
  188. package/src/components/editor/QEditor.sass +13 -1
  189. package/src/components/editor/QEditor.styl +13 -1
  190. package/src/components/expansion-item/QExpansionItem.js +13 -11
  191. package/src/components/fab/QFab.js +20 -11
  192. package/src/components/fab/QFab.json +35 -0
  193. package/src/components/fab/QFabAction.js +16 -9
  194. package/src/components/fab/QFabAction.json +10 -0
  195. package/src/components/field/QField.js +28 -23
  196. package/src/components/field/__QField.json +72 -8
  197. package/src/components/file/QFile.js +12 -4
  198. package/src/components/file/QFile.sass +4 -3
  199. package/src/components/file/QFile.styl +4 -3
  200. package/src/components/footer/QFooter.js +1 -1
  201. package/src/components/form/QForm.js +1 -1
  202. package/src/components/header/QHeader.js +1 -1
  203. package/src/components/icon/QIcon.js +92 -75
  204. package/src/components/icon/QIcon.sass +0 -1
  205. package/src/components/icon/QIcon.styl +0 -1
  206. package/src/components/img/QImg.json +2 -2
  207. package/src/components/infinite-scroll/QInfiniteScroll.js +49 -36
  208. package/src/components/inner-loading/QInnerLoading.js +54 -22
  209. package/src/components/inner-loading/QInnerLoading.json +29 -0
  210. package/src/components/inner-loading/QInnerLoading.sass +3 -0
  211. package/src/components/inner-loading/QInnerLoading.styl +3 -0
  212. package/src/components/item/QItem.js +9 -15
  213. package/src/components/layout/QLayout.js +49 -0
  214. package/src/components/linear-progress/QLinearProgress.js +6 -2
  215. package/src/components/menu/QMenu.js +5 -1
  216. package/src/components/option-group/QOptionGroup.js +32 -22
  217. package/src/components/option-group/QOptionGroup.json +50 -1
  218. package/src/components/parallax/QParallax.js +3 -0
  219. package/src/components/parallax/QParallax.json +1 -1
  220. package/src/components/popup-edit/QPopupEdit.js +41 -16
  221. package/src/components/popup-edit/QPopupEdit.json +15 -8
  222. package/src/components/range/QRange.js +223 -278
  223. package/src/components/range/QRange.json +11 -122
  224. package/src/components/rating/QRating.js +56 -38
  225. package/src/components/rating/QRating.json +3 -3
  226. package/src/components/rating/QRating.sass +8 -6
  227. package/src/components/rating/QRating.styl +8 -6
  228. package/src/components/resize-observer/QResizeObserver.js +15 -10
  229. package/src/components/scroll-area/QScrollArea.js +342 -126
  230. package/src/components/scroll-area/QScrollArea.json +164 -20
  231. package/src/components/scroll-area/QScrollArea.sass +5 -0
  232. package/src/components/scroll-area/QScrollArea.styl +5 -0
  233. package/src/components/scroll-observer/QScrollObserver.js +9 -2
  234. package/src/components/select/QSelect.js +8 -2
  235. package/src/components/select/QSelect.json +1 -1
  236. package/src/components/separator/QSeparator.js +0 -1
  237. package/src/components/separator/QSeparator.json +1 -1
  238. package/src/components/slider/QSlider.js +97 -140
  239. package/src/components/slider/QSlider.json +1 -122
  240. package/src/components/slider/QSlider.sass +205 -139
  241. package/src/components/slider/QSlider.styl +205 -139
  242. package/src/components/slider/slider-utils.js +468 -123
  243. package/src/components/slider/slider-utils.json +546 -0
  244. package/src/components/stepper/QStepper.js +1 -1
  245. package/src/components/stepper/QStepper.sass +25 -26
  246. package/src/components/stepper/QStepper.styl +25 -26
  247. package/src/components/table/QTable.sass +3 -0
  248. package/src/components/table/QTable.styl +3 -0
  249. package/src/components/tabs/QRouteTab.js +13 -13
  250. package/src/components/tabs/QRouteTab.json +0 -7
  251. package/src/components/tabs/QTab.js +71 -20
  252. package/src/components/tabs/QTabs.js +237 -52
  253. package/src/components/tabs/QTabs.json +8 -0
  254. package/src/components/tabs/QTabs.sass +6 -6
  255. package/src/components/tabs/QTabs.styl +6 -6
  256. package/src/components/time/QTime.js +6 -2
  257. package/src/components/timeline/QTimeline.sass +1 -2
  258. package/src/components/timeline/QTimeline.styl +1 -2
  259. package/src/components/timeline/QTimelineEntry.json +1 -1
  260. package/src/components/tree/QTree.js +10 -6
  261. package/src/components/tree/QTree.json +5 -0
  262. package/src/components/tree/QTree.sass +58 -4
  263. package/src/components/tree/QTree.styl +58 -4
  264. package/src/components/uploader/QUploaderBase.js +15 -19
  265. package/src/components/video/QVideo.js +4 -1
  266. package/src/components/video/QVideo.json +11 -0
  267. package/src/components/virtual-scroll/QVirtualScroll.sass +1 -0
  268. package/src/components/virtual-scroll/QVirtualScroll.styl +1 -0
  269. package/src/css/core/helpers.sass +3 -0
  270. package/src/css/core/helpers.styl +3 -0
  271. package/src/css/core/positioning.sass +5 -0
  272. package/src/css/core/positioning.styl +5 -0
  273. package/src/css/normalize.sass +0 -7
  274. package/src/css/variables.sass +4 -6
  275. package/src/css/variables.styl +4 -6
  276. package/src/directives/Scroll.js +2 -2
  277. package/src/directives/ScrollFire.js +1 -0
  278. package/src/ie-compat/ie.js +13 -13
  279. package/src/install.js +1 -1
  280. package/src/lang.js +7 -4
  281. package/src/mixins/anchor.js +3 -13
  282. package/src/mixins/btn.js +33 -38
  283. package/src/mixins/btn.json +26 -11
  284. package/src/mixins/file.js +27 -5
  285. package/src/mixins/fullscreen.js +16 -4
  286. package/src/mixins/portal.js +10 -10
  287. package/src/mixins/router-link.js +88 -14
  288. package/src/mixins/router-link.json +26 -10
  289. package/src/mixins/validate.js +33 -15
  290. package/src/mixins/virtual-scroll.js +40 -42
  291. package/src/plugins/AppFullscreen.js +41 -16
  292. package/src/plugins/BottomSheet.json +1 -1
  293. package/src/plugins/Cookies.js +1 -1
  294. package/src/plugins/Loading.js +8 -0
  295. package/src/plugins/LoadingBar.js +9 -0
  296. package/src/plugins/LoadingBar.json +1 -1
  297. package/src/plugins/Notify.js +351 -333
  298. package/src/plugins/Notify.json +20 -20
  299. package/src/plugins/Notify.sass +9 -3
  300. package/src/plugins/Notify.styl +9 -3
  301. package/src/utils/clone.js +53 -4
  302. package/src/utils/date.js +134 -69
  303. package/src/utils/dom.js +28 -9
  304. package/src/utils/extend.js +2 -2
  305. package/src/utils/focus-manager.js +8 -10
  306. package/src/utils/global-dialog.js +18 -1
  307. package/src/utils/is.js +2 -2
  308. package/src/utils/morph.js +2 -12
  309. package/src/utils/scroll.js +71 -35
@@ -1,5 +1,5 @@
1
1
  {
2
- "mixins": [ "mixins/form" ],
2
+ "mixins": [ "components/slider/slider-utils" ],
3
3
 
4
4
  "meta": {
5
5
  "docsUrl": "https://v1.quasar.dev/vue-components/range"
@@ -25,44 +25,6 @@
25
25
  "category": "model"
26
26
  },
27
27
 
28
- "min": {
29
- "type": "Number",
30
- "desc": "Minimum value of the model",
31
- "default": 0,
32
- "examples": [ ":min=\"0\"" ],
33
- "category": "model"
34
- },
35
-
36
- "max": {
37
- "type": "Number",
38
- "desc": "Maximum value of the model",
39
- "default": 100,
40
- "examples": [ ":max=\"100\"" ],
41
- "category": "model"
42
- },
43
-
44
- "step": {
45
- "type": "Number",
46
- "desc": "Specify step amount between valid values (> 0.0); When step equals to 0 it defines infinite granularity",
47
- "default": 1,
48
- "examples": [ ":step=\"1\"" ],
49
- "category": "model"
50
- },
51
-
52
- "reverse": {
53
- "type": "Boolean",
54
- "desc": "Work in reverse (changes direction)",
55
- "category": "behavior",
56
- "addedIn": "v1.5.0"
57
- },
58
-
59
- "vertical": {
60
- "type": "Boolean",
61
- "desc": "Display in vertical direction",
62
- "category": "behavior",
63
- "addedIn": "v1.10.0"
64
- },
65
-
66
28
  "drag-range": {
67
29
  "type": "Boolean",
68
30
  "desc": "User can drag range instead of just the two thumbs",
@@ -75,29 +37,6 @@
75
37
  "category": "content"
76
38
  },
77
39
 
78
- "color": {
79
- "extends": "color"
80
- },
81
-
82
- "label": {
83
- "type": "Boolean",
84
- "desc": "Popup labels (for left and right thumbs) when user clicks/taps on the slider thumb and moves it",
85
- "category": "labels"
86
- },
87
-
88
- "label-color": {
89
- "extends": "color",
90
- "desc": "Color name for labels background from the Quasar Color Palette; Applies to both labels, unless specific label color props are used",
91
- "category": "labels"
92
- },
93
-
94
- "label-text-color": {
95
- "extends": "color",
96
- "desc": "Color name for labels text from the Quasar Color Palette; Applies to both labels, unless specific label text color props are used",
97
- "category": "labels",
98
- "addedIn": "v1.1.0"
99
- },
100
-
101
40
  "left-label-color": {
102
41
  "extends": "color",
103
42
  "desc": "Color name for left label background from the Quasar Color Palette",
@@ -142,74 +81,24 @@
142
81
  "category": "labels"
143
82
  },
144
83
 
145
- "label-always": {
146
- "type": "Boolean",
147
- "desc": "Always display the labels",
148
- "category": "labels"
149
- },
150
-
151
- "markers": {
152
- "type": "Boolean",
153
- "desc": "Display markers on the track, one for each possible value for the model",
154
- "category": "content"
155
- },
156
-
157
- "snap": {
158
- "type": "Boolean",
159
- "desc": "Snap thumbs on valid values, rather than sliding freely; Suggestion: use with 'step' prop",
160
- "category": "content"
161
- },
162
-
163
- "thumb-path": {
164
- "type": "String",
165
- "desc": "Set custom thumbs svg path",
166
- "default": "M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0",
167
- "examples": [ "M5 5 h10 v10 h-10 v-10" ],
168
- "category": "style",
169
- "addedIn": "v1.5.10"
170
- },
171
-
172
- "dark": {
173
- "extends": "dark"
174
- },
175
-
176
- "dense": {
177
- "extends": "dense"
178
- },
179
-
180
- "disable": {
181
- "extends": "disable"
182
- },
183
-
184
- "readonly": {
185
- "extends": "readonly"
84
+ "left-thumb-color": {
85
+ "extends": "color",
86
+ "desc": "Color name (from the Quasar Color Palette) for left thumb",
87
+ "category": "labels",
88
+ "addedIn": "v1.17"
186
89
  },
187
90
 
188
- "tabindex": {
189
- "extends": "tabindex"
91
+ "right-thumb-color": {
92
+ "extends": "color",
93
+ "desc": "Color name (from the Quasar Color Palette) for right thumb",
94
+ "category": "labels",
95
+ "addedIn": "v1.17"
190
96
  }
191
97
  },
192
98
 
193
99
  "events": {
194
100
  "input": {
195
101
  "extends": "input"
196
- },
197
-
198
- "change": {
199
- "extends": "input",
200
- "desc": "Emitted on lazy model value change (after user slides then releases thumb)"
201
- },
202
-
203
- "pan": {
204
- "desc": "Triggered when user starts panning on the component",
205
- "params": {
206
- "phase": {
207
- "type": "String",
208
- "desc": "Phase of panning",
209
- "values": [ "start", "end" ]
210
- }
211
- },
212
- "addedIn": "v1.14.0"
213
102
  }
214
103
  }
215
104
  }
@@ -9,7 +9,7 @@ import FormMixin from '../../mixins/form.js'
9
9
  import ListenersMixin from '../../mixins/listeners.js'
10
10
 
11
11
  import cache from '../../utils/cache.js'
12
- import { slot } from '../../utils/slot.js'
12
+ import { mergeSlot } from '../../utils/slot.js'
13
13
 
14
14
  export default Vue.extend({
15
15
  name: 'QRating',
@@ -85,6 +85,51 @@ export default Vue.extend({
85
85
  }
86
86
  },
87
87
 
88
+ stars () {
89
+ const
90
+ acc = [],
91
+ icons = this.iconData,
92
+ ceil = Math.ceil(this.value)
93
+
94
+ const halfIndex = this.iconHalf === void 0 || ceil === this.value
95
+ ? -1
96
+ : ceil
97
+
98
+ for (let i = 1; i <= this.max; i++) {
99
+ const
100
+ active = (this.mouseModel === 0 && this.value >= i) || (this.mouseModel > 0 && this.mouseModel >= i),
101
+ half = halfIndex === i && this.mouseModel < i,
102
+ exSelected = this.mouseModel > 0 && (half === true ? ceil : this.value) >= i && this.mouseModel < i,
103
+ color = half === true
104
+ ? (i <= icons.halfColorLen ? this.colorHalf[i - 1] : icons.halfColor)
105
+ : (
106
+ icons.selColor !== void 0 && active === true
107
+ ? (i <= icons.selColorLen ? this.colorSelected[i - 1] : icons.selColor)
108
+ : (i <= icons.colorLen ? this.color[i - 1] : icons.color)
109
+ )
110
+
111
+ acc.push({
112
+ name: (
113
+ half === true
114
+ ? (i <= icons.halfIconLen ? this.iconHalf[i - 1] : icons.halfIcon)
115
+ : (
116
+ icons.selIcon !== void 0 && (active === true || exSelected === true)
117
+ ? (i <= icons.selIconLen ? this.iconSelected[i - 1] : icons.selIcon)
118
+ : (i <= icons.iconLen ? this.icon[i - 1] : icons.icon)
119
+ )
120
+ ) || this.$q.iconSet.rating.icon,
121
+
122
+ classes: 'q-rating__icon' +
123
+ (active === true || half === true ? ' q-rating__icon--active' : '') +
124
+ (exSelected === true ? ' q-rating__icon--exselected' : '') +
125
+ (this.mouseModel === i ? ' q-rating__icon--hovered' : '') +
126
+ (color !== void 0 ? ` text-${color}` : '')
127
+ })
128
+ }
129
+
130
+ return acc
131
+ },
132
+
88
133
  attrs () {
89
134
  if (this.disable === true) {
90
135
  return { 'aria-disabled': 'true' }
@@ -138,46 +183,16 @@ export default Vue.extend({
138
183
  render (h) {
139
184
  const
140
185
  child = [],
141
- tabindex = this.editable === true ? 0 : null,
142
- icons = this.iconData,
143
- ceil = Math.ceil(this.value)
186
+ tabindex = this.editable === true ? 0 : null
144
187
 
145
- const halfIndex = this.iconHalf === void 0 || ceil === this.value
146
- ? -1
147
- : ceil
148
-
149
- for (let i = 1; i <= this.max; i++) {
150
- const
151
- active = (this.mouseModel === 0 && this.value >= i) || (this.mouseModel > 0 && this.mouseModel >= i),
152
- half = halfIndex === i && this.mouseModel < i,
153
- exSelected = this.mouseModel > 0 && (half === true ? ceil : this.value) >= i && this.mouseModel < i,
154
- name = half === true
155
- ? (i <= icons.halfIconLen ? this.iconHalf[i - 1] : icons.halfIcon)
156
- : (
157
- icons.selIcon !== void 0 && (active === true || exSelected === true)
158
- ? (i <= icons.selIconLen ? this.iconSelected[i - 1] : icons.selIcon)
159
- : (i <= icons.iconLen ? this.icon[i - 1] : icons.icon)
160
- ),
161
- color = half === true
162
- ? (i <= icons.halfColorLen ? this.colorHalf[i - 1] : icons.halfColor)
163
- : (
164
- icons.selColor !== void 0 && active === true
165
- ? (i <= icons.selColorLen ? this.colorSelected[i - 1] : icons.selColor)
166
- : (i <= icons.colorLen ? this.color[i - 1] : icons.color)
167
- )
188
+ this.stars.forEach(({ classes, name }, index) => {
189
+ const i = index + 1
168
190
 
169
191
  child.push(
170
- h(QIcon, {
192
+ h('div', {
171
193
  key: i,
172
194
  ref: `rt${i}`,
173
- staticClass: 'q-rating__icon',
174
- class: {
175
- 'q-rating__icon--active': active === true || half === true,
176
- 'q-rating__icon--exselected': exSelected,
177
- 'q-rating__icon--hovered': this.mouseModel === i,
178
- [`text-${color}`]: color !== void 0
179
- },
180
- props: { name: name || this.$q.iconSet.rating.icon },
195
+ class: 'q-rating__icon-container flex flex-center',
181
196
  attrs: { tabindex },
182
197
  on: cache(this, 'i#' + i, {
183
198
  click: () => { this.__set(i) },
@@ -187,9 +202,12 @@ export default Vue.extend({
187
202
  blur: () => { this.mouseModel = 0 },
188
203
  keyup: e => { this.__keyup(e, i) }
189
204
  })
190
- }, slot(this, `tip-${i}`))
205
+ }, mergeSlot(
206
+ [h(QIcon, { class: classes, props: { name } })],
207
+ this, `tip-${i}`
208
+ ))
191
209
  )
192
- }
210
+ })
193
211
 
194
212
  if (this.name !== void 0 && this.disable !== true) {
195
213
  this.__injectFormInput(child, 'push')
@@ -31,7 +31,7 @@
31
31
  "map",
32
32
  "ion-add",
33
33
  "img:https://cdn.quasar.dev/logo/svg/quasar-logo.svg",
34
- "img:statics/path/to/some_image.png"
34
+ "img:path/to/some_image.png"
35
35
  ],
36
36
  "category": "content"
37
37
  },
@@ -43,7 +43,7 @@
43
43
  "map",
44
44
  "ion-add",
45
45
  "img:https://cdn.quasar.dev/logo/svg/quasar-logo.svg",
46
- "img:statics/path/to/some_image.png"
46
+ "img:path/to/some_image.png"
47
47
  ],
48
48
  "category": "content",
49
49
  "addedIn": "v1.1.0"
@@ -56,7 +56,7 @@
56
56
  "map",
57
57
  "ion-add",
58
58
  "img:https://cdn.quasar.dev/logo/svg/quasar-logo.svg",
59
- "img:statics/path/to/some_image.png"
59
+ "img:path/to/some_image.png"
60
60
  ],
61
61
  "category": "content",
62
62
  "addedIn": "v1.7.4"
@@ -2,6 +2,13 @@
2
2
  color: $rating-grade-color
3
3
  vertical-align: middle
4
4
 
5
+ &__icon-container
6
+ height: 1em
7
+ outline: 0
8
+
9
+ & + &
10
+ margin-left: 2px
11
+
5
12
  &__icon
6
13
  color: currentColor
7
14
  text-shadow: $rating-shadow
@@ -17,13 +24,8 @@
17
24
  &--exselected
18
25
  opacity: .7
19
26
 
20
- & + &
21
- margin-left: 2px
22
-
23
27
  &--no-dimming .q-rating__icon
24
28
  opacity: 1
25
29
 
26
- &--editable .q-icon
30
+ &--editable .q-rating__icon-container
27
31
  cursor: pointer
28
- &--non-editable span, .q-icon
29
- outline: 0
@@ -2,6 +2,13 @@
2
2
  color: $rating-grade-color
3
3
  vertical-align: middle
4
4
 
5
+ &__icon-container
6
+ height: 1em
7
+ outline: 0
8
+
9
+ & + &
10
+ margin-left: 2px
11
+
5
12
  &__icon
6
13
  color: currentColor
7
14
  text-shadow: $rating-shadow
@@ -17,13 +24,8 @@
17
24
  &--exselected
18
25
  opacity: .7
19
26
 
20
- & + &
21
- margin-left: 2px
22
-
23
27
  &--no-dimming .q-rating__icon
24
28
  opacity: 1
25
29
 
26
- &--editable .q-icon
30
+ &--editable .q-rating__icon-container
27
31
  cursor: pointer
28
- &--non-editable span, .q-icon
29
- outline: 0
@@ -24,17 +24,20 @@ export default Vue.extend({
24
24
  },
25
25
 
26
26
  methods: {
27
- trigger (now) {
28
- if (now === true || this.debounce === 0 || this.debounce === '0') {
29
- this.__onResize()
27
+ trigger (immediately) {
28
+ if (immediately === true || this.debounce === 0 || this.debounce === '0') {
29
+ this.__emit()
30
30
  }
31
- else if (!this.timer) {
32
- this.timer = setTimeout(this.__onResize, this.debounce)
31
+ else if (this.timer === null) {
32
+ this.timer = setTimeout(this.__emit, this.debounce)
33
33
  }
34
34
  },
35
35
 
36
- __onResize () {
37
- this.timer = null
36
+ __emit () {
37
+ if (this.timer !== null) {
38
+ clearTimeout(this.timer)
39
+ this.timer = null
40
+ }
38
41
 
39
42
  if (!this.$el || !this.$el.parentNode) {
40
43
  return
@@ -73,7 +76,7 @@ export default Vue.extend({
73
76
  this.curDocView.addEventListener('resize', this.trigger, listenOpts.passive)
74
77
  }
75
78
 
76
- this.__onResize()
79
+ this.__emit()
77
80
  }
78
81
  },
79
82
 
@@ -108,16 +111,18 @@ export default Vue.extend({
108
111
  },
109
112
 
110
113
  mounted () {
114
+ this.timer = null
115
+
111
116
  if (this.hasObserver === true) {
112
117
  this.observer = new ResizeObserver(this.trigger)
113
118
  this.observer.observe(this.$el.parentNode)
114
- this.__onResize()
119
+ this.__emit()
115
120
  return
116
121
  }
117
122
 
118
123
  if (this.$q.platform.is.ie === true) {
119
124
  this.url = 'about:blank'
120
- this.__onResize()
125
+ this.__emit()
121
126
  }
122
127
  else {
123
128
  this.__onObjLoad()