UNPKG

mealcomes

Version:

MealComes 用于学习前端的组件库

1 lines 3.02 kB
{"version":3,"file":"icon-B8YaO9re.mjs","sources":["../../../../packages/components/icon/src/icon.ts","../../../../packages/components/icon/src/icon.vue","../../../../packages/components/icon/index.ts"],"sourcesContent":["/**\n * icon 组件相关属性和ts类型\n */\n/**\n * icon 组件相关属性和ts类型\n */\nimport type { ExtractPropTypes, PropType } from 'vue';\n\n/**\n * icon 组件 props\n */\nexport const iconProps = {\n color: String,\n size: [Number, String] as PropType<number | string>\n} as const; // 转为 const ,只读\n\n/**\n * icon 组件 props 的类型\n * ExtractPropTypes<> 所有的都是必须的\n * Partial<ExtractPropTypes<>> 所有的都是可选的 (可以为 undefined)\n */\nexport type IconProps = ExtractPropTypes<typeof iconProps>;\n","<template>\n <i :class=\"bem.b()\" :style=\"style\">\n <slot></slot>\n </i>\n</template>\n\n<script setup lang=\"ts\">\nimport { createNamespace } from '@mealcomes/utils';\nimport { computed } from 'vue';\nimport { iconProps } from './icon';\n\nconst bem = createNamespace('icon');\n\ndefineOptions({\n name: 'mc-icon'\n});\n\nconst props = defineProps(iconProps);\n\n// 计算属性来计算一个样式\nconst style = computed(() => {\n if (!props.size && !props.color) {\n return {};\n }\n return {\n ...(props.size ? { 'font-size': props.size + 'px' } : {}),\n ...(props.color ? { 'color': props.color } : {}),\n }\n})\n\n</script>\n","// 整合组件,最终实现导出组件\n\nimport { withInstall } from '@mealcomes/utils';\nimport _Icon from './src/icon.vue';\n\n// 给组件添加 install 函数,用于在 vue 中安装组件\nexport const McIcon = withInstall(_Icon);\n\nexport default McIcon; // 此时可以通过 app.use 来使用,也可以通过 import 方式单独使用\n\nexport * from './src/icon';\n\n// 这里添加的类型,可以在模板(<template><el-icon></el-icon></template>)中被解析到\n// 打开 Vue 类型定义模块,向其中扩展内容\ndeclare module 'vue' {\n // GlobalComponents:Vue 类型系统中定义的一个接口,用于描述所有注册的全局组件\n export interface GlobalComponents {\n // MIcon: typeof Icon:将名为 MIcon 的组件注册进去,并绑定它的类型定义\n McIcon: typeof McIcon;\n }\n}\n"],"names":["iconProps","bem","createNamespace","props","__props","style","computed","_createElementBlock","_normalizeClass","_unref","_renderSlot","_ctx","McIcon","withInstall","_Icon"],"mappings":";;AAWO,MAAMA,IAAY;AAAA,EACrB,OAAO;AAAA,EACP,MAAM,CAAC,QAAQ,MAAM;AACzB;;;;;ACHA,UAAMC,IAAMC,EAAgB,MAAM,GAM5BC,IAAQC,GAGRC,IAAQC,EAAS,MACf,CAACH,EAAM,QAAQ,CAACA,EAAM,QACf,CAAA,IAEJ;AAAA,MACH,GAAIA,EAAM,OAAO,EAAE,aAAaA,EAAM,OAAO,KAAA,IAAS,CAAA;AAAA,MACtD,GAAIA,EAAM,QAAQ,EAAE,OAASA,EAAM,MAAA,IAAU,CAAA;AAAA,IAAC,CAErD;2BA3BGI,EAEI,KAAA;AAAA,MAFA,OAAKC,EAAEC,EAAAR,CAAA,EAAI,GAAC;AAAA,MAAK,SAAOI,EAAA,KAAK;AAAA,IAAA;MAC7BK,EAAaC,EAAA,QAAA,SAAA;AAAA,IAAA;;ICIRC,IAASC,EAAYC,CAAK;"}