{"version":3,"file":"props.mjs","sources":["../../../../../packages/utils/vue/props.ts"],"sourcesContent":["import type { VueInstance } from '@antdv/types';\n\nimport { Fragment, isVNode } from 'vue';\nimport { classNames } from '../dom/class';\nimport { isEmptyElement, isOn, isStringElement, isValid, isValidElement } from '../is';\nimport { camelize, hyphenate } from '../lang/camelize';\nimport { resolvePropValue } from './util';\n\n// function getType(fn) {\n//   const match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n//   return match ? match[1] : '';\n// }\n\nexport function splitAttrs(attrs: any) {\n  const allAttrs = Object.keys(attrs);\n  const eventAttrs: Record<string, any> = {};\n  const onEvents: Record<string, any> = {};\n  const extraAttrs: Record<string, any> = {};\n  for (let i = 0, l = allAttrs.length; i < l; i++) {\n    const key = allAttrs[i];\n    if (isOn(key)) {\n      eventAttrs[key[2].toLowerCase() + key.slice(3)] = attrs[key];\n      onEvents[key] = attrs[key];\n    } else {\n      extraAttrs[key] = attrs[key];\n    }\n  }\n  return { onEvents, events: eventAttrs, extraAttrs };\n}\n\nexport function parseStyleText(cssText = '', camel = false) {\n  const res = {};\n  const listDelimiter = /;(?![^(]*\\))/g;\n  const propertyDelimiter = /:(.+)/;\n  if (typeof cssText === 'object') return cssText;\n  cssText.split(listDelimiter).forEach((item) => {\n    if (item) {\n      const tmp = item.split(propertyDelimiter);\n      if (tmp.length > 1) {\n        const k = camel ? camelize(tmp[0].trim()) : tmp[0].trim();\n        res[k] = tmp[1].trim();\n      }\n    }\n  });\n  return res;\n}\n\nexport function hasProp(instance: any, prop: string) {\n  return instance[prop] !== undefined;\n}\n\nexport const skipFlattenKey = Symbol('skipFlatten');\nexport function flattenChildren(children = [], filterEmpty = true) {\n  const temp = Array.isArray(children) ? children : [children];\n  const res = [];\n  temp.forEach((child) => {\n    if (Array.isArray(child)) {\n      res.push(...flattenChildren(child, filterEmpty));\n    } else if (child && child.type === Fragment) {\n      if (child.key === skipFlattenKey)\n        res.push(child);\n      else\n        res.push(...flattenChildren(child.children, filterEmpty));\n    } else if (child && isVNode(child)) {\n      if (filterEmpty && !isEmptyElement(child))\n        res.push(child);\n      else if (!filterEmpty)\n        res.push(child);\n    } else if (isValid(child)) {\n      res.push(child);\n    }\n  });\n  return res;\n}\n\nexport function getSlot(self: any, name = 'default', options = {}) {\n  if (isVNode(self)) {\n    if (self.type === Fragment)\n      return name === 'default' ? flattenChildren(self.children as any[]) : [];\n    else if (self.children && self.children[name])\n      return flattenChildren(self.children[name](options));\n    else\n      return [];\n  } else {\n    const res = self.$slots[name] && self.$slots[name](options);\n    return flattenChildren(res);\n  }\n}\n\nexport function findDOMNode(instance: any) {\n  let node = instance?.vnode?.el || (instance && (instance.$el || instance));\n  while (node && !node.tagName)\n    node = node.nextSibling;\n\n  return node;\n}\nexport function getOptionProps(instance: VueInstance) {\n  const res = {};\n  if (instance.$ && instance.$.vnode) {\n    const props = instance.$.vnode.props || {};\n    Object.keys(instance.$props).forEach((k) => {\n      const v = instance.$props[k];\n      const hyphenateKey = hyphenate(k);\n      if (v !== undefined || hyphenateKey in props)\n        res[k] = v; // 直接取 $props[k]\n    });\n  } else if (isVNode(instance) && typeof instance.type === 'object') {\n    const originProps = instance.props || {};\n    const props = {};\n    Object.keys(originProps).forEach((key) => {\n      props[camelize(key)] = originProps[key];\n    });\n    const options = (instance.type as any).props || {};\n    Object.keys(options).forEach((k) => {\n      const v = resolvePropValue(options, props, k, props[k]);\n      if (v !== undefined || k in props)\n        res[k] = v;\n    });\n  }\n  return res;\n}\nexport function getComponent(instance: any, prop = 'default', options = instance, execute = true) {\n  let com;\n  if (instance.$) {\n    const temp = instance[prop];\n    if (temp !== undefined) {\n      return typeof temp === 'function' && execute ? temp(options) : temp;\n    } else {\n      com = instance.$slots[prop];\n      com = execute && com ? com(options) : com;\n    }\n  } else if (isVNode(instance)) {\n    const temp = instance.props && instance.props[prop];\n    if (temp !== undefined && instance.props !== null) {\n      return typeof temp === 'function' && execute ? temp(options) : temp;\n    } else if (instance.type === Fragment) {\n      com = instance.children;\n    } else if (instance.children && instance.children[prop]) {\n      com = instance.children[prop];\n      com = execute && com ? com(options) : com;\n    }\n  }\n  if (Array.isArray(com)) {\n    com = flattenChildren(com);\n    com = com.length === 1 ? com[0] : com;\n    com = com.length === 0 ? undefined : com;\n  }\n  return com;\n}\n\nexport function getKey(ele: any) {\n  const key = ele.key;\n  return key;\n}\n\nexport function getEvents(ele: any = {}, on = true) {\n  let props = {};\n  if (ele.$)\n    props = { ...props, ...ele.$attrs };\n  else\n    props = { ...props, ...ele.props };\n\n  return splitAttrs(props)[on ? 'onEvents' : 'events'];\n}\n\nexport function getClass(ele: any) {\n  const props = (isVNode(ele) ? ele.props : ele.$attrs) || {};\n  const tempCls = props.class || {};\n  let cls = {};\n  if (typeof tempCls === 'string') {\n    tempCls.split(' ').forEach((c) => {\n      cls[c.trim()] = true;\n    });\n  } else if (Array.isArray(tempCls)) {\n    classNames(tempCls)\n      .split(' ')\n      .forEach((c) => {\n        cls[c.trim()] = true;\n      });\n  } else {\n    cls = { ...cls, ...tempCls };\n  }\n  return cls;\n}\nexport function getStyle(ele: any, camel?: boolean) {\n  const props = (isVNode(ele) ? ele.props : ele.$attrs) || {};\n  let style = props.style || {};\n  if (typeof style === 'string') {\n    style = parseStyleText(style, camel);\n  } else if (camel && style) {\n    // 驼峰化\n    const res = {};\n    Object.keys(style).forEach(k => (res[camelize(k)] = style[k]));\n    return res;\n  }\n  return style;\n}\n\nexport function getComponentName(opts: any) {\n  return opts && (opts.Ctor.options.name || opts.tag);\n}\n\nexport function filterEmpty(children = []) {\n  const res = [];\n  children.forEach((child) => {\n    if (Array.isArray(child))\n      res.push(...child);\n    else if (child?.type === Fragment)\n      res.push(...filterEmpty(child.children));\n    else\n      res.push(child);\n  });\n  return res.filter(c => !isEmptyElement(c));\n}\n\nexport function filterEmptyWithUndefined(children: any[]) {\n  if (children) {\n    const coms = filterEmpty(children);\n    return coms.length ? coms : undefined;\n  } else {\n    return children;\n  }\n}\n\nexport function getPropsSlot(slots: any, props: any, prop = 'default') {\n  return props[prop] ?? slots[prop]?.();\n}\n\nexport function getTextFromElement(ele: any) {\n  if (isValidElement(ele) && isStringElement(ele[0]))\n    return ele[0].children;\n\n  return ele;\n}\n"],"names":["filterEmpty"],"mappings":"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"}