 //
 
 /// timeline 组件，提供了在多个 ECharts option 间进行切换、播放等操作的功能。
-/// 具体示例地址： 
+/// 具体示例地址：
 /// timeline 和其他组件有些不同，它需要操作『多个option』。 假设，我们把 ECharts 的传统的 option 称为原子option，那么使用 timeline 时，传入 ECharts 的 option 就成为了一个集合多个原子option的复合option。如下示例：
 /// 如下，baseOption 是一个 『原子option』，options 数组中的每一项也是一个 『原子option』。
 /// 每个『原子option』中就是本文档中描述的各种配置项。

///     );
///
/// 在上例中，timeline.data 中的每一项，对应于 options 数组中的每个 option。
/// 
/// 使用注意与最佳实践：
/// 公有的配置项，推荐配置在 baseOption 中。timeline 播放切换时，会把 options 数组中的对应的 option，与 baseOption 进行 merge 形成最终的 option。
/// options 数组中，如果某一数组项中配置了某个属性，那么其他数组项中也必须配置某个属性，而不能缺省。否则这个属性的执行效果会遗留。
/// 复合 option 中的 options 不支持 merge。
/// 也就是说，当第二（或三、四、五 ...）次 chart.setOption(rawOption) 时，如果 rawOption 是复合 option（即包含 options 列表），那么新的 rawOption.options 列表不会和老的 options 列表进行 merge，而是简单替代。当然，rawOption.baseOption 仍然会正常和老的 option 进行merge。
/// 
/// 与 ECharts 2 的兼容性：
/// ECharts 3 中不再支持 timeline.notMerge 参数，也就是不支持 notMerge 模式。如果遇到这种场景需要使用，可在外部进行option管理，并用 setOption(option, true) 这样的notMerge方式设置。
/// ECharts 3 和 ECharts 2 相比，timeline 属性的定义位置有所不同，移到了 baseOption 中，统一作为一个普通的组件看待。但是，仍然兼容 ECharts2 的 timeline 定义位置，只是不再推荐这样写。

            switch ele {
            case let .show(show):
                self.show = show
            case let .color(color):
                self.color = color
            case let .width(width):
                self.width = width
