1165211e238699d1f38ea159a6a78162e0d6f5cefa551cde1e87d4bcf733e109b4aa0dfe6579f1b38d74efa5c154aa0bf5d152b1debd55533dc4d489c69650 704 B

123456789101112131415161718192021222324252627
  1. /* @flow */
  2. import { makeMap } from 'shared/util'
  3. // The "unitary tag" means that the tag node and its children
  4. // must be sent to the native together.
  5. const isUnitaryTag = makeMap('cell,header,cell-slot,recycle-list', true)
  6. function preTransformNode (el: ASTElement) {
  7. if (isUnitaryTag(el.tag) && !el.attrsList.some(item => item.name === 'append')) {
  8. el.attrsMap.append = 'tree'
  9. el.attrsList.push({ name: 'append', value: 'tree' })
  10. }
  11. if (el.attrsMap.append === 'tree') {
  12. el.appendAsTree = true
  13. }
  14. }
  15. function genData (el: ASTElement): string {
  16. return el.appendAsTree ? `appendAsTree:true,` : ''
  17. }
  18. export default {
  19. staticKeys: ['appendAsTree'],
  20. preTransformNode,
  21. genData
  22. }