in packages/miew/src/Miew.js [3516:3574]
Miew.prototype.getState = function (opts) {
const state = {};
opts = _.defaults(opts, {
compact: true,
settings: false,
view: false,
});
// load
const visual = this._getComplexVisual();
if (visual !== null) {
const complex = visual.getComplex();
const { metadata } = complex;
if (metadata.id) {
const format = metadata.format ? `${metadata.format}:` : '';
state.load = format + metadata.id;
}
const unit = complex.getCurrentUnit();
if (unit !== 1) {
state.unit = unit;
}
}
// representations
const repsInfo = this._compareReps(visual, opts.compact);
if (repsInfo.preset) {
state.preset = repsInfo.preset;
}
if (repsInfo.reps) {
state.reps = repsInfo.reps;
}
// objects
const objects = this._objects;
const objectsState = [];
for (let i = 0, n = objects.length; i < n; ++i) {
objectsState[i] = objects[i].identify();
}
if (objects.length > 0) {
state._objects = objectsState;
}
// view
if (opts.view) {
state.view = this.view();
}
// settings
if (opts.settings) {
const diff = this.settings.getDiffs(false);
if (!_.isEmpty(diff)) {
state.settings = diff;
}
}
return state;
};