@genome-spy/core 0.42.1 → 0.43.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 (68) hide show
  1. package/dist/bundle/index.es.js +2329 -2298
  2. package/dist/bundle/index.js +68 -65
  3. package/dist/schema.json +251 -1
  4. package/dist/src/data/collector.d.ts.map +1 -1
  5. package/dist/src/data/collector.js +28 -2
  6. package/dist/src/data/sources/dataSourceFactory.d.ts +7 -7
  7. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  8. package/dist/src/data/sources/dataSourceFactory.js +9 -9
  9. package/dist/src/data/sources/{dynamic → lazy}/README.md +2 -2
  10. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -0
  11. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -0
  12. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -0
  13. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -0
  14. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -0
  15. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -0
  16. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -0
  17. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -0
  18. package/dist/src/data/sources/{dynamic → lazy}/singleAxisLazySource.js +3 -3
  19. package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -0
  20. package/dist/src/data/sources/lazy/tabixSource.d.ts.map +1 -0
  21. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  22. package/dist/src/data/transforms/regexFold.js +6 -8
  23. package/dist/src/encoder/encoder.d.ts +1 -1
  24. package/dist/src/encoder/encoder.d.ts.map +1 -1
  25. package/dist/src/gl/arrayBuilder.d.ts +0 -1
  26. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  27. package/dist/src/gl/arrayBuilder.js +46 -32
  28. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  29. package/dist/src/gl/dataToVertices.js +7 -3
  30. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  31. package/dist/src/gl/glslScaleGenerator.js +3 -1
  32. package/dist/src/marks/mark.d.ts.map +1 -1
  33. package/dist/src/marks/mark.js +9 -4
  34. package/dist/src/spec/channel.d.ts +14 -1
  35. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  36. package/dist/src/view/flowBuilder.js +11 -4
  37. package/dist/src/view/unitView.d.ts +1 -1
  38. package/dist/src/view/unitView.d.ts.map +1 -1
  39. package/package.json +2 -2
  40. package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts.map +0 -1
  41. package/dist/src/data/sources/dynamic/axisTickSource.d.ts.map +0 -1
  42. package/dist/src/data/sources/dynamic/bamSource.d.ts.map +0 -1
  43. package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +0 -1
  44. package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +0 -1
  45. package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +0 -1
  46. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +0 -1
  47. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +0 -1
  48. package/dist/src/data/sources/dynamic/singleAxisWindowedSource.d.ts.map +0 -1
  49. package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +0 -1
  50. /package/dist/src/data/sources/{dynamic → lazy}/axisGenomeSource.d.ts +0 -0
  51. /package/dist/src/data/sources/{dynamic → lazy}/axisGenomeSource.js +0 -0
  52. /package/dist/src/data/sources/{dynamic → lazy}/axisTickSource.d.ts +0 -0
  53. /package/dist/src/data/sources/{dynamic → lazy}/axisTickSource.js +0 -0
  54. /package/dist/src/data/sources/{dynamic → lazy}/bamSource.d.ts +0 -0
  55. /package/dist/src/data/sources/{dynamic → lazy}/bamSource.js +0 -0
  56. /package/dist/src/data/sources/{dynamic → lazy}/bigBedSource.d.ts +0 -0
  57. /package/dist/src/data/sources/{dynamic → lazy}/bigBedSource.js +0 -0
  58. /package/dist/src/data/sources/{dynamic → lazy}/bigWigSource.d.ts +0 -0
  59. /package/dist/src/data/sources/{dynamic → lazy}/bigWigSource.js +0 -0
  60. /package/dist/src/data/sources/{dynamic → lazy}/gff3Source.d.ts +0 -0
  61. /package/dist/src/data/sources/{dynamic → lazy}/gff3Source.js +0 -0
  62. /package/dist/src/data/sources/{dynamic → lazy}/indexedFastaSource.d.ts +0 -0
  63. /package/dist/src/data/sources/{dynamic → lazy}/indexedFastaSource.js +0 -0
  64. /package/dist/src/data/sources/{dynamic → lazy}/singleAxisLazySource.d.ts +0 -0
  65. /package/dist/src/data/sources/{dynamic → lazy}/singleAxisWindowedSource.d.ts +0 -0
  66. /package/dist/src/data/sources/{dynamic → lazy}/singleAxisWindowedSource.js +0 -0
  67. /package/dist/src/data/sources/{dynamic → lazy}/tabixSource.d.ts +0 -0
  68. /package/dist/src/data/sources/{dynamic → lazy}/tabixSource.js +0 -0
package/dist/schema.json CHANGED
@@ -1113,7 +1113,257 @@
1113
1113
  "description": "For internal use"
1114
1114
  },
1115
1115
  "x": {
1116
- "$ref": "#/definitions/PositionDef%3Cstring%3E",
1116
+ "anyOf": [
1117
+ {
1118
+ "additionalProperties": false,
1119
+ "properties": {
1120
+ "axis": {
1121
+ "anyOf": [
1122
+ {
1123
+ "$ref": "#/definitions/GenomeAxis"
1124
+ },
1125
+ {
1126
+ "type": "null"
1127
+ }
1128
+ ],
1129
+ "description": "An object defining properties of axis's gridlines, ticks and labels. If `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
1130
+ },
1131
+ "band": {
1132
+ "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`.",
1133
+ "maximum": 1,
1134
+ "minimum": 0,
1135
+ "type": "number"
1136
+ },
1137
+ "buildIndex": {
1138
+ "description": "Builds and index for efficient rendering of subsets of the data. This setting is useful when rendering large amounts of data and often only a small subset of the data is visible. An example of such a situation is a scatter plot spanning the whole genome.\n\nThis setting implicitly sorts the data by the field assigned on the `x` channel.",
1139
+ "type": "boolean"
1140
+ },
1141
+ "field": {
1142
+ "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`.",
1143
+ "type": "string"
1144
+ },
1145
+ "resolutionChannel": {
1146
+ "$ref": "#/definitions/ChannelWithScale",
1147
+ "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."
1148
+ },
1149
+ "scale": {
1150
+ "anyOf": [
1151
+ {
1152
+ "$ref": "#/definitions/Scale"
1153
+ },
1154
+ {
1155
+ "type": "null"
1156
+ }
1157
+ ],
1158
+ "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."
1159
+ },
1160
+ "title": {
1161
+ "description": "A title for the field. If `null`, the title will be removed.",
1162
+ "type": [
1163
+ "string",
1164
+ "null"
1165
+ ]
1166
+ },
1167
+ "type": {
1168
+ "$ref": "#/definitions/Type"
1169
+ }
1170
+ },
1171
+ "required": [
1172
+ "type"
1173
+ ],
1174
+ "type": "object"
1175
+ },
1176
+ {
1177
+ "additionalProperties": false,
1178
+ "properties": {
1179
+ "axis": {
1180
+ "anyOf": [
1181
+ {
1182
+ "$ref": "#/definitions/GenomeAxis"
1183
+ },
1184
+ {
1185
+ "type": "null"
1186
+ }
1187
+ ],
1188
+ "description": "An object defining properties of axis's gridlines, ticks and labels. If `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
1189
+ },
1190
+ "band": {
1191
+ "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`.",
1192
+ "maximum": 1,
1193
+ "minimum": 0,
1194
+ "type": "number"
1195
+ },
1196
+ "buildIndex": {
1197
+ "description": "Builds and index for efficient rendering of subsets of the data. This setting is useful when rendering large amounts of data and often only a small subset of the data is visible. An example of such a situation is a scatter plot spanning the whole genome.\n\nThis setting implicitly sorts the data by the field assigned on the `x` channel.",
1198
+ "type": "boolean"
1199
+ },
1200
+ "chrom": {
1201
+ "$ref": "#/definitions/FieldName",
1202
+ "description": "The field having the chromosome or contig."
1203
+ },
1204
+ "offset": {
1205
+ "description": "An offset or offsets that allow for adjusting the numbering base. The offset is subtracted from the positions.\n\nGenomeSpy uses internally zero-based indexing with half-open intervals. UCSC-based formats (BED, etc.) generally use this scheme. However, for example, VCF files use one-based indexing and must be adjusted by setting the offset to `1`.\n\n**Default:** `0`",
1206
+ "type": "number"
1207
+ },
1208
+ "pos": {
1209
+ "$ref": "#/definitions/FieldName",
1210
+ "description": "The field having an intra-chromosomal position."
1211
+ },
1212
+ "resolutionChannel": {
1213
+ "$ref": "#/definitions/ChannelWithScale",
1214
+ "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."
1215
+ },
1216
+ "scale": {
1217
+ "anyOf": [
1218
+ {
1219
+ "$ref": "#/definitions/Scale"
1220
+ },
1221
+ {
1222
+ "type": "null"
1223
+ }
1224
+ ],
1225
+ "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."
1226
+ },
1227
+ "title": {
1228
+ "description": "A title for the field. If `null`, the title will be removed.",
1229
+ "type": [
1230
+ "string",
1231
+ "null"
1232
+ ]
1233
+ },
1234
+ "type": {
1235
+ "const": "locus",
1236
+ "type": "string"
1237
+ }
1238
+ },
1239
+ "required": [
1240
+ "chrom",
1241
+ "type"
1242
+ ],
1243
+ "type": "object"
1244
+ },
1245
+ {
1246
+ "additionalProperties": false,
1247
+ "properties": {
1248
+ "axis": {
1249
+ "anyOf": [
1250
+ {
1251
+ "$ref": "#/definitions/GenomeAxis"
1252
+ },
1253
+ {
1254
+ "type": "null"
1255
+ }
1256
+ ],
1257
+ "description": "An object defining properties of axis's gridlines, ticks and labels. If `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
1258
+ },
1259
+ "band": {
1260
+ "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`.",
1261
+ "maximum": 1,
1262
+ "minimum": 0,
1263
+ "type": "number"
1264
+ },
1265
+ "buildIndex": {
1266
+ "description": "Builds and index for efficient rendering of subsets of the data. This setting is useful when rendering large amounts of data and often only a small subset of the data is visible. An example of such a situation is a scatter plot spanning the whole genome.\n\nThis setting implicitly sorts the data by the field assigned on the `x` channel.",
1267
+ "type": "boolean"
1268
+ },
1269
+ "datum": {
1270
+ "$ref": "#/definitions/Scalar",
1271
+ "description": "A constant value in data domain."
1272
+ },
1273
+ "resolutionChannel": {
1274
+ "$ref": "#/definitions/ChannelWithScale",
1275
+ "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."
1276
+ },
1277
+ "scale": {
1278
+ "anyOf": [
1279
+ {
1280
+ "$ref": "#/definitions/Scale"
1281
+ },
1282
+ {
1283
+ "type": "null"
1284
+ }
1285
+ ],
1286
+ "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."
1287
+ },
1288
+ "title": {
1289
+ "description": "A title for the field. If `null`, the title will be removed.",
1290
+ "type": [
1291
+ "string",
1292
+ "null"
1293
+ ]
1294
+ },
1295
+ "type": {
1296
+ "$ref": "#/definitions/Type"
1297
+ }
1298
+ },
1299
+ "required": [
1300
+ "type"
1301
+ ],
1302
+ "type": "object"
1303
+ },
1304
+ {
1305
+ "additionalProperties": false,
1306
+ "properties": {
1307
+ "axis": {
1308
+ "anyOf": [
1309
+ {
1310
+ "$ref": "#/definitions/GenomeAxis"
1311
+ },
1312
+ {
1313
+ "type": "null"
1314
+ }
1315
+ ],
1316
+ "description": "An object defining properties of axis's gridlines, ticks and labels. If `null`, the axis for the encoding channel will be removed.\n\n__Default value:__ If undefined, default [axis properties](https://vega.github.io/vega-lite/docs/axis.html) are applied.\n\n__See also:__ [`axis`](https://vega.github.io/vega-lite/docs/axis.html) documentation."
1317
+ },
1318
+ "band": {
1319
+ "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`.",
1320
+ "maximum": 1,
1321
+ "minimum": 0,
1322
+ "type": "number"
1323
+ },
1324
+ "buildIndex": {
1325
+ "description": "Builds and index for efficient rendering of subsets of the data. This setting is useful when rendering large amounts of data and often only a small subset of the data is visible. An example of such a situation is a scatter plot spanning the whole genome.\n\nThis setting implicitly sorts the data by the field assigned on the `x` channel.",
1326
+ "type": "boolean"
1327
+ },
1328
+ "expr": {
1329
+ "description": "An expression. Properties of the data can be accessed through the `datum` object.",
1330
+ "type": "string"
1331
+ },
1332
+ "type": {
1333
+ "$ref": "#/definitions/Type"
1334
+ }
1335
+ },
1336
+ "required": [
1337
+ "expr",
1338
+ "type"
1339
+ ],
1340
+ "type": "object"
1341
+ },
1342
+ {
1343
+ "additionalProperties": false,
1344
+ "properties": {
1345
+ "buildIndex": {
1346
+ "description": "Builds and index for efficient rendering of subsets of the data. This setting is useful when rendering large amounts of data and often only a small subset of the data is visible. An example of such a situation is a scatter plot spanning the whole genome.\n\nThis setting implicitly sorts the data by the field assigned on the `x` channel.",
1347
+ "type": "boolean"
1348
+ },
1349
+ "title": {
1350
+ "description": "A title for the field. If `null`, the title will be removed.",
1351
+ "type": [
1352
+ "string",
1353
+ "null"
1354
+ ]
1355
+ },
1356
+ "value": {
1357
+ "description": "A constant value in visual domain (e.g., `\"red\"` / `\"#0099ff\"`, values between `0` to `1` for opacity).",
1358
+ "type": "number"
1359
+ }
1360
+ },
1361
+ "required": [
1362
+ "value"
1363
+ ],
1364
+ "type": "object"
1365
+ }
1366
+ ],
1117
1367
  "description": "X coordinates of the marks.\n\nThe `value` of this channel can be a number between zero and one."
1118
1368
  },
1119
1369
  "x2": {
@@ -1 +1 @@
1
- {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../../src/data/collector.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH;IAKI;;OAEG;IACH,qBAFW,OAAO,sBAAsB,EAAE,aAAa,EActD;IATG,qDAA2C;IAE3C,2CAA2C;IAC3C,WADW,QAAU,SAAS,KAAE,IAAI,CAAC,EAAE,CACpB;IAEnB,uFAAuF;IACvF,cADW,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,OAAO,eAAe,EAAE,IAAI,CAAC,CAC5B;IAKjC,cAOC;IANG,2CAA2C;IAC3C,OADW,OAAO,eAAe,EAAE,IAAI,CACxB;IAuFnB;;OAEG;IACH,WAFa,SAAS,OAAO,eAAe,EAAE,KAAK,CAAC,CAuBnD;IAED;;;OAGG;IACH,2BAFmB,OAAO,eAAe,EAAE,KAAK,KAAK,IAAI,QAUxD;IAED;;OAEG;IACH,uBAMC;IAED,qBAMC;CACJ;qBAnLyD,eAAe"}
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../../src/data/collector.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH;IAKI;;OAEG;IACH,qBAFW,OAAO,sBAAsB,EAAE,aAAa,EActD;IATG,qDAA2C;IAE3C,2CAA2C;IAC3C,WADW,QAAU,SAAS,KAAE,IAAI,CAAC,EAAE,CACpB;IAEnB,uFAAuF;IACvF,cADW,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,OAAO,eAAe,EAAE,IAAI,CAAC,CAC5B;IAKjC,cAOC;IANG,2CAA2C;IAC3C,OADW,OAAO,eAAe,EAAE,IAAI,CACxB;IA2FnB;;OAEG;IACH,WAFa,SAAS,OAAO,eAAe,EAAE,KAAK,CAAC,CAuBnD;IAED;;;OAGG;IACH,2BAFmB,OAAO,eAAe,EAAE,KAAK,KAAK,IAAI,QAUxD;IAED;;OAEG;IACH,uBAMC;IAED,qBAMC;CACJ;qBAvLyD,eAAe"}
@@ -87,8 +87,12 @@ export default class Collector extends FlowNode {
87
87
  const accessors = this.params.groupby.map((fieldName) =>
88
88
  field(fieldName)
89
89
  );
90
- // @ts-ignore
91
- const groups = group(this._data, ...accessors);
90
+ const groups =
91
+ accessors.length > 1
92
+ ? // @ts-ignore
93
+ group(this._data, ...accessors)
94
+ : // D3's group is SLOW!
95
+ groupBy(this._data, accessors[0]);
92
96
 
93
97
  this.facetBatches.clear();
94
98
  for (const [key, data] of iterateNestedMaps(groups)) {
@@ -182,3 +186,25 @@ export default class Collector extends FlowNode {
182
186
  }
183
187
  }
184
188
  }
189
+
190
+ /**
191
+ * Like D3's group but without InternMap, which is slow.
192
+ * TODO: Implement multi-level grouping
193
+ *
194
+ * @param {import("./flowNode.js").Datum[]} data
195
+ * @param {(data: import("./flowNode.js").Datum) => import("../spec/channel.js").Scalar} accessor
196
+ */
197
+ function groupBy(data, accessor) {
198
+ const groups = new Map();
199
+ for (let i = 0, n = data.length; i < n; i++) {
200
+ const datum = data[i];
201
+ const key = accessor(datum);
202
+ let group = groups.get(key);
203
+ if (!group) {
204
+ group = [];
205
+ groups.set(key, group);
206
+ }
207
+ group.push(datum);
208
+ }
209
+ return groups;
210
+ }
@@ -6,11 +6,11 @@ export default function createDataSource(params: Partial<import("../../spec/data
6
6
  import InlineSource from "./inlineSource.js";
7
7
  import UrlSource from "./urlSource.js";
8
8
  import SequenceSource from "./sequenceSource.js";
9
- import AxisTickSource from "./dynamic/axisTickSource.js";
10
- import AxisGenomeSource from "./dynamic/axisGenomeSource.js";
11
- import IndexedFastaSource from "./dynamic/indexedFastaSource.js";
12
- import BigWigSource from "./dynamic/bigWigSource.js";
13
- import BigBedSource from "./dynamic/bigBedSource.js";
14
- import BamSource from "./dynamic/bamSource.js";
15
- import Gff3Source from "./dynamic/gff3Source.js";
9
+ import AxisTickSource from "./lazy/axisTickSource.js";
10
+ import AxisGenomeSource from "./lazy/axisGenomeSource.js";
11
+ import IndexedFastaSource from "./lazy/indexedFastaSource.js";
12
+ import BigWigSource from "./lazy/bigWigSource.js";
13
+ import BigBedSource from "./lazy/bigBedSource.js";
14
+ import BamSource from "./lazy/bamSource.js";
15
+ import Gff3Source from "./lazy/gff3Source.js";
16
16
  //# sourceMappingURL=dataSourceFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataSourceFactory.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataSourceFactory.js"],"names":[],"mappings":"AAWA;;;GAGG;AACH,iDAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,QAC1C,OAAO,oBAAoB,EAAE,OAAO,6JAgB9C;yBA7B0C,mBAAmB;sBACzB,gBAAgB;2BACD,qBAAqB;2BAC9C,6BAA6B;6BAC3B,+BAA+B;+BAC7B,iCAAiC;yBACvC,2BAA2B;yBAC3B,2BAA2B;sBAC9B,wBAAwB;uBACvB,yBAAyB"}
1
+ {"version":3,"file":"dataSourceFactory.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataSourceFactory.js"],"names":[],"mappings":"AAWA;;;GAGG;AACH,iDAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,QAC1C,OAAO,oBAAoB,EAAE,OAAO,6JAgB9C;yBA7B0C,mBAAmB;sBACzB,gBAAgB;2BACD,qBAAqB;2BAC9C,0BAA0B;6BACxB,4BAA4B;+BAC1B,8BAA8B;yBACpC,wBAAwB;yBACxB,wBAAwB;sBAC3B,qBAAqB;uBACpB,sBAAsB"}
@@ -1,13 +1,13 @@
1
1
  import InlineSource, { isInlineData } from "./inlineSource.js";
2
2
  import UrlSource, { isUrlData } from "./urlSource.js";
3
3
  import SequenceSource, { isSequenceGenerator } from "./sequenceSource.js";
4
- import AxisTickSource from "./dynamic/axisTickSource.js";
5
- import AxisGenomeSource from "./dynamic/axisGenomeSource.js";
6
- import IndexedFastaSource from "./dynamic/indexedFastaSource.js";
7
- import BigWigSource from "./dynamic/bigWigSource.js";
8
- import BigBedSource from "./dynamic/bigBedSource.js";
9
- import BamSource from "./dynamic/bamSource.js";
10
- import Gff3Source from "./dynamic/gff3Source.js";
4
+ import AxisTickSource from "./lazy/axisTickSource.js";
5
+ import AxisGenomeSource from "./lazy/axisGenomeSource.js";
6
+ import IndexedFastaSource from "./lazy/indexedFastaSource.js";
7
+ import BigWigSource from "./lazy/bigWigSource.js";
8
+ import BigBedSource from "./lazy/bigBedSource.js";
9
+ import BamSource from "./lazy/bamSource.js";
10
+ import Gff3Source from "./lazy/gff3Source.js";
11
11
 
12
12
  /**
13
13
  * @param {Partial<import("../../spec/data.js").Data>} params
@@ -21,7 +21,7 @@ export default function createDataSource(params, view) {
21
21
  } else if (isSequenceGenerator(params)) {
22
22
  return new SequenceSource(params, view);
23
23
  } else if (isLazyData(params)) {
24
- return createDynamicDataSource(params.lazy, view);
24
+ return createLazyDataSource(params.lazy, view);
25
25
  }
26
26
 
27
27
  throw new Error(
@@ -104,7 +104,7 @@ function isGff3Source(params) {
104
104
  * @param {import("../../spec/data.js").LazyDataParams} params
105
105
  * @param {import("../../view/view.js").default} view
106
106
  */
107
- function createDynamicDataSource(params, view) {
107
+ function createLazyDataSource(params, view) {
108
108
  if (isAxisTickSource(params)) {
109
109
  return new AxisTickSource(params, view);
110
110
  } else if (isAxisGenomeSource(params)) {
@@ -1,3 +1,3 @@
1
- # Dynamic data sources
1
+ # Lazy data sources
2
2
 
3
- ... that listen to changes in scale domains and propagates data dynamically.
3
+ ... that listen to changes in scale domains and propagates data lazily.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axisGenomeSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/axisGenomeSource.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IACI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,cAAc,QAC9C,OAAO,uBAAuB,EAAE,OAAO,EAIjD;CAKJ;iCAlBgC,2BAA2B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axisTickSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/axisTickSource.js"],"names":[],"mappings":"AAYA;;GAEG;AACH;IAMI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,aAAa,QAC7C,OAAO,uBAAuB,EAAE,OAAO,EAYjD;IAnBD;;OAEG;IACH,OAFU,OAAO,0BAA0B,EAAE,MAAM,EAAE,CAE1C;IAeP,sDAAoB;IAGxB,iCAkCC;CACJ;iCA9DgC,2BAA2B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bamSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/bamSource.js"],"names":[],"mappings":"AAGA;IAeI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,OAAO,QACvC,OAAO,uBAAuB,EAAE,OAAO,EAmDjD;IAhED;;;;;;;;OAQG;IACH,sBAFgB,MAAM,KAAK,MAAM,CAEH;IAkB1B,gDAAgC;IAQhC,iCA4BE;;CAmCT;qCAxGoC,+BAA+B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigBedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/bigBedSource.js"],"names":[],"mappings":"AAGA;IAOI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,UAAU,QAC1C,OAAO,uBAAuB,EAAE,OAAO,EA4CjD;IApDD,0CAA0C;IAC1C,QADW,OAAO,WAAW,EAAE,OAAO,CAC/B;IAEP,yCAAyC;IACzC,KADW,OAAO,WAAW,EAAE,MAAM,CACjC;IAkBA,mDAAgC;IAQhC,iCAqBE;CA4BT;qCAlFoC,+BAA+B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigWigSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/bigWigSource.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAOI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,UAAU,QAC1C,OAAO,uBAAuB,EAAE,OAAO,EAiDjD;IAnCG,mDAAgC;IAQhC,iCA0BE;IA+BN;;;OAGG;IAEH,uBAJW,MAAM,EAAE,kBACR,MAAM,iBA0BhB;;CACJ;qCA1HoC,+BAA+B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gff3Source.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/gff3Source.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAII;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,SAAS,QACzC,OAAO,uBAAuB,EAAE,OAAO,EASjD;IAED;;OAEG;IACH,sBAFW,MAAM,EAAE,OAUlB;;CACJ;wBAlCuB,kBAAkB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexedFastaSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/indexedFastaSource.js"],"names":[],"mappings":"AAGA;IACI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,gBAAgB,QAChD,OAAO,uBAAuB,EAAE,OAAO,EA+CjD;IAjCG,yDAAgC;IAQhC,iCAwBE;IATM,iDAKE;CA6BjB;qCA5EoC,+BAA+B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleAxisLazySource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisLazySource.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAOI;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,WACvC,OAAO,0BAA0B,EAAE,wBAAwB,EAiDrE;IAzDD;;;OAGG;IACH,4CAAuC;IASnC,8CAAgB;IAYhB,2EAA2E;IAC3E,SADW,OAAO,0BAA0B,EAAE,wBAAwB,CAChD;IAEtB,oEAA4D;IA+BhE;;;OAGG;IACH,wBAWC;IAED;;;;OAIG;IACH,oEAEC;IAED;;;;;;OAMG;IACH,wBAJW,MAAM,EAAE,iBACR,OAAO,yBAAyB,EAAE,gBAAgB,EAAE,iBAK9D;IAED;;;;;OAKG;IACH,mCAHW,OAAO,QAKjB;IAED;;;;;OAKG;IACH,gCAGC;IAQD;;;;;OAKG;IACH,8BAHW,OAAO,mBAAmB,EAAE,KAAK,EAAE,EAAE,QAkB/C;CACJ;uBAxJsB,kBAAkB"}
@@ -23,11 +23,11 @@ export default class SingleAxisLazySource extends DataSource {
23
23
 
24
24
  if (!channel) {
25
25
  throw new Error(
26
- `No channel has been specified for the dynamic data source. Must be either "x" or "y".`
26
+ `No channel has been specified for the lazy data source. Must be either "x" or "y".`
27
27
  );
28
28
  } else if (channel !== "x" && channel !== "y") {
29
29
  throw new Error(
30
- `Invalid channel specified for the dynamic data source: ${channel}. Must be either "x" or "y"`
30
+ `Invalid channel specified for the lazy data source: ${channel}. Must be either "x" or "y"`
31
31
  );
32
32
  }
33
33
 
@@ -37,7 +37,7 @@ export default class SingleAxisLazySource extends DataSource {
37
37
  this.scaleResolution = this.view.getScaleResolution(channel);
38
38
  if (!this.scaleResolution) {
39
39
  const sentences = [
40
- `The dynamic data source cannot find a resolved scale for channel "${channel}".`,
40
+ `The lazy data source cannot find a resolved scale for channel "${channel}".`,
41
41
  ];
42
42
  if (!(this.view instanceof UnitView)) {
43
43
  sentences.push(
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleAxisWindowedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisWindowedSource.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAQI;;;OAGG;IACH,kBAHU;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,CAGxB;IAEP;;;OAGG;IACH,0CAHW,OAAO,uBAAuB,EAAE,aAAa,QAmBvD;IAED;;;;OAIG;IACH,wBAFW,MAAM,EAAE,iBAiBlB;IAED;;;;;OAKG;IACH,iCAHW,MAAM,EAAE,iBAKlB;IAED;;;;;;;;;OASG;IACH,yCANW,MAAM,EAAE,4BACU,OAAO,mCAAmC,EAAE,0BAA0B,UAAU,WAAW,+BAqCvH;IAED;;;;;;;;OAQG;IACH,qCAJW,MAAM,EAAE,cACR,MAAM,YAWhB;IAED;;;;OAIG;IACH,+CAHW,MAAM,EAAE,WAUlB;;CACJ;iCAvJgC,2BAA2B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabixSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/tabixSource.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IAII;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,SAAS,QACzC,OAAO,uBAAuB,EAAE,OAAO,EA8CjD;IAhCG,kDAAgC;IAQhC,iCAuBE;IAoCN;;;;;OAKG;IACH,gCAHW,MAAM,EAAE,GACN,CAAC,EAAE,CAKf;;CACJ;qCAvGoC,+BAA+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"regexFold.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/regexFold.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH;IAKI;;OAEG;IACH,oBAFW,OAAO,yBAAyB,EAAE,eAAe,EAmI3D;IAfO,gBALO,GAAG,UAKe;CAgBpC;qBAjJsD,gBAAgB"}
1
+ {"version":3,"file":"regexFold.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/regexFold.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH;IAKI;;OAEG;IACH,oBAFW,OAAO,yBAAyB,EAAE,eAAe,EAiI3D;IAfO,gBALO,GAAG,UAKe;CAgBpC;qBA/IsD,gBAAgB"}
@@ -39,7 +39,7 @@ export default class RegexFoldTransform extends FlowNode {
39
39
  /** @type {string[]} */
40
40
  let includedColumns;
41
41
 
42
- /** @type {(datum: any, sampleId: string) => Record<string, any>} */
42
+ /** @type {(datum: any, sampleId: string, attrs: any[]) => Record<string, any>} */
43
43
  let create;
44
44
 
45
45
  /**
@@ -91,7 +91,7 @@ export default class RegexFoldTransform extends FlowNode {
91
91
  "]"
92
92
  ),
93
93
  JSON.stringify(sampleKey) + ": sampleId",
94
- ...as.map((a) => JSON.stringify(a) + ": null"),
94
+ ...as.map((a, i) => JSON.stringify(a) + `: datum[attrs[${i}]]`),
95
95
  ];
96
96
 
97
97
  // eslint-disable-next-line no-new-func
@@ -99,6 +99,7 @@ export default class RegexFoldTransform extends FlowNode {
99
99
  new Function(
100
100
  "datum",
101
101
  "sampleId",
102
+ "attrs",
102
103
  "return {\n" + props.join(",\n") + "\n};"
103
104
  )
104
105
  );
@@ -112,12 +113,9 @@ export default class RegexFoldTransform extends FlowNode {
112
113
  detectColumns(datum);
113
114
  }
114
115
 
115
- for (const [sampleId, attrs] of sampleAttrs) {
116
- const tidyRow = create(datum, sampleId);
117
- for (let i = 0; i < attrs.length; i++) {
118
- tidyRow[as[i]] = datum[attrs[i]];
119
- }
120
-
116
+ for (let i = 0; i < sampleAttrs.length; i++) {
117
+ const [sampleId, attrs] = sampleAttrs[i];
118
+ const tidyRow = create(datum, sampleId, attrs);
121
119
  this._propagate(tidyRow);
122
120
  }
123
121
  };
@@ -45,7 +45,7 @@ export function isChannelDefWithScale(channelDef: import("../spec/channel.js").C
45
45
  * @param {import("../view/unitView.js").default} view
46
46
  * @param {import("../spec/channel.js").Channel} channel
47
47
  */
48
- export function getChannelDefWithScale(view: import("../view/unitView.js").default, channel: import("../spec/channel.js").Channel): import("../spec/channel.js").MarkPropExprDef<import("../spec/channel.js").Type> | import("../spec/channel.js").MarkPropDatumDef<import("../spec/channel.js").Type> | import("../spec/channel.js").ChromPosDef | import("../spec/channel.js").PositionDatumDef | import("../spec/channel.js").MarkPropDatumDef<import("../spec/channel.js").TypeForShape> | import("../spec/channel.js").MarkPropFieldDef<string, import("../spec/channel.js").Type> | import("../spec/channel.js").PositionFieldDef<string> | import("../spec/channel.js").MarkPropFieldDef<string, import("../spec/channel.js").TypeForShape>;
48
+ export function getChannelDefWithScale(view: import("../view/unitView.js").default, channel: import("../spec/channel.js").Channel): import("../spec/channel.js").MarkPropExprDef<import("../spec/channel.js").Type> | import("../spec/channel.js").MarkPropDatumDef<import("../spec/channel.js").Type> | import("../spec/channel.js").ChromPosDef | import("../spec/channel.js").PositionDatumDef | (import("../spec/channel.js").ChromPosDefBase & import("../spec/channel.js").TitleMixins & import("../spec/channel.js").PositionMixins & import("../spec/channel.js").TypeMixins<"locus"> & import("../spec/channel.js").ScaleMixins & import("../spec/channel.js").XIndexDef) | (import("../spec/channel.js").ScaleMixins & import("../spec/channel.js").DatumDefBase & import("../spec/channel.js").TitleMixins & import("../spec/channel.js").TypeMixins<import("../spec/channel.js").Type> & import("../spec/channel.js").PositionMixins & import("../spec/channel.js").XIndexDef) | import("../spec/channel.js").MarkPropDatumDef<import("../spec/channel.js").TypeForShape> | import("../spec/channel.js").MarkPropFieldDef<string, import("../spec/channel.js").Type> | import("../spec/channel.js").PositionFieldDef<string> | (import("../spec/channel.js").FieldDefBase<string> & import("../spec/channel.js").TitleMixins & import("../spec/channel.js").TypeMixins<import("../spec/channel.js").Type> & import("../spec/channel.js").ScaleMixins & import("../spec/channel.js").PositionMixins & import("../spec/channel.js").XIndexDef) | import("../spec/channel.js").MarkPropFieldDef<string, import("../spec/channel.js").TypeForShape>;
49
49
  /**
50
50
  * @param {import("../spec/channel.js").ChannelDef} channelDef
51
51
  * @returns {channelDef is import("../spec/channel.js").TypeMixins<import("../spec/channel.js").Type>}
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../src/encoder/encoder.js"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,6CAJW,OAAO,kBAAkB,EAAE,OAAO,aAClC,OAAO,oBAAoB,EAAE,QAAQ,gGAsC/C;AAED;;;;;;;GAOG;AACH,0CANW,OAAO,oBAAoB,EAAE,UAAU,SACvC,GAAG,0IA2Fb;AAED;;;;;GAKG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,4FAKjD;AAED;;;GAGG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,mEAKjD;AAED;;;GAGG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,uDAKjD;AAED;;;GAGG;AACH,kDAHW,OAAO,oBAAoB,EAAE,UAAU,kEAWjD;AAED;;;GAGG;AACH,6CAHW,OAAO,qBAAqB,EAAE,OAAO,WACrC,OAAO,oBAAoB,EAAE,OAAO,klBAS9C;AAED;;;GAGG;AACH,iDAHW,OAAO,oBAAoB,EAAE,UAAU,4FAKjD;AAED;;;GAGG;AACH,0CAHW,OAAO,oBAAoB,EAAE,UAAU,0DAKjD;AAED;;;GAGG;AACH,sCAHW,OAAO,oBAAoB,EAAE,UAAU,sDAKjD;AAoBD;;;GAGG;AACH,oDAHW,OAAO,oBAAoB,EAAE,OAAO,oEAM9C;AAED;;;GAGG;AACH,6CAHW,OAAO,oBAAoB,EAAE,OAAO,6DAM9C;AAqBD;;;GAGG;AACH,4CAFW,MAAM,WAIhB;AAED;;;;GAIG;AACH,oDAFW,OAAO,oBAAoB,EAAE,OAAO,2DAS9C;AAED;;;;;GAKG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,wCAI9C;AAED;;;;GAIG;AACH,kDAFW,OAAO,oBAAoB,EAAE,OAAO,0CAM9C;AAED;;GAEG;AACH,wCAFW,OAAO,oBAAoB,EAAE,OAAO,WAI9C;AAED;;;;GAIG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,WAI9C;AAED;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,OAAO,4DAuB9C;AAED;;;;;GAKG;AACH,0CAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,GAAG,EAAE,CAsBjB;AAED;;;GAGG;AACH,gDAHW,OAAO,oBAAoB,EAAE,OAAO,UACzB,GAAG,KAAE,MAAM,CAmBhC;AA7LD;;GAEG;AACH,wCAFU,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,CAEb;AAEpD;;GAEG;AACH,0CAFU,OAAO,oBAAoB,EAAE,0BAA0B,EAAE,CAEX;AAExD;;GAEG;AACH,iCAFU,OAAO,oBAAoB,EAAE,iBAAiB,EAAE,CAKxD;AAoBF;;;;GAIG;AACH,gCAFU,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,oBAAoB,EAAE,0BAA0B,CAAC,CAAC,CAKtH;AAEF;;;;GAIG;AACH,8BAFU,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAInG"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../src/encoder/encoder.js"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,6CAJW,OAAO,kBAAkB,EAAE,OAAO,aAClC,OAAO,oBAAoB,EAAE,QAAQ,gGAsC/C;AAED;;;;;;;GAOG;AACH,0CANW,OAAO,oBAAoB,EAAE,UAAU,SACvC,GAAG,0IA2Fb;AAED;;;;;GAKG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,4FAKjD;AAED;;;GAGG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,mEAKjD;AAED;;;GAGG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,uDAKjD;AAED;;;GAGG;AACH,kDAHW,OAAO,oBAAoB,EAAE,UAAU,kEAWjD;AAED;;;GAGG;AACH,6CAHW,OAAO,qBAAqB,EAAE,OAAO,WACrC,OAAO,oBAAoB,EAAE,OAAO,27CAS9C;AAED;;;GAGG;AACH,iDAHW,OAAO,oBAAoB,EAAE,UAAU,4FAKjD;AAED;;;GAGG;AACH,0CAHW,OAAO,oBAAoB,EAAE,UAAU,0DAKjD;AAED;;;GAGG;AACH,sCAHW,OAAO,oBAAoB,EAAE,UAAU,sDAKjD;AAoBD;;;GAGG;AACH,oDAHW,OAAO,oBAAoB,EAAE,OAAO,oEAM9C;AAED;;;GAGG;AACH,6CAHW,OAAO,oBAAoB,EAAE,OAAO,6DAM9C;AAqBD;;;GAGG;AACH,4CAFW,MAAM,WAIhB;AAED;;;;GAIG;AACH,oDAFW,OAAO,oBAAoB,EAAE,OAAO,2DAS9C;AAED;;;;;GAKG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,wCAI9C;AAED;;;;GAIG;AACH,kDAFW,OAAO,oBAAoB,EAAE,OAAO,0CAM9C;AAED;;GAEG;AACH,wCAFW,OAAO,oBAAoB,EAAE,OAAO,WAI9C;AAED;;;;GAIG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,WAI9C;AAED;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,OAAO,4DAuB9C;AAED;;;;;GAKG;AACH,0CAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,GAAG,EAAE,CAsBjB;AAED;;;GAGG;AACH,gDAHW,OAAO,oBAAoB,EAAE,OAAO,UACzB,GAAG,KAAE,MAAM,CAmBhC;AA7LD;;GAEG;AACH,wCAFU,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,CAEb;AAEpD;;GAEG;AACH,0CAFU,OAAO,oBAAoB,EAAE,0BAA0B,EAAE,CAEX;AAExD;;GAEG;AACH,iCAFU,OAAO,oBAAoB,EAAE,iBAAiB,EAAE,CAKxD;AAoBF;;;;GAIG;AACH,gCAFU,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,oBAAoB,EAAE,0BAA0B,CAAC,CAAC,CAKtH;AAEF;;;;GAIG;AACH,8BAFU,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAInG"}
@@ -40,7 +40,6 @@ export default class ArrayBuilder {
40
40
  * @return {function(number|number[])}
41
41
  */
42
42
  createUpdater(attributeName: string, numComponents: number, arrayReference?: number[]): (arg0: number | number[]) => any;
43
- _unrollPushAll(): void;
44
43
  pushAll(): void;
45
44
  /**
46
45
  *
@@ -1 +1 @@
1
- {"version":3,"file":"arrayBuilder.d.ts","sourceRoot":"","sources":["../../../src/gl/arrayBuilder.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH;IAGI;;;OAGG;IACH,kBAFW,MAAM,EAehB;IAZG,aAAgB;IAEhB,wGAAwG;IACxG;YADmB,MAAM,GAAE;YAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAC;MACnF;IAEhB,kCAAkC;IAClC,SADW,OAAY,IAAI,CAAC,EAAE,CACb;IAEjB,qCAAqC;IACrC,cADW,QAAU,GAAG,KAAE,IAAI,CAAC,EAAE,CACX;IAEtB,oBAAoB;IAGxB;;;;OAIG;IACH,wBAHW,MAAM,YACN,iBAAiB,QAc3B;IAED;;;;;;OAMG;IACH,6BALW,MAAM,iBACN,MAAM,mBACN,MAAM,EAAE,UACE,MAAM,GAAC,MAAM,EAAE,SA8EnC;IAED,uBAsBC;IAED,gBAiBC;IAED;;;OAGG;IACH,uBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,qBAFW,MAAM,QAKhB;CACJ;;;;;;;;;cA/LkB,MAAM,KAAE,GAAG;;;;qBACpB,MAAM,EAAE;oBACR,MAAM"}
1
+ {"version":3,"file":"arrayBuilder.d.ts","sourceRoot":"","sources":["../../../src/gl/arrayBuilder.js"],"names":[],"mappings":"AASA;;;;;;;GAOG;AACH;IAGI;;;OAGG;IACH,kBAFW,MAAM,EAehB;IAZG,aAAgB;IAEhB,wGAAwG;IACxG;YADmB,MAAM,GAAE;YAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAC;MACnF;IAEhB,kCAAkC;IAClC,SADW,OAAY,IAAI,CAAC,EAAE,CACb;IAEjB,qCAAqC;IACrC,cADW,QAAU,GAAG,KAAE,IAAI,CAAC,EAAE,CACX;IAEtB,oBAAoB;IAGxB;;;;OAIG;IACH,wBAHW,MAAM,YACN,iBAAiB,QAc3B;IAED;;;;;;OAMG;IACH,6BALW,MAAM,iBACN,MAAM,mBACN,MAAM,EAAE,UACE,MAAM,GAAC,MAAM,EAAE,SA8EnC;IAED,gBA0BC;IAED;;;OAGG;IACH,uBAFW,MAAM,QA6BhB;IAED;;;OAGG;IACH,qBAFW,MAAM,QAKhB;CACJ;;;;;;;;;cAvMkB,MAAM,KAAE,GAAG;;;;qBACpB,MAAM,EAAE;oBACR,MAAM"}