UNPKG

molstar

Version:

A comprehensive macromolecular library.

52 lines (51 loc) 2.14 kB
/** * Copyright (c) 2017-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ export function IntCol(description) { return { type: 'int', description: description }; } export function StrCol(description) { return { type: 'str', description: description }; } export function FloatCol(description) { return { type: 'float', description: description }; } export function CoordCol(description) { return { type: 'coord', description: description }; } export function EnumCol(values, subType, description) { return { type: 'enum', description: description, values: values, subType: subType }; } export function VectorCol(length, description) { return { type: 'vector', description: description, length: length }; } export function MatrixCol(columns, rows, description) { return { type: 'matrix', description: description, columns: columns, rows: rows }; } export function ListCol(subType, separator, description) { return { type: 'list', description: description, separator: separator, subType: subType }; } export function mergeFilters() { var filters = []; for (var _i = 0; _i < arguments.length; _i++) { filters[_i] = arguments[_i]; } var n = filters.length; var mergedFilter = {}; var fields = new Map(); filters.forEach(function (filter) { Object.keys(filter).forEach(function (category) { Object.keys(filter[category]).forEach(function (field) { var key = "".concat(category, ".").concat(field); var value = fields.get(key) || 0; fields.set(key, value + 1); }); }); }); fields.forEach(function (v, k) { if (v !== n) return; var _a = k.split('.'), categoryName = _a[0], fieldName = _a[1]; if (categoryName in mergedFilter) { mergedFilter[categoryName][fieldName] = true; } else { mergedFilter[categoryName] = { fieldName: true }; } }); return mergedFilter; }