Miew.prototype.getState = function()

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;
};