UNPKG

hongluan-ui

Version:
1 lines 4.86 kB
{"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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"}