vHtml.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.transformHtml = void 0;
  4. const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
  5. const compiler_core_1 = require("@vue/compiler-core");
  6. const transformHtml = (node, _) => {
  7. if (!(0, uni_cli_shared_1.isElementNode)(node)) {
  8. return;
  9. }
  10. const dir = (0, compiler_core_1.findDir)(node, 'html');
  11. if (!dir) {
  12. return;
  13. }
  14. // remove v-html
  15. node.props.splice(node.props.indexOf(dir), 1);
  16. if (node.tagType !== 0 /* ElementTypes.ELEMENT */) {
  17. return;
  18. }
  19. node.isSelfClosing = false;
  20. node.children = [createRichText(node, dir)];
  21. };
  22. exports.transformHtml = transformHtml;
  23. function createRichText(node, dir) {
  24. return {
  25. tag: 'rich-text',
  26. type: 1 /* NodeTypes.ELEMENT */,
  27. tagType: 0 /* ElementTypes.ELEMENT */,
  28. props: [(0, uni_cli_shared_1.createBindDirectiveNode)('nodes', dir.exp || '')],
  29. isSelfClosing: true,
  30. children: [],
  31. codegenNode: undefined,
  32. ns: node.ns,
  33. loc: node.loc,
  34. };
  35. }