molstar
Version:
A comprehensive macromolecular library.
54 lines • 2.56 kB
JavaScript
/**
* Copyright (c) 2017-2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Field = void 0;
var db_1 = require("../../../../mol-data/db");
var binary_cif_1 = require("../../../common/binary-cif");
var number_parser_1 = require("../../common/text/number-parser");
function Field(column) {
var mask = column.mask ? (0, binary_cif_1.decode)(column.mask) : void 0;
var data = (0, binary_cif_1.decode)(column.data);
var isNumeric = db_1.ColumnHelpers.isTypedArray(data);
var str = isNumeric
? mask
? function (row) { return mask[row] === 0 /* Present */ ? '' + data[row] : ''; }
: function (row) { return '' + data[row]; }
: mask
? function (row) { return mask[row] === 0 /* Present */ ? data[row] : ''; }
: function (row) { return data[row]; };
var int = isNumeric
? function (row) { return data[row]; }
: function (row) { var v = data[row]; return (0, number_parser_1.parseInt)(v, 0, v.length); };
var float = isNumeric
? function (row) { return data[row]; }
: function (row) { var v = data[row]; return (0, number_parser_1.parseFloat)(v, 0, v.length); };
var valueKind = mask
? function (row) { return mask[row]; }
: function (row) { return 0 /* Present */; };
var rowCount = data.length;
return {
__array: data,
binaryEncoding: column.data.encoding,
isDefined: true,
rowCount: rowCount,
str: str,
int: int,
float: float,
valueKind: valueKind,
areValuesEqual: function (rowA, rowB) { return data[rowA] === data[rowB]; },
toStringArray: function (params) { return db_1.ColumnHelpers.createAndFillArray(rowCount, str, params); },
toIntArray: isNumeric
? function (params) { return db_1.ColumnHelpers.typedArrayWindow(data, params); }
: function (params) { return db_1.ColumnHelpers.createAndFillArray(rowCount, int, params); },
toFloatArray: isNumeric
? function (params) { return db_1.ColumnHelpers.typedArrayWindow(data, params); }
: function (params) { return db_1.ColumnHelpers.createAndFillArray(rowCount, float, params); }
};
}
exports.Field = Field;
//# sourceMappingURL=field.js.map
;