quasar 2.7.6 → 2.8.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 (176) hide show
  1. package/dist/api/Loading.json +57 -1
  2. package/dist/api/QBtnDropdown.json +4 -0
  3. package/dist/api/QEditor.json +105 -97
  4. package/dist/api/QField.json +6 -0
  5. package/dist/api/QFile.json +6 -0
  6. package/dist/api/QInput.json +6 -0
  7. package/dist/api/QSelect.json +6 -0
  8. package/dist/api/QTable.json +36 -49
  9. package/dist/api/QUploader.json +86 -8
  10. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  11. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  12. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  13. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  14. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  15. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  16. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  17. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  18. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  19. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  20. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  21. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  22. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  23. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  24. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  25. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  26. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  27. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  28. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +2 -2
  33. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
  42. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
  43. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
  44. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  46. package/dist/icon-set/themify.umd.prod.js +1 -1
  47. package/dist/lang/ar-TN.umd.prod.js +1 -1
  48. package/dist/lang/ar.umd.prod.js +1 -1
  49. package/dist/lang/az-Latn.umd.prod.js +1 -1
  50. package/dist/lang/bg.umd.prod.js +1 -1
  51. package/dist/lang/bn.umd.prod.js +1 -1
  52. package/dist/lang/ca.umd.prod.js +1 -1
  53. package/dist/lang/cs.umd.prod.js +1 -1
  54. package/dist/lang/da.umd.prod.js +1 -1
  55. package/dist/lang/de.umd.prod.js +1 -1
  56. package/dist/lang/el.umd.prod.js +1 -1
  57. package/dist/lang/en-GB.umd.prod.js +1 -1
  58. package/dist/lang/en-US.umd.prod.js +1 -1
  59. package/dist/lang/eo.umd.prod.js +1 -1
  60. package/dist/lang/es.umd.prod.js +1 -1
  61. package/dist/lang/et.umd.prod.js +1 -1
  62. package/dist/lang/eu.umd.prod.js +1 -1
  63. package/dist/lang/fa-IR.umd.prod.js +1 -1
  64. package/dist/lang/fa.umd.prod.js +1 -1
  65. package/dist/lang/fi.umd.prod.js +1 -1
  66. package/dist/lang/fr.umd.prod.js +1 -1
  67. package/dist/lang/gn.umd.prod.js +1 -1
  68. package/dist/lang/he.umd.prod.js +1 -1
  69. package/dist/lang/hr.umd.prod.js +1 -1
  70. package/dist/lang/hu.umd.prod.js +1 -1
  71. package/dist/lang/id.umd.prod.js +1 -1
  72. package/dist/lang/is.umd.prod.js +1 -1
  73. package/dist/lang/it.umd.prod.js +1 -1
  74. package/dist/lang/ja.umd.prod.js +1 -1
  75. package/dist/lang/km.umd.prod.js +1 -1
  76. package/dist/lang/ko-KR.umd.prod.js +1 -1
  77. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  78. package/dist/lang/kz.umd.prod.js +1 -1
  79. package/dist/lang/lt.umd.prod.js +1 -1
  80. package/dist/lang/lu.umd.prod.js +1 -1
  81. package/dist/lang/lv.umd.prod.js +1 -1
  82. package/dist/lang/ml.umd.prod.js +1 -1
  83. package/dist/lang/mm.umd.prod.js +1 -1
  84. package/dist/lang/ms.umd.prod.js +1 -1
  85. package/dist/lang/my.umd.prod.js +1 -1
  86. package/dist/lang/nb-NO.umd.prod.js +1 -1
  87. package/dist/lang/nl.umd.prod.js +1 -1
  88. package/dist/lang/pl.umd.prod.js +1 -1
  89. package/dist/lang/pt-BR.umd.prod.js +1 -1
  90. package/dist/lang/pt.umd.prod.js +1 -1
  91. package/dist/lang/ro.umd.prod.js +1 -1
  92. package/dist/lang/ru.umd.prod.js +1 -1
  93. package/dist/lang/sk.umd.prod.js +1 -1
  94. package/dist/lang/sl.umd.prod.js +1 -1
  95. package/dist/lang/sm.umd.prod.js +1 -1
  96. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  97. package/dist/lang/sr.umd.prod.js +1 -1
  98. package/dist/lang/sv.umd.prod.js +1 -1
  99. package/dist/lang/ta.umd.prod.js +1 -1
  100. package/dist/lang/th.umd.prod.js +1 -1
  101. package/dist/lang/tr.umd.prod.js +1 -1
  102. package/dist/lang/ug.umd.prod.js +1 -1
  103. package/dist/lang/uk.umd.prod.js +1 -1
  104. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  105. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  106. package/dist/lang/vi.umd.prod.js +1 -1
  107. package/dist/lang/zh-CN.umd.prod.js +1 -1
  108. package/dist/lang/zh-TW.umd.prod.js +1 -1
  109. package/dist/quasar.cjs.prod.js +2 -2
  110. package/dist/quasar.esm.js +39646 -0
  111. package/dist/quasar.sass +1 -1
  112. package/dist/quasar.umd.js +355 -296
  113. package/dist/quasar.umd.prod.js +2 -2
  114. package/dist/transforms/import-map.json +1 -0
  115. package/dist/types/index.d.ts +223 -117
  116. package/dist/web-types/web-types.json +6 -1
  117. package/package.json +1 -1
  118. package/src/components/banner/QBanner.js +2 -2
  119. package/src/components/bar/QBar.js +2 -2
  120. package/src/components/btn-dropdown/QBtnDropdown.js +8 -2
  121. package/src/components/btn-dropdown/QBtnDropdown.json +5 -0
  122. package/src/components/card/QCard.js +2 -2
  123. package/src/components/carousel/QCarousel.js +1 -1
  124. package/src/components/date/QDate.js +6 -6
  125. package/src/components/dialog-plugin/DialogPlugin.js +1 -1
  126. package/src/components/editor/QEditor.js +5 -5
  127. package/src/components/editor/QEditor.json +76 -67
  128. package/src/components/infinite-scroll/QInfiniteScroll.js +7 -7
  129. package/src/components/page-sticky/use-page-sticky.js +1 -2
  130. package/src/components/popup-edit/QPopupEdit.js +10 -10
  131. package/src/components/popup-proxy/QPopupProxy.js +7 -7
  132. package/src/components/pull-to-refresh/QPullToRefresh.js +3 -3
  133. package/src/components/range/QRange.js +5 -1
  134. package/src/components/resize-observer/QResizeObserver.js +6 -6
  135. package/src/components/scroll-area/QScrollArea.js +25 -25
  136. package/src/components/scroll-observer/QScrollObserver.js +3 -3
  137. package/src/components/select/QSelect.js +2 -1
  138. package/src/components/slider/QSlider.js +5 -1
  139. package/src/components/slider/use-slider.js +1 -1
  140. package/src/components/table/QTable.json +28 -50
  141. package/src/components/table/table-column-selection.js +1 -1
  142. package/src/components/table/table-pagination.js +0 -4
  143. package/src/components/table/table-sort.js +1 -1
  144. package/src/components/time/QTime.js +5 -5
  145. package/src/components/tree/QTree.js +2 -2
  146. package/src/components/uploader/QUploader.json +107 -0
  147. package/src/components/uploader/__tests__/QUploader.spec.js +33 -2
  148. package/src/components/uploader/uploader-core.js +48 -53
  149. package/src/composables/private/use-field.js +3 -3
  150. package/src/composables/private/use-file.js +1 -0
  151. package/src/composables/private/use-panel.js +7 -7
  152. package/src/composables/private/use-portal.js +7 -7
  153. package/src/composables/private/use-validate.json +7 -0
  154. package/src/directives/ClosePopup.js +4 -4
  155. package/src/directives/Intersection.js +1 -1
  156. package/src/index.dev.js +16 -0
  157. package/src/{index.all.js → index.ssr.js} +0 -0
  158. package/src/install-quasar.js +1 -1
  159. package/src/plugins/Loading.js +122 -73
  160. package/src/plugins/Loading.json +48 -1
  161. package/src/plugins/LoadingBar.js +1 -1
  162. package/src/plugins/Notify.js +1 -1
  163. package/src/utils/create-uploader-component.js +1 -1
  164. package/src/utils/date.js +1 -1
  165. package/src/utils/dom.js +2 -5
  166. package/src/utils/{private/is.js → is.js} +11 -7
  167. package/src/utils/morph.js +1 -1
  168. package/src/utils/open-url.js +7 -2
  169. package/src/utils/private/click-outside.js +3 -3
  170. package/src/utils/private/date-persian.js +12 -12
  171. package/src/utils/private/global-dialog.js +3 -3
  172. package/src/utils/private/portal.js +24 -24
  173. package/src/utils/private/vm.js +10 -9
  174. package/src/utils/private/web-storage.js +1 -1
  175. package/src/utils.js +2 -0
  176. package/dist/quasar.esm.prod.js +0 -6
@@ -21,6 +21,16 @@
21
21
  "Processing your request"
22
22
  ]
23
23
  },
24
+ "group": {
25
+ "type": "String",
26
+ "desc": "Default Loading group name",
27
+ "default": "__default_quasar_group__",
28
+ "examples": [
29
+ "default-group-name"
30
+ ],
31
+ "addedIn": "v2.8",
32
+ "required": false
33
+ },
24
34
  "html": {
25
35
  "type": "Boolean",
26
36
  "desc": "Force render the message as HTML; This can lead to XSS attacks so make sure that you sanitize the content",
@@ -93,10 +103,13 @@
93
103
  },
94
104
  "methods": {
95
105
  "show": {
106
+ "tsInjectionPoint": true,
96
107
  "desc": "Activate and show",
97
108
  "params": {
98
109
  "opts": {
99
110
  "type": "Object",
111
+ "tsType": "QLoadingShowOptions",
112
+ "autoDefineTsType": true,
100
113
  "desc": "All props are optional",
101
114
  "definition": {
102
115
  "delay": {
@@ -113,6 +126,14 @@
113
126
  "Processing your request"
114
127
  ]
115
128
  },
129
+ "group": {
130
+ "type": "String",
131
+ "desc": "Loading group name",
132
+ "examples": [
133
+ "some-api-call"
134
+ ],
135
+ "addedIn": "v2.8"
136
+ },
116
137
  "html": {
117
138
  "type": "Boolean",
118
139
  "desc": "Render the message as HTML; This can lead to XSS attacks so make sure that you sanitize the message first",
@@ -177,10 +198,35 @@
177
198
  }
178
199
  }
179
200
  }
201
+ },
202
+ "returns": {
203
+ "type": "Function",
204
+ "desc": "Calling this function with no parameters hides the group; When called with one Object parameter then it updates the Loading group (specified properties are shallow merged with the group ones; note that group cannot be changed while updating and it is ignored)",
205
+ "params": {
206
+ "props": {
207
+ "type": "Object",
208
+ "tsType": "QLoadingUpdateOptions",
209
+ "required": false,
210
+ "desc": "Loading properties that will be shallow merged to the group ones; (See 'opts' param of 'show()' for object properties, except 'group')"
211
+ }
212
+ },
213
+ "returns": null,
214
+ "addedIn": "v2.8"
180
215
  }
181
216
  },
182
217
  "hide": {
183
- "desc": "Hide it"
218
+ "desc": "Hide it",
219
+ "params": {
220
+ "group": {
221
+ "type": "String",
222
+ "desc": "Optional Loading group name to hide instead of hiding all groups",
223
+ "required": false,
224
+ "examples": [
225
+ "some-api-call"
226
+ ],
227
+ "addedIn": "v2.8"
228
+ }
229
+ }
184
230
  },
185
231
  "setDefaults": {
186
232
  "desc": "Merge options into the default ones",
@@ -204,6 +250,16 @@
204
250
  "Processing your request"
205
251
  ]
206
252
  },
253
+ "group": {
254
+ "type": "String",
255
+ "desc": "Default Loading group name",
256
+ "default": "__default_quasar_group__",
257
+ "examples": [
258
+ "default-group-name"
259
+ ],
260
+ "addedIn": "v2.8",
261
+ "required": false
262
+ },
207
263
  "spinnerSize": {
208
264
  "type": "Number",
209
265
  "desc": "Spinner size (in pixels)",
@@ -416,6 +416,10 @@
416
416
  },
417
417
  "label": {
418
418
  "desc": "Customize main button's content through this slot, unless you're using the 'icon' and 'label' props"
419
+ },
420
+ "loading": {
421
+ "desc": "Override the default QSpinner when in 'loading' state",
422
+ "addedIn": "v2.8"
419
423
  }
420
424
  },
421
425
  "events": {
@@ -95,103 +95,111 @@
95
95
  ":definitions=\"{ save: { tip: 'Save your work', icon: 'save', label: 'Save', handler: saveWork }, upload: { tip: 'Upload to cloud', icon: 'cloud_upload', label: 'Upload', handler: uploadIt } }\""
96
96
  ],
97
97
  "definition": {
98
- "label": {
99
- "type": "String",
100
- "desc": "Label of the button",
101
- "examples": [
102
- "Addresses"
103
- ]
104
- },
105
- "tip": {
106
- "type": "String",
107
- "desc": "Text to be displayed as a tooltip on hover",
108
- "examples": [
109
- "Add a contact from the Address Book"
110
- ]
111
- },
112
- "htmlTip": {
113
- "type": "String",
114
- "desc": "HTML formatted text to be displayed within a tooltip on hover",
115
- "examples": [
116
- "Add a <span class=\"red\">user</span> from the address book"
117
- ]
118
- },
119
- "icon": {
120
- "type": "String",
121
- "desc": "Icon of the button",
122
- "examples": [
123
- "fas fa-address-book"
124
- ]
125
- },
126
- "key": {
127
- "type": "Number",
128
- "desc": "Keycode of a key to be used together with the <ctrl> key for use as a shortcut to trigger this element",
129
- "examples": [
130
- "12",
131
- "36"
132
- ]
133
- },
134
- "handler": {
135
- "type": "Function",
136
- "desc": "Either this or \"cmd\" is required. Function for when button gets clicked/tapped.",
137
- "params": null,
138
- "returns": null,
139
- "examples": [
140
- "() => this.uploadFile()"
141
- ]
142
- },
143
- "cmd": {
144
- "type": "String",
145
- "desc": "Either this or \"handler\" is required. This must be a valid execCommand method according to the designMode API.",
146
- "examples": [
147
- "insertHTML",
148
- "justifyFull"
149
- ]
150
- },
151
- "param": {
152
- "type": "String",
153
- "desc": "Only set a param if using a \"cmd\". This is commonly text or HTML to inject, but is highly dependent upon the specific cmd being called.",
154
- "examples": [
155
- "<img src=\"://uploads/001.jpg\" alt=\"nice pic\" />"
156
- ]
157
- },
158
- "disable": {
159
- "type": [
160
- "Boolean",
161
- "Function"
162
- ],
163
- "desc": "Is button disabled?",
164
- "returns": {
165
- "type": "Boolean",
166
- "desc": "If true, the button will be disabled"
167
- },
168
- "examples": [
169
- "!user.active",
170
- "() => !checkIfUserIsActive()"
171
- ]
172
- },
173
- "type": {
174
- "type": "String",
175
- "desc": "Pass the value \"no-state\" if the button should not have an \"active\" state",
176
- "values": [
177
- null,
178
- "no-state"
179
- ],
180
- "examples": [
181
- "no-state"
182
- ]
183
- },
184
- "fixedLabel": {
185
- "type": "Boolean",
186
- "desc": "Lock the button label, so it doesn't change based on the child option selected."
187
- },
188
- "fixedIcon": {
189
- "type": "Boolean",
190
- "desc": "Lock the button icon, so it doesn't change based on the child option selected."
191
- },
192
- "highlight": {
193
- "type": "Boolean",
194
- "desc": "Highlight the toolbar button, when a child option has been selected."
98
+ "...commandName": {
99
+ "type": "Object",
100
+ "tsType": "QEditorCommand",
101
+ "autoDefineTsType": true,
102
+ "desc": "Command definition",
103
+ "definition": {
104
+ "label": {
105
+ "type": "String",
106
+ "desc": "Label of the button",
107
+ "examples": [
108
+ "Addresses"
109
+ ]
110
+ },
111
+ "tip": {
112
+ "type": "String",
113
+ "desc": "Text to be displayed as a tooltip on hover",
114
+ "examples": [
115
+ "Add a contact from the Address Book"
116
+ ]
117
+ },
118
+ "htmlTip": {
119
+ "type": "String",
120
+ "desc": "HTML formatted text to be displayed within a tooltip on hover",
121
+ "examples": [
122
+ "Add a <span class=\"red\">user</span> from the address book"
123
+ ]
124
+ },
125
+ "icon": {
126
+ "type": "String",
127
+ "desc": "Icon of the button",
128
+ "examples": [
129
+ "fas fa-address-book"
130
+ ]
131
+ },
132
+ "key": {
133
+ "type": "Number",
134
+ "desc": "Keycode of a key to be used together with the <ctrl> key for use as a shortcut to trigger this element",
135
+ "examples": [
136
+ "12",
137
+ "36"
138
+ ]
139
+ },
140
+ "handler": {
141
+ "type": "Function",
142
+ "desc": "Either this or \"cmd\" is required. Function for when button gets clicked/tapped.",
143
+ "params": null,
144
+ "returns": null,
145
+ "examples": [
146
+ "() => this.uploadFile()"
147
+ ]
148
+ },
149
+ "cmd": {
150
+ "type": "String",
151
+ "desc": "Either this or \"handler\" is required. This must be a valid execCommand method according to the designMode API.",
152
+ "examples": [
153
+ "insertHTML",
154
+ "justifyFull"
155
+ ]
156
+ },
157
+ "param": {
158
+ "type": "String",
159
+ "desc": "Only set a param if using a \"cmd\". This is commonly text or HTML to inject, but is highly dependent upon the specific cmd being called.",
160
+ "examples": [
161
+ "<img src=\"://uploads/001.jpg\" alt=\"nice pic\" />"
162
+ ]
163
+ },
164
+ "disable": {
165
+ "type": [
166
+ "Boolean",
167
+ "Function"
168
+ ],
169
+ "desc": "Is button disabled?",
170
+ "returns": {
171
+ "type": "Boolean",
172
+ "desc": "If true, the button will be disabled"
173
+ },
174
+ "examples": [
175
+ "!user.active",
176
+ "() => !checkIfUserIsActive()"
177
+ ]
178
+ },
179
+ "type": {
180
+ "type": "String",
181
+ "desc": "Pass the value \"no-state\" if the button should not have an \"active\" state",
182
+ "values": [
183
+ null,
184
+ "no-state"
185
+ ],
186
+ "examples": [
187
+ "no-state"
188
+ ]
189
+ },
190
+ "fixedLabel": {
191
+ "type": "Boolean",
192
+ "desc": "Lock the button label, so it doesn't change based on the child option selected."
193
+ },
194
+ "fixedIcon": {
195
+ "type": "Boolean",
196
+ "desc": "Lock the button icon, so it doesn't change based on the child option selected."
197
+ },
198
+ "highlight": {
199
+ "type": "Boolean",
200
+ "desc": "Highlight the toolbar button, when a child option has been selected."
201
+ }
202
+ }
195
203
  }
196
204
  },
197
205
  "category": "toolbar"
@@ -415,5 +415,11 @@
415
415
  "blur": {
416
416
  "desc": "Blur field (lose focus)"
417
417
  }
418
+ },
419
+ "computedProps": {
420
+ "hasError": {
421
+ "type": "Boolean",
422
+ "desc": "Whether the component is in error state"
423
+ }
418
424
  }
419
425
  }
@@ -631,5 +631,11 @@
631
631
  "desc": "The underlying native input DOM Element"
632
632
  }
633
633
  }
634
+ },
635
+ "computedProps": {
636
+ "hasError": {
637
+ "type": "Boolean",
638
+ "desc": "Whether the component is in error state"
639
+ }
634
640
  }
635
641
  }
@@ -498,5 +498,11 @@
498
498
  "desc": "The underlying native input/textarea DOM Element"
499
499
  }
500
500
  }
501
+ },
502
+ "computedProps": {
503
+ "hasError": {
504
+ "type": "Boolean",
505
+ "desc": "Whether the component is in error state"
506
+ }
501
507
  }
502
508
  }
@@ -1444,5 +1444,11 @@
1444
1444
  "desc": "Option is disabled or not"
1445
1445
  }
1446
1446
  }
1447
+ },
1448
+ "computedProps": {
1449
+ "hasError": {
1450
+ "type": "Boolean",
1451
+ "desc": "Whether the component is in error state"
1452
+ }
1447
1453
  }
1448
1454
  }
@@ -2310,55 +2310,11 @@
2310
2310
  }
2311
2311
  },
2312
2312
  "filter": {
2313
- "type": "Function",
2314
- "required": true,
2315
- "desc": "Filter method (the 'filter-method' prop)",
2316
- "params": {
2317
- "rows": {
2318
- "type": "Array",
2319
- "required": true,
2320
- "desc": "Array of rows"
2321
- },
2322
- "terms": {
2323
- "type": [
2324
- "String",
2325
- "Object"
2326
- ],
2327
- "required": true,
2328
- "desc": "Terms to filter with (is essentially the 'filter' prop value)"
2329
- },
2330
- "cols": {
2331
- "type": "Array",
2332
- "desc": "Optional column definitions"
2333
- },
2334
- "getCellValue": {
2335
- "type": "Function",
2336
- "desc": "Optional function to get a cell value",
2337
- "params": {
2338
- "col": {
2339
- "type": "Object",
2340
- "required": true,
2341
- "desc": "Column name from column definitions"
2342
- },
2343
- "row": {
2344
- "type": "Object",
2345
- "required": true,
2346
- "desc": "The row object"
2347
- }
2348
- },
2349
- "returns": {
2350
- "type": "Any",
2351
- "desc": "Parsed/Processed cell value",
2352
- "examples": [
2353
- "Ice Cream Sandwich"
2354
- ]
2355
- }
2356
- }
2357
- },
2358
- "returns": {
2359
- "type": "Array",
2360
- "desc": "Filtered rows"
2361
- }
2313
+ "type": [
2314
+ "String",
2315
+ "Object"
2316
+ ],
2317
+ "desc": "String/Object to filter table with (the 'filter' prop)"
2362
2318
  },
2363
2319
  "getCellValue": {
2364
2320
  "type": "Function",
@@ -2584,6 +2540,14 @@
2584
2540
  "examples": [
2585
2541
  10
2586
2542
  ]
2543
+ },
2544
+ "rowsNumber": {
2545
+ "type": "Number",
2546
+ "desc": "For server-side fetching only. How many total database rows are there to be added to the table.",
2547
+ "examples": [
2548
+ 100,
2549
+ 200
2550
+ ]
2587
2551
  }
2588
2552
  }
2589
2553
  },
@@ -2792,5 +2756,28 @@
2792
2756
  }
2793
2757
  }
2794
2758
  }
2759
+ },
2760
+ "computedProps": {
2761
+ "filteredSortedRows": {
2762
+ "desc": "The filtered and sorted rows (same as the rows prop if using server-side fetching)",
2763
+ "type": "Array",
2764
+ "examples": [
2765
+ "[ { name: 'Ice Cream Sandwich', calories: 237, fat: 9.0, carbs: 37, protein: 4.3, sodium: 129, calcium: 8, iron: 1 }, ... ]"
2766
+ ]
2767
+ },
2768
+ "computedRows": {
2769
+ "desc": "Paginated, filtered, and sorted rows (same as the rows prop if using server-side fetching)",
2770
+ "type": "Array",
2771
+ "examples": [
2772
+ "[ { name: 'Ice Cream Sandwich', calories: 237, fat: 9.0, carbs: 37, protein: 4.3, sodium: 129, calcium: 8, iron: 1 }, ... ]"
2773
+ ]
2774
+ },
2775
+ "computedRowsNumber": {
2776
+ "desc": "The number of computed rows",
2777
+ "type": "Number",
2778
+ "examples": [
2779
+ 10
2780
+ ]
2781
+ }
2795
2782
  }
2796
2783
  }
@@ -535,23 +535,21 @@
535
535
  },
536
536
  "methods": {
537
537
  "pickFiles": {
538
- "desc": "Trigger file pick; Must be called as a direct consequence of user interaction (eg. in a click handler), due to browsers security policy",
538
+ "desc": "Trigger the file picker dialog; The event must come from a user interaction event handler",
539
539
  "params": {
540
540
  "evt": {
541
541
  "type": "Event",
542
- "desc": "JS event object"
542
+ "desc": "JS event object of the original user interaction handler",
543
+ "required": true
543
544
  }
544
545
  }
545
546
  },
546
547
  "addFiles": {
547
- "desc": "Add files programmatically",
548
+ "desc": "Manually add files to the queue",
548
549
  "params": {
549
550
  "files": {
550
- "type": [
551
- "FileList",
552
- "Array"
553
- ],
554
- "desc": "Array of files (instances of File)",
551
+ "type": "Array",
552
+ "desc": "Must be an array of instances of JS File type",
555
553
  "required": true
556
554
  }
557
555
  }
@@ -580,6 +578,86 @@
580
578
  "required": true
581
579
  }
582
580
  }
581
+ },
582
+ "updateFileStatus": {
583
+ "desc": "Update the status of a file",
584
+ "params": {
585
+ "file": {
586
+ "type": "Object",
587
+ "desc": "File to update (instance of File)",
588
+ "required": true
589
+ },
590
+ "status": {
591
+ "type": "String",
592
+ "desc": "Status of file",
593
+ "values": [
594
+ "idle",
595
+ "failed",
596
+ "uploading",
597
+ "uploaded"
598
+ ],
599
+ "required": true
600
+ },
601
+ "uploadedSize": {
602
+ "type": "Number",
603
+ "desc": "The number of uploaded bytes of the file; Is required explicitly only when status is NOT 'uploaded'",
604
+ "required": true
605
+ }
606
+ }
607
+ },
608
+ "isAlive": {
609
+ "desc": "Is the component alive (activated but not unmounted); Useful to determine if you still need to compute anything going further",
610
+ "returns": {
611
+ "type": "Boolean",
612
+ "desc": "If true, the current component is still activated and mounted"
613
+ }
614
+ }
615
+ },
616
+ "computedProps": {
617
+ "files": {
618
+ "type": "Array",
619
+ "desc": "List of all files"
620
+ },
621
+ "queuedFiles": {
622
+ "type": "Array",
623
+ "desc": "List of files that are waiting to be uploaded"
624
+ },
625
+ "uploadedFiles": {
626
+ "type": "Array",
627
+ "desc": "List of files that have been uploaded"
628
+ },
629
+ "uploadedSize": {
630
+ "type": "Number",
631
+ "desc": "Size of all uploaded files in bytes",
632
+ "examples": [
633
+ 1024
634
+ ]
635
+ },
636
+ "uploadSizeLabel": {
637
+ "type": "String",
638
+ "desc": "Label for the size total of all files",
639
+ "examples": [
640
+ "1.0MB"
641
+ ]
642
+ },
643
+ "uploadProgressLabel": {
644
+ "type": "String",
645
+ "desc": "Label for the upload progress (in %)",
646
+ "examples": [
647
+ "52.76%"
648
+ ]
649
+ },
650
+ "canAddFiles": {
651
+ "type": "Boolean",
652
+ "desc": "Whether new files can be added to the list"
653
+ },
654
+ "canUpload": {
655
+ "type": "Boolean",
656
+ "desc": "Whether the files can be uploaded"
657
+ },
658
+ "isBusy": {
659
+ "type": "Boolean",
660
+ "desc": "The component state is set as busy; User should not be able to interact with the component"
583
661
  }
584
662
  }
585
663
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.6
2
+ * Quasar Framework v2.8.0
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.6
2
+ * Quasar Framework v2.8.0
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.6
2
+ * Quasar Framework v2.8.0
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.6
2
+ * Quasar Framework v2.8.0
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.6
2
+ * Quasar Framework v2.8.0
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.6
2
+ * Quasar Framework v2.8.0
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.6
2
+ * Quasar Framework v2.8.0
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.6
2
+ * Quasar Framework v2.8.0
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */