@genome-spy/core 0.48.1 → 0.49.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 (241) hide show
  1. package/dist/bundle/index.es.js +7485 -7097
  2. package/dist/bundle/index.js +124 -111
  3. package/dist/schema.json +838 -344
  4. package/dist/src/data/collector.d.ts +10 -8
  5. package/dist/src/data/collector.d.ts.map +1 -1
  6. package/dist/src/data/collector.js +131 -33
  7. package/dist/src/data/collector.test.d.ts +2 -0
  8. package/dist/src/data/collector.test.d.ts.map +1 -0
  9. package/dist/src/data/collector.test.js +55 -1
  10. package/dist/src/data/dataFlow.test.d.ts +2 -0
  11. package/dist/src/data/dataFlow.test.d.ts.map +1 -0
  12. package/dist/src/data/flow.test.d.ts +2 -0
  13. package/dist/src/data/flow.test.d.ts.map +1 -0
  14. package/dist/src/data/flow.test.js +19 -14
  15. package/dist/src/data/flowNode.test.d.ts +2 -0
  16. package/dist/src/data/flowNode.test.d.ts.map +1 -0
  17. package/dist/src/data/flowOptimizer.test.d.ts +2 -0
  18. package/dist/src/data/flowOptimizer.test.d.ts.map +1 -0
  19. package/dist/src/data/flowOptimizer.test.js +9 -10
  20. package/dist/src/data/formats/fasta.test.d.ts +2 -0
  21. package/dist/src/data/formats/fasta.test.d.ts.map +1 -0
  22. package/dist/src/data/sources/inlineSource.test.d.ts +2 -0
  23. package/dist/src/data/sources/inlineSource.test.d.ts.map +1 -0
  24. package/dist/src/data/sources/inlineSource.test.js +23 -16
  25. package/dist/src/data/sources/sequenceSource.test.d.ts +2 -0
  26. package/dist/src/data/sources/sequenceSource.test.d.ts.map +1 -0
  27. package/dist/src/data/sources/sequenceSource.test.js +59 -42
  28. package/dist/src/data/transforms/clone.test.d.ts +2 -0
  29. package/dist/src/data/transforms/clone.test.d.ts.map +1 -0
  30. package/dist/src/data/transforms/coverage.test.d.ts +2 -0
  31. package/dist/src/data/transforms/coverage.test.d.ts.map +1 -0
  32. package/dist/src/data/transforms/coverage.test.js +1 -1
  33. package/dist/src/data/transforms/filter.d.ts +10 -0
  34. package/dist/src/data/transforms/filter.d.ts.map +1 -1
  35. package/dist/src/data/transforms/filter.js +30 -1
  36. package/dist/src/data/transforms/filter.test.d.ts +2 -0
  37. package/dist/src/data/transforms/filter.test.d.ts.map +1 -0
  38. package/dist/src/data/transforms/flatten.test.d.ts +2 -0
  39. package/dist/src/data/transforms/flatten.test.d.ts.map +1 -0
  40. package/dist/src/data/transforms/flatten.test.js +10 -7
  41. package/dist/src/data/transforms/flattenDelimited.test.d.ts +2 -0
  42. package/dist/src/data/transforms/flattenDelimited.test.d.ts.map +1 -0
  43. package/dist/src/data/transforms/flattenDelimited.test.js +16 -13
  44. package/dist/src/data/transforms/flattenSequence.test.d.ts +2 -0
  45. package/dist/src/data/transforms/flattenSequence.test.d.ts.map +1 -0
  46. package/dist/src/data/transforms/flattenSequence.test.js +1 -1
  47. package/dist/src/data/transforms/formula.test.d.ts +2 -0
  48. package/dist/src/data/transforms/formula.test.d.ts.map +1 -0
  49. package/dist/src/data/transforms/formula.test.js +1 -1
  50. package/dist/src/data/transforms/identifier.d.ts +1 -1
  51. package/dist/src/data/transforms/identifier.d.ts.map +1 -1
  52. package/dist/src/data/transforms/identifier.js +2 -2
  53. package/dist/src/data/transforms/identifier.test.d.ts +2 -0
  54. package/dist/src/data/transforms/identifier.test.d.ts.map +1 -0
  55. package/dist/src/data/transforms/identifier.test.js +23 -14
  56. package/dist/src/data/transforms/pileup.test.d.ts +2 -0
  57. package/dist/src/data/transforms/pileup.test.d.ts.map +1 -0
  58. package/dist/src/data/transforms/project.test.d.ts +2 -0
  59. package/dist/src/data/transforms/project.test.d.ts.map +1 -0
  60. package/dist/src/data/transforms/project.test.js +1 -1
  61. package/dist/src/data/transforms/regexExtract.test.d.ts +2 -0
  62. package/dist/src/data/transforms/regexExtract.test.d.ts.map +1 -0
  63. package/dist/src/data/transforms/regexExtract.test.js +6 -3
  64. package/dist/src/data/transforms/regexFold.test.d.ts +2 -0
  65. package/dist/src/data/transforms/regexFold.test.d.ts.map +1 -0
  66. package/dist/src/data/transforms/sample.test.d.ts +2 -0
  67. package/dist/src/data/transforms/sample.test.d.ts.map +1 -0
  68. package/dist/src/data/transforms/stack.test.d.ts +2 -0
  69. package/dist/src/data/transforms/stack.test.d.ts.map +1 -0
  70. package/dist/src/data/transforms/stack.test.js +8 -8
  71. package/dist/src/encoder/accessor.d.ts +17 -14
  72. package/dist/src/encoder/accessor.d.ts.map +1 -1
  73. package/dist/src/encoder/accessor.js +127 -56
  74. package/dist/src/encoder/accessor.test.d.ts +2 -0
  75. package/dist/src/encoder/accessor.test.d.ts.map +1 -0
  76. package/dist/src/encoder/accessor.test.js +145 -31
  77. package/dist/src/encoder/encoder.d.ts +26 -13
  78. package/dist/src/encoder/encoder.d.ts.map +1 -1
  79. package/dist/src/encoder/encoder.js +98 -114
  80. package/dist/src/encoder/encoder.test.d.ts +2 -0
  81. package/dist/src/encoder/encoder.test.d.ts.map +1 -0
  82. package/dist/src/encoder/encoder.test.js +85 -82
  83. package/dist/src/fonts/bmFontManager.d.ts.map +1 -1
  84. package/dist/src/fonts/bmFontManager.js +10 -4
  85. package/dist/src/genome/genome.test.d.ts +2 -0
  86. package/dist/src/genome/genome.test.d.ts.map +1 -0
  87. package/dist/src/genome/scaleIndex.test.d.ts +2 -0
  88. package/dist/src/genome/scaleIndex.test.d.ts.map +1 -0
  89. package/dist/src/genome/scaleLocus.test.d.ts +2 -0
  90. package/dist/src/genome/scaleLocus.test.d.ts.map +1 -0
  91. package/dist/src/genomeSpy.d.ts +3 -2
  92. package/dist/src/genomeSpy.d.ts.map +1 -1
  93. package/dist/src/genomeSpy.js +29 -21
  94. package/dist/src/gl/dataToVertices.d.ts +5 -7
  95. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  96. package/dist/src/gl/dataToVertices.js +42 -30
  97. package/dist/src/gl/glslScaleGenerator.d.ts +84 -15
  98. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  99. package/dist/src/gl/glslScaleGenerator.js +260 -73
  100. package/dist/src/gl/includes/picking.vertex.glsl.js +1 -1
  101. package/dist/src/marks/link.common.glsl.js +1 -1
  102. package/dist/src/marks/link.d.ts.map +1 -1
  103. package/dist/src/marks/link.js +10 -0
  104. package/dist/src/marks/link.vertex.glsl.js +1 -1
  105. package/dist/src/marks/mark.d.ts +6 -9
  106. package/dist/src/marks/mark.d.ts.map +1 -1
  107. package/dist/src/marks/mark.js +212 -95
  108. package/dist/src/marks/point.d.ts.map +1 -1
  109. package/dist/src/marks/point.js +5 -1
  110. package/dist/src/marks/rect.d.ts.map +1 -1
  111. package/dist/src/marks/rect.js +9 -4
  112. package/dist/src/marks/rule.d.ts.map +1 -1
  113. package/dist/src/marks/rule.js +4 -0
  114. package/dist/src/marks/text.d.ts.map +1 -1
  115. package/dist/src/marks/text.js +5 -1
  116. package/dist/src/scale/scale.test.d.ts +2 -0
  117. package/dist/src/scale/scale.test.d.ts.map +1 -0
  118. package/dist/src/scale/scale.test.js +2 -0
  119. package/dist/src/scale/ticks.test.d.ts +2 -0
  120. package/dist/src/scale/ticks.test.d.ts.map +1 -0
  121. package/dist/src/scale/ticks.test.js +6 -0
  122. package/dist/src/selection/selection.d.ts +39 -0
  123. package/dist/src/selection/selection.d.ts.map +1 -0
  124. package/dist/src/selection/selection.js +78 -0
  125. package/dist/src/spec/channel.d.ts +137 -83
  126. package/dist/src/spec/mark.d.ts +9 -0
  127. package/dist/src/spec/parameter.d.ts +112 -3
  128. package/dist/src/spec/root.d.ts +0 -1
  129. package/dist/src/spec/transform.d.ts +19 -1
  130. package/dist/src/spec/view.d.ts +3 -3
  131. package/dist/src/tooltip/dataTooltipHandler.js +1 -1
  132. package/dist/src/types/encoder.d.ts +80 -26
  133. package/dist/src/types/rendering.d.ts +1 -0
  134. package/dist/src/types/selectionTypes.d.ts +44 -0
  135. package/dist/src/types/viewContext.d.ts +1 -4
  136. package/dist/src/utils/addBaseUrl.test.d.ts +2 -0
  137. package/dist/src/utils/addBaseUrl.test.d.ts.map +1 -0
  138. package/dist/src/utils/animator.d.ts.map +1 -1
  139. package/dist/src/utils/animator.js +3 -1
  140. package/dist/src/utils/binnedIndex.test.d.ts +2 -0
  141. package/dist/src/utils/binnedIndex.test.d.ts.map +1 -0
  142. package/dist/src/utils/cloner.test.d.ts +2 -0
  143. package/dist/src/utils/cloner.test.d.ts.map +1 -0
  144. package/dist/src/utils/coalesce.test.d.ts +2 -0
  145. package/dist/src/utils/coalesce.test.d.ts.map +1 -0
  146. package/dist/src/utils/concatIterables.test.d.ts +2 -0
  147. package/dist/src/utils/concatIterables.test.d.ts.map +1 -0
  148. package/dist/src/utils/domainArray.test.d.ts +2 -0
  149. package/dist/src/utils/domainArray.test.d.ts.map +1 -0
  150. package/dist/src/utils/expression.d.ts +2 -2
  151. package/dist/src/utils/expression.d.ts.map +1 -1
  152. package/dist/src/utils/expression.js +11 -2
  153. package/dist/src/utils/indexer.test.d.ts +2 -0
  154. package/dist/src/utils/indexer.test.d.ts.map +1 -0
  155. package/dist/src/utils/inertia.d.ts.map +1 -1
  156. package/dist/src/utils/inertia.js +4 -0
  157. package/dist/src/utils/inputBinding.d.ts.map +1 -1
  158. package/dist/src/utils/inputBinding.js +4 -0
  159. package/dist/src/utils/iterateNestedMaps.d.ts +4 -3
  160. package/dist/src/utils/iterateNestedMaps.d.ts.map +1 -1
  161. package/dist/src/utils/iterateNestedMaps.js +3 -2
  162. package/dist/src/utils/iterateNestedMaps.test.d.ts +2 -0
  163. package/dist/src/utils/iterateNestedMaps.test.d.ts.map +1 -0
  164. package/dist/src/utils/kWayMerge.test.d.ts +2 -0
  165. package/dist/src/utils/kWayMerge.test.d.ts.map +1 -0
  166. package/dist/src/utils/mergeObjects.test.d.ts +2 -0
  167. package/dist/src/utils/mergeObjects.test.d.ts.map +1 -0
  168. package/dist/src/utils/numberExtractor.test.d.ts +2 -0
  169. package/dist/src/utils/numberExtractor.test.d.ts.map +1 -0
  170. package/dist/src/utils/propertyCacher.test.d.ts +2 -0
  171. package/dist/src/utils/propertyCacher.test.d.ts.map +1 -0
  172. package/dist/src/utils/propertyCoalescer.test.d.ts +2 -0
  173. package/dist/src/utils/propertyCoalescer.test.d.ts.map +1 -0
  174. package/dist/src/utils/propertyCoalescer.test.js +3 -0
  175. package/dist/src/utils/radixSort.d.ts +9 -0
  176. package/dist/src/utils/radixSort.d.ts.map +1 -0
  177. package/dist/src/utils/radixSort.js +130 -0
  178. package/dist/src/utils/radixSort.test.d.ts +2 -0
  179. package/dist/src/utils/radixSort.test.d.ts.map +1 -0
  180. package/dist/src/utils/radixSort.test.js +51 -0
  181. package/dist/src/utils/reservationMap.test.d.ts +2 -0
  182. package/dist/src/utils/reservationMap.test.d.ts.map +1 -0
  183. package/dist/src/utils/ringBuffer.test.d.ts +2 -0
  184. package/dist/src/utils/ringBuffer.test.d.ts.map +1 -0
  185. package/dist/src/utils/topK.test.d.ts +2 -0
  186. package/dist/src/utils/topK.test.d.ts.map +1 -0
  187. package/dist/src/utils/trees.test.d.ts +2 -0
  188. package/dist/src/utils/trees.test.d.ts.map +1 -0
  189. package/dist/src/utils/trees.test.js +8 -3
  190. package/dist/src/utils/variableTools.test.d.ts +2 -0
  191. package/dist/src/utils/variableTools.test.d.ts.map +1 -0
  192. package/dist/src/view/axisResolution.d.ts +19 -6
  193. package/dist/src/view/axisResolution.d.ts.map +1 -1
  194. package/dist/src/view/axisResolution.js +16 -7
  195. package/dist/src/view/axisResolution.test.d.ts +2 -0
  196. package/dist/src/view/axisResolution.test.d.ts.map +1 -0
  197. package/dist/src/view/axisResolution.test.js +16 -11
  198. package/dist/src/view/facetView.d.ts +1 -1
  199. package/dist/src/view/facetView.d.ts.map +1 -1
  200. package/dist/src/view/flowBuilder.d.ts +1 -1
  201. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  202. package/dist/src/view/flowBuilder.js +34 -5
  203. package/dist/src/view/flowBuilder.test.d.ts +2 -0
  204. package/dist/src/view/flowBuilder.test.d.ts.map +1 -0
  205. package/dist/src/view/gridView.d.ts +0 -6
  206. package/dist/src/view/gridView.d.ts.map +1 -1
  207. package/dist/src/view/layerView.d.ts +0 -6
  208. package/dist/src/view/layerView.d.ts.map +1 -1
  209. package/dist/src/view/layout/flexLayout.test.d.ts +2 -0
  210. package/dist/src/view/layout/flexLayout.test.d.ts.map +1 -0
  211. package/dist/src/view/layout/grid.test.d.ts +2 -0
  212. package/dist/src/view/layout/grid.test.d.ts.map +1 -0
  213. package/dist/src/view/layout/rectangle.test.d.ts +2 -0
  214. package/dist/src/view/layout/rectangle.test.d.ts.map +1 -0
  215. package/dist/src/view/paramMediator.d.ts +32 -5
  216. package/dist/src/view/paramMediator.d.ts.map +1 -1
  217. package/dist/src/view/paramMediator.js +97 -9
  218. package/dist/src/view/paramMediator.test.d.ts +2 -0
  219. package/dist/src/view/paramMediator.test.d.ts.map +1 -0
  220. package/dist/src/view/paramMediator.test.js +17 -1
  221. package/dist/src/view/scaleResolution.d.ts +17 -9
  222. package/dist/src/view/scaleResolution.d.ts.map +1 -1
  223. package/dist/src/view/scaleResolution.js +51 -34
  224. package/dist/src/view/scaleResolution.test.d.ts +2 -0
  225. package/dist/src/view/scaleResolution.test.d.ts.map +1 -0
  226. package/dist/src/view/scaleResolution.test.js +2 -0
  227. package/dist/src/view/testUtils.d.ts.map +1 -1
  228. package/dist/src/view/testUtils.js +15 -3
  229. package/dist/src/view/unitView.d.ts +5 -15
  230. package/dist/src/view/unitView.d.ts.map +1 -1
  231. package/dist/src/view/unitView.js +81 -101
  232. package/dist/src/view/view.d.ts +1 -1
  233. package/dist/src/view/view.d.ts.map +1 -1
  234. package/dist/src/view/view.test.d.ts +2 -0
  235. package/dist/src/view/view.test.d.ts.map +1 -0
  236. package/dist/src/view/view.test.js +73 -55
  237. package/dist/src/view/viewFactory.test.d.ts +2 -0
  238. package/dist/src/view/viewFactory.test.d.ts.map +1 -0
  239. package/dist/src/view/viewFactory.test.js +2 -2
  240. package/dist/src/view/zoom.js +2 -2
  241. package/package.json +5 -2
package/dist/schema.json CHANGED
@@ -688,10 +688,6 @@
688
688
  {
689
689
  "const": "dy",
690
690
  "type": "string"
691
- },
692
- {
693
- "const": "sample",
694
- "type": "string"
695
691
  }
696
692
  ]
697
693
  },
@@ -802,8 +798,8 @@
802
798
  ],
803
799
  "type": "object"
804
800
  },
805
- "ColorDef<string>": {
806
- "$ref": "#/definitions/MarkPropDef%3Cstring%2C(string%7Cnull)%3E"
801
+ "ColorDef": {
802
+ "$ref": "#/definitions/MarkPropDef%3C(string%7Cnull)%3E"
807
803
  },
808
804
  "CompareParams": {
809
805
  "additionalProperties": false,
@@ -930,7 +926,7 @@
930
926
  "params": {
931
927
  "description": "Dynamic variables that parameterize a visualization.",
932
928
  "items": {
933
- "$ref": "#/definitions/VariableParameter"
929
+ "$ref": "#/definitions/Parameter"
934
930
  },
935
931
  "type": "array"
936
932
  },
@@ -1048,6 +1044,201 @@
1048
1044
  ],
1049
1045
  "type": "object"
1050
1046
  },
1047
+ "Conditional<DatumDef>": {
1048
+ "$ref": "#/definitions/ConditionalParameter%3CDatumDef%3E"
1049
+ },
1050
+ "Conditional<FieldDef>": {
1051
+ "$ref": "#/definitions/ConditionalParameter%3CFieldDef%3E"
1052
+ },
1053
+ "Conditional<ValueDef<(number|ExprRef)>>": {
1054
+ "$ref": "#/definitions/ConditionalParameter%3CValueDef%3C(number%7CExprRef)%3E%3E"
1055
+ },
1056
+ "Conditional<ValueDef<(string|null|ExprRef)>>": {
1057
+ "$ref": "#/definitions/ConditionalParameter%3CValueDef%3C(string%7Cnull%7CExprRef)%3E%3E"
1058
+ },
1059
+ "ConditionalParameter<DatumDef>": {
1060
+ "additionalProperties": false,
1061
+ "properties": {
1062
+ "band": {
1063
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
1064
+ "maximum": 1,
1065
+ "minimum": 0,
1066
+ "type": "number"
1067
+ },
1068
+ "datum": {
1069
+ "anyOf": [
1070
+ {
1071
+ "$ref": "#/definitions/Scalar"
1072
+ },
1073
+ {
1074
+ "$ref": "#/definitions/ExprRef"
1075
+ }
1076
+ ],
1077
+ "description": "A constant value in data domain."
1078
+ },
1079
+ "empty": {
1080
+ "description": "For selection parameters, the predicate of empty selections returns true by default. Override this behavior, by setting this property `empty: false`.",
1081
+ "type": "boolean"
1082
+ },
1083
+ "param": {
1084
+ "description": "Filter using a parameter name.",
1085
+ "type": "string"
1086
+ },
1087
+ "title": {
1088
+ "description": "A title for the field. If `null`, the title will be removed.",
1089
+ "type": [
1090
+ "string",
1091
+ "null"
1092
+ ]
1093
+ },
1094
+ "type": {
1095
+ "$ref": "#/definitions/Type"
1096
+ }
1097
+ },
1098
+ "required": [
1099
+ "param"
1100
+ ],
1101
+ "type": "object"
1102
+ },
1103
+ "ConditionalParameter<FieldDef>": {
1104
+ "anyOf": [
1105
+ {
1106
+ "additionalProperties": false,
1107
+ "properties": {
1108
+ "empty": {
1109
+ "description": "For selection parameters, the predicate of empty selections returns true by default. Override this behavior, by setting this property `empty: false`.",
1110
+ "type": "boolean"
1111
+ },
1112
+ "field": {
1113
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
1114
+ "type": "string"
1115
+ },
1116
+ "param": {
1117
+ "description": "Filter using a parameter name.",
1118
+ "type": "string"
1119
+ },
1120
+ "title": {
1121
+ "description": "A title for the field. If `null`, the title will be removed.",
1122
+ "type": [
1123
+ "string",
1124
+ "null"
1125
+ ]
1126
+ }
1127
+ },
1128
+ "required": [
1129
+ "param"
1130
+ ],
1131
+ "type": "object"
1132
+ },
1133
+ {
1134
+ "additionalProperties": false,
1135
+ "properties": {
1136
+ "empty": {
1137
+ "description": "For selection parameters, the predicate of empty selections returns true by default. Override this behavior, by setting this property `empty: false`.",
1138
+ "type": "boolean"
1139
+ },
1140
+ "field": {
1141
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
1142
+ "type": "string"
1143
+ },
1144
+ "param": {
1145
+ "description": "Filter using a parameter name.",
1146
+ "type": "string"
1147
+ },
1148
+ "title": {
1149
+ "description": "A title for the field. If `null`, the title will be removed.",
1150
+ "type": [
1151
+ "string",
1152
+ "null"
1153
+ ]
1154
+ },
1155
+ "type": {
1156
+ "$ref": "#/definitions/Type"
1157
+ }
1158
+ },
1159
+ "required": [
1160
+ "param",
1161
+ "type"
1162
+ ],
1163
+ "type": "object"
1164
+ }
1165
+ ]
1166
+ },
1167
+ "ConditionalParameter<ValueDef<(number|ExprRef)>>": {
1168
+ "additionalProperties": false,
1169
+ "properties": {
1170
+ "empty": {
1171
+ "description": "For selection parameters, the predicate of empty selections returns true by default. Override this behavior, by setting this property `empty: false`.",
1172
+ "type": "boolean"
1173
+ },
1174
+ "param": {
1175
+ "description": "Filter using a parameter name.",
1176
+ "type": "string"
1177
+ },
1178
+ "title": {
1179
+ "description": "A title for the field. If `null`, the title will be removed.",
1180
+ "type": [
1181
+ "string",
1182
+ "null"
1183
+ ]
1184
+ },
1185
+ "value": {
1186
+ "anyOf": [
1187
+ {
1188
+ "type": "number"
1189
+ },
1190
+ {
1191
+ "$ref": "#/definitions/ExprRef"
1192
+ }
1193
+ ],
1194
+ "description": "A constant value in visual domain (e.g., `\"red\"` / `\"#0099ff\"`, values between `0` to `1` for opacity)."
1195
+ }
1196
+ },
1197
+ "required": [
1198
+ "param",
1199
+ "value"
1200
+ ],
1201
+ "type": "object"
1202
+ },
1203
+ "ConditionalParameter<ValueDef<(string|null|ExprRef)>>": {
1204
+ "additionalProperties": false,
1205
+ "properties": {
1206
+ "empty": {
1207
+ "description": "For selection parameters, the predicate of empty selections returns true by default. Override this behavior, by setting this property `empty: false`.",
1208
+ "type": "boolean"
1209
+ },
1210
+ "param": {
1211
+ "description": "Filter using a parameter name.",
1212
+ "type": "string"
1213
+ },
1214
+ "title": {
1215
+ "description": "A title for the field. If `null`, the title will be removed.",
1216
+ "type": [
1217
+ "string",
1218
+ "null"
1219
+ ]
1220
+ },
1221
+ "value": {
1222
+ "anyOf": [
1223
+ {
1224
+ "type": "string"
1225
+ },
1226
+ {
1227
+ "type": "null"
1228
+ },
1229
+ {
1230
+ "$ref": "#/definitions/ExprRef"
1231
+ }
1232
+ ],
1233
+ "description": "A constant value in visual domain (e.g., `\"red\"` / `\"#0099ff\"`, values between `0` to `1` for opacity)."
1234
+ }
1235
+ },
1236
+ "required": [
1237
+ "param",
1238
+ "value"
1239
+ ],
1240
+ "type": "object"
1241
+ },
1051
1242
  "Contig": {
1052
1243
  "additionalProperties": false,
1053
1244
  "properties": {
@@ -1266,71 +1457,71 @@
1266
1457
  "additionalProperties": false,
1267
1458
  "properties": {
1268
1459
  "angle": {
1269
- "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
1460
+ "$ref": "#/definitions/NumericMarkPropDef",
1270
1461
  "description": "Rotation angle of point and text marks."
1271
1462
  },
1272
1463
  "color": {
1273
- "$ref": "#/definitions/ColorDef%3Cstring%3E",
1464
+ "$ref": "#/definitions/ColorDef",
1274
1465
  "description": "Color of the marks – either fill or stroke color based on the `filled` property of mark definition.\n\n_Note:_ 1) For fine-grained control over both fill and stroke colors of the marks, please use the `fill` and `stroke` channels. The `fill` or `stroke` encodings have higher precedence than `color`, thus may override the `color` encoding if conflicting encodings are specified. 2) See the scale documentation for more information about customizing [color scheme](https://vega.github.io/vega-lite/docs/scale.html#scheme)."
1275
1466
  },
1276
1467
  "dx": {
1277
- "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E"
1468
+ "$ref": "#/definitions/NumericMarkPropDef"
1278
1469
  },
1279
1470
  "dy": {
1280
- "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E"
1471
+ "$ref": "#/definitions/NumericMarkPropDef"
1281
1472
  },
1282
1473
  "facetIndex": {
1283
- "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E",
1474
+ "$ref": "#/definitions/FieldDefWithoutScale",
1284
1475
  "description": "For internal use"
1285
1476
  },
1286
1477
  "fill": {
1287
- "$ref": "#/definitions/ColorDef%3Cstring%3E",
1478
+ "$ref": "#/definitions/ColorDef",
1288
1479
  "description": "Fill color of the marks.\n\n_Note:_ The `fill` encoding has higher precedence than `color`, thus may override the `color` encoding if conflicting encodings are specified."
1289
1480
  },
1290
1481
  "fillOpacity": {
1291
- "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
1482
+ "$ref": "#/definitions/NumericMarkPropDef",
1292
1483
  "description": "Fill opacity of the marks."
1293
1484
  },
1294
1485
  "opacity": {
1295
- "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
1486
+ "$ref": "#/definitions/NumericMarkPropDef",
1296
1487
  "description": "Opacity of the marks."
1297
1488
  },
1298
1489
  "sample": {
1299
- "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E",
1490
+ "$ref": "#/definitions/FieldDefWithoutScale",
1300
1491
  "description": "Facet identifier for interactive filtering, sorting, and grouping in the App."
1301
1492
  },
1302
1493
  "search": {
1303
- "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E"
1494
+ "$ref": "#/definitions/FieldDefWithoutScale"
1304
1495
  },
1305
1496
  "semanticScore": {
1306
- "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E"
1497
+ "$ref": "#/definitions/FieldDefWithoutScale"
1307
1498
  },
1308
1499
  "shape": {
1309
- "$ref": "#/definitions/ShapeDef%3Cstring%3E",
1500
+ "$ref": "#/definitions/ShapeDef",
1310
1501
  "description": "Shape of the mark.\n\nFor `point` marks the supported values include:\n- plotting shapes: `\"circle\"`, `\"square\"`, `\"cross\"`, `\"diamond\"`, `\"triangle-up\"`, `\"triangle-down\"`, `\"triangle-right\"`, or `\"triangle-left\"`.\n- centered directional shape `\"triangle\"`"
1311
1502
  },
1312
1503
  "size": {
1313
- "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
1504
+ "$ref": "#/definitions/NumericMarkPropDef",
1314
1505
  "description": "Size of the mark.\n- For `\"point\"` – the symbol size, or pixel area of the mark.\n- For `\"text\"` – the text's font size."
1315
1506
  },
1316
1507
  "stroke": {
1317
- "$ref": "#/definitions/ColorDef%3Cstring%3E",
1508
+ "$ref": "#/definitions/ColorDef",
1318
1509
  "description": "Stroke color of the marks.\n\n_Note:_ The `stroke` encoding has higher precedence than `color`, thus may override the `color` encoding if conflicting encodings are specified."
1319
1510
  },
1320
1511
  "strokeOpacity": {
1321
- "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
1512
+ "$ref": "#/definitions/NumericMarkPropDef",
1322
1513
  "description": "Stroke opacity of the marks."
1323
1514
  },
1324
1515
  "strokeWidth": {
1325
- "$ref": "#/definitions/NumericMarkPropDef%3Cstring%3E",
1516
+ "$ref": "#/definitions/NumericMarkPropDef",
1326
1517
  "description": "Stroke width of the marks."
1327
1518
  },
1328
1519
  "text": {
1329
- "$ref": "#/definitions/TextDef%3Cstring%3E",
1520
+ "$ref": "#/definitions/TextDef",
1330
1521
  "description": "Text of the `text` mark."
1331
1522
  },
1332
1523
  "uniqueId": {
1333
- "$ref": "#/definitions/FieldDefWithoutScale%3Cstring%3E",
1524
+ "$ref": "#/definitions/FieldDefWithoutScale",
1334
1525
  "description": "For internal use"
1335
1526
  },
1336
1527
  "x": {
@@ -1557,6 +1748,13 @@
1557
1748
  "description": "An expression. Properties of the data can be accessed through the `datum` object.",
1558
1749
  "type": "string"
1559
1750
  },
1751
+ "title": {
1752
+ "description": "A title for the field. If `null`, the title will be removed.",
1753
+ "type": [
1754
+ "string",
1755
+ "null"
1756
+ ]
1757
+ },
1560
1758
  "type": {
1561
1759
  "$ref": "#/definitions/Type"
1562
1760
  }
@@ -1602,15 +1800,15 @@
1602
1800
  "description": "X coordinates of the marks.\n\nThe `value` of this channel can be a number between zero and one."
1603
1801
  },
1604
1802
  "x2": {
1605
- "$ref": "#/definitions/Position2Def%3Cstring%3E",
1803
+ "$ref": "#/definitions/Position2Def",
1606
1804
  "description": "X2 coordinates of the marks.\n\nThe `value` of this channel can be a number between zero and one."
1607
1805
  },
1608
1806
  "y": {
1609
- "$ref": "#/definitions/PositionDef%3Cstring%3E",
1807
+ "$ref": "#/definitions/PositionDef",
1610
1808
  "description": "Y coordinates of the marks.\n\nThe `value` of this channel can be a number between zero and one."
1611
1809
  },
1612
1810
  "y2": {
1613
- "$ref": "#/definitions/Position2Def%3Cstring%3E",
1811
+ "$ref": "#/definitions/Position2Def",
1614
1812
  "description": "Y2 coordinates of the marks.\n\nThe `value` of this channel can be a number between zero and one."
1615
1813
  }
1616
1814
  },
@@ -1619,9 +1817,25 @@
1619
1817
  "ExprDef": {
1620
1818
  "additionalProperties": false,
1621
1819
  "properties": {
1820
+ "band": {
1821
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
1822
+ "maximum": 1,
1823
+ "minimum": 0,
1824
+ "type": "number"
1825
+ },
1622
1826
  "expr": {
1623
1827
  "description": "An expression. Properties of the data can be accessed through the `datum` object.",
1624
1828
  "type": "string"
1829
+ },
1830
+ "title": {
1831
+ "description": "A title for the field. If `null`, the title will be removed.",
1832
+ "type": [
1833
+ "string",
1834
+ "null"
1835
+ ]
1836
+ },
1837
+ "type": {
1838
+ "$ref": "#/definitions/Type"
1625
1839
  }
1626
1840
  },
1627
1841
  "required": [
@@ -1629,6 +1843,25 @@
1629
1843
  ],
1630
1844
  "type": "object"
1631
1845
  },
1846
+ "ExprFilterParams": {
1847
+ "additionalProperties": false,
1848
+ "properties": {
1849
+ "expr": {
1850
+ "description": "An expression string. The data object is removed if the expression evaluates to false.",
1851
+ "type": "string"
1852
+ },
1853
+ "type": {
1854
+ "const": "filter",
1855
+ "description": "The type of the transform to be applied",
1856
+ "type": "string"
1857
+ }
1858
+ },
1859
+ "required": [
1860
+ "expr",
1861
+ "type"
1862
+ ],
1863
+ "type": "object"
1864
+ },
1632
1865
  "ExprRef": {
1633
1866
  "additionalProperties": false,
1634
1867
  "properties": {
@@ -1642,49 +1875,295 @@
1642
1875
  ],
1643
1876
  "type": "object"
1644
1877
  },
1645
- "Field": {
1646
- "description": "The name of the field or a JavaScript expression for accessing nested properties. Dots and brackets in the field name must be escaped.",
1647
- "type": "string"
1648
- },
1649
- "FieldDefWithoutScale<string>": {
1878
+ "Field": {
1879
+ "description": "The name of the field or a JavaScript expression for accessing nested properties. Dots and brackets in the field name must be escaped.",
1880
+ "type": "string"
1881
+ },
1882
+ "FieldDefWithoutScale": {
1883
+ "additionalProperties": false,
1884
+ "properties": {
1885
+ "field": {
1886
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
1887
+ "type": "string"
1888
+ },
1889
+ "title": {
1890
+ "description": "A title for the field. If `null`, the title will be removed.",
1891
+ "type": [
1892
+ "string",
1893
+ "null"
1894
+ ]
1895
+ }
1896
+ },
1897
+ "type": "object"
1898
+ },
1899
+ "FieldName": {
1900
+ "type": "string"
1901
+ },
1902
+ "FieldOrDatumDefWithCondition<DatumDef,(string|null)>": {
1903
+ "additionalProperties": false,
1904
+ "description": "A FieldDef with Condition<ValueDef> { condition: {value: ...}, field: ..., ... }",
1905
+ "properties": {
1906
+ "band": {
1907
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
1908
+ "maximum": 1,
1909
+ "minimum": 0,
1910
+ "type": "number"
1911
+ },
1912
+ "condition": {
1913
+ "anyOf": [
1914
+ {
1915
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(string%7Cnull%7CExprRef)%3E%3E"
1916
+ },
1917
+ {
1918
+ "items": {
1919
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(string%7Cnull%7CExprRef)%3E%3E"
1920
+ },
1921
+ "type": "array"
1922
+ }
1923
+ ],
1924
+ "description": "One or more value definition(s) with [a parameter or a test predicate](https://vega.github.io/vega-lite/docs/condition.html).\n\n__Note:__ A field definition's `condition` property can only contain [conditional value definitions](https://vega.github.io/vega-lite/docs/condition.html#value) since Vega-Lite only allows at most one encoded field per encoding channel."
1925
+ },
1926
+ "datum": {
1927
+ "anyOf": [
1928
+ {
1929
+ "$ref": "#/definitions/Scalar"
1930
+ },
1931
+ {
1932
+ "$ref": "#/definitions/ExprRef"
1933
+ }
1934
+ ],
1935
+ "description": "A constant value in data domain."
1936
+ },
1937
+ "title": {
1938
+ "description": "A title for the field. If `null`, the title will be removed.",
1939
+ "type": [
1940
+ "string",
1941
+ "null"
1942
+ ]
1943
+ },
1944
+ "type": {
1945
+ "$ref": "#/definitions/Type"
1946
+ }
1947
+ },
1948
+ "type": "object"
1949
+ },
1950
+ "FieldOrDatumDefWithCondition<DatumDef,number>": {
1951
+ "additionalProperties": false,
1952
+ "description": "A FieldDef with Condition<ValueDef> { condition: {value: ...}, field: ..., ... }",
1953
+ "properties": {
1954
+ "band": {
1955
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
1956
+ "maximum": 1,
1957
+ "minimum": 0,
1958
+ "type": "number"
1959
+ },
1960
+ "condition": {
1961
+ "anyOf": [
1962
+ {
1963
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(number%7CExprRef)%3E%3E"
1964
+ },
1965
+ {
1966
+ "items": {
1967
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(number%7CExprRef)%3E%3E"
1968
+ },
1969
+ "type": "array"
1970
+ }
1971
+ ],
1972
+ "description": "One or more value definition(s) with [a parameter or a test predicate](https://vega.github.io/vega-lite/docs/condition.html).\n\n__Note:__ A field definition's `condition` property can only contain [conditional value definitions](https://vega.github.io/vega-lite/docs/condition.html#value) since Vega-Lite only allows at most one encoded field per encoding channel."
1973
+ },
1974
+ "datum": {
1975
+ "anyOf": [
1976
+ {
1977
+ "$ref": "#/definitions/Scalar"
1978
+ },
1979
+ {
1980
+ "$ref": "#/definitions/ExprRef"
1981
+ }
1982
+ ],
1983
+ "description": "A constant value in data domain."
1984
+ },
1985
+ "title": {
1986
+ "description": "A title for the field. If `null`, the title will be removed.",
1987
+ "type": [
1988
+ "string",
1989
+ "null"
1990
+ ]
1991
+ },
1992
+ "type": {
1993
+ "$ref": "#/definitions/Type"
1994
+ }
1995
+ },
1996
+ "type": "object"
1997
+ },
1998
+ "FieldOrDatumDefWithCondition<MarkPropFieldDef<Type>,(string|null)>": {
1999
+ "additionalProperties": false,
2000
+ "description": "A FieldDef with Condition<ValueDef> { condition: {value: ...}, field: ..., ... }",
2001
+ "properties": {
2002
+ "condition": {
2003
+ "anyOf": [
2004
+ {
2005
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(string%7Cnull%7CExprRef)%3E%3E"
2006
+ },
2007
+ {
2008
+ "items": {
2009
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(string%7Cnull%7CExprRef)%3E%3E"
2010
+ },
2011
+ "type": "array"
2012
+ }
2013
+ ],
2014
+ "description": "One or more value definition(s) with [a parameter or a test predicate](https://vega.github.io/vega-lite/docs/condition.html).\n\n__Note:__ A field definition's `condition` property can only contain [conditional value definitions](https://vega.github.io/vega-lite/docs/condition.html#value) since Vega-Lite only allows at most one encoded field per encoding channel."
2015
+ },
2016
+ "field": {
2017
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
2018
+ "type": "string"
2019
+ },
2020
+ "resolutionChannel": {
2021
+ "$ref": "#/definitions/ChannelWithScale",
2022
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2023
+ },
2024
+ "scale": {
2025
+ "anyOf": [
2026
+ {
2027
+ "$ref": "#/definitions/Scale"
2028
+ },
2029
+ {
2030
+ "type": "null"
2031
+ }
2032
+ ],
2033
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2034
+ },
2035
+ "title": {
2036
+ "description": "A title for the field. If `null`, the title will be removed.",
2037
+ "type": [
2038
+ "string",
2039
+ "null"
2040
+ ]
2041
+ },
2042
+ "type": {
2043
+ "$ref": "#/definitions/Type"
2044
+ }
2045
+ },
2046
+ "required": [
2047
+ "type"
2048
+ ],
2049
+ "type": "object"
2050
+ },
2051
+ "FieldOrDatumDefWithCondition<MarkPropFieldDef<Type>,number>": {
2052
+ "additionalProperties": false,
2053
+ "description": "A FieldDef with Condition<ValueDef> { condition: {value: ...}, field: ..., ... }",
2054
+ "properties": {
2055
+ "condition": {
2056
+ "anyOf": [
2057
+ {
2058
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(number%7CExprRef)%3E%3E"
2059
+ },
2060
+ {
2061
+ "items": {
2062
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(number%7CExprRef)%3E%3E"
2063
+ },
2064
+ "type": "array"
2065
+ }
2066
+ ],
2067
+ "description": "One or more value definition(s) with [a parameter or a test predicate](https://vega.github.io/vega-lite/docs/condition.html).\n\n__Note:__ A field definition's `condition` property can only contain [conditional value definitions](https://vega.github.io/vega-lite/docs/condition.html#value) since Vega-Lite only allows at most one encoded field per encoding channel."
2068
+ },
2069
+ "field": {
2070
+ "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
2071
+ "type": "string"
2072
+ },
2073
+ "resolutionChannel": {
2074
+ "$ref": "#/definitions/ChannelWithScale",
2075
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2076
+ },
2077
+ "scale": {
2078
+ "anyOf": [
2079
+ {
2080
+ "$ref": "#/definitions/Scale"
2081
+ },
2082
+ {
2083
+ "type": "null"
2084
+ }
2085
+ ],
2086
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2087
+ },
2088
+ "title": {
2089
+ "description": "A title for the field. If `null`, the title will be removed.",
2090
+ "type": [
2091
+ "string",
2092
+ "null"
2093
+ ]
2094
+ },
2095
+ "type": {
2096
+ "$ref": "#/definitions/Type"
2097
+ }
2098
+ },
2099
+ "required": [
2100
+ "type"
2101
+ ],
2102
+ "type": "object"
2103
+ },
2104
+ "FieldOrDatumDefWithCondition<MarkPropFieldDef<TypeForShape>,(string|null)>": {
1650
2105
  "additionalProperties": false,
2106
+ "description": "A FieldDef with Condition<ValueDef> { condition: {value: ...}, field: ..., ... }",
1651
2107
  "properties": {
2108
+ "condition": {
2109
+ "anyOf": [
2110
+ {
2111
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(string%7Cnull%7CExprRef)%3E%3E"
2112
+ },
2113
+ {
2114
+ "items": {
2115
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(string%7Cnull%7CExprRef)%3E%3E"
2116
+ },
2117
+ "type": "array"
2118
+ }
2119
+ ],
2120
+ "description": "One or more value definition(s) with [a parameter or a test predicate](https://vega.github.io/vega-lite/docs/condition.html).\n\n__Note:__ A field definition's `condition` property can only contain [conditional value definitions](https://vega.github.io/vega-lite/docs/condition.html#value) since Vega-Lite only allows at most one encoded field per encoding channel."
2121
+ },
1652
2122
  "field": {
1653
2123
  "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
1654
2124
  "type": "string"
1655
2125
  },
2126
+ "resolutionChannel": {
2127
+ "$ref": "#/definitions/ChannelWithScale",
2128
+ "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
2129
+ },
2130
+ "scale": {
2131
+ "anyOf": [
2132
+ {
2133
+ "$ref": "#/definitions/Scale"
2134
+ },
2135
+ {
2136
+ "type": "null"
2137
+ }
2138
+ ],
2139
+ "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
2140
+ },
1656
2141
  "title": {
1657
2142
  "description": "A title for the field. If `null`, the title will be removed.",
1658
2143
  "type": [
1659
2144
  "string",
1660
2145
  "null"
1661
2146
  ]
1662
- }
1663
- },
1664
- "type": "object"
1665
- },
1666
- "FieldName": {
1667
- "type": "string"
1668
- },
1669
- "FilterParams": {
1670
- "additionalProperties": false,
1671
- "properties": {
1672
- "expr": {
1673
- "description": "An expression string. The data object is removed if the expression evaluates to false.",
1674
- "type": "string"
1675
2147
  },
1676
2148
  "type": {
1677
- "const": "filter",
1678
- "description": "The type of the transform to be applied",
1679
- "type": "string"
2149
+ "$ref": "#/definitions/TypeForShape"
1680
2150
  }
1681
2151
  },
1682
2152
  "required": [
1683
- "expr",
1684
2153
  "type"
1685
2154
  ],
1686
2155
  "type": "object"
1687
2156
  },
2157
+ "FilterParams": {
2158
+ "anyOf": [
2159
+ {
2160
+ "$ref": "#/definitions/ExprFilterParams"
2161
+ },
2162
+ {
2163
+ "$ref": "#/definitions/SelectionFilterParams"
2164
+ }
2165
+ ]
2166
+ },
1688
2167
  "FilterScoredLabelsParams": {
1689
2168
  "additionalProperties": false,
1690
2169
  "properties": {
@@ -2426,7 +2905,7 @@
2426
2905
  "params": {
2427
2906
  "description": "Dynamic variables that parameterize a visualization.",
2428
2907
  "items": {
2429
- "$ref": "#/definitions/VariableParameter"
2908
+ "$ref": "#/definitions/Parameter"
2430
2909
  },
2431
2910
  "type": "array"
2432
2911
  },
@@ -2598,7 +3077,7 @@
2598
3077
  "anyOf": [
2599
3078
  {
2600
3079
  "items": {
2601
- "$ref": "#/definitions/VariableParameter"
3080
+ "$ref": "#/definitions/Parameter"
2602
3081
  },
2603
3082
  "type": "array"
2604
3083
  },
@@ -2718,6 +3197,42 @@
2718
3197
  }
2719
3198
  ]
2720
3199
  },
3200
+ "IntervalSelectionConfig": {
3201
+ "additionalProperties": false,
3202
+ "properties": {
3203
+ "encodings": {
3204
+ "description": "An array of encoding channels. The corresponding data field values must match for a data tuple to fall within the selection.\n\n__See also:__ The [projection with `encodings` and `fields` section](https://vega.github.io/vega-lite/docs/selection.html#project) in the documentation.",
3205
+ "items": {
3206
+ "$ref": "#/definitions/ChannelWithScale"
3207
+ },
3208
+ "type": "array"
3209
+ },
3210
+ "fields": {
3211
+ "description": "An array of field names whose values must match for a data tuple to fall within the selection.\n\n__See also:__ The [projection with `encodings` and `fields` section](https://vega.github.io/vega-lite/docs/selection.html#project) in the documentation.",
3212
+ "items": {
3213
+ "type": "string"
3214
+ },
3215
+ "type": "array"
3216
+ },
3217
+ "on": {
3218
+ "enum": [
3219
+ "click",
3220
+ "mouseover",
3221
+ "pointerover"
3222
+ ],
3223
+ "type": "string"
3224
+ },
3225
+ "type": {
3226
+ "const": "interval",
3227
+ "description": "Determines the default event processing and data query for the selection. Vega-Lite currently supports two selection types:\n\n- `\"point\"` -- to select multiple discrete data values; the first value is selected on `click` and additional values toggled on shift-click.\n- `\"interval\"` -- to select a continuous range of data values on `drag`.",
3228
+ "type": "string"
3229
+ }
3230
+ },
3231
+ "required": [
3232
+ "type"
3233
+ ],
3234
+ "type": "object"
3235
+ },
2721
3236
  "JsonDataFormat": {
2722
3237
  "additionalProperties": false,
2723
3238
  "properties": {
@@ -2836,7 +3351,7 @@
2836
3351
  "params": {
2837
3352
  "description": "Dynamic variables that parameterize a visualization.",
2838
3353
  "items": {
2839
- "$ref": "#/definitions/VariableParameter"
3354
+ "$ref": "#/definitions/Parameter"
2840
3355
  },
2841
3356
  "type": "array"
2842
3357
  },
@@ -3422,6 +3937,17 @@
3422
3937
  ],
3423
3938
  "description": "The minimum width of a rectangle in pixels. The property clamps rectangles' widths when the viewport is zoomed out.\n\nThis property also reduces flickering of very narrow rectangles when zooming. The value should generally be at least one.\n\n**Default value:** `1`"
3424
3939
  },
3940
+ "noFadingOnPointSelection": {
3941
+ "anyOf": [
3942
+ {
3943
+ "type": "boolean"
3944
+ },
3945
+ {
3946
+ "$ref": "#/definitions/ExprRef"
3947
+ }
3948
+ ],
3949
+ "description": "Disables fading of the link when an mark instance is subject to any point selection. As the fading distance is unavailable as a visual channel, this property allows for enhancing the visibility of the selected links.\n\n**Default value:** `true`"
3950
+ },
3425
3951
  "opacity": {
3426
3952
  "anyOf": [
3427
3953
  {
@@ -3630,284 +4156,47 @@
3630
4156
  "type": "number"
3631
4157
  },
3632
4158
  {
3633
- "$ref": "#/definitions/ExprRef"
3634
- }
3635
- ]
3636
- },
3637
- "x2": {
3638
- "anyOf": [
3639
- {
3640
- "type": "number"
3641
- },
3642
- {
3643
- "$ref": "#/definitions/ExprRef"
3644
- }
3645
- ]
3646
- },
3647
- "xOffset": {
3648
- "description": "Offsets of the `x` and `x2` coordinates in pixels. The offset is applied after the viewport scaling and translation.\n\n**Default value:** `0`",
3649
- "type": "number"
3650
- },
3651
- "y": {
3652
- "anyOf": [
3653
- {
3654
- "type": "number"
3655
- },
3656
- {
3657
- "$ref": "#/definitions/ExprRef"
3658
- }
3659
- ]
3660
- },
3661
- "y2": {
3662
- "anyOf": [
3663
- {
3664
- "type": "number"
3665
- },
3666
- {
3667
- "$ref": "#/definitions/ExprRef"
3668
- }
3669
- ]
3670
- },
3671
- "yOffset": {
3672
- "description": "Offsets of the `y` and `y2` coordinates in pixels. The offset is applied after the viewport scaling and translation.\n\n**Default value:** `0`",
3673
- "type": "number"
3674
- }
3675
- },
3676
- "required": [
3677
- "type"
3678
- ],
3679
- "type": "object"
3680
- },
3681
- "MarkPropDatumDef<Type>": {
3682
- "additionalProperties": false,
3683
- "properties": {
3684
- "datum": {
3685
- "anyOf": [
3686
- {
3687
- "$ref": "#/definitions/Scalar"
3688
- },
3689
- {
3690
- "$ref": "#/definitions/ExprRef"
3691
- }
3692
- ],
3693
- "description": "A constant value in data domain."
3694
- },
3695
- "resolutionChannel": {
3696
- "$ref": "#/definitions/ChannelWithScale",
3697
- "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
3698
- },
3699
- "scale": {
3700
- "anyOf": [
3701
- {
3702
- "$ref": "#/definitions/Scale"
3703
- },
3704
- {
3705
- "type": "null"
3706
- }
3707
- ],
3708
- "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
3709
- },
3710
- "title": {
3711
- "description": "A title for the field. If `null`, the title will be removed.",
3712
- "type": [
3713
- "string",
3714
- "null"
3715
- ]
3716
- },
3717
- "type": {
3718
- "$ref": "#/definitions/Type"
3719
- }
3720
- },
3721
- "required": [
3722
- "type"
3723
- ],
3724
- "type": "object"
3725
- },
3726
- "MarkPropDatumDef<TypeForShape>": {
3727
- "additionalProperties": false,
3728
- "properties": {
3729
- "datum": {
3730
- "anyOf": [
3731
- {
3732
- "$ref": "#/definitions/Scalar"
3733
- },
3734
- {
3735
- "$ref": "#/definitions/ExprRef"
3736
- }
3737
- ],
3738
- "description": "A constant value in data domain."
3739
- },
3740
- "resolutionChannel": {
3741
- "$ref": "#/definitions/ChannelWithScale",
3742
- "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
3743
- },
3744
- "scale": {
3745
- "anyOf": [
3746
- {
3747
- "$ref": "#/definitions/Scale"
3748
- },
3749
- {
3750
- "type": "null"
3751
- }
3752
- ],
3753
- "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
3754
- },
3755
- "title": {
3756
- "description": "A title for the field. If `null`, the title will be removed.",
3757
- "type": [
3758
- "string",
3759
- "null"
3760
- ]
3761
- },
3762
- "type": {
3763
- "$ref": "#/definitions/TypeForShape"
3764
- }
3765
- },
3766
- "required": [
3767
- "type"
3768
- ],
3769
- "type": "object"
3770
- },
3771
- "MarkPropDef<string,(string|null),TypeForShape>": {
3772
- "anyOf": [
3773
- {
3774
- "$ref": "#/definitions/MarkPropFieldOrDatumOrExprDef%3Cstring%2CTypeForShape%3E"
3775
- },
3776
- {
3777
- "$ref": "#/definitions/ValueDef%3C(string%7Cnull)%3E"
3778
- }
3779
- ]
3780
- },
3781
- "MarkPropDef<string,(string|null)>": {
3782
- "anyOf": [
3783
- {
3784
- "$ref": "#/definitions/MarkPropFieldOrDatumOrExprDef%3Cstring%2CType%3E"
3785
- },
3786
- {
3787
- "$ref": "#/definitions/ValueDef%3C(string%7Cnull)%3E"
3788
- }
3789
- ]
3790
- },
3791
- "MarkPropDef<string,number>": {
3792
- "anyOf": [
3793
- {
3794
- "$ref": "#/definitions/MarkPropFieldOrDatumOrExprDef%3Cstring%2CType%3E"
3795
- },
3796
- {
3797
- "$ref": "#/definitions/ValueDef%3Cnumber%3E"
3798
- }
3799
- ]
3800
- },
3801
- "MarkPropExprDef": {
3802
- "additionalProperties": false,
3803
- "properties": {
3804
- "expr": {
3805
- "description": "An expression. Properties of the data can be accessed through the `datum` object.",
3806
- "type": "string"
3807
- },
3808
- "resolutionChannel": {
3809
- "$ref": "#/definitions/ChannelWithScale",
3810
- "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
4159
+ "$ref": "#/definitions/ExprRef"
4160
+ }
4161
+ ]
3811
4162
  },
3812
- "scale": {
4163
+ "x2": {
3813
4164
  "anyOf": [
3814
4165
  {
3815
- "$ref": "#/definitions/Scale"
4166
+ "type": "number"
3816
4167
  },
3817
4168
  {
3818
- "type": "null"
4169
+ "$ref": "#/definitions/ExprRef"
3819
4170
  }
3820
- ],
3821
- "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
3822
- },
3823
- "title": {
3824
- "description": "A title for the field. If `null`, the title will be removed.",
3825
- "type": [
3826
- "string",
3827
- "null"
3828
4171
  ]
3829
4172
  },
3830
- "type": {
3831
- "$ref": "#/definitions/Type"
3832
- }
3833
- },
3834
- "required": [
3835
- "expr",
3836
- "type"
3837
- ],
3838
- "type": "object"
3839
- },
3840
- "MarkPropFieldDef<string,Type>": {
3841
- "additionalProperties": false,
3842
- "description": "Field definition of a mark property, which can contain a legend.",
3843
- "properties": {
3844
- "field": {
3845
- "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
3846
- "type": "string"
3847
- },
3848
- "resolutionChannel": {
3849
- "$ref": "#/definitions/ChannelWithScale",
3850
- "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
4173
+ "xOffset": {
4174
+ "description": "Offsets of the `x` and `x2` coordinates in pixels. The offset is applied after the viewport scaling and translation.\n\n**Default value:** `0`",
4175
+ "type": "number"
3851
4176
  },
3852
- "scale": {
4177
+ "y": {
3853
4178
  "anyOf": [
3854
4179
  {
3855
- "$ref": "#/definitions/Scale"
4180
+ "type": "number"
3856
4181
  },
3857
4182
  {
3858
- "type": "null"
4183
+ "$ref": "#/definitions/ExprRef"
3859
4184
  }
3860
- ],
3861
- "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
3862
- },
3863
- "title": {
3864
- "description": "A title for the field. If `null`, the title will be removed.",
3865
- "type": [
3866
- "string",
3867
- "null"
3868
4185
  ]
3869
4186
  },
3870
- "type": {
3871
- "$ref": "#/definitions/Type"
3872
- }
3873
- },
3874
- "required": [
3875
- "type"
3876
- ],
3877
- "type": "object"
3878
- },
3879
- "MarkPropFieldDef<string,TypeForShape>": {
3880
- "additionalProperties": false,
3881
- "description": "Field definition of a mark property, which can contain a legend.",
3882
- "properties": {
3883
- "field": {
3884
- "description": "__Required.__ A string defining the name of the field from which to pull a data value or an object defining iterated values from the [`repeat`](https://vega.github.io/vega-lite/docs/repeat.html) operator.\n\n__See also:__ [`field`](https://vega.github.io/vega-lite/docs/field.html) documentation.\n\n__Notes:__ 1) Dots (`.`) and brackets (`[` and `]`) can be used to access nested objects (e.g., `\"field\": \"foo.bar\"` and `\"field\": \"foo['bar']\"`). If field names contain dots or brackets but are not nested, you can use `\\\\` to escape dots and brackets (e.g., `\"a\\\\.b\"` and `\"a\\\\[0\\\\]\"`). See more details about escaping in the [field documentation](https://vega.github.io/vega-lite/docs/field.html). 2) `field` is not required if `aggregate` is `count`.",
3885
- "type": "string"
3886
- },
3887
- "resolutionChannel": {
3888
- "$ref": "#/definitions/ChannelWithScale",
3889
- "description": "An alternative channel for scale resolution.\n\nThis is mainly for internal use and allows using `color` channel to resolve `fill` and `stroke` channels under certain circumstances."
3890
- },
3891
- "scale": {
4187
+ "y2": {
3892
4188
  "anyOf": [
3893
4189
  {
3894
- "$ref": "#/definitions/Scale"
4190
+ "type": "number"
3895
4191
  },
3896
4192
  {
3897
- "type": "null"
4193
+ "$ref": "#/definitions/ExprRef"
3898
4194
  }
3899
- ],
3900
- "description": "An object defining properties of the channel's scale, which is the function that transforms values in the data domain (numbers, dates, strings, etc) to visual values (pixels, colors, sizes) of the encoding channels.\n\nIf `null`, the scale will be [disabled and the data value will be directly encoded](https://vega.github.io/vega-lite/docs/scale.html#disable).\n\n__Default value:__ If undefined, default [scale properties](https://vega.github.io/vega-lite/docs/scale.html) are applied.\n\n__See also:__ [`scale`](https://vega.github.io/vega-lite/docs/scale.html) documentation."
3901
- },
3902
- "title": {
3903
- "description": "A title for the field. If `null`, the title will be removed.",
3904
- "type": [
3905
- "string",
3906
- "null"
3907
4195
  ]
3908
4196
  },
3909
- "type": {
3910
- "$ref": "#/definitions/TypeForShape"
4197
+ "yOffset": {
4198
+ "description": "Offsets of the `y` and `y2` coordinates in pixels. The offset is applied after the viewport scaling and translation.\n\n**Default value:** `0`",
4199
+ "type": "number"
3911
4200
  }
3912
4201
  },
3913
4202
  "required": [
@@ -3915,29 +4204,42 @@
3915
4204
  ],
3916
4205
  "type": "object"
3917
4206
  },
3918
- "MarkPropFieldOrDatumOrExprDef<string,Type>": {
4207
+ "MarkPropDef<(string|null),TypeForShape>": {
4208
+ "anyOf": [
4209
+ {
4210
+ "$ref": "#/definitions/FieldOrDatumDefWithCondition%3CMarkPropFieldDef%3CTypeForShape%3E%2C(string%7Cnull)%3E"
4211
+ },
4212
+ {
4213
+ "$ref": "#/definitions/FieldOrDatumDefWithCondition%3CDatumDef%2C(string%7Cnull)%3E"
4214
+ },
4215
+ {
4216
+ "$ref": "#/definitions/ValueDefWithCondition%3C(string%7Cnull)%3E"
4217
+ }
4218
+ ]
4219
+ },
4220
+ "MarkPropDef<(string|null)>": {
3919
4221
  "anyOf": [
3920
4222
  {
3921
- "$ref": "#/definitions/MarkPropFieldDef%3Cstring%2CType%3E"
4223
+ "$ref": "#/definitions/FieldOrDatumDefWithCondition%3CMarkPropFieldDef%3CType%3E%2C(string%7Cnull)%3E"
3922
4224
  },
3923
4225
  {
3924
- "$ref": "#/definitions/MarkPropDatumDef%3CType%3E"
4226
+ "$ref": "#/definitions/FieldOrDatumDefWithCondition%3CDatumDef%2C(string%7Cnull)%3E"
3925
4227
  },
3926
4228
  {
3927
- "$ref": "#/definitions/MarkPropExprDef"
4229
+ "$ref": "#/definitions/ValueDefWithCondition%3C(string%7Cnull)%3E"
3928
4230
  }
3929
4231
  ]
3930
4232
  },
3931
- "MarkPropFieldOrDatumOrExprDef<string,TypeForShape>": {
4233
+ "MarkPropDef<number>": {
3932
4234
  "anyOf": [
3933
4235
  {
3934
- "$ref": "#/definitions/MarkPropFieldDef%3Cstring%2CTypeForShape%3E"
4236
+ "$ref": "#/definitions/FieldOrDatumDefWithCondition%3CMarkPropFieldDef%3CType%3E%2Cnumber%3E"
3935
4237
  },
3936
4238
  {
3937
- "$ref": "#/definitions/MarkPropDatumDef%3CTypeForShape%3E"
4239
+ "$ref": "#/definitions/FieldOrDatumDefWithCondition%3CDatumDef%2Cnumber%3E"
3938
4240
  },
3939
4241
  {
3940
- "$ref": "#/definitions/MarkPropExprDef"
4242
+ "$ref": "#/definitions/ValueDefWithCondition%3Cnumber%3E"
3941
4243
  }
3942
4244
  ]
3943
4245
  },
@@ -4014,8 +4316,8 @@
4014
4316
  },
4015
4317
  "type": "array"
4016
4318
  },
4017
- "NumericMarkPropDef<string>": {
4018
- "$ref": "#/definitions/MarkPropDef%3Cstring%2Cnumber%3E"
4319
+ "NumericMarkPropDef": {
4320
+ "$ref": "#/definitions/MarkPropDef%3Cnumber%3E"
4019
4321
  },
4020
4322
  "NumericValueDef": {
4021
4323
  "$ref": "#/definitions/ValueDef%3Cnumber%3E"
@@ -4061,6 +4363,16 @@
4061
4363
  },
4062
4364
  "type": "object"
4063
4365
  },
4366
+ "Parameter": {
4367
+ "anyOf": [
4368
+ {
4369
+ "$ref": "#/definitions/VariableParameter"
4370
+ },
4371
+ {
4372
+ "$ref": "#/definitions/SelectionParameter"
4373
+ }
4374
+ ]
4375
+ },
4064
4376
  "Parse": {
4065
4377
  "additionalProperties": {
4066
4378
  "$ref": "#/definitions/ParseValue"
@@ -4152,7 +4464,43 @@
4152
4464
  ],
4153
4465
  "type": "object"
4154
4466
  },
4155
- "Position2Def<string>": {
4467
+ "PointSelectionConfig": {
4468
+ "additionalProperties": false,
4469
+ "properties": {
4470
+ "encodings": {
4471
+ "description": "An array of encoding channels. The corresponding data field values must match for a data tuple to fall within the selection.\n\n__See also:__ The [projection with `encodings` and `fields` section](https://vega.github.io/vega-lite/docs/selection.html#project) in the documentation.",
4472
+ "items": {
4473
+ "$ref": "#/definitions/ChannelWithScale"
4474
+ },
4475
+ "type": "array"
4476
+ },
4477
+ "fields": {
4478
+ "description": "An array of field names whose values must match for a data tuple to fall within the selection.\n\n__See also:__ The [projection with `encodings` and `fields` section](https://vega.github.io/vega-lite/docs/selection.html#project) in the documentation.",
4479
+ "items": {
4480
+ "type": "string"
4481
+ },
4482
+ "type": "array"
4483
+ },
4484
+ "on": {
4485
+ "enum": [
4486
+ "click",
4487
+ "mouseover",
4488
+ "pointerover"
4489
+ ],
4490
+ "type": "string"
4491
+ },
4492
+ "type": {
4493
+ "const": "point",
4494
+ "description": "Determines the default event processing and data query for the selection. Vega-Lite currently supports two selection types:\n\n- `\"point\"` -- to select multiple discrete data values; the first value is selected on `click` and additional values toggled on shift-click.\n- `\"interval\"` -- to select a continuous range of data values on `drag`.",
4495
+ "type": "string"
4496
+ }
4497
+ },
4498
+ "required": [
4499
+ "type"
4500
+ ],
4501
+ "type": "object"
4502
+ },
4503
+ "Position2Def": {
4156
4504
  "anyOf": [
4157
4505
  {
4158
4506
  "additionalProperties": false,
@@ -4206,6 +4554,9 @@
4206
4554
  "string",
4207
4555
  "null"
4208
4556
  ]
4557
+ },
4558
+ "type": {
4559
+ "$ref": "#/definitions/Type"
4209
4560
  }
4210
4561
  },
4211
4562
  "type": "object"
@@ -4222,6 +4573,16 @@
4222
4573
  "expr": {
4223
4574
  "description": "An expression. Properties of the data can be accessed through the `datum` object.",
4224
4575
  "type": "string"
4576
+ },
4577
+ "title": {
4578
+ "description": "A title for the field. If `null`, the title will be removed.",
4579
+ "type": [
4580
+ "string",
4581
+ "null"
4582
+ ]
4583
+ },
4584
+ "type": {
4585
+ "$ref": "#/definitions/Type"
4225
4586
  }
4226
4587
  },
4227
4588
  "required": [
@@ -4296,10 +4657,10 @@
4296
4657
  ],
4297
4658
  "type": "object"
4298
4659
  },
4299
- "PositionDef<string>": {
4660
+ "PositionDef": {
4300
4661
  "anyOf": [
4301
4662
  {
4302
- "$ref": "#/definitions/PositionFieldDef%3Cstring%3E"
4663
+ "$ref": "#/definitions/PositionFieldDef"
4303
4664
  },
4304
4665
  {
4305
4666
  "$ref": "#/definitions/ChromPosDef"
@@ -4339,6 +4700,13 @@
4339
4700
  "description": "An expression. Properties of the data can be accessed through the `datum` object.",
4340
4701
  "type": "string"
4341
4702
  },
4703
+ "title": {
4704
+ "description": "A title for the field. If `null`, the title will be removed.",
4705
+ "type": [
4706
+ "string",
4707
+ "null"
4708
+ ]
4709
+ },
4342
4710
  "type": {
4343
4711
  "$ref": "#/definitions/Type"
4344
4712
  }
@@ -4349,7 +4717,7 @@
4349
4717
  ],
4350
4718
  "type": "object"
4351
4719
  },
4352
- "PositionFieldDef<string>": {
4720
+ "PositionFieldDef": {
4353
4721
  "additionalProperties": false,
4354
4722
  "properties": {
4355
4723
  "axis": {
@@ -4664,7 +5032,7 @@
4664
5032
  "params": {
4665
5033
  "description": "Dynamic variables that parameterize a visualization.",
4666
5034
  "items": {
4667
- "$ref": "#/definitions/VariableParameter"
5035
+ "$ref": "#/definitions/Parameter"
4668
5036
  },
4669
5037
  "type": "array"
4670
5038
  },
@@ -4890,7 +5258,7 @@
4890
5258
  "params": {
4891
5259
  "description": "Dynamic variables that parameterize a visualization.",
4892
5260
  "items": {
4893
- "$ref": "#/definitions/VariableParameter"
5261
+ "$ref": "#/definitions/Parameter"
4894
5262
  },
4895
5263
  "type": "array"
4896
5264
  },
@@ -5087,7 +5455,7 @@
5087
5455
  "params": {
5088
5456
  "description": "Dynamic variables that parameterize a visualization.",
5089
5457
  "items": {
5090
- "$ref": "#/definitions/VariableParameter"
5458
+ "$ref": "#/definitions/Parameter"
5091
5459
  },
5092
5460
  "type": "array"
5093
5461
  },
@@ -5313,7 +5681,7 @@
5313
5681
  "params": {
5314
5682
  "description": "Dynamic variables that parameterize a visualization.",
5315
5683
  "items": {
5316
- "$ref": "#/definitions/VariableParameter"
5684
+ "$ref": "#/definitions/Parameter"
5317
5685
  },
5318
5686
  "type": "array"
5319
5687
  },
@@ -5529,7 +5897,7 @@
5529
5897
  "params": {
5530
5898
  "description": "Dynamic variables that parameterize a visualization.",
5531
5899
  "items": {
5532
- "$ref": "#/definitions/VariableParameter"
5900
+ "$ref": "#/definitions/Parameter"
5533
5901
  },
5534
5902
  "type": "array"
5535
5903
  },
@@ -5728,7 +6096,7 @@
5728
6096
  "params": {
5729
6097
  "description": "Dynamic variables that parameterize a visualization.",
5730
6098
  "items": {
5731
- "$ref": "#/definitions/VariableParameter"
6099
+ "$ref": "#/definitions/Parameter"
5732
6100
  },
5733
6101
  "type": "array"
5734
6102
  },
@@ -6050,7 +6418,7 @@
6050
6418
  "params": {
6051
6419
  "description": "Dynamic variables that parameterize a visualization.",
6052
6420
  "items": {
6053
- "$ref": "#/definitions/VariableParameter"
6421
+ "$ref": "#/definitions/Parameter"
6054
6422
  },
6055
6423
  "type": "array"
6056
6424
  },
@@ -6520,6 +6888,68 @@
6520
6888
  ],
6521
6889
  "type": "string"
6522
6890
  },
6891
+ "SelectionFilterParams": {
6892
+ "additionalProperties": false,
6893
+ "properties": {
6894
+ "empty": {
6895
+ "description": "If true, the filter retains all data objects when the selection is empty.\n\n**Default:** `true`",
6896
+ "type": "boolean"
6897
+ },
6898
+ "param": {
6899
+ "description": "A selection parameter. The data object is removed if it is not part of the selection.",
6900
+ "type": "string"
6901
+ },
6902
+ "type": {
6903
+ "const": "filter",
6904
+ "description": "The type of the transform to be applied",
6905
+ "type": "string"
6906
+ }
6907
+ },
6908
+ "required": [
6909
+ "param",
6910
+ "type"
6911
+ ],
6912
+ "type": "object"
6913
+ },
6914
+ "SelectionParameter": {
6915
+ "additionalProperties": false,
6916
+ "properties": {
6917
+ "name": {
6918
+ "description": "A unique name for the variable parameter. Parameter names should be valid JavaScript identifiers: they should contain only alphanumeric characters (or \"$\", or \"_\") and may not start with a digit. Reserved keywords that may not be used as parameter names are: \"datum\".",
6919
+ "type": "string"
6920
+ },
6921
+ "push": {
6922
+ "const": "outer",
6923
+ "type": "string"
6924
+ },
6925
+ "select": {
6926
+ "anyOf": [
6927
+ {
6928
+ "$ref": "#/definitions/SelectionType"
6929
+ },
6930
+ {
6931
+ "$ref": "#/definitions/PointSelectionConfig"
6932
+ },
6933
+ {
6934
+ "$ref": "#/definitions/IntervalSelectionConfig"
6935
+ }
6936
+ ],
6937
+ "description": "Determines the default event processing and data query for the selection. Vega-Lite currently supports two selection types:\n\n- `\"point\"` -- to select multiple discrete data values; the first value is selected on `click` and additional values toggled on shift-click.\n- `\"interval\"` -- to select a continuous range of data values on `drag`."
6938
+ }
6939
+ },
6940
+ "required": [
6941
+ "name",
6942
+ "select"
6943
+ ],
6944
+ "type": "object"
6945
+ },
6946
+ "SelectionType": {
6947
+ "enum": [
6948
+ "point",
6949
+ "interval"
6950
+ ],
6951
+ "type": "string"
6952
+ },
6523
6953
  "SequenceGenerator": {
6524
6954
  "additionalProperties": false,
6525
6955
  "properties": {
@@ -6591,8 +7021,8 @@
6591
7021
  ],
6592
7022
  "type": "object"
6593
7023
  },
6594
- "ShapeDef<string>": {
6595
- "$ref": "#/definitions/MarkPropDef%3Cstring%2C(string%7Cnull)%2CTypeForShape%3E"
7024
+ "ShapeDef": {
7025
+ "$ref": "#/definitions/MarkPropDef%3C(string%7Cnull)%2CTypeForShape%3E"
6596
7026
  },
6597
7027
  "SizeDef": {
6598
7028
  "additionalProperties": false,
@@ -6686,6 +7116,12 @@
6686
7116
  "StringDatumDef": {
6687
7117
  "additionalProperties": false,
6688
7118
  "properties": {
7119
+ "band": {
7120
+ "description": "Relative position on band scale. For example, the marks will be positioned at the beginning of the band if set to `0`, and at the middle of the band if set to `0.5`.",
7121
+ "maximum": 1,
7122
+ "minimum": 0,
7123
+ "type": "number"
7124
+ },
6689
7125
  "datum": {
6690
7126
  "anyOf": [
6691
7127
  {
@@ -6707,11 +7143,14 @@
6707
7143
  "string",
6708
7144
  "null"
6709
7145
  ]
7146
+ },
7147
+ "type": {
7148
+ "$ref": "#/definitions/Type"
6710
7149
  }
6711
7150
  },
6712
7151
  "type": "object"
6713
7152
  },
6714
- "StringFieldDef<string>": {
7153
+ "StringFieldDef": {
6715
7154
  "additionalProperties": false,
6716
7155
  "properties": {
6717
7156
  "field": {
@@ -6745,10 +7184,10 @@
6745
7184
  ],
6746
7185
  "type": "object"
6747
7186
  },
6748
- "TextDef<string>": {
7187
+ "TextDef": {
6749
7188
  "anyOf": [
6750
7189
  {
6751
- "$ref": "#/definitions/StringFieldDef%3Cstring%3E"
7190
+ "$ref": "#/definitions/StringFieldDef"
6752
7191
  },
6753
7192
  {
6754
7193
  "$ref": "#/definitions/StringDatumDef"
@@ -7066,7 +7505,7 @@
7066
7505
  "params": {
7067
7506
  "description": "Dynamic variables that parameterize a visualization.",
7068
7507
  "items": {
7069
- "$ref": "#/definitions/VariableParameter"
7508
+ "$ref": "#/definitions/Parameter"
7070
7509
  },
7071
7510
  "type": "array"
7072
7511
  },
@@ -7292,7 +7731,7 @@
7292
7731
  "params": {
7293
7732
  "description": "Dynamic variables that parameterize a visualization.",
7294
7733
  "items": {
7295
- "$ref": "#/definitions/VariableParameter"
7734
+ "$ref": "#/definitions/Parameter"
7296
7735
  },
7297
7736
  "type": "array"
7298
7737
  },
@@ -7423,9 +7862,51 @@
7423
7862
  ],
7424
7863
  "type": "object"
7425
7864
  },
7426
- "ValueDef<(string|null)>": {
7865
+ "ValueDef<number>": {
7866
+ "additionalProperties": false,
7867
+ "properties": {
7868
+ "title": {
7869
+ "description": "A title for the field. If `null`, the title will be removed.",
7870
+ "type": [
7871
+ "string",
7872
+ "null"
7873
+ ]
7874
+ },
7875
+ "value": {
7876
+ "anyOf": [
7877
+ {
7878
+ "type": "number"
7879
+ },
7880
+ {
7881
+ "$ref": "#/definitions/ExprRef"
7882
+ }
7883
+ ],
7884
+ "description": "A constant value in visual domain (e.g., `\"red\"` / `\"#0099ff\"`, values between `0` to `1` for opacity)."
7885
+ }
7886
+ },
7887
+ "required": [
7888
+ "value"
7889
+ ],
7890
+ "type": "object"
7891
+ },
7892
+ "ValueDefWithCondition<(string|null)>": {
7427
7893
  "additionalProperties": false,
7894
+ "minProperties": 1,
7428
7895
  "properties": {
7896
+ "condition": {
7897
+ "anyOf": [
7898
+ {
7899
+ "$ref": "#/definitions/Conditional%3CFieldDef%3E"
7900
+ },
7901
+ {
7902
+ "$ref": "#/definitions/Conditional%3CDatumDef%3E"
7903
+ },
7904
+ {
7905
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(string%7Cnull%7CExprRef)%3E%3E"
7906
+ }
7907
+ ],
7908
+ "description": "A field definition or one or more value definition(s) with a parameter predicate."
7909
+ },
7429
7910
  "title": {
7430
7911
  "description": "A title for the field. If `null`, the title will be removed.",
7431
7912
  "type": [
@@ -7448,14 +7929,26 @@
7448
7929
  "description": "A constant value in visual domain (e.g., `\"red\"` / `\"#0099ff\"`, values between `0` to `1` for opacity)."
7449
7930
  }
7450
7931
  },
7451
- "required": [
7452
- "value"
7453
- ],
7454
7932
  "type": "object"
7455
7933
  },
7456
- "ValueDef<number>": {
7934
+ "ValueDefWithCondition<number>": {
7457
7935
  "additionalProperties": false,
7936
+ "minProperties": 1,
7458
7937
  "properties": {
7938
+ "condition": {
7939
+ "anyOf": [
7940
+ {
7941
+ "$ref": "#/definitions/Conditional%3CFieldDef%3E"
7942
+ },
7943
+ {
7944
+ "$ref": "#/definitions/Conditional%3CDatumDef%3E"
7945
+ },
7946
+ {
7947
+ "$ref": "#/definitions/Conditional%3CValueDef%3C(number%7CExprRef)%3E%3E"
7948
+ }
7949
+ ],
7950
+ "description": "A field definition or one or more value definition(s) with a parameter predicate."
7951
+ },
7459
7952
  "title": {
7460
7953
  "description": "A title for the field. If `null`, the title will be removed.",
7461
7954
  "type": [
@@ -7475,9 +7968,6 @@
7475
7968
  "description": "A constant value in visual domain (e.g., `\"red\"` / `\"#0099ff\"`, values between `0` to `1` for opacity)."
7476
7969
  }
7477
7970
  },
7478
- "required": [
7479
- "value"
7480
- ],
7481
7971
  "type": "object"
7482
7972
  },
7483
7973
  "VariableParameter": {
@@ -7495,6 +7985,10 @@
7495
7985
  "description": "A unique name for the variable parameter. Parameter names should be valid JavaScript identifiers: they should contain only alphanumeric characters (or \"$\", or \"_\") and may not start with a digit. Reserved keywords that may not be used as parameter names are: \"datum\".",
7496
7986
  "type": "string"
7497
7987
  },
7988
+ "push": {
7989
+ "const": "outer",
7990
+ "type": "string"
7991
+ },
7498
7992
  "value": {
7499
7993
  "description": "The [initial value](http://vega.github.io/vega-lite/docs/value.html) of the parameter.\n\n__Default value:__ `undefined`"
7500
7994
  }