1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| module.exports = {
| directive: 's-',
| createScopedSlots (slotName, props, state) {
| const node = {
| type: 'slot',
| attr: {
| name: slotName
| },
| children: []
| }
| if (typeof props === 'string') {
| node.attr['s-bind'] = props.replace('{{', '').replace('}}', '')
| } else {
| Object.keys(props).forEach(name => {
| node.attr['var-' + name] = props[name].replace('{{', '').replace('}}', '')
| })
| }
| return node
| },
| resolveScopedSlots (slotName, {
| paramExprNode,
| returnExprNodes,
| traverseExpr,
| normalizeChildren
| }, state) {
| const node = {
| type: 'block',
| attr: {
| slot: slotName
| },
| children: normalizeChildren(traverseExpr(returnExprNodes, state))
| }
| if (paramExprNode && paramExprNode.type === 'Identifier') {
| node.scoped = paramExprNode.name
| }
| return node
| }
| }
|
|