{"version":3,"file":"panel2.mjs","sources":["../../../../../../packages/components/panel/src/panel.ts"],"sourcesContent":["\nimport { hyphenate } from '@vue/shared'\n\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport type { Indexable } from '@hongluan-ui/utils'\n\nexport const panelProps = {\n  borderless: Boolean,\n  outlineless: Boolean,\n  collapsed: Boolean,\n  fullscreen: {\n    type: [Boolean, Object] as PropType<boolean | Record<'left' | 'right' | 'top' | 'bottom', string>>,\n    default: false,\n  },\n  radius: String,\n  headerHeight: String,\n  padding: String,\n  bodyPadding: String,\n  footerPadding: String,\n  headerClass: String,\n  headerStyle: String,\n  bodyClass: String,\n  bodyStyle: String,\n  footerClass: String,\n  footerStyle: String,\n  fullBody: Boolean,\n}\nexport type PanelProps = ExtractPropTypes<typeof panelProps>\nexport type PanelPropKeys = keyof typeof panelProps\n\nexport const panelStyleProps = ['radius', 'padding', 'headerHeight', 'bodyPadding', 'footerPadding'] as const\nexport const panelClassProps = ['borderless', 'outlineless', 'collapsed', 'fullscreen', 'fullBody'] as const\n\nexport function usePanelProps(props: PanelProps) {\n  const panelClass: Record<string, unknown> = {}\n  panelClassProps.forEach(p => {\n    panelClass[hyphenate(p)] = typeof props[p] === 'boolean' ? props[p] : !!props[p]\n  })\n\n  const panelStyle: string[] = []\n  panelStyleProps.forEach(p => {\n    const propVal = getPropVal(p)\n    panelStyle.push(propVal.val ? `--panel-${propVal.otherName}: ${propVal.val}` : '')\n  })\n  if (props.fullscreen && typeof props.fullscreen === 'object') {\n    ['top', 'bottom', 'left', 'right'].forEach(p => {\n      panelStyle.push((props.fullscreen as Indexable<string>)[p] ? `--panel-fullscreen-${p}: ${(props.fullscreen as Indexable<string>)[p]}` : '')\n    })\n  }\n\n  function getPropVal(propName: PanelPropKeys): { val: any; otherName: string; } {\n    const propNameOther = propName.replace(/([A-Z])/g, (_, $1) => '-' + $1.toLowerCase()) as PanelPropKeys\n    return { val: props[propName] || props[propNameOther], otherName : propNameOther }\n  }\n\n  return {\n    panelClass,\n    headerClass: getPropVal('headerClass').val || '',\n    headerStyle: getPropVal('headerStyle').val || '',\n    bodyClass: getPropVal('bodyClass').val || '',\n    bodyStyle: getPropVal('bodyStyle').val || '',\n    footerClass: getPropVal('footerClass').val || '',\n    footerStyle: getPropVal('footerStyle').val || '',\n    panelStyle,\n  }\n}\n"],"names":[],"mappings":"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"}