UNPKG

molstar

Version:

A comprehensive macromolecular library.

54 lines 2.56 kB
"use strict"; /** * 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