1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", {
|
3 | value: true
|
4 | });
|
5 | Object.defineProperty(exports, "render", {
|
6 | enumerable: true,
|
7 | get: function() {
|
8 | return render;
|
9 | }
|
10 | });
|
11 | var _core = _interopRequireDefault(require("@bbob/core"));
|
12 | var _html = _interopRequireWildcard(require("@bbob/html"));
|
13 | var _pluginHelper = require("@bbob/plugin-helper");
|
14 | function _extends() {
|
15 | _extends = Object.assign || function(target) {
|
16 | for(var i = 1; i < arguments.length; i++){
|
17 | var source = arguments[i];
|
18 | for(var key in source){
|
19 | if (Object.prototype.hasOwnProperty.call(source, key)) {
|
20 | target[key] = source[key];
|
21 | }
|
22 | }
|
23 | }
|
24 | return target;
|
25 | };
|
26 | return _extends.apply(this, arguments);
|
27 | }
|
28 | function _interopRequireDefault(obj) {
|
29 | return obj && obj.__esModule ? obj : {
|
30 | default: obj
|
31 | };
|
32 | }
|
33 | function _getRequireWildcardCache(nodeInterop) {
|
34 | if (typeof WeakMap !== "function") return null;
|
35 | var cacheBabelInterop = new WeakMap();
|
36 | var cacheNodeInterop = new WeakMap();
|
37 | return (_getRequireWildcardCache = function(nodeInterop) {
|
38 | return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
39 | })(nodeInterop);
|
40 | }
|
41 | function _interopRequireWildcard(obj, nodeInterop) {
|
42 | if (!nodeInterop && obj && obj.__esModule) {
|
43 | return obj;
|
44 | }
|
45 | if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
46 | return {
|
47 | default: obj
|
48 | };
|
49 | }
|
50 | var cache = _getRequireWildcardCache(nodeInterop);
|
51 | if (cache && cache.has(obj)) {
|
52 | return cache.get(obj);
|
53 | }
|
54 | var newObj = {};
|
55 | var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
56 | for(var key in obj){
|
57 | if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
58 | var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
59 | if (desc && (desc.get || desc.set)) {
|
60 | Object.defineProperty(newObj, key, desc);
|
61 | } else {
|
62 | newObj[key] = obj[key];
|
63 | }
|
64 | }
|
65 | }
|
66 | newObj.default = obj;
|
67 | if (cache) {
|
68 | cache.set(obj, newObj);
|
69 | }
|
70 | return newObj;
|
71 | }
|
72 | function _objectWithoutPropertiesLoose(source, excluded) {
|
73 | if (source == null) return {};
|
74 | var target = {};
|
75 | var sourceKeys = Object.keys(source);
|
76 | var key, i;
|
77 | for(i = 0; i < sourceKeys.length; i++){
|
78 | key = sourceKeys[i];
|
79 | if (excluded.indexOf(key) >= 0) continue;
|
80 | target[key] = source[key];
|
81 | }
|
82 | return target;
|
83 | }
|
84 | var toAST = function(source, plugins, options) {
|
85 | if (plugins === void 0) plugins = [];
|
86 | if (options === void 0) options = {};
|
87 | return (0, _core.default)(plugins).process(source, _extends({}, options, {
|
88 | render: function(input) {
|
89 | return _html.render(input, {
|
90 | stripTags: true
|
91 | });
|
92 | }
|
93 | })).tree;
|
94 | };
|
95 | var isContentEmpty = function(content) {
|
96 | return !content || content.length === 0;
|
97 | };
|
98 | function tagToVueNode(createElement, node, index) {
|
99 | var _ref = node.attrs || {}, className = _ref.class, style = _ref.style, domProps = _objectWithoutPropertiesLoose(_ref, [
|
100 | "class",
|
101 | "style"
|
102 | ]);
|
103 | return createElement(node.tag, {
|
104 | key: index,
|
105 | class: className,
|
106 | style: style,
|
107 | domProps: domProps
|
108 | }, isContentEmpty(node.content) ? null : renderToVueNodes(createElement, node.content));
|
109 | }
|
110 | function renderToVueNodes(createElement, nodes) {
|
111 | return [].concat(nodes).reduce(function(arr, node, index) {
|
112 | if ((0, _pluginHelper.isTagNode)(node)) {
|
113 | arr.push(tagToVueNode(createElement, node, index));
|
114 | } else if ((0, _pluginHelper.isStringNode)(node)) {
|
115 | arr.push(node);
|
116 | }
|
117 | return arr;
|
118 | }, []);
|
119 | }
|
120 | function render(createElement, source, plugins, options) {
|
121 | return renderToVueNodes(createElement, toAST(source, plugins, options));
|
122 | }
|