执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
1
{"remainingRequest":"D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\源码\\vue-element-admin-master\\src\\components\\MarkdownEditor\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\源码\\vue-element-admin-master\\src\\components\\MarkdownEditor\\index.vue","mtime":1649647926000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\源码\\vue-element-admin-master\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KCi8vIGRlcHMgZm9yIGVkaXRvcgppbXBvcnQgJ2NvZGVtaXJyb3IvbGliL2NvZGVtaXJyb3IuY3NzJyAvLyBjb2RlbWlycm9yCmltcG9ydCAndHVpLWVkaXRvci9kaXN0L3R1aS1lZGl0b3IuY3NzJyAvLyBlZGl0b3IgdWkKaW1wb3J0ICd0dWktZWRpdG9yL2Rpc3QvdHVpLWVkaXRvci1jb250ZW50cy5jc3MnIC8vIGVkaXRvciBjb250ZW50CgppbXBvcnQgRWRpdG9yIGZyb20gJ3R1aS1lZGl0b3InCmltcG9ydCBkZWZhdWx0T3B0aW9ucyBmcm9tICcuL2RlZmF1bHQtb3B0aW9ucycKCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnTWFya2Rvd25FZGl0b3InLAogIHByb3BzOiB7CiAgICB2YWx1ZTogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICcnCiAgICB9LAogICAgaWQ6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICByZXF1aXJlZDogZmFsc2UsCiAgICAgIGRlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuICdtYXJrZG93bi1lZGl0b3ItJyArICtuZXcgRGF0ZSgpICsgKChNYXRoLnJhbmRvbSgpICogMTAwMCkudG9GaXhlZCgwKSArICcnKQogICAgICB9CiAgICB9LAogICAgb3B0aW9uczogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIGRlZmF1bHRPcHRpb25zCiAgICAgIH0KICAgIH0sCiAgICBtb2RlOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogJ21hcmtkb3duJwogICAgfSwKICAgIGhlaWdodDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIHJlcXVpcmVkOiBmYWxzZSwKICAgICAgZGVmYXVsdDogJzMwMHB4JwogICAgfSwKICAgIGxhbmd1YWdlOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgcmVxdWlyZWQ6IGZhbHNlLAogICAgICBkZWZhdWx0OiAnZW5fVVMnIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uaG5lbnQvdHVpLmVkaXRvci90cmVlL21hc3Rlci9zcmMvanMvbGFuZ3MKICAgIH0KICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBlZGl0b3I6IG51bGwKICAgIH0KICB9LAogIGNvbXB1dGVkOiB7CiAgICBlZGl0b3JPcHRpb25zKCkgewogICAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdE9wdGlvbnMsIHRoaXMub3B0aW9ucykKICAgICAgb3B0aW9ucy5pbml0aWFsRWRpdFR5cGUgPSB0aGlzLm1vZGUKICAgICAgb3B0aW9ucy5oZWlnaHQgPSB0aGlzLmhlaWdodAogICAgICBvcHRpb25zLmxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZQogICAgICByZXR1cm4gb3B0aW9ucwogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgIHZhbHVlKG5ld1ZhbHVlLCBwcmVWYWx1ZSkgewogICAgICBpZiAobmV3VmFsdWUgIT09IHByZVZhbHVlICYmIG5ld1ZhbHVlICE9PSB0aGlzLmVkaXRvci5nZXRWYWx1ZSgpKSB7CiAgICAgICAgdGhpcy5lZGl0b3Iuc2V0VmFsdWUobmV3VmFsdWUpCiAgICAgIH0KICAgIH0sCiAgICBsYW5ndWFnZSh2YWwpIHsKICAgICAgdGhpcy5kZXN0cm95RWRpdG9yKCkKICAgICAgdGhpcy5pbml0RWRpdG9yKCkKICAgIH0sCiAgICBoZWlnaHQobmV3VmFsdWUpIHsKICAgICAgdGhpcy5lZGl0b3IuaGVpZ2h0KG5ld1ZhbHVlKQogICAgfSwKICAgIG1vZGUobmV3VmFsdWUpIHsKICAgICAgdGhpcy5lZGl0b3IuY2hhbmdlTW9kZShuZXdWYWx1ZSkKICAgIH0KICB9LAogIG1vdW50ZWQoKSB7CiAgICB0aGlzLmluaXRFZGl0b3IoKQogIH0sCiAgZGVzdHJveWVkKCkgewogICAgdGhpcy5kZXN0cm95RWRpdG9yKCkKICB9LAogIG1ldGhvZHM6IHsKICAgIGluaXRFZGl0b3IoKSB7CiAgICAgIHRoaXMuZWRpdG9yID0gbmV3IEVkaXRvcih7CiAgICAgICAgZWw6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpLAogICAgICAgIC4uLnRoaXMuZWRpdG9yT3B0aW9ucwogICAgICB9KQogICAgICBpZiAodGhpcy52YWx1ZSkgewogICAgICAgIHRoaXMuZWRpdG9yLnNldFZhbHVlKHRoaXMudmFsdWUpCiAgICAgIH0KICAgICAgdGhpcy5lZGl0b3Iub24oJ2NoYW5nZScsICgpID0+IHsKICAgICAgICB0aGlzLiRlbWl0KCdpbnB1dCcsIHRoaXMuZWRpdG9yLmdldFZhbHVlKCkpCiAgICAgIH0pCiAgICB9LAogICAgZGVzdHJveUVkaXRvcigpIHsKICAgICAgaWYgKCF0aGlzLmVkaXRvcikgcmV0dXJuCiAgICAgIHRoaXMuZWRpdG9yLm9mZignY2hhbmdlJykKICAgICAgdGhpcy5lZGl0b3IucmVtb3ZlKCkKICAgIH0sCiAgICBzZXRWYWx1ZSh2YWx1ZSkgewogICAgICB0aGlzLmVkaXRvci5zZXRWYWx1ZSh2YWx1ZSkKICAgIH0sCiAgICBnZXRWYWx1ZSgpIHsKICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yLmdldFZhbHVlKCkKICAgIH0sCiAgICBzZXRIdG1sKHZhbHVlKSB7CiAgICAgIHRoaXMuZWRpdG9yLnNldEh0bWwodmFsdWUpCiAgICB9LAogICAgZ2V0SHRtbCgpIHsKICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yLmdldEh0bWwoKQogICAgfQogIH0KfQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;AAKA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/components/MarkdownEditor","sourcesContent":["<template>\n  <div :id=\"id\" />\n</template>\n\n<script>\n// deps for editor\nimport 'codemirror/lib/codemirror.css' // codemirror\nimport 'tui-editor/dist/tui-editor.css' // editor ui\nimport 'tui-editor/dist/tui-editor-contents.css' // editor content\n\nimport Editor from 'tui-editor'\nimport defaultOptions from './default-options'\n\nexport default {\n  name: 'MarkdownEditor',\n  props: {\n    value: {\n      type: String,\n      default: ''\n    },\n    id: {\n      type: String,\n      required: false,\n      default() {\n        return 'markdown-editor-' + +new Date() + ((Math.random() * 1000).toFixed(0) + '')\n      }\n    },\n    options: {\n      type: Object,\n      default() {\n        return defaultOptions\n      }\n    },\n    mode: {\n      type: String,\n      default: 'markdown'\n    },\n    height: {\n      type: String,\n      required: false,\n      default: '300px'\n    },\n    language: {\n      type: String,\n      required: false,\n      default: 'en_US' // https://github.com/nhnent/tui.editor/tree/master/src/js/langs\n    }\n  },\n  data() {\n    return {\n      editor: null\n    }\n  },\n  computed: {\n    editorOptions() {\n      const options = Object.assign({}, defaultOptions, this.options)\n      options.initialEditType = this.mode\n      options.height = this.height\n      options.language = this.language\n      return options\n    }\n  },\n  watch: {\n    value(newValue, preValue) {\n      if (newValue !== preValue && newValue !== this.editor.getValue()) {\n        this.editor.setValue(newValue)\n      }\n    },\n    language(val) {\n      this.destroyEditor()\n      this.initEditor()\n    },\n    height(newValue) {\n      this.editor.height(newValue)\n    },\n    mode(newValue) {\n      this.editor.changeMode(newValue)\n    }\n  },\n  mounted() {\n    this.initEditor()\n  },\n  destroyed() {\n    this.destroyEditor()\n  },\n  methods: {\n    initEditor() {\n      this.editor = new Editor({\n        el: document.getElementById(this.id),\n        ...this.editorOptions\n      })\n      if (this.value) {\n        this.editor.setValue(this.value)\n      }\n      this.editor.on('change', () => {\n        this.$emit('input', this.editor.getValue())\n      })\n    },\n    destroyEditor() {\n      if (!this.editor) return\n      this.editor.off('change')\n      this.editor.remove()\n    },\n    setValue(value) {\n      this.editor.setValue(value)\n    },\n    getValue() {\n      return this.editor.getValue()\n    },\n    setHtml(value) {\n      this.editor.setHtml(value)\n    },\n    getHtml() {\n      return this.editor.getHtml()\n    }\n  }\n}\n</script>\n"]}]}