(vegaSpec, datafile, dataRefType, transform, scheme)
| 13127 | return SandDance.VegaDeckGl.util.clone(vegaSpec.scales); |
| 13128 | } |
| 13129 | function serializeSpec(vegaSpec, datafile, dataRefType, transform, scheme) { |
| 13130 | const scales = cloneScales(vegaSpec); |
| 13131 | const colorScale = scales.filter((scale)=>scale.name === SandDance.constants.ScaleNames.Color)[0]; |
| 13132 | if (scheme.indexOf("dual_") >= 0) colorScale.range = SandDance.colorSchemes.filter((cs)=>cs.scheme === scheme)[0].colors; |
| 13133 | const clone = cloneData(vegaSpec); |
| 13134 | const data0 = clone.data[0]; |
| 13135 | if (dataRefType === DataRefType.inline) { |
| 13136 | const valuesData = data0; |
| 13137 | valuesData.format = { |
| 13138 | parse: "auto", |
| 13139 | type: "json" |
| 13140 | }; |
| 13141 | valuesData.values = clone.values; |
| 13142 | } else if (dataRefType === DataRefType.none) { |
| 13143 | const valuesData = data0; |
| 13144 | valuesData.values = []; |
| 13145 | if (transform) { |
| 13146 | if (valuesData.transform) valuesData.transform.push.apply(valuesData.transform, transform); |
| 13147 | else valuesData.transform = transform; |
| 13148 | } |
| 13149 | } else if (dataRefType === DataRefType.url) { |
| 13150 | const urlData = data0; |
| 13151 | urlData.url = datafile.dataUrl; |
| 13152 | urlData.format = { |
| 13153 | parse: "auto", |
| 13154 | type: datafile.type |
| 13155 | }; |
| 13156 | if (transform) { |
| 13157 | if (urlData.transform) urlData.transform.push.apply(urlData.transform, transform); |
| 13158 | else urlData.transform = transform; |
| 13159 | } |
| 13160 | } |
| 13161 | return Object.assign(Object.assign({}, vegaSpec), { |
| 13162 | data: clone.data, |
| 13163 | scales |
| 13164 | }); |
| 13165 | } |
| 13166 | function defaultDataRefType(datafile) { |
| 13167 | if (datafile.dataUrl) return DataRefType.url; |
| 13168 | return DataRefType.none; |
no test coverage detected