{"version":3,"file":"splitter2.mjs","sources":["../../../../../../../packages/components/splitter/src/splitter.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n  computed,\n  getCurrentInstance,\n  nextTick,\n  provide,\n  reactive,\n  toRef,\n  watch,\n} from 'vue'\nimport { useNamespace, useOrderedChildren } from '@hd-front-end/hooks'\nimport { useContainer, useResize, useSize } from './hooks'\nimport { splitterProps } from './splitter'\nimport { splitterRootContextKey } from './type'\n\nimport type { PanelItemState } from './type'\n\nconst ns = useNamespace('splitter')\n\ndefineOptions({\n  name: 'ElSplitter',\n})\n\nconst emits = defineEmits<{\n  (e: 'resizeStart', index: number, sizes: number[]): void\n  (e: 'resize', index: number, sizes: number[]): void\n  (e: 'resizeEnd', index: number, sizes: number[]): void\n  (e: 'collapse', index: number, type: 'start' | 'end', sizes: number[]): void\n}>()\n\nconst props = defineProps(splitterProps)\nconst layout = toRef(props, 'layout')\nconst lazy = toRef(props, 'lazy')\n\nconst { containerEl, containerSize } = useContainer(layout)\n\nconst {\n  removeChild: unregisterPanel,\n  children: panels,\n  addChild: registerPanel,\n  ChildrenSorter: PanelsSorter,\n} = useOrderedChildren<PanelItemState>(getCurrentInstance()!, 'ElSplitterPanel')\n\nwatch(panels, () => {\n  panels.value.forEach((instance: PanelItemState, index: number) => {\n    instance.setIndex(index)\n  })\n})\n\nconst { percentSizes, pxSizes } = useSize(panels, containerSize)\n\nconst {\n  lazyOffset,\n  movingIndex,\n  onMoveStart,\n  onMoving,\n  onMoveEnd,\n  onCollapse,\n} = useResize(panels, containerSize, pxSizes, lazy)\n\nconst splitterStyles = computed(() => {\n  return {\n    [ns.cssVarBlockName('bar-offset')]: lazy.value\n      ? `${lazyOffset.value}px`\n      : undefined,\n  }\n})\n\nconst onResizeStart = (index: number) => {\n  onMoveStart(index)\n  emits('resizeStart', index, pxSizes.value)\n}\n\nconst onResize = (index: number, offset: number) => {\n  onMoving(index, offset)\n\n  if (!lazy.value) {\n    emits('resize', index, pxSizes.value)\n  }\n}\n\nconst onResizeEnd = async (index: number) => {\n  onMoveEnd()\n  await nextTick()\n  emits('resizeEnd', index, pxSizes.value)\n}\n\nconst onCollapsible = (index: number, type: 'start' | 'end') => {\n  onCollapse(index, type)\n  emits('collapse', index, type, pxSizes.value)\n}\n\nprovide(\n  splitterRootContextKey,\n  reactive({\n    panels,\n    percentSizes,\n    pxSizes,\n    layout,\n    lazy,\n    movingIndex,\n    containerSize,\n    onMoveStart: onResizeStart,\n    onMoving: onResize,\n    onMoveEnd: onResizeEnd,\n    onCollapse: onCollapsible,\n    registerPanel,\n    unregisterPanel,\n  })\n)\n</script>\n\n<template>\n  <div\n    ref=\"containerEl\"\n    :class=\"[ns.b(), ns.e(layout)]\"\n    :style=\"splitterStyles\"\n  >\n    <slot />\n    <panels-sorter />\n    <!-- Prevent iframe touch events from breaking -->\n    <div v-if=\"movingIndex\" :class=\"[ns.e('mask'), ns.e(`mask-${layout}`)]\" />\n  </div>\n</template>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_unref","_normalizeStyle","_renderSlot","_createVNode","_createCommentVNode"],"mappings":"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"}