quasar 2.3.0 → 2.3.1

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 (137) hide show
  1. package/dist/api/BottomSheet.json +17 -2
  2. package/dist/api/Dialog.json +17 -2
  3. package/dist/api/LocalStorage.json +8 -0
  4. package/dist/api/QCircularProgress.json +1 -1
  5. package/dist/api/QDate.json +46 -0
  6. package/dist/api/QEditor.json +7 -2
  7. package/dist/api/QFooter.json +1 -1
  8. package/dist/api/QHeader.json +1 -1
  9. package/dist/api/QIntersection.json +14 -0
  10. package/dist/api/QLinearProgress.json +1 -1
  11. package/dist/api/QRouteTab.json +1 -24
  12. package/dist/api/QScrollArea.json +3 -0
  13. package/dist/api/QSelect.json +62 -0
  14. package/dist/api/QTable.json +62 -5
  15. package/dist/api/QUploader.json +81 -1
  16. package/dist/api/SessionStorage.json +8 -0
  17. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  18. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  19. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  20. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  21. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  22. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  23. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  24. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  25. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  26. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  27. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  28. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  29. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  30. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-ionicons-v5.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-mdi-v4.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  45. package/dist/icon-set/themify.umd.prod.js +1 -1
  46. package/dist/lang/ar.umd.prod.js +1 -1
  47. package/dist/lang/az-Latn.umd.prod.js +1 -1
  48. package/dist/lang/bg.umd.prod.js +1 -1
  49. package/dist/lang/bn.umd.prod.js +1 -1
  50. package/dist/lang/ca.umd.prod.js +1 -1
  51. package/dist/lang/cs.umd.prod.js +1 -1
  52. package/dist/lang/da.umd.prod.js +1 -1
  53. package/dist/lang/de.umd.prod.js +1 -1
  54. package/dist/lang/el.umd.prod.js +1 -1
  55. package/dist/lang/en-GB.umd.prod.js +1 -1
  56. package/dist/lang/en-US.umd.prod.js +1 -1
  57. package/dist/lang/eo.umd.prod.js +1 -1
  58. package/dist/lang/es.umd.prod.js +1 -1
  59. package/dist/lang/et.umd.prod.js +1 -1
  60. package/dist/lang/fa-IR.umd.prod.js +1 -1
  61. package/dist/lang/fa.umd.prod.js +1 -1
  62. package/dist/lang/fi.umd.prod.js +1 -1
  63. package/dist/lang/fr.umd.prod.js +1 -1
  64. package/dist/lang/gn.umd.prod.js +1 -1
  65. package/dist/lang/he.umd.prod.js +1 -1
  66. package/dist/lang/hr.umd.prod.js +1 -1
  67. package/dist/lang/hu.umd.prod.js +1 -1
  68. package/dist/lang/id.umd.prod.js +1 -1
  69. package/dist/lang/is.umd.prod.js +1 -1
  70. package/dist/lang/it.umd.prod.js +1 -1
  71. package/dist/lang/ja.umd.prod.js +1 -1
  72. package/dist/lang/km.umd.prod.js +1 -1
  73. package/dist/lang/ko-KR.umd.prod.js +1 -1
  74. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  75. package/dist/lang/lt.umd.prod.js +1 -1
  76. package/dist/lang/lu.umd.prod.js +1 -1
  77. package/dist/lang/lv.umd.prod.js +1 -1
  78. package/dist/lang/ml.umd.prod.js +1 -1
  79. package/dist/lang/ms.umd.prod.js +1 -1
  80. package/dist/lang/nb-NO.umd.prod.js +1 -1
  81. package/dist/lang/nl.umd.prod.js +1 -1
  82. package/dist/lang/pl.umd.prod.js +1 -1
  83. package/dist/lang/pt-BR.umd.prod.js +1 -1
  84. package/dist/lang/pt.umd.prod.js +1 -1
  85. package/dist/lang/ro.umd.prod.js +1 -1
  86. package/dist/lang/ru.umd.prod.js +1 -1
  87. package/dist/lang/sk.umd.prod.js +1 -1
  88. package/dist/lang/sl.umd.prod.js +1 -1
  89. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  90. package/dist/lang/sr.umd.prod.js +1 -1
  91. package/dist/lang/sv.umd.prod.js +1 -1
  92. package/dist/lang/ta.umd.prod.js +1 -1
  93. package/dist/lang/th.umd.prod.js +1 -1
  94. package/dist/lang/tr.umd.prod.js +1 -1
  95. package/dist/lang/ug.umd.prod.js +1 -1
  96. package/dist/lang/uk.umd.prod.js +1 -1
  97. package/dist/lang/vi.umd.prod.js +1 -1
  98. package/dist/lang/zh-CN.umd.prod.js +1 -1
  99. package/dist/lang/zh-TW.umd.prod.js +1 -1
  100. package/dist/quasar.cjs.prod.js +2 -2
  101. package/dist/quasar.css +4 -0
  102. package/dist/quasar.esm.prod.js +2 -2
  103. package/dist/quasar.prod.css +1 -1
  104. package/dist/quasar.rtl.css +4 -0
  105. package/dist/quasar.rtl.prod.css +1 -1
  106. package/dist/quasar.sass +3 -1
  107. package/dist/quasar.umd.js +39 -18
  108. package/dist/quasar.umd.prod.js +2 -2
  109. package/dist/ssr-directives/Morph.js +1 -1
  110. package/dist/types/index.d.ts +360 -141
  111. package/dist/vetur/quasar-attributes.json +6 -2
  112. package/dist/vetur/quasar-tags.json +1 -0
  113. package/dist/web-types/web-types.json +14 -3
  114. package/package.json +4 -1
  115. package/src/body.js +14 -4
  116. package/src/components/circular-progress/QCircularProgress.json +1 -1
  117. package/src/components/date/QDate.json +34 -0
  118. package/src/components/editor/QEditor.json +6 -2
  119. package/src/components/footer/QFooter.json +1 -1
  120. package/src/components/header/QHeader.json +1 -1
  121. package/src/components/intersection/QIntersection.js +9 -1
  122. package/src/components/intersection/QIntersection.json +9 -0
  123. package/src/components/linear-progress/QLinearProgress.json +1 -1
  124. package/src/components/scroll-area/QScrollArea.json +4 -1
  125. package/src/components/select/QSelect.js +6 -2
  126. package/src/components/select/QSelect.json +47 -0
  127. package/src/components/slider/use-slider.js +3 -3
  128. package/src/components/table/QTable.json +51 -5
  129. package/src/components/tabs/QRouteTab.json +1 -23
  130. package/src/components/uploader/xhr-uploader-plugin.json +97 -1
  131. package/src/composables/private/use-field.js +2 -2
  132. package/src/composables/private/use-refocus-target.js +12 -3
  133. package/src/css/core/transitions.sass +3 -1
  134. package/src/install-quasar.js +1 -0
  135. package/src/utils/private/global-dialog.json +10 -2
  136. package/src/utils/private/web-storage.json +10 -0
  137. package/wrappers/index.js +4 -0
@@ -2136,7 +2136,7 @@
2136
2136
  "description": "Adds a default shadow to the footer"
2137
2137
  },
2138
2138
  "q-footer/height-hint": {
2139
- "type": "number|string ",
2139
+ "type": "number|string",
2140
2140
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QFooter"
2141
2141
  },
2142
2142
  "q-form/autofocus": {
@@ -2176,7 +2176,7 @@
2176
2176
  "description": "Adds a default shadow to the header"
2177
2177
  },
2178
2178
  "q-header/height-hint": {
2179
- "type": "number|string ",
2179
+ "type": "number|string",
2180
2180
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader"
2181
2181
  },
2182
2182
  "q-icon/size": {
@@ -2579,6 +2579,10 @@
2579
2579
  "type": "string",
2580
2580
  "description": "One of Quasar's embedded transitions"
2581
2581
  },
2582
+ "q-intersection/transition-duration": {
2583
+ "type": "string|number",
2584
+ "description": "Transition duration (in milliseconds, without unit)"
2585
+ },
2582
2586
  "q-intersection/disable": {
2583
2587
  "type": "boolean",
2584
2588
  "description": "Disable visibility observable (content will remain as it was, visible or hidden)"
@@ -845,6 +845,7 @@
845
845
  "margin",
846
846
  "threshold",
847
847
  "transition",
848
+ "transition-duration",
848
849
  "disable"
849
850
  ],
850
851
  "description": ""
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.3.0",
5
+ "version": "2.3.1",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -6715,7 +6715,7 @@
6715
6715
  "name": "height-hint",
6716
6716
  "value": {
6717
6717
  "kind": "expression",
6718
- "type": "number|String "
6718
+ "type": "number|string"
6719
6719
  },
6720
6720
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QFooter\n\nExamples:\n150",
6721
6721
  "doc-url": "https://v2.quasar.dev/layout/header-and-footer",
@@ -6907,7 +6907,7 @@
6907
6907
  "name": "height-hint",
6908
6908
  "value": {
6909
6909
  "kind": "expression",
6910
- "type": "number|String "
6910
+ "type": "number|string"
6911
6911
  },
6912
6912
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader\n\nExamples:\n150",
6913
6913
  "doc-url": "https://v2.quasar.dev/layout/header-and-footer",
@@ -8150,6 +8150,16 @@
8150
8150
  "description": "One of Quasar's embedded transitions\n\nExamples:\nfade\nslide-down",
8151
8151
  "doc-url": "https://v2.quasar.dev/vue-components/intersection"
8152
8152
  },
8153
+ {
8154
+ "name": "transition-duration",
8155
+ "value": {
8156
+ "kind": "expression",
8157
+ "type": "string|number"
8158
+ },
8159
+ "description": "Transition duration (in milliseconds, without unit)\n\nExamples:\n500\n1200",
8160
+ "doc-url": "https://v2.quasar.dev/vue-components/intersection",
8161
+ "default": "300"
8162
+ },
8153
8163
  {
8154
8164
  "name": "disable",
8155
8165
  "value": {
@@ -11537,6 +11547,7 @@
11537
11547
  {
11538
11548
  "name": "info",
11539
11549
  "type": "object",
11550
+ "description": "An object containing scroll information",
11540
11551
  "doc-url": "https://v2.quasar.dev/vue-components/scroll-area"
11541
11552
  }
11542
11553
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.3.0",
3
+ "version": "2.3.1",
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",
@@ -67,6 +67,8 @@
67
67
  "@rollup/plugin-node-resolve": "^11.2.1",
68
68
  "@rollup/plugin-replace": "^2.3.3",
69
69
  "babel-preset-es2015-rollup": "^3.0.0",
70
+ "cli-highlight": "^2.1.11",
71
+ "diff": "^5.0.0",
70
72
  "eslint": "^7.4.0",
71
73
  "eslint-config-standard": "^16.0.2",
72
74
  "eslint-friendly-formatter": "^4.0.1",
@@ -75,6 +77,7 @@
75
77
  "eslint-plugin-promise": "^4.2.1",
76
78
  "eslint-plugin-vue": "^7.0.0",
77
79
  "eslint-webpack-plugin": "^2.4.1",
80
+ "fast-glob": "^3.2.7",
78
81
  "json-beautify": "^1.1.1",
79
82
  "module-alias": "^2.2.2",
80
83
  "prettier": "^2.4.1",
package/src/body.js CHANGED
@@ -82,12 +82,18 @@ export default {
82
82
  }
83
83
 
84
84
  ssrContext._meta.bodyClasses += cls.join(' ')
85
- return
86
- }
87
85
 
88
- const { $q } = opts
86
+ const brand = $q.config.brand
87
+ if (brand !== void 0) {
88
+ const vars = Object.keys(brand)
89
+ .map(key => `--q-${ key }:${ brand[ key ] };`)
90
+ .join('')
91
+
92
+ ssrContext._meta.endingHeadTags += `<style>:root{${ vars }}</style>`
93
+ }
89
94
 
90
- $q.config.brand !== void 0 && setColors($q.config.brand)
95
+ return
96
+ }
91
97
 
92
98
  if (this.__installed === true) { return }
93
99
 
@@ -95,6 +101,10 @@ export default {
95
101
  applyClientSsrCorrections()
96
102
  }
97
103
  else {
104
+ const { $q } = opts
105
+
106
+ $q.config.brand !== void 0 && setColors($q.config.brand)
107
+
98
108
  const cls = getBodyClasses(client, $q.config)
99
109
  document.body.classList.add.apply(document.body.classList, cls)
100
110
  }
@@ -96,7 +96,7 @@
96
96
  "animation-speed": {
97
97
  "extends": "animation-speed",
98
98
  "default": 600,
99
- "addedIn": "v2.2.5"
99
+ "addedIn": "v2.3"
100
100
  }
101
101
  },
102
102
 
@@ -61,6 +61,17 @@
61
61
  "events": {
62
62
  "type": [ "Array", "Function" ],
63
63
  "desc": "A list of events to highlight on the calendar; If using a function, it receives the date as a String and must return a Boolean (matches or not); If using a function then for best performance, reference it from your scope and do not define it inline",
64
+ "params": {
65
+ "date": {
66
+ "type": "String",
67
+ "desc": "The current date being processed.",
68
+ "examples": [ "2018/11/05", "2021/10/25" ]
69
+ }
70
+ },
71
+ "returns": {
72
+ "type": "Boolean",
73
+ "desc": "If true, the current date will be highlighted"
74
+ },
64
75
  "examples": [
65
76
  ":events=\"['2018/11/05', '2018/11/06', '2018/11/09', '2018/11/23']\"",
66
77
  ":events=\"date => date[9] % 3 === 0\""
@@ -71,6 +82,18 @@
71
82
  "event-color": {
72
83
  "type": [ "String", "Function" ],
73
84
  "desc": "Color name (from the Quasar Color Palette); If using a function, it receives the date as a String and must return a String (color for the received date); If using a function then for best performance, reference it from your scope and do not define it inline",
85
+ "params": {
86
+ "date": {
87
+ "type": "String",
88
+ "desc": "The current date being processed.",
89
+ "examples": [ "2018/11/05", "2021/10/25" ]
90
+ }
91
+ },
92
+ "returns": {
93
+ "type": "String",
94
+ "desc": "Color for the current date.",
95
+ "examples": [ "teal", "orange" ]
96
+ },
74
97
  "examples": [
75
98
  "teal-10",
76
99
  ":event-color=\"(date) => date[9] % 2 === 0 ? 'teal' : 'orange'\""
@@ -81,6 +104,17 @@
81
104
  "options": {
82
105
  "type": [ "Array", "Function" ],
83
106
  "desc": "Optionally configure the days that are selectable; If using a function, it receives the date as a String and must return a Boolean (is date acceptable or not); If using a function then for best performance, reference it from your scope and do not define it inline; Incompatible with 'range' prop",
107
+ "params": {
108
+ "date": {
109
+ "type": "String",
110
+ "desc": "The current date being processed.",
111
+ "examples": [ "2018/11/05", "2021/10/25" ]
112
+ }
113
+ },
114
+ "returns": {
115
+ "type": "Boolean",
116
+ "desc": "If true, the current date will be made available for selection"
117
+ },
84
118
  "examples": [
85
119
  ":options=\"['2018/11/05', '2018/11/12', '2018/11/19', '2018/11/26' ]\"",
86
120
  ":options=\"date => date[9] % 3 === 0\"",
@@ -120,8 +120,12 @@
120
120
  },
121
121
  "disable": {
122
122
  "type": [ "Boolean", "Function" ],
123
- "desc": "Is button disabled? If specifying a function, return a Boolean value.",
124
- "examples": [ "() => this.userIsActive()" ]
123
+ "desc": "Is button disabled?",
124
+ "returns": {
125
+ "type": "Boolean",
126
+ "desc": "If true, the button will be disabled"
127
+ },
128
+ "examples": [ "!user.active", "() => !checkIfUserIsActive()" ]
125
129
  },
126
130
  "type": {
127
131
  "type": "String",
@@ -32,7 +32,7 @@
32
32
  },
33
33
 
34
34
  "height-hint": {
35
- "type": [ "Number", "String " ],
35
+ "type": [ "Number", "String" ],
36
36
  "desc": "When using SSR, you can optionally hint of the height (in pixels) of the QFooter",
37
37
  "default": 50,
38
38
  "examples": [ "150" ],
@@ -42,7 +42,7 @@
42
42
  },
43
43
 
44
44
  "height-hint": {
45
- "type": [ "Number", "String " ],
45
+ "type": [ "Number", "String" ],
46
46
  "desc": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader",
47
47
  "default": 50,
48
48
  "examples": [ "150" ],
@@ -18,6 +18,10 @@ export default createComponent({
18
18
 
19
19
  once: Boolean,
20
20
  transition: String,
21
+ transitionDuration: {
22
+ type: [ String, Number ],
23
+ default: 300
24
+ },
21
25
 
22
26
  ssrPrerender: Boolean,
23
27
 
@@ -63,6 +67,10 @@ export default createComponent({
63
67
  ] ]
64
68
  })
65
69
 
70
+ const transitionStyle = computed(
71
+ () => `--q-transition-duration: ${ props.transitionDuration }ms`
72
+ )
73
+
66
74
  function trigger (entry) {
67
75
  if (showing.value !== entry.isIntersecting) {
68
76
  showing.value = entry.isIntersecting
@@ -72,7 +80,7 @@ export default createComponent({
72
80
 
73
81
  function getContent () {
74
82
  return showing.value === true
75
- ? [ h('div', { key: 'content' }, hSlot(slots.default)) ]
83
+ ? [ h('div', { key: 'content', style: transitionStyle.value }, hSlot(slots.default)) ]
76
84
  : void 0
77
85
  }
78
86
 
@@ -51,6 +51,15 @@
51
51
  "category": "behavior"
52
52
  },
53
53
 
54
+ "transition-duration": {
55
+ "type": [ "String", "Number" ],
56
+ "desc": "Transition duration (in milliseconds, without unit)",
57
+ "default": 300,
58
+ "examples": [ 500, "1200" ],
59
+ "category": "behavior",
60
+ "addedIn": "v2.3.1"
61
+ },
62
+
54
63
  "disable": {
55
64
  "type": "Boolean",
56
65
  "desc": "Disable visibility observable (content will remain as it was, visible or hidden)",
@@ -71,7 +71,7 @@
71
71
  "animation-speed": {
72
72
  "extends": "animation-speed",
73
73
  "default": 300,
74
- "addedIn": "v2.2.5"
74
+ "addedIn": "v2.3"
75
75
  }
76
76
  },
77
77
 
@@ -95,13 +95,14 @@
95
95
  "params": {
96
96
  "info": {
97
97
  "type": "Object",
98
- "__exemption": [ "examples" ],
98
+ "desc": "An object containing scroll information",
99
99
  "definition": {
100
100
  "ref": {
101
101
  "type": "Object",
102
102
  "desc": "Vue reference to the QScrollArea which triggered the event",
103
103
  "__exemption": [ "examples" ]
104
104
  },
105
+
105
106
  "verticalPosition": {
106
107
  "type": "Number",
107
108
  "desc": "Vertical scroll position (in px)",
@@ -215,6 +216,7 @@
215
216
  "desc": "Get current scroll position",
216
217
  "returns": {
217
218
  "type": "Object",
219
+ "desc": "An object containing scroll position information",
218
220
  "definition": {
219
221
  "top": {
220
222
  "type": "Number",
@@ -235,6 +237,7 @@
235
237
  "desc": "Get current scroll position in percentage (0.0 <= x <= 1.0)",
236
238
  "returns": {
237
239
  "type": "Object",
240
+ "desc": "An object containing scroll position information in percentage",
238
241
  "definition": {
239
242
  "top": {
240
243
  "type": "Number",
@@ -1339,14 +1339,14 @@ export default createComponent({
1339
1339
  function onControlPopupShow (e) {
1340
1340
  e !== void 0 && stop(e)
1341
1341
  emit('popup-show', e)
1342
- state.hasPopupOpen.value = true
1342
+ state.hasPopupOpen = true
1343
1343
  state.onControlFocusin(e)
1344
1344
  }
1345
1345
 
1346
1346
  function onControlPopupHide (e) {
1347
1347
  e !== void 0 && stop(e)
1348
1348
  emit('popup-hide', e)
1349
- state.hasPopupOpen.value = false
1349
+ state.hasPopupOpen = false
1350
1350
  state.onControlFocusout(e)
1351
1351
  }
1352
1352
 
@@ -1418,6 +1418,10 @@ export default createComponent({
1418
1418
  ) {
1419
1419
  return hasDialog === true ? getDialog() : getMenu()
1420
1420
  }
1421
+ else if (state.hasPopupOpen === true) {
1422
+ // explicitly set it otherwise TAB will not blur component
1423
+ state.hasPopupOpen = false
1424
+ }
1421
1425
  },
1422
1426
 
1423
1427
  controlEvents: {
@@ -47,6 +47,22 @@
47
47
  "type": [ "Function", "String" ],
48
48
  "desc": "Property of option which holds the 'value'; If using a function then for best performance, reference it from your scope and do not define it inline",
49
49
  "default": "value",
50
+ "params": {
51
+ "option": {
52
+ "type": [ "String", "Object" ],
53
+ "desc": "The current option being processed",
54
+ "examples": [
55
+ "'BMW'",
56
+ "'Samsung Phone'",
57
+ "{ label: 'BMW', value: 'car', cannotSelect: true }"
58
+ ]
59
+ }
60
+ },
61
+ "returns": {
62
+ "type": "Any",
63
+ "desc": "Value of the current option",
64
+ "examples": [ "'car'", "34" ]
65
+ },
50
66
  "examples": [
51
67
  "option-value=\"modelNumber\"",
52
68
  ":option-value=\"(item) => item === null ? null : item.modelNumber\""
@@ -58,6 +74,22 @@
58
74
  "type": [ "Function", "String" ],
59
75
  "desc": "Property of option which holds the 'label'; If using a function then for best performance, reference it from your scope and do not define it inline",
60
76
  "default": "label",
77
+ "params": {
78
+ "option": {
79
+ "type": [ "String", "Object" ],
80
+ "desc": "The current option being processed",
81
+ "examples": [
82
+ "'BMW'",
83
+ "'Samsung Phone'",
84
+ "{ label: 'BMW', value: 'car', cannotSelect: true }"
85
+ ]
86
+ }
87
+ },
88
+ "returns": {
89
+ "type": "String",
90
+ "desc": "Label of the current option",
91
+ "examples": [ "'BMW'", "'Samsung Phone'" ]
92
+ },
61
93
  "examples": [
62
94
  "option-label=\"itemName\"",
63
95
  ":option-label=\"(item) => item === null ? 'Null value' : item.itemName\""
@@ -69,6 +101,21 @@
69
101
  "type": [ "Function", "String" ],
70
102
  "desc": "Property of option which tells it's disabled; The value of the property must be a Boolean; If using a function then for best performance, reference it from your scope and do not define it inline",
71
103
  "default": "disable",
104
+ "params": {
105
+ "option": {
106
+ "type": [ "String", "Object" ],
107
+ "desc": "The current option being processed",
108
+ "examples": [
109
+ "'BMW'",
110
+ "'Samsung Phone'",
111
+ "{ label: 'BMW', value: 'car', cannotSelect: true }"
112
+ ]
113
+ }
114
+ },
115
+ "returns": {
116
+ "type": "Boolean",
117
+ "desc": "If true, the current option will be disabled"
118
+ },
72
119
  "examples": [
73
120
  "option-disable=\"cannotSelect\"",
74
121
  ":option-disable=\"(item) => item === null ? true : item.cannotSelect\""
@@ -210,7 +210,7 @@ export default function ({ updateValue, updatePosition, getDragging }) {
210
210
  }
211
211
 
212
212
  function onPan (event) {
213
- if (event.isFinal) {
213
+ if (event.isFinal === true) {
214
214
  if (dragging.value !== void 0) {
215
215
  updatePosition(event.evt)
216
216
  // only if touch, because we also have mousedown/up:
@@ -220,7 +220,7 @@ export default function ({ updateValue, updatePosition, getDragging }) {
220
220
  }
221
221
  active.value = false
222
222
  }
223
- else if (event.isFirst) {
223
+ else if (event.isFirst === true) {
224
224
  dragging.value = getDragging(event.evt)
225
225
  updatePosition(event.evt)
226
226
  updateValue()
@@ -250,7 +250,7 @@ export default function ({ updateValue, updatePosition, getDragging }) {
250
250
  function onDeactivate () {
251
251
  preventFocus.value = false
252
252
 
253
- if (dragging.value === void 0) {
253
+ if (dragging.value === false) {
254
254
  active.value = false
255
255
  }
256
256
 
@@ -17,6 +17,18 @@
17
17
  "type": [ "String", "Function" ],
18
18
  "desc": "Property of each row that defines the unique key of each row (the result must be a primitive, not Object, Array, etc); The value of property must be string or a function taking a row and returning the desired (nested) key in the row; If supplying a function then for best performance, reference it from your scope and do not define it inline",
19
19
  "default": "id",
20
+ "params": {
21
+ "row": {
22
+ "type": "Object",
23
+ "desc": "The current row being processed",
24
+ "examples": [ "{ name: 'Lorem Ipsum', price: 19 }" ]
25
+ }
26
+ },
27
+ "returns": {
28
+ "type": "Any",
29
+ "desc": "Current row's key",
30
+ "examples": [ "'34f39dda-6206-4071-a9df-4393aabe49ac'", "34" ]
31
+ },
20
32
  "examples": [ "row-key=\"name\"", ":row-key=\"row => row.name\"" ],
21
33
  "category": "general"
22
34
  },
@@ -146,7 +158,19 @@
146
158
  "type": [ "String", "Function" ],
147
159
  "desc": "Row Object property to determine value for this column or function which maps to the required property",
148
160
  "required": true,
149
- "examples": [ "name", "row => row.some.nested.prop" ]
161
+ "params": {
162
+ "row": {
163
+ "type": "Object",
164
+ "desc": "The current row being processed",
165
+ "examples": [ "{ name: 'Lorem Ipsum', prices: { active: 19, old: 25, list: 29 } }" ]
166
+ }
167
+ },
168
+ "returns": {
169
+ "type": "Any",
170
+ "desc": "Value for this column",
171
+ "examples": [ "19" ]
172
+ },
173
+ "examples": [ "name", "row => row.prices.active" ]
150
174
  },
151
175
  "required": {
152
176
  "type": "Boolean",
@@ -228,17 +252,39 @@
228
252
  "style": {
229
253
  "type": [ "String", "Function" ],
230
254
  "desc": "Style to apply on normal cells of the column",
255
+ "params": {
256
+ "row": {
257
+ "type": "Object",
258
+ "desc": "The current row being processed",
259
+ "examples": [ "{ name: 'Frozen Yogurt', calories: 159 }" ]
260
+ }
261
+ },
262
+ "returns": {
263
+ "type": "String",
264
+ "__exemption": [ "desc", "examples" ]
265
+ },
231
266
  "examples": [
232
- "width: 500px",
233
- "row => (row.calories % 2 === 0 ? 'width:10px' : 'font-size:2em')"
267
+ "'width: 500px'",
268
+ "row => (row.calories % 2 === 0 ? 'width: 10px' : 'font-size: 2em; font-weight: bold')"
234
269
  ]
235
270
  },
236
271
  "classes": {
237
272
  "type": [ "String", "Function" ],
238
273
  "desc": "Classes to add on normal cells of the column",
274
+ "params": {
275
+ "row": {
276
+ "type": "Object",
277
+ "desc": "The current row being processed",
278
+ "examples": [ "{ name: 'Frozen Yogurt', calories: 159 }" ]
279
+ }
280
+ },
281
+ "returns": {
282
+ "type": "String",
283
+ "__exemption": [ "desc", "examples" ]
284
+ },
239
285
  "examples": [
240
- "my-special-class",
241
- "row => (row.calories % 2 === 0 ? 'bg-green' : 'bg-yellow')"
286
+ "'my-special-class bg-primary'",
287
+ "row => (row.calories % 2 === 0 ? 'bg-green text-white' : 'bg-yellow')"
242
288
  ]
243
289
  },
244
290
  "headerStyle": {
@@ -24,29 +24,7 @@
24
24
  "navigateFn": {
25
25
  "type": "Function",
26
26
  "desc": "When you need to control the time at which the tab should trigger the route navigation then set 'evt.navigate' to false and call this function; Useful if you have async work to be done before the actual route navigation",
27
- "params": {
28
- "to": {
29
- "type": [ "String", "Object" ],
30
- "desc": "Equivalent to Vue Router <router-link> 'to' property",
31
- "examples": [
32
- "/home/dashboard",
33
- "{ name: 'my-route-name' }"
34
- ],
35
- "default": "Tab's 'to' property"
36
- },
37
-
38
- "append": {
39
- "type": "Boolean",
40
- "desc": "Equivalent to Vue Router <router-link> 'append' property",
41
- "default": "Tab's 'append' property"
42
- },
43
-
44
- "replace": {
45
- "type": "Boolean",
46
- "desc": "Equivalent to Vue Router <router-link> 'replace' property",
47
- "default": "Tab's 'replace' property"
48
- }
49
- },
27
+ "params": null,
50
28
  "returns": null
51
29
  }
52
30
  }