molstar
Version:
A comprehensive macromolecular library.
43 lines • 1.77 kB
JavaScript
/**
* Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
import { CifWriter } from '../../mol-io/writer/cif';
import { dateToUtcString } from '../../mol-util/date';
import { MmcifFormat } from '../../mol-model-formats/structure/mmcif';
var PropertyWrapper;
(function (PropertyWrapper) {
function createInfo() {
return { timestamp_utc: dateToUtcString(new Date()) };
}
PropertyWrapper.createInfo = createInfo;
function defaultInfoCategory(name, getter) {
return {
name: name,
instance: function (ctx) {
var info = getter(ctx);
return {
fields: _info_fields,
source: [{ data: info, rowCount: 1 }]
};
}
};
}
PropertyWrapper.defaultInfoCategory = defaultInfoCategory;
var _info_fields = [
CifWriter.Field.str('updated_datetime_utc', function (_, date) { return date.timestamp_utc; })
];
function tryGetInfoFromCif(categoryName, model) {
if (!MmcifFormat.is(model.sourceData) || !model.sourceData.data.frame.categoryNames.includes(categoryName)) {
return;
}
var timestampField = model.sourceData.data.frame.categories[categoryName].getField('updated_datetime_utc');
if (!timestampField || timestampField.rowCount === 0)
return;
return { timestamp_utc: timestampField.str(0) || dateToUtcString(new Date()) };
}
PropertyWrapper.tryGetInfoFromCif = tryGetInfoFromCif;
})(PropertyWrapper || (PropertyWrapper = {}));
export { PropertyWrapper };
//# sourceMappingURL=wrapper.js.map