{"version":3,"file":"data.mjs","sources":["../../../../../../packages/components/resize-box/src/data.ts"],"sourcesContent":["import { computed, ref, toRefs, watch } from 'vue'\nimport { buildProps, isArray, isUndefined } from '@lit-element/utils'\n\nimport type {\n  Component,\n  ComponentPublicInstance,\n  ComputedRef,\n  PropType,\n  Ref,\n  Slots,\n  VNode,\n  VNodeTypes,\n} from 'vue'\n\nexport type DirectionType = 'left' | 'right' | 'top' | 'bottom'\n\nexport type PaddingCSSProperties =\n  | 'padding-left'\n  | 'padding-right'\n  | 'padding-top'\n  | 'padding-bottom'\n\nexport const DIRECTION_LEFT = 'left'\nexport const DIRECTION_RIGHT = 'right'\nexport const DIRECTION_TOP = 'top'\nexport const DIRECTION_BOTTOM = 'bottom'\n\nexport const allDirections: DirectionType[] = [\n  DIRECTION_LEFT,\n  DIRECTION_RIGHT,\n  DIRECTION_TOP,\n  DIRECTION_BOTTOM,\n]\n\nexport const resizeBoxProps = buildProps({\n  /**\n   * @zh 宽度\n   * @en Width\n   * @vModel\n   */\n  width: {\n    type: Number,\n  },\n  /**\n   * @zh 高度\n   * @en Height\n   * @vModel\n   */\n  height: {\n    type: Number,\n  },\n  /**\n   * @zh 伸缩框的 html 标签\n   * @en The html tag of the telescopic box\n   */\n  component: {\n    type: String,\n    default: 'div',\n  },\n  /**\n   * @zh 可以进行伸缩的边，有上、下、左、右可以使用\n   * @en Can be stretched side, there are up, down, left and right can be used\n   * */\n  directions: {\n    type: Array as PropType<('left' | 'right' | 'top' | 'bottom')[]>,\n    default: () => ['right'],\n  },\n} as const)\n\nexport function useState<T>(defaultValue?: T): [Ref<T>, (newValue: T) => void] {\n  const value = ref(defaultValue) as Ref<T>\n  const setValue = (newValue: T) => {\n    value.value = newValue\n  }\n\n  return [value, setValue]\n}\n\nexport function useMergeState<T, E = T | undefined>(\n  defaultValue: T,\n  props: { value: E }\n): [ComputedRef<T>, (val: E) => void, Ref<T>] {\n  const { value } = toRefs(props)\n  const [localValue, setLocalValue] = useState(\n    !isUndefined(value.value) ? value.value : defaultValue\n  )\n  watch(value, (newVal) => {\n    isUndefined(newVal) && setLocalValue(undefined)\n  })\n\n  const mergeValue = computed(() =>\n    !isUndefined(value.value) ? value.value : localValue.value\n  )\n\n  return [mergeValue, setLocalValue, localValue]\n}\n\nexport const isComponentInstance = (\n  value: any\n): value is ComponentPublicInstance => {\n  return value?.$ !== undefined\n}\n\nexport const isComponent = (\n  vn: VNode,\n  type?: VNodeTypes\n): type is Component => {\n  return Boolean(vn && vn.shapeFlag & ShapeFlags.COMPONENT)\n}\n\nexport enum ShapeFlags {\n  ELEMENT = 1,\n  FUNCTIONAL_COMPONENT = 1 << 1,\n  STATEFUL_COMPONENT = 1 << 2,\n  COMPONENT = ShapeFlags.STATEFUL_COMPONENT | ShapeFlags.FUNCTIONAL_COMPONENT,\n  TEXT_CHILDREN = 1 << 3,\n  ARRAY_CHILDREN = 1 << 4,\n  SLOTS_CHILDREN = 1 << 5,\n  TELEPORT = 1 << 6,\n  SUSPENSE = 1 << 7,\n  COMPONENT_SHOULD_KEEP_ALIVE = 1 << 8,\n  COMPONENT_KEPT_ALIVE = 1 << 9,\n}\n\nexport const isArrayChildren = (\n  vn: VNode,\n  children: VNode['children']\n): children is VNode[] => {\n  return Boolean(vn && vn.shapeFlag & ShapeFlags.ARRAY_CHILDREN)\n}\n\nexport const isSlotsChildren = (\n  vn: VNode,\n  children: VNode['children']\n): children is Slots => {\n  return Boolean(vn && vn.shapeFlag & ShapeFlags.SLOTS_CHILDREN)\n}\n\nconst isElement = (vn: VNode) => {\n  return Boolean(vn && vn.shapeFlag & ShapeFlags.ELEMENT)\n}\n\nexport const getFirstComponent = (\n  children: VNode[] | undefined\n): VNode | undefined => {\n  if (!children) {\n    return undefined\n  }\n\n  for (const child of children) {\n    if (isElement(child) || isComponent(child)) {\n      return child\n    }\n    // If the current node is not a component, continue to find subcomponents\n    if (isArrayChildren(child, child.children)) {\n      const result = getFirstComponent(child.children)\n      if (result) return result\n    } else if (isSlotsChildren(child, child.children)) {\n      const children = child.children.default?.()\n      if (children) {\n        const result = getFirstComponent(children)\n        if (result) return result\n      }\n    } else if (isArray(child)) {\n      const result = getFirstComponent(child)\n      if (result) return result\n    }\n  }\n\n  return undefined\n}\n"],"names":[],"mappings":"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"}