import { expCharRegx, encodeCharRegx } from '../../utils';

export default function (editor) {
  // 解决样式修改到class上去的问题
  editor.on('component:mount', function (component) {
    component.get('classes').forEach((cm) => {
      cm.set('private', true)
    })
  });

  const assetManager = editor.AssetManager;
  // 解决背景图片路径中有括号的bug ，ie9以下会有问题
  // 资源管理器中图片预览 异常处理
  const imageAssetType = assetManager.getType('image');
  assetManager.addType('image', {
    view: imageAssetType.view.extend({
      getPreview: function () {
        const pfx = this.pfx;
        let src = this.model.get('src');
        // 不带引号的模式下，需要在 单引号、双引号、小括号 前面带一个反斜杠
        // #%之类的特殊符号 需要转义以下
        // 不用引号的原因是，如果路径里面有一个引号就不好处理
        src = src
          .replace(expCharRegx, function (v) { return "\\" + v })
          .replace(encodeCharRegx, function (v) {
            return encodeURIComponent(v)
          })
        return `
                <div class="${pfx}preview" style="background-image: url(${src});"></div>
                <div class="${pfx}preview-bg ${this.ppfx}checker-bg"></div>
            `;
      }
    })
  })
}
