code: function OptionManager(api) {
  
      /**
       * @private
       * @type {module:echarts/ExtensionAPI}
       */
      this._api = api;
  
      /**
       * @private
       * @type {Array.<number>}
       */
      this._timelineOptions = [];
  
      /**
       * @private
       * @type {Array.<Object>}
       */
      this._mediaList = [];
  
      /**
       * @private
       * @type {Object}
       */
      this._mediaDefault;
  
      /**
       * -1, means default.
       * empty means no media.
       * @private
       * @type {Array.<number>}
       */
      this._currentMediaIndices = [];
  
      /**
       * @private
       * @type {Object}
       */
      this._optionBackup;
  
      /**
       * @private
       * @type {Object}
       */
      this._newBaseOption;
  }
docs: TERM EXPLANATIONS:
  
  [option]:
  
  An object that contains definitions of components. For example:
  var option = {
  title: {...},
  legend: {...},
  visualMap: {...},
  series: [
  {data: [...]},
  {data: [...]},
  ...
  ]
  };
  
  [rawOption]:
  
  An object input to echarts.setOption. 'rawOption' may be an
  'option', or may be an object contains multi-options. For example:
  var option = {
  baseOption: {
  title: {...},
  legend: {...},
  series: [
  {data: [...]},
  {data: [...]},
  ...
  ]
  },
  timeline: {...},
  options: [
  {title: {...}, series: {data: [...]}},
  {title: {...}, series: {data: [...]}},
  ...
  ],
  media: [
  {
  query: {maxWidth: 320},
  option: {series: {x: 20}, visualMap: {show: false}}
  },
  {
  query: {minWidth: 320, maxWidth: 720},
  option: {series: {x: 500}, visualMap: {show: true}}
  },
  {
  option: {series: {x: 1200}, visualMap: {show: true}}
  }
  ]
  };
  
  @alias module:echarts/model/OptionManager
  @param {module:echarts/ExtensionAPI} api