'f'
mh-two-thousand-and-two
2024-04-12 26f2711ef9461961fb953e2b497bd314ef95e345
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
  }
}