@robot-admin/naive-ui-components 0.6.5 → 0.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/C_Breadcrumb-B5PGpP5m.css.map +1 -0
- package/dist/C_Breadcrumb-Cay7qluL.css.map +1 -0
- package/dist/C_Breadcrumb.css +21 -3
- package/dist/C_Breadcrumb.js.map +1 -1
- package/dist/C_Breadcrumb2.js +1 -1
- package/dist/C_Breadcrumb2.js.map +1 -1
- package/dist/constants3.d.ts +3 -3
- package/dist/constants4.d.ts +2 -2
- package/dist/constants5.d.ts +4 -4
- package/dist/data.d.ts +1 -1
- package/dist/index11.vue.d.ts +7 -7
- package/dist/index13.vue.d.ts +1 -1
- package/dist/index15.vue.d.ts +1 -1
- package/dist/index17.vue.d.ts +1 -1
- package/dist/index19.vue.d.ts +2 -2
- package/dist/index2.vue.d.ts +5 -5
- package/dist/index3.vue.d.ts +3 -1
- package/dist/index7.vue.d.ts +3 -3
- package/dist/index9.vue.d.ts +1 -1
- package/dist/style.css +22 -4
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.ts +6 -6
- package/dist/useCropperCore.d.ts +5 -5
- package/dist/useDraggableLayout.d.ts +1 -1
- package/dist/useDynamicFormState.d.ts +8 -8
- package/dist/useEdgeInteraction.d.ts +2 -2
- package/dist/useInfiniteScroll.d.ts +1 -1
- package/dist/useModalEdit.d.ts +4 -4
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useSearchState.d.ts +1 -1
- package/dist/useSignatureHistory.d.ts +2 -2
- package/dist/useSplitResize.d.ts +5 -5
- package/dist/useTimeSelection.d.ts +1 -1
- package/dist/useTreeOperations.d.ts +4 -4
- package/dist/useWorkflowValidation.d.ts +2 -2
- package/package.json +1 -1
- package/dist/C_Breadcrumb-D55Jd2CK.css.map +0 -1
- package/dist/C_Breadcrumb-mBL4CWps.css.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"C_Breadcrumb-B5PGpP5m.css","names":[],"sources":["../src/components/C_Breadcrumb/index.vue?vue&type=style&index=0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.c-breadcrumb {\n --c-breadcrumb-icon-size: 16px;\n --c-breadcrumb-gap: 4px;\n --c-breadcrumb-font-size: inherit;\n display: flex;\n align-items: center;\n height: 100%;\n}\n.c-breadcrumb__trigger, .c-breadcrumb__link {\n display: inline-flex;\n align-items: center;\n gap: var(--c-breadcrumb-gap);\n font-size: var(--c-breadcrumb-font-size);\n line-height: 1;\n cursor: pointer;\n}\n.c-breadcrumb .c-icon {\n flex-shrink: 0;\n}\n.c-breadcrumb .n-breadcrumb-item__separator {\n display: inline-flex;\n align-items: center;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"C_Breadcrumb-Cay7qluL.css","names":[],"sources":["../src/components/C_Breadcrumb/index.vue?vue&type=style&index=0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.c-breadcrumb {\n --c-breadcrumb-icon-size: 16px;\n --c-breadcrumb-gap: 4px;\n --c-breadcrumb-font-size: inherit;\n display: flex;\n align-items: center;\n height: 100%;\n}\n.c-breadcrumb__trigger, .c-breadcrumb__link {\n display: inline-flex;\n align-items: center;\n gap: var(--c-breadcrumb-gap);\n font-size: var(--c-breadcrumb-font-size);\n line-height: 1;\n cursor: pointer;\n}\n.c-breadcrumb .c-icon {\n flex-shrink: 0;\n}\n.c-breadcrumb .n-breadcrumb-item__separator {\n display: inline-flex;\n align-items: center;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
|
package/dist/C_Breadcrumb.css
CHANGED
|
@@ -1,7 +1,25 @@
|
|
|
1
|
-
/* unplugin-vue-components disabled */.c-
|
|
1
|
+
/* unplugin-vue-components disabled */.c-breadcrumb {
|
|
2
|
+
--c-breadcrumb-icon-size: 16px;
|
|
3
|
+
--c-breadcrumb-gap: 4px;
|
|
4
|
+
--c-breadcrumb-font-size: inherit;
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
height: 100%;
|
|
8
|
+
}
|
|
9
|
+
.c-breadcrumb__trigger, .c-breadcrumb__link {
|
|
10
|
+
display: inline-flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: var(--c-breadcrumb-gap);
|
|
13
|
+
font-size: var(--c-breadcrumb-font-size);
|
|
14
|
+
line-height: 1;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
}
|
|
17
|
+
.c-breadcrumb .c-icon {
|
|
18
|
+
flex-shrink: 0;
|
|
19
|
+
}
|
|
20
|
+
.c-breadcrumb .n-breadcrumb-item__separator {
|
|
2
21
|
display: inline-flex;
|
|
3
22
|
align-items: center;
|
|
4
|
-
gap: 4px;
|
|
5
23
|
}
|
|
6
24
|
|
|
7
|
-
/*# sourceMappingURL=C_Breadcrumb-
|
|
25
|
+
/*# sourceMappingURL=C_Breadcrumb-B5PGpP5m.css.map*/
|
package/dist/C_Breadcrumb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"C_Breadcrumb.js","names":["showIcon"],"sources":["../src/components/C_Breadcrumb/index.vue","../src/components/C_Breadcrumb/index.vue","../src/components/C_Breadcrumb/index.vue"],"sourcesContent":["/* unplugin-vue-components disabled */<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-breadcrumb flex-1 min-w-0\">\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n }\n }\n</style>\n","/* unplugin-vue-components disabled */<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-breadcrumb flex-1 min-w-0\">\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n }\n }\n</style>\n","<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-breadcrumb flex-1 min-w-0\">\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n }\n }\n</style>\n"],"mappings":"+XEqEE,IAAM,EAAQ,EAoBR,EAAO,EAKP,GAAA,EAAA,EAAA,WAAiB,CAEjB,EAAe,GACnB,EAAM,eAAiB,EAAM,eAAe,EAAM,CAAG,EAGjD,GAAA,EAAA,EAAA,cACG,EAAM,QACV,OAAQ,GAAgB,EAAO,MAAM,MAAK,CAC1C,IAAK,IAAiB,CACrB,IAAK,EAAO,KACZ,MAAO,EAAa,EAAO,KAAK,OAAS,GAAc,CACvD,KAAM,EAAO,KAAK,KAClB,SAAU,EAAO,UAAU,OACvB,EAAO,SAAS,IAAK,IAAgB,CACnC,IAAK,EAAM,KACX,MAAO,EAAa,EAAM,MAAM,OAAS,GAAc,CACvD,GAAI,EAAM,UAAU,QAAU,CAC5B,SAAU,EAAM,SAAS,IAAK,IAAqB,CACjD,IAAK,EAAW,KAChB,MAAO,EAAa,EAAW,MAAM,OAAS,GAAc,CAC7D,EAAE,CACJ,CACF,EAAC,CACF,EAAE,CACP,EAAC,CACL,CAEK,GAAA,EAAA,EAAA,cACE,EAAM,OAAS,EAAe,MACtC,CAEM,EAAgB,GAAgB,CACpC,EAAK,SAAU,EAAG,uHArEd,MAhCN,EAgCM,EAAA,EAAA,EAAA,aADU,EAAA,KAAA,2BA5B8B,GAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,EAAA,oBA2BxB,EAAA,SAAA,MAAA,EAAA,EAAA,YA3BQ,EAAA,OAAhB,EAAM,yCA2BE,EAAA,CA1Bf,IAAK,EAAK,CAAA,2BAiBb,CAdU,EAAK,UAAU,SAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,aAWX,EAAA,OAVT,QAAS,EAAK,SACd,SAAQ,8BAQH,EAAA,EAAA,EAAA,oBAAA,MANN,EAMM,CAJIA,EAAAA,WAAAA,EAAAA,EAAAA,YAAAA,EAAAA,EAAAA,EAAAA,cAAAA,EAAAA,EAAAA,OAEN,EAAA,EAAA,CAAA,OADC,KAAM,EAAK,kFACZ,KAAA,EAAA,EAAA,iBACC,EAAK,MAAK,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,qEAaV,OAAA,OARL,MAAM,qBACL,QAAK,GAAE,EAAa,EAAK,IAAG,GAGrBA,EAAAA,WAAAA,EAAAA,EAAAA,YAAAA,EAAAA,EAAAA,EAAAA,cAAAA,EAAAA,EAAAA,OAEN,EAAA,EAAA,CAAA,OADC,KAAM,EAAK,kFACZ,KAAA,EAAA,EAAA,iBACC,EAAK,MAAK,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"C_Breadcrumb.js","names":["iconSize","showIcon"],"sources":["../src/components/C_Breadcrumb/index.vue","../src/components/C_Breadcrumb/index.vue","../src/components/C_Breadcrumb/index.vue"],"sourcesContent":["/* unplugin-vue-components disabled */<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div\n class=\"c-breadcrumb flex-1 min-w-0\"\n :style=\"{\n '--c-breadcrumb-icon-size': `${iconSize}px`,\n '--c-breadcrumb-gap': `${Math.max(Math.round(iconSize / 4), 2)}px`,\n }\"\n >\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /** 图标大小 (px),默认 16 */\n iconSize?: number\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n iconSize: 16,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n // 暴露 CSS 变量,方便主项目覆盖\n --c-breadcrumb-icon-size: 16px;\n --c-breadcrumb-gap: 4px;\n --c-breadcrumb-font-size: inherit;\n\n display: flex;\n align-items: center;\n height: 100%;\n\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: var(--c-breadcrumb-gap);\n font-size: var(--c-breadcrumb-font-size);\n line-height: 1;\n cursor: pointer;\n }\n\n // 确保 C_Icon 在面包屑中尺寸一致\n .c-icon {\n flex-shrink: 0;\n }\n\n // 修复分隔符垂直对齐偏移\n .n-breadcrumb-item__separator {\n display: inline-flex;\n align-items: center;\n }\n }\n</style>\n","/* unplugin-vue-components disabled */<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div\n class=\"c-breadcrumb flex-1 min-w-0\"\n :style=\"{\n '--c-breadcrumb-icon-size': `${iconSize}px`,\n '--c-breadcrumb-gap': `${Math.max(Math.round(iconSize / 4), 2)}px`,\n }\"\n >\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /** 图标大小 (px),默认 16 */\n iconSize?: number\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n iconSize: 16,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n // 暴露 CSS 变量,方便主项目覆盖\n --c-breadcrumb-icon-size: 16px;\n --c-breadcrumb-gap: 4px;\n --c-breadcrumb-font-size: inherit;\n\n display: flex;\n align-items: center;\n height: 100%;\n\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: var(--c-breadcrumb-gap);\n font-size: var(--c-breadcrumb-font-size);\n line-height: 1;\n cursor: pointer;\n }\n\n // 确保 C_Icon 在面包屑中尺寸一致\n .c-icon {\n flex-shrink: 0;\n }\n\n // 修复分隔符垂直对齐偏移\n .n-breadcrumb-item__separator {\n display: inline-flex;\n align-items: center;\n }\n }\n</style>\n","<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div\n class=\"c-breadcrumb flex-1 min-w-0\"\n :style=\"{\n '--c-breadcrumb-icon-size': `${iconSize}px`,\n '--c-breadcrumb-gap': `${Math.max(Math.round(iconSize / 4), 2)}px`,\n }\"\n >\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /** 图标大小 (px),默认 16 */\n iconSize?: number\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n iconSize: 16,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n // 暴露 CSS 变量,方便主项目覆盖\n --c-breadcrumb-icon-size: 16px;\n --c-breadcrumb-gap: 4px;\n --c-breadcrumb-font-size: inherit;\n\n display: flex;\n align-items: center;\n height: 100%;\n\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: var(--c-breadcrumb-gap);\n font-size: var(--c-breadcrumb-font-size);\n line-height: 1;\n cursor: pointer;\n }\n\n // 确保 C_Icon 在面包屑中尺寸一致\n .c-icon {\n flex-shrink: 0;\n }\n\n // 修复分隔符垂直对齐偏移\n .n-breadcrumb-item__separator {\n display: inline-flex;\n align-items: center;\n }\n }\n</style>\n"],"mappings":"6WE6EE,IAAM,EAAQ,EAuBR,EAAO,EAKP,GAAA,EAAA,EAAA,WAAiB,CAEjB,EAAe,GACnB,EAAM,eAAiB,EAAM,eAAe,EAAM,CAAG,EAGjD,GAAA,EAAA,EAAA,cACG,EAAM,QACV,OAAQ,GAAgB,EAAO,MAAM,MAAK,CAC1C,IAAK,IAAiB,CACrB,IAAK,EAAO,KACZ,MAAO,EAAa,EAAO,KAAK,OAAS,GAAc,CACvD,KAAM,EAAO,KAAK,KAClB,SAAU,EAAO,UAAU,OACvB,EAAO,SAAS,IAAK,IAAgB,CACnC,IAAK,EAAM,KACX,MAAO,EAAa,EAAM,MAAM,OAAS,GAAc,CACvD,GAAI,EAAM,UAAU,QAAU,CAC5B,SAAU,EAAM,SAAS,IAAK,IAAqB,CACjD,IAAK,EAAW,KAChB,MAAO,EAAa,EAAW,MAAM,OAAS,GAAc,CAC7D,EAAE,CACJ,CACF,EAAC,CACF,EAAE,CACP,EAAC,CACL,CAEK,GAAA,EAAA,EAAA,cACE,EAAM,OAAS,EAAe,MACtC,CAEM,EAAgB,GAAgB,CACpC,EAAK,SAAU,EAAG,uHAxEd,MAAA,CAvCJ,MAAM,8BACL,OAAA,EAAA,EAAA,gBAAK,+BAAyCA,EAAAA,SAAQ,4BAAqC,KAAK,IAAI,KAAK,MAAMA,EAAAA,SAAQ,EAAA,CAAA,EAAA,CAAA,0BAqC1G,EAAA,KAAA,2BA9B8B,GAAA,EAAA,EAAA,WAAA,GAAA,EAAA,EAAA,EAAA,oBA6BxB,EAAA,SAAA,MAAA,EAAA,EAAA,YA7BQ,EAAA,OAAhB,EAAM,yCA6BE,EAAA,CA5Bf,IAAK,EAAK,CAAA,2BAkBb,CAfU,EAAK,UAAU,SAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,aAYX,EAAA,OAXT,QAAS,EAAK,SACd,SAAQ,8BASH,EAAA,EAAA,EAAA,oBAAA,MAPN,EAOM,CALIC,EAAAA,WAAAA,EAAAA,EAAAA,YAAAA,EAAAA,EAAAA,EAAAA,cAAAA,EAAAA,EAAAA,OAGN,EAAA,EAAA,CAAA,OAFC,KAAM,EAAK,KACX,KAAMD,EAAAA,6FACP,KAAA,EAAA,EAAA,iBACC,EAAK,MAAK,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,qEAcV,OAAA,OATL,MAAM,qBACL,QAAK,GAAE,EAAa,EAAK,IAAG,GAGrBC,EAAAA,WAAAA,EAAAA,EAAAA,YAAAA,EAAAA,EAAAA,EAAAA,cAAAA,EAAAA,EAAAA,OAGN,EAAA,EAAA,CAAA,OAFC,KAAM,EAAK,KACX,KAAMD,EAAAA,6FACP,KAAA,EAAA,EAAA,iBACC,EAAK,MAAK,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA"}
|
package/dist/C_Breadcrumb2.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./C_Icon2.js";import{NBreadcrumb as t,NBreadcrumbItem as n,NDropdown as r}from"naive-ui";import{Fragment as i,computed as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createElementVNode as l,createTextVNode as u,createVNode as d,defineComponent as f,
|
|
1
|
+
import{t as e}from"./C_Icon2.js";import{NBreadcrumb as t,NBreadcrumbItem as n,NDropdown as r}from"naive-ui";import{Fragment as i,computed as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createElementVNode as l,createTextVNode as u,createVNode as d,defineComponent as f,normalizeStyle as p,openBlock as m,renderList as h,toDisplayString as g,unref as _,withCtx as v}from"vue";import{useRoute as y}from"vue-router";const b={class:`c-breadcrumb__trigger`},x=[`onClick`];var S=f({name:`C_Breadcrumb`,__name:`index`,props:{items:{},showIcon:{type:Boolean,default:!0},iconSize:{default:16},labelFormatter:{}},emits:[`select`],setup(f,{emit:S}){let C=f,w=S,T=y(),E=e=>C.labelFormatter?C.labelFormatter(e):e,D=a(()=>T.matched.filter(e=>e.meta?.title).map(e=>({key:e.path,label:E(e.meta.title||``),icon:e.meta.icon,children:e.children?.length?e.children.map(e=>({key:e.path,label:E(e.meta?.title||``),...e.children?.length&&{children:e.children.map(e=>({key:e.path,label:E(e.meta?.title||``)}))}})):[]}))),O=a(()=>C.items??D.value),k=e=>{w(`select`,e)};return(a,f)=>{let y=r,S=n,C=t;return m(),c(`div`,{class:`c-breadcrumb flex-1 min-w-0`,style:p({"--c-breadcrumb-icon-size":`${a.iconSize}px`,"--c-breadcrumb-gap":`${Math.max(Math.round(a.iconSize/4),2)}px`})},[d(C,null,{default:v(()=>[(m(!0),c(i,null,h(O.value,(t,n)=>(m(),o(S,{key:n},{default:v(()=>[t.children?.length?(m(),o(y,{key:0,options:t.children,onSelect:k},{default:v(()=>[l(`div`,b,[a.showIcon?(m(),o(_(e),{key:0,name:t.icon,size:a.iconSize},null,8,[`name`,`size`])):s(`v-if`,!0),u(` `+g(t.label),1)])]),_:2},1032,[`options`])):(m(),c(`span`,{key:1,class:`c-breadcrumb__link`,onClick:e=>k(t.key)},[a.showIcon?(m(),o(_(e),{key:0,name:t.icon,size:a.iconSize},null,8,[`name`,`size`])):s(`v-if`,!0),u(` `+g(t.label),1)],8,x))]),_:2},1024))),128))]),_:1})],4)}}});export{S as t};
|
|
2
2
|
//# sourceMappingURL=C_Breadcrumb2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"C_Breadcrumb2.js","names":["showIcon"],"sources":["../src/components/C_Breadcrumb/index.vue","../src/components/C_Breadcrumb/index.vue","../src/components/C_Breadcrumb/index.vue"],"sourcesContent":["/* unplugin-vue-components disabled */<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-breadcrumb flex-1 min-w-0\">\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n }\n }\n</style>\n","/* unplugin-vue-components disabled */<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-breadcrumb flex-1 min-w-0\">\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n }\n }\n</style>\n","<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div class=\"c-breadcrumb flex-1 min-w-0\">\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n }\n }\n</style>\n"],"mappings":"kpBEqEE,IAAM,EAAQ,EAoBR,EAAO,EAKP,EAAQ,GAAS,CAEjB,EAAe,GACnB,EAAM,eAAiB,EAAM,eAAe,EAAM,CAAG,EAGjD,EAAiB,MACd,EAAM,QACV,OAAQ,GAAgB,EAAO,MAAM,MAAK,CAC1C,IAAK,IAAiB,CACrB,IAAK,EAAO,KACZ,MAAO,EAAa,EAAO,KAAK,OAAS,GAAc,CACvD,KAAM,EAAO,KAAK,KAClB,SAAU,EAAO,UAAU,OACvB,EAAO,SAAS,IAAK,IAAgB,CACnC,IAAK,EAAM,KACX,MAAO,EAAa,EAAM,MAAM,OAAS,GAAc,CACvD,GAAI,EAAM,UAAU,QAAU,CAC5B,SAAU,EAAM,SAAS,IAAK,IAAqB,CACjD,IAAK,EAAW,KAChB,MAAO,EAAa,EAAW,MAAM,OAAS,GAAc,CAC7D,EAAE,CACJ,CACF,EAAC,CACF,EAAE,CACP,EAAC,CACL,CAEK,EAAkB,MAChB,EAAM,OAAS,EAAe,MACtC,CAEM,EAAgB,GAAgB,CACpC,EAAK,SAAU,EAAG,2CArGpB,EAgCM,MAhCN,EAgCM,CA/BJ,EA8Bc,EAAA,KAAA,eA5B8B,EAAA,EAAA,GAAA,CAD1C,EA4BkB,EAAA,KAAA,EA3BQ,EAAA,OAAhB,EAAM,SADhB,EA4BkB,EAAA,CA1Bf,IAAK,EAAK,CAAA,eAiBb,CAdU,EAAK,UAAU,QAAA,GAAA,CADvB,EAYY,EAAA,OAVT,QAAS,EAAK,SACd,SAAQ,kBAQH,CANN,EAMM,MANN,EAMM,CAJIA,EAAAA,UAAAA,GAAAA,CADR,EAGE,EAAA,EAAA,CAAA,OADC,KAAM,EAAK,uCACZ,IACF,EAAG,EAAK,MAAK,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,8BAGjB,EAUO,OAAA,OARL,MAAM,qBACL,QAAK,GAAE,EAAa,EAAK,IAAG,GAGrBA,EAAAA,UAAAA,GAAAA,CADR,EAGE,EAAA,EAAA,CAAA,OADC,KAAM,EAAK,uCACZ,IACF,EAAG,EAAK,MAAK,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA"}
|
|
1
|
+
{"version":3,"file":"C_Breadcrumb2.js","names":["iconSize","showIcon"],"sources":["../src/components/C_Breadcrumb/index.vue","../src/components/C_Breadcrumb/index.vue","../src/components/C_Breadcrumb/index.vue"],"sourcesContent":["/* unplugin-vue-components disabled */<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div\n class=\"c-breadcrumb flex-1 min-w-0\"\n :style=\"{\n '--c-breadcrumb-icon-size': `${iconSize}px`,\n '--c-breadcrumb-gap': `${Math.max(Math.round(iconSize / 4), 2)}px`,\n }\"\n >\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /** 图标大小 (px),默认 16 */\n iconSize?: number\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n iconSize: 16,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n // 暴露 CSS 变量,方便主项目覆盖\n --c-breadcrumb-icon-size: 16px;\n --c-breadcrumb-gap: 4px;\n --c-breadcrumb-font-size: inherit;\n\n display: flex;\n align-items: center;\n height: 100%;\n\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: var(--c-breadcrumb-gap);\n font-size: var(--c-breadcrumb-font-size);\n line-height: 1;\n cursor: pointer;\n }\n\n // 确保 C_Icon 在面包屑中尺寸一致\n .c-icon {\n flex-shrink: 0;\n }\n\n // 修复分隔符垂直对齐偏移\n .n-breadcrumb-item__separator {\n display: inline-flex;\n align-items: center;\n }\n }\n</style>\n","/* unplugin-vue-components disabled */<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div\n class=\"c-breadcrumb flex-1 min-w-0\"\n :style=\"{\n '--c-breadcrumb-icon-size': `${iconSize}px`,\n '--c-breadcrumb-gap': `${Math.max(Math.round(iconSize / 4), 2)}px`,\n }\"\n >\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /** 图标大小 (px),默认 16 */\n iconSize?: number\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n iconSize: 16,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n // 暴露 CSS 变量,方便主项目覆盖\n --c-breadcrumb-icon-size: 16px;\n --c-breadcrumb-gap: 4px;\n --c-breadcrumb-font-size: inherit;\n\n display: flex;\n align-items: center;\n height: 100%;\n\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: var(--c-breadcrumb-gap);\n font-size: var(--c-breadcrumb-font-size);\n line-height: 1;\n cursor: pointer;\n }\n\n // 确保 C_Icon 在面包屑中尺寸一致\n .c-icon {\n flex-shrink: 0;\n }\n\n // 修复分隔符垂直对齐偏移\n .n-breadcrumb-item__separator {\n display: inline-flex;\n align-items: center;\n }\n }\n</style>\n","<!--\n * @Description: 通用面包屑组件 — 基于 NBreadcrumb 的路由面包屑导航\n *\n * 支持两种模式:\n * 1. 自动模式(默认)— 从 `route.matched` 自动生成面包屑\n * 2. 手动模式 — 传入 `items` 完全自定义\n *\n * @example 自动模式(零配置)\n * ```vue\n * <C_Breadcrumb\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 手动模式\n * ```vue\n * <C_Breadcrumb\n * :items=\"customBreadcrumbs\"\n * @select=\"handleSelect\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <div\n class=\"c-breadcrumb flex-1 min-w-0\"\n :style=\"{\n '--c-breadcrumb-icon-size': `${iconSize}px`,\n '--c-breadcrumb-gap': `${Math.max(Math.round(iconSize / 4), 2)}px`,\n }\"\n >\n <NBreadcrumb>\n <NBreadcrumbItem\n v-for=\"(item, index) in breadcrumbItems\"\n :key=\"index\"\n >\n <NDropdown\n v-if=\"item.children?.length\"\n :options=\"item.children\"\n @select=\"handleSelect\"\n >\n <div class=\"c-breadcrumb__trigger\">\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </div>\n </NDropdown>\n <span\n v-else\n class=\"c-breadcrumb__link\"\n @click=\"handleSelect(item.key)\"\n >\n <C_Icon\n v-if=\"showIcon\"\n :name=\"item.icon\"\n :size=\"iconSize\"\n />\n {{ item.label }}\n </span>\n </NBreadcrumbItem>\n </NBreadcrumb>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed } from 'vue'\n import { useRoute } from 'vue-router'\n import { C_Icon } from '../C_Icon'\n import type { BreadcrumbItem } from '../_shared'\n\n defineOptions({ name: 'C_Breadcrumb' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 手动传入面包屑数据\n * 不传时自动从 `route.matched` 生成(零配置)\n */\n items?: BreadcrumbItem[]\n /** 是否显示图标 */\n showIcon?: boolean\n /** 图标大小 (px),默认 16 */\n iconSize?: number\n /**\n * 标签文本格式化函数(用于 i18n)\n * 仅在自动模式下生效\n */\n labelFormatter?: (label: string) => string\n }>(),\n {\n showIcon: true,\n iconSize: 16,\n }\n )\n\n const emit = defineEmits<{\n /** 面包屑项被选中(返回路径 key) */\n select: [path: string]\n }>()\n\n const route = useRoute()\n\n const formatLabel = (title: string): string =>\n props.labelFormatter ? props.labelFormatter(title) : title\n\n /** 从 route.matched 自动生成面包屑 */\n const autoBreadcrumb = computed<BreadcrumbItem[]>(() => {\n return route.matched\n .filter((record: any) => record.meta?.title)\n .map((record: any) => ({\n key: record.path,\n label: formatLabel((record.meta.title || '') as string),\n icon: record.meta.icon as string | undefined,\n children: record.children?.length\n ? record.children.map((child: any) => ({\n key: child.path,\n label: formatLabel((child.meta?.title || '') as string),\n ...(child.children?.length && {\n children: child.children.map((grandChild: any) => ({\n key: grandChild.path,\n label: formatLabel((grandChild.meta?.title || '') as string),\n })),\n }),\n }))\n : [],\n }))\n })\n\n const breadcrumbItems = computed<BreadcrumbItem[]>(\n () => props.items ?? autoBreadcrumb.value\n )\n\n const handleSelect = (key: string) => {\n emit('select', key)\n }\n</script>\n\n<style lang=\"scss\">\n .c-breadcrumb {\n // 暴露 CSS 变量,方便主项目覆盖\n --c-breadcrumb-icon-size: 16px;\n --c-breadcrumb-gap: 4px;\n --c-breadcrumb-font-size: inherit;\n\n display: flex;\n align-items: center;\n height: 100%;\n\n &__trigger,\n &__link {\n display: inline-flex;\n align-items: center;\n gap: var(--c-breadcrumb-gap);\n font-size: var(--c-breadcrumb-font-size);\n line-height: 1;\n cursor: pointer;\n }\n\n // 确保 C_Icon 在面包屑中尺寸一致\n .c-icon {\n flex-shrink: 0;\n }\n\n // 修复分隔符垂直对齐偏移\n .n-breadcrumb-item__separator {\n display: inline-flex;\n align-items: center;\n }\n }\n</style>\n"],"mappings":"opBE6EE,IAAM,EAAQ,EAuBR,EAAO,EAKP,EAAQ,GAAS,CAEjB,EAAe,GACnB,EAAM,eAAiB,EAAM,eAAe,EAAM,CAAG,EAGjD,EAAiB,MACd,EAAM,QACV,OAAQ,GAAgB,EAAO,MAAM,MAAK,CAC1C,IAAK,IAAiB,CACrB,IAAK,EAAO,KACZ,MAAO,EAAa,EAAO,KAAK,OAAS,GAAc,CACvD,KAAM,EAAO,KAAK,KAClB,SAAU,EAAO,UAAU,OACvB,EAAO,SAAS,IAAK,IAAgB,CACnC,IAAK,EAAM,KACX,MAAO,EAAa,EAAM,MAAM,OAAS,GAAc,CACvD,GAAI,EAAM,UAAU,QAAU,CAC5B,SAAU,EAAM,SAAS,IAAK,IAAqB,CACjD,IAAK,EAAW,KAChB,MAAO,EAAa,EAAW,MAAM,OAAS,GAAc,CAC7D,EAAE,CACJ,CACF,EAAC,CACF,EAAE,CACP,EAAC,CACL,CAEK,EAAkB,MAChB,EAAM,OAAS,EAAe,MACtC,CAEM,EAAgB,GAAgB,CACpC,EAAK,SAAU,EAAG,2CAhHpB,EAwCM,MAAA,CAvCJ,MAAM,8BACL,MAAK,EAAA,+BAAyCA,EAAAA,SAAQ,4BAAqC,KAAK,IAAI,KAAK,MAAMA,EAAAA,SAAQ,EAAA,CAAA,EAAA,CAAA,QAKxH,EAgCc,EAAA,KAAA,eA9B8B,EAAA,EAAA,GAAA,CAD1C,EA8BkB,EAAA,KAAA,EA7BQ,EAAA,OAAhB,EAAM,SADhB,EA8BkB,EAAA,CA5Bf,IAAK,EAAK,CAAA,eAkBb,CAfU,EAAK,UAAU,QAAA,GAAA,CADvB,EAaY,EAAA,OAXT,QAAS,EAAK,SACd,SAAQ,kBASH,CAPN,EAOM,MAPN,EAOM,CALIC,EAAAA,UAAAA,GAAAA,CADR,EAIE,EAAA,EAAA,CAAA,OAFC,KAAM,EAAK,KACX,KAAMD,EAAAA,kDACP,IACF,EAAG,EAAK,MAAK,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,8BAGjB,EAWO,OAAA,OATL,MAAM,qBACL,QAAK,GAAE,EAAa,EAAK,IAAG,GAGrBC,EAAAA,UAAAA,GAAAA,CADR,EAIE,EAAA,EAAA,CAAA,OAFC,KAAM,EAAK,KACX,KAAMD,EAAAA,kDACP,IACF,EAAG,EAAK,MAAK,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA"}
|
package/dist/constants3.d.ts
CHANGED
|
@@ -168,11 +168,11 @@ declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, Notific
|
|
|
168
168
|
onNewMessage?: ((message: NotificationMessage) => any) | undefined;
|
|
169
169
|
onNavigate?: ((url: string) => any) | undefined;
|
|
170
170
|
}>, {
|
|
171
|
-
pageSize: number;
|
|
172
|
-
storageKey: string;
|
|
173
171
|
desktopNotification: boolean;
|
|
174
172
|
maxBadgeCount: number;
|
|
175
173
|
pollingInterval: number;
|
|
174
|
+
pageSize: number;
|
|
175
|
+
storageKey: string;
|
|
176
176
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
177
177
|
declare const _default: typeof __VLS_export;
|
|
178
178
|
//#endregion
|
|
@@ -217,7 +217,7 @@ declare function useNotificationCore(props: NotificationCenterProps): {
|
|
|
217
217
|
actionText?: string | undefined;
|
|
218
218
|
extra?: Record<string, unknown> | undefined;
|
|
219
219
|
}[]>;
|
|
220
|
-
activeCategory: vue.Ref<"all" |
|
|
220
|
+
activeCategory: vue.Ref<NotificationCategory | "all", NotificationCategory | "all">;
|
|
221
221
|
loading: vue.Ref<boolean, boolean>;
|
|
222
222
|
total: vue.Ref<number, number>;
|
|
223
223
|
page: vue.Ref<number, number>;
|
package/dist/constants4.d.ts
CHANGED
|
@@ -213,15 +213,15 @@ declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {},
|
|
|
213
213
|
onExceed?: ((files: File[], fileList: UploadFileItem[]) => any) | undefined;
|
|
214
214
|
}>, {
|
|
215
215
|
disabled: boolean;
|
|
216
|
+
data: Record<string, any>;
|
|
216
217
|
maxSize: number;
|
|
218
|
+
draggable: boolean;
|
|
217
219
|
action: string;
|
|
218
220
|
headers: Record<string, string>;
|
|
219
|
-
data: Record<string, any>;
|
|
220
221
|
multiple: boolean;
|
|
221
222
|
directory: boolean;
|
|
222
223
|
accept: string;
|
|
223
224
|
maxCount: number;
|
|
224
|
-
draggable: boolean;
|
|
225
225
|
pasteable: boolean;
|
|
226
226
|
chunked: boolean;
|
|
227
227
|
chunkSize: number;
|
package/dist/constants5.d.ts
CHANGED
|
@@ -259,11 +259,11 @@ type PlayerInstance = InstanceType<typeof xgplayer.default>;
|
|
|
259
259
|
//#endregion
|
|
260
260
|
//#region src/components/C_VideoPlayer/index.vue.d.ts
|
|
261
261
|
declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
262
|
-
error: (error: Error) => any;
|
|
263
262
|
ready: () => any;
|
|
263
|
+
error: (error: Error) => any;
|
|
264
|
+
ended: () => any;
|
|
264
265
|
stateChange: (state: PlayerState) => any;
|
|
265
266
|
timeUpdate: (currentTime: number, duration: number) => any;
|
|
266
|
-
ended: () => any;
|
|
267
267
|
qualityChange: (quality: QualityLevel) => any;
|
|
268
268
|
rateChange: (rate: number) => any;
|
|
269
269
|
fullscreenChange: (isFullscreen: boolean) => any;
|
|
@@ -272,11 +272,11 @@ declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExp
|
|
|
272
272
|
chapterChange: (chapter: Chapter) => any;
|
|
273
273
|
progressUpdate: (data: ProgressData) => any;
|
|
274
274
|
}, string, vue.PublicProps, Readonly<VideoPlayerProps> & Readonly<{
|
|
275
|
-
onError?: ((error: Error) => any) | undefined;
|
|
276
275
|
onReady?: (() => any) | undefined;
|
|
276
|
+
onError?: ((error: Error) => any) | undefined;
|
|
277
|
+
onEnded?: (() => any) | undefined;
|
|
277
278
|
onStateChange?: ((state: PlayerState) => any) | undefined;
|
|
278
279
|
onTimeUpdate?: ((currentTime: number, duration: number) => any) | undefined;
|
|
279
|
-
onEnded?: (() => any) | undefined;
|
|
280
280
|
onQualityChange?: ((quality: QualityLevel) => any) | undefined;
|
|
281
281
|
onRateChange?: ((rate: number) => any) | undefined;
|
|
282
282
|
onFullscreenChange?: ((isFullscreen: boolean) => any) | undefined;
|
package/dist/data.d.ts
CHANGED
|
@@ -26,8 +26,8 @@ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue
|
|
|
26
26
|
center: [number, number];
|
|
27
27
|
zoom: number;
|
|
28
28
|
markers: MapMarker$1[];
|
|
29
|
-
amapKey: string;
|
|
30
29
|
mapType: "osm" | "amap";
|
|
30
|
+
amapKey: string;
|
|
31
31
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
32
32
|
declare const _default: typeof __VLS_export;
|
|
33
33
|
//#endregion
|
package/dist/index11.vue.d.ts
CHANGED
|
@@ -41,29 +41,29 @@ declare const __VLS_export: vue.DefineComponent<IconProps, {
|
|
|
41
41
|
errorMessage: Readonly<vue.Ref<string, string>>; /** DOM引用 */
|
|
42
42
|
el: vue.Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
43
43
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
44
|
-
error: (type: string, error?: any) => any;
|
|
45
44
|
click: (event: MouseEvent) => any;
|
|
45
|
+
error: (type: string, error?: any) => any;
|
|
46
46
|
load: () => any;
|
|
47
47
|
}, string, vue.PublicProps, Readonly<IconProps> & Readonly<{
|
|
48
|
-
onError?: ((type: string, error?: any) => any) | undefined;
|
|
49
48
|
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
49
|
+
onError?: ((type: string, error?: any) => any) | undefined;
|
|
50
50
|
onLoad?: (() => any) | undefined;
|
|
51
51
|
}>, {
|
|
52
52
|
type: "iconify" | "unocss" | "component" | "svg" | "image";
|
|
53
|
+
title: string;
|
|
53
54
|
size: number | string;
|
|
54
55
|
name: string | any;
|
|
55
|
-
title: string;
|
|
56
|
-
rotate: number;
|
|
57
|
-
clickable: boolean;
|
|
58
56
|
color: string;
|
|
57
|
+
flip: "horizontal" | "vertical" | "both";
|
|
58
|
+
clickable: boolean;
|
|
59
|
+
loading: boolean;
|
|
59
60
|
svgPath: string;
|
|
60
61
|
viewBox: string;
|
|
61
62
|
alt: string;
|
|
62
|
-
loading: boolean;
|
|
63
63
|
fallbackIcon: string;
|
|
64
64
|
ariaLabel: string;
|
|
65
65
|
customClass: string;
|
|
66
|
-
|
|
66
|
+
rotate: number;
|
|
67
67
|
componentProps: Record<string, any>;
|
|
68
68
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
69
69
|
declare const _default: typeof __VLS_export;
|
package/dist/index13.vue.d.ts
CHANGED
|
@@ -63,6 +63,7 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
63
63
|
height: string | number;
|
|
64
64
|
mode: "edit" | "editable" | "preview";
|
|
65
65
|
placeholder: string;
|
|
66
|
+
isDark: boolean;
|
|
66
67
|
tocNavPosition: "left" | "right";
|
|
67
68
|
defaultFullscreen: boolean;
|
|
68
69
|
autofocus: boolean;
|
|
@@ -73,7 +74,6 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
73
74
|
showWordCount: boolean;
|
|
74
75
|
autoSave: boolean;
|
|
75
76
|
autoSaveInterval: number;
|
|
76
|
-
isDark: boolean;
|
|
77
77
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
78
78
|
declare const _default: typeof __VLS_export;
|
|
79
79
|
//#endregion
|
package/dist/index15.vue.d.ts
CHANGED
|
@@ -35,12 +35,12 @@ type __VLS_Slots = {} & {
|
|
|
35
35
|
};
|
|
36
36
|
declare const __VLS_base: vue.DefineComponent<Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
37
37
|
status: "default" | "success" | "error" | "warning" | "info";
|
|
38
|
-
strokeWidth: number;
|
|
39
38
|
percentage: number | number[];
|
|
40
39
|
isAnimation: boolean;
|
|
41
40
|
time: number;
|
|
42
41
|
indicatorPlacement: "inside" | "outside";
|
|
43
42
|
showIndicator: boolean;
|
|
43
|
+
strokeWidth: number;
|
|
44
44
|
unit: string;
|
|
45
45
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
46
46
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
package/dist/index17.vue.d.ts
CHANGED
|
@@ -76,10 +76,10 @@ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {
|
|
|
76
76
|
onClose?: ((fallbackPath: string) => any) | undefined;
|
|
77
77
|
onCloseAll?: (() => any) | undefined;
|
|
78
78
|
}>, {
|
|
79
|
+
persistKey: string;
|
|
79
80
|
homePath: string;
|
|
80
81
|
homeTitle: string;
|
|
81
82
|
homeIcon: string;
|
|
82
|
-
persistKey: string;
|
|
83
83
|
contextMenuLabels: ContextMenuLabels;
|
|
84
84
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
85
85
|
declare const _default: typeof __VLS_export;
|
package/dist/index19.vue.d.ts
CHANGED
|
@@ -648,11 +648,11 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
648
648
|
onTaskChange?: ((task: GanttTask, changes: any) => any) | undefined;
|
|
649
649
|
}>, {
|
|
650
650
|
height: string | number;
|
|
651
|
-
data: GanttTask[];
|
|
652
651
|
title: string;
|
|
652
|
+
options: GanttOptions;
|
|
653
|
+
data: GanttTask[];
|
|
653
654
|
showToolbar: boolean;
|
|
654
655
|
theme: "light" | "dark";
|
|
655
|
-
options: GanttOptions;
|
|
656
656
|
preset: GanttPreset;
|
|
657
657
|
showFullscreenButton: boolean;
|
|
658
658
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
package/dist/index2.vue.d.ts
CHANGED
|
@@ -21,16 +21,16 @@ declare const __VLS_export: vue.DefineComponent<Props, {}, {}, {}, {}, vue.Compo
|
|
|
21
21
|
onError?: ((error: Error) => any) | undefined;
|
|
22
22
|
}>, {
|
|
23
23
|
height: number;
|
|
24
|
-
label: string;
|
|
25
24
|
width: number;
|
|
26
|
-
fontSize: number;
|
|
27
25
|
format: "CODE128" | "CODE39" | "EAN13" | "EAN8" | "UPC" | "ITF14" | "MSI" | "pharmacode";
|
|
28
|
-
background: string;
|
|
29
|
-
showBorder: boolean;
|
|
30
|
-
showLabel: boolean;
|
|
31
26
|
showText: boolean;
|
|
27
|
+
fontSize: number;
|
|
32
28
|
textPosition: "bottom" | "top";
|
|
33
29
|
lineColor: string;
|
|
30
|
+
background: string;
|
|
31
|
+
showBorder: boolean;
|
|
32
|
+
label: string;
|
|
33
|
+
showLabel: boolean;
|
|
34
34
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
35
35
|
declare const _default: typeof __VLS_export;
|
|
36
36
|
//#endregion
|
package/dist/index3.vue.d.ts
CHANGED
|
@@ -8,7 +8,8 @@ type __VLS_Props = {
|
|
|
8
8
|
* 不传时自动从 `route.matched` 生成(零配置)
|
|
9
9
|
*/
|
|
10
10
|
items?: BreadcrumbItem[]; /** 是否显示图标 */
|
|
11
|
-
showIcon?: boolean;
|
|
11
|
+
showIcon?: boolean; /** 图标大小 (px),默认 16 */
|
|
12
|
+
iconSize?: number;
|
|
12
13
|
/**
|
|
13
14
|
* 标签文本格式化函数(用于 i18n)
|
|
14
15
|
* 仅在自动模式下生效
|
|
@@ -21,6 +22,7 @@ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue
|
|
|
21
22
|
onSelect?: ((path: string) => any) | undefined;
|
|
22
23
|
}>, {
|
|
23
24
|
showIcon: boolean;
|
|
25
|
+
iconSize: number;
|
|
24
26
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
25
27
|
declare const _default: typeof __VLS_export;
|
|
26
28
|
//#endregion
|
package/dist/index7.vue.d.ts
CHANGED
|
@@ -25,20 +25,20 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
25
25
|
copyCode: typeof copyCode;
|
|
26
26
|
toggleFullscreen: typeof toggleFullscreen;
|
|
27
27
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
28
|
-
click: (event: MouseEvent) => any;
|
|
29
28
|
copy: (code: string) => any;
|
|
29
|
+
click: (event: MouseEvent) => any;
|
|
30
30
|
fullscreen: (isFullscreen: boolean) => any;
|
|
31
31
|
}, string, vue.PublicProps, Readonly<Props> & Readonly<{
|
|
32
|
-
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
33
32
|
onCopy?: ((code: string) => any) | undefined;
|
|
33
|
+
onClick?: ((event: MouseEvent) => any) | undefined;
|
|
34
34
|
onFullscreen?: ((isFullscreen: boolean) => any) | undefined;
|
|
35
35
|
}>, {
|
|
36
|
-
trim: boolean;
|
|
37
36
|
code: string;
|
|
38
37
|
language: string;
|
|
39
38
|
showHeader: boolean;
|
|
40
39
|
showLineNumbers: boolean;
|
|
41
40
|
wordWrap: boolean;
|
|
41
|
+
trim: boolean;
|
|
42
42
|
showFullscreen: boolean;
|
|
43
43
|
autoLoadLanguage: boolean;
|
|
44
44
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
package/dist/index9.vue.d.ts
CHANGED
|
@@ -31,9 +31,9 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
31
31
|
modelValue: string;
|
|
32
32
|
disabled: boolean;
|
|
33
33
|
height: number;
|
|
34
|
-
placeholder: string;
|
|
35
34
|
readonly: boolean;
|
|
36
35
|
theme: "light" | "dark";
|
|
36
|
+
placeholder: string;
|
|
37
37
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
38
38
|
declare const _default: typeof __VLS_export;
|
|
39
39
|
//#endregion
|
package/dist/style.css
CHANGED
|
@@ -655,14 +655,32 @@ html.dark .action-divider[data-v-f5b5f258]:hover {
|
|
|
655
655
|
|
|
656
656
|
/*# sourceMappingURL=C_Barcode-DYDRDe2O.css.map*/
|
|
657
657
|
|
|
658
|
-
/* --- C_Breadcrumb-
|
|
659
|
-
/* unplugin-vue-components disabled */.c-
|
|
658
|
+
/* --- C_Breadcrumb-B5PGpP5m.css --- */
|
|
659
|
+
/* unplugin-vue-components disabled */.c-breadcrumb {
|
|
660
|
+
--c-breadcrumb-icon-size: 16px;
|
|
661
|
+
--c-breadcrumb-gap: 4px;
|
|
662
|
+
--c-breadcrumb-font-size: inherit;
|
|
663
|
+
display: flex;
|
|
664
|
+
align-items: center;
|
|
665
|
+
height: 100%;
|
|
666
|
+
}
|
|
667
|
+
.c-breadcrumb__trigger, .c-breadcrumb__link {
|
|
668
|
+
display: inline-flex;
|
|
669
|
+
align-items: center;
|
|
670
|
+
gap: var(--c-breadcrumb-gap);
|
|
671
|
+
font-size: var(--c-breadcrumb-font-size);
|
|
672
|
+
line-height: 1;
|
|
673
|
+
cursor: pointer;
|
|
674
|
+
}
|
|
675
|
+
.c-breadcrumb .c-icon {
|
|
676
|
+
flex-shrink: 0;
|
|
677
|
+
}
|
|
678
|
+
.c-breadcrumb .n-breadcrumb-item__separator {
|
|
660
679
|
display: inline-flex;
|
|
661
680
|
align-items: center;
|
|
662
|
-
gap: 4px;
|
|
663
681
|
}
|
|
664
682
|
|
|
665
|
-
/*# sourceMappingURL=C_Breadcrumb-
|
|
683
|
+
/*# sourceMappingURL=C_Breadcrumb-B5PGpP5m.css.map*/
|
|
666
684
|
|
|
667
685
|
/* --- C_Captcha-9_hk6VmY.css --- */
|
|
668
686
|
/* unplugin-vue-components disabled */.c-captcha-modern[data-v-a4319836] {
|
|
@@ -66,8 +66,8 @@ declare const __VLS_export: vue.DefineComponent<CalendarProps, CalendarExpose, {
|
|
|
66
66
|
}) => any) | undefined;
|
|
67
67
|
"onEvent-dropped"?: ((event: Partial<CalendarEvent>) => any) | undefined;
|
|
68
68
|
}>, {
|
|
69
|
-
initialView: CalendarViewType;
|
|
70
69
|
editable: boolean;
|
|
70
|
+
initialView: CalendarViewType;
|
|
71
71
|
events: CalendarEvent[];
|
|
72
72
|
showAddDialog: boolean;
|
|
73
73
|
showEditDialog: boolean;
|
|
@@ -69,22 +69,22 @@ declare var __VLS_7: `header-${string}`, __VLS_8: {
|
|
|
69
69
|
type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_7>]?: (props: typeof __VLS_8) => any } & { [K in NonNullable<typeof __VLS_16>]?: (props: typeof __VLS_17) => any } & { [K in NonNullable<typeof __VLS_31>]?: (props: typeof __VLS_32) => any };
|
|
70
70
|
declare const __VLS_base: vue.DefineComponent<Props, CollapsePanelExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
71
71
|
change: (activeKeys: string[]) => any;
|
|
72
|
-
collapse: (key: string) => any;
|
|
73
|
-
expand: (key: string) => any;
|
|
74
72
|
"update:activeKeys": (keys: string[]) => any;
|
|
73
|
+
expand: (key: string) => any;
|
|
74
|
+
collapse: (key: string) => any;
|
|
75
75
|
}, string, vue.PublicProps, Readonly<Props> & Readonly<{
|
|
76
76
|
onChange?: ((activeKeys: string[]) => any) | undefined;
|
|
77
|
-
onCollapse?: ((key: string) => any) | undefined;
|
|
78
|
-
onExpand?: ((key: string) => any) | undefined;
|
|
79
77
|
"onUpdate:activeKeys"?: ((keys: string[]) => any) | undefined;
|
|
78
|
+
onExpand?: ((key: string) => any) | undefined;
|
|
79
|
+
onCollapse?: ((key: string) => any) | undefined;
|
|
80
80
|
}>, {
|
|
81
|
-
persistKey: string;
|
|
82
|
-
bordered: boolean;
|
|
83
81
|
activeKeys: string[];
|
|
84
82
|
defaultActiveKeys: string[];
|
|
85
83
|
accordion: boolean;
|
|
86
84
|
variant: CollapsePanelVariant;
|
|
87
85
|
expandIconPosition: ExpandIconPosition;
|
|
86
|
+
bordered: boolean;
|
|
87
|
+
persistKey: string;
|
|
88
88
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
89
89
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
90
90
|
declare const _default: typeof __VLS_export;
|
package/dist/useCropperCore.d.ts
CHANGED
|
@@ -51,28 +51,28 @@ interface ImageCropperEmits {
|
|
|
51
51
|
//#endregion
|
|
52
52
|
//#region src/components/C_ImageCropper/index.vue.d.ts
|
|
53
53
|
declare const __VLS_export: vue.DefineComponent<ImageCropperProps, ImageCropperExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
54
|
+
ready: () => any;
|
|
54
55
|
error: (error: Event) => any;
|
|
56
|
+
cancel: () => any;
|
|
55
57
|
crop: (result: any) => any;
|
|
56
|
-
ready: () => any;
|
|
57
58
|
confirm: (result: any) => any;
|
|
58
|
-
cancel: () => any;
|
|
59
59
|
}, string, vue.PublicProps, Readonly<ImageCropperProps> & Readonly<{
|
|
60
|
+
onReady?: (() => any) | undefined;
|
|
60
61
|
onError?: ((error: Event) => any) | undefined;
|
|
62
|
+
onCancel?: (() => any) | undefined;
|
|
61
63
|
onCrop?: ((result: any) => any) | undefined;
|
|
62
|
-
onReady?: (() => any) | undefined;
|
|
63
64
|
onConfirm?: ((result: any) => any) | undefined;
|
|
64
|
-
onCancel?: (() => any) | undefined;
|
|
65
65
|
}>, {
|
|
66
66
|
disabled: boolean;
|
|
67
67
|
showPreview: boolean;
|
|
68
68
|
height: string | number;
|
|
69
|
+
showToolbar: boolean;
|
|
69
70
|
src: string;
|
|
70
71
|
aspectRatio: number;
|
|
71
72
|
outputFormat: CropOutputFormat;
|
|
72
73
|
outputQuality: number;
|
|
73
74
|
maxOutputWidth: number;
|
|
74
75
|
maxOutputHeight: number;
|
|
75
|
-
showToolbar: boolean;
|
|
76
76
|
circular: boolean;
|
|
77
77
|
modal: boolean;
|
|
78
78
|
modalTitle: string;
|
|
@@ -116,9 +116,9 @@ declare const __VLS_base: vue.DefineComponent<DraggableProps, {
|
|
|
116
116
|
"onItem-remove"?: ((item: DraggableItem, index: number) => any) | undefined;
|
|
117
117
|
"onList-change"?: ((list: DraggableItem[]) => any) | undefined;
|
|
118
118
|
}>, {
|
|
119
|
+
sort: boolean;
|
|
119
120
|
modelValue: DraggableItem[];
|
|
120
121
|
disabled: boolean;
|
|
121
|
-
sort: boolean;
|
|
122
122
|
direction: "vertical" | "horizontal";
|
|
123
123
|
group: string | GroupOptions;
|
|
124
124
|
animation: number;
|
|
@@ -1296,7 +1296,6 @@ declare const useDynamicFormState: () => {
|
|
|
1296
1296
|
readonly rules?: readonly {
|
|
1297
1297
|
readonly type?: RuleType | undefined;
|
|
1298
1298
|
readonly required?: boolean | undefined;
|
|
1299
|
-
readonly message?: string | ((a?: string) => string) | undefined;
|
|
1300
1299
|
readonly options?: {
|
|
1301
1300
|
readonly suppressWarning?: boolean | undefined;
|
|
1302
1301
|
readonly suppressValidatorError?: boolean | undefined;
|
|
@@ -1352,10 +1351,12 @@ declare const useDynamicFormState: () => {
|
|
|
1352
1351
|
readonly keys?: readonly string[] | undefined;
|
|
1353
1352
|
readonly error?: ((rule: InternalRuleItem, message: string) => ValidateError) | undefined;
|
|
1354
1353
|
} | undefined;
|
|
1355
|
-
readonly
|
|
1356
|
-
readonly pattern?: (RegExp | string) | undefined;
|
|
1354
|
+
readonly level?: "warning" | "error" | undefined;
|
|
1357
1355
|
readonly key?: string | undefined;
|
|
1356
|
+
readonly trigger?: string | readonly string[] | undefined;
|
|
1357
|
+
readonly message?: string | ((a?: string) => string) | undefined;
|
|
1358
1358
|
readonly asyncValidator?: naive_ui_es_form_src_interface0.FormItemRuleAsyncValidator | undefined;
|
|
1359
|
+
readonly pattern?: (RegExp | string) | undefined;
|
|
1359
1360
|
readonly min?: number | undefined;
|
|
1360
1361
|
readonly max?: number | undefined;
|
|
1361
1362
|
readonly len?: number | undefined;
|
|
@@ -1931,7 +1932,6 @@ declare const useDynamicFormState: () => {
|
|
|
1931
1932
|
}[] | undefined;
|
|
1932
1933
|
readonly transform?: ((value: Value) => Value) | undefined;
|
|
1933
1934
|
readonly renderMessage?: (() => vue.VNodeChild) | undefined;
|
|
1934
|
-
readonly level?: "warning" | "error" | undefined;
|
|
1935
1935
|
readonly validator: NonNullable<naive_ui0.FormItemRule["validator"]>;
|
|
1936
1936
|
}[] | undefined;
|
|
1937
1937
|
readonly attrs?: {
|
|
@@ -3573,7 +3573,6 @@ declare const useDynamicFormState: () => {
|
|
|
3573
3573
|
readonly rules?: readonly {
|
|
3574
3574
|
readonly type?: RuleType | undefined;
|
|
3575
3575
|
readonly required?: boolean | undefined;
|
|
3576
|
-
readonly message?: string | ((a?: string) => string) | undefined;
|
|
3577
3576
|
readonly options?: {
|
|
3578
3577
|
readonly suppressWarning?: boolean | undefined;
|
|
3579
3578
|
readonly suppressValidatorError?: boolean | undefined;
|
|
@@ -3629,10 +3628,12 @@ declare const useDynamicFormState: () => {
|
|
|
3629
3628
|
readonly keys?: readonly string[] | undefined;
|
|
3630
3629
|
readonly error?: ((rule: InternalRuleItem, message: string) => ValidateError) | undefined;
|
|
3631
3630
|
} | undefined;
|
|
3632
|
-
readonly
|
|
3633
|
-
readonly pattern?: (RegExp | string) | undefined;
|
|
3631
|
+
readonly level?: "warning" | "error" | undefined;
|
|
3634
3632
|
readonly key?: string | undefined;
|
|
3633
|
+
readonly trigger?: string | readonly string[] | undefined;
|
|
3634
|
+
readonly message?: string | ((a?: string) => string) | undefined;
|
|
3635
3635
|
readonly asyncValidator?: naive_ui_es_form_src_interface0.FormItemRuleAsyncValidator | undefined;
|
|
3636
|
+
readonly pattern?: (RegExp | string) | undefined;
|
|
3636
3637
|
readonly min?: number | undefined;
|
|
3637
3638
|
readonly max?: number | undefined;
|
|
3638
3639
|
readonly len?: number | undefined;
|
|
@@ -4208,7 +4209,6 @@ declare const useDynamicFormState: () => {
|
|
|
4208
4209
|
}[] | undefined;
|
|
4209
4210
|
readonly transform?: ((value: Value) => Value) | undefined;
|
|
4210
4211
|
readonly renderMessage?: (() => vue.VNodeChild) | undefined;
|
|
4211
|
-
readonly level?: "warning" | "error" | undefined;
|
|
4212
4212
|
readonly validator: NonNullable<naive_ui0.FormItemRule["validator"]>;
|
|
4213
4213
|
}[] | undefined;
|
|
4214
4214
|
}[];
|
|
@@ -260,10 +260,10 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
260
260
|
"onData-change"?: ((data: DiagramData) => any) | undefined;
|
|
261
261
|
}>, {
|
|
262
262
|
height: string | number;
|
|
263
|
-
|
|
263
|
+
width: string | number;
|
|
264
264
|
readonly: boolean;
|
|
265
|
+
showToolbar: boolean;
|
|
265
266
|
theme: "light" | "dark";
|
|
266
|
-
width: string | number;
|
|
267
267
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
268
268
|
declare const _default: typeof __VLS_export;
|
|
269
269
|
//#endregion
|
|
@@ -89,9 +89,9 @@ declare const __VLS_base: vue.DefineComponent<WaterFallProps, WaterFallExpose, {
|
|
|
89
89
|
"onImage-loaded"?: ((item: WaterFallItem) => any) | undefined;
|
|
90
90
|
"onImage-error"?: ((item: WaterFallItem) => any) | undefined;
|
|
91
91
|
}>, {
|
|
92
|
+
columns: number;
|
|
92
93
|
gap: number;
|
|
93
94
|
loading: boolean;
|
|
94
|
-
columns: number;
|
|
95
95
|
lazy: boolean;
|
|
96
96
|
infinite: boolean;
|
|
97
97
|
skeleton: boolean;
|
package/dist/useModalEdit.d.ts
CHANGED
|
@@ -590,8 +590,6 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
|
590
590
|
clearAllSelections(): void;
|
|
591
591
|
};
|
|
592
592
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
593
|
-
cancel: (rowData: DataRecord, rowIndex: number) => any;
|
|
594
|
-
save: (rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any;
|
|
595
593
|
"pagination-change": (...args: unknown[]) => any;
|
|
596
594
|
"row-delete": (...args: unknown[]) => any;
|
|
597
595
|
"expand-change": (expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any;
|
|
@@ -599,6 +597,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
|
599
597
|
"child-selection-change": (parentKey: DataTableRowKey$1, childKeys: DataTableRowKey$1[], childRows: any[]) => any;
|
|
600
598
|
"parent-child-link-change": (parentKey: DataTableRowKey$1, shouldSelect: boolean) => any;
|
|
601
599
|
"update:data": (data: DataRecord[]) => any;
|
|
600
|
+
save: (rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any;
|
|
601
|
+
cancel: (rowData: DataRecord, rowIndex: number) => any;
|
|
602
602
|
"row-add": (newRow: DataRecord) => any;
|
|
603
603
|
"row-copy": (originalRow: DataRecord, newRow: DataRecord) => any;
|
|
604
604
|
"row-move": (row: DataRecord, fromIndex: number, toIndex: number) => any;
|
|
@@ -606,8 +606,6 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
|
606
606
|
"view-detail": (data: DataRecord) => any;
|
|
607
607
|
"column-change": (columns: TableColumn[]) => any;
|
|
608
608
|
}, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
609
|
-
onCancel?: ((rowData: DataRecord, rowIndex: number) => any) | undefined;
|
|
610
|
-
onSave?: ((rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
|
|
611
609
|
"onPagination-change"?: ((...args: unknown[]) => any) | undefined;
|
|
612
610
|
"onRow-delete"?: ((...args: unknown[]) => any) | undefined;
|
|
613
611
|
"onExpand-change"?: ((expandedKeys: DataTableRowKey$1[], row?: DataRecord | undefined, expanded?: boolean | undefined) => any) | undefined;
|
|
@@ -615,6 +613,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_Props, {
|
|
|
615
613
|
"onChild-selection-change"?: ((parentKey: DataTableRowKey$1, childKeys: DataTableRowKey$1[], childRows: any[]) => any) | undefined;
|
|
616
614
|
"onParent-child-link-change"?: ((parentKey: DataTableRowKey$1, shouldSelect: boolean) => any) | undefined;
|
|
617
615
|
"onUpdate:data"?: ((data: DataRecord[]) => any) | undefined;
|
|
616
|
+
onSave?: ((rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
|
|
617
|
+
onCancel?: ((rowData: DataRecord, rowIndex: number) => any) | undefined;
|
|
618
618
|
"onRow-add"?: ((newRow: DataRecord) => any) | undefined;
|
|
619
619
|
"onRow-copy"?: ((originalRow: DataRecord, newRow: DataRecord) => any) | undefined;
|
|
620
620
|
"onRow-move"?: ((row: DataRecord, fromIndex: number, toIndex: number) => any) | undefined;
|
package/dist/useQRCode.d.ts
CHANGED
|
@@ -52,13 +52,13 @@ declare const __VLS_export: vue.DefineComponent<Props, QRCodeExpose, {}, {}, {},
|
|
|
52
52
|
}>, {
|
|
53
53
|
mode: RenderMode;
|
|
54
54
|
size: number;
|
|
55
|
-
label: string;
|
|
56
|
-
color: string;
|
|
57
|
-
margin: number;
|
|
58
55
|
showBorder: boolean;
|
|
56
|
+
label: string;
|
|
59
57
|
showLabel: boolean;
|
|
58
|
+
color: string;
|
|
60
59
|
bgColor: string;
|
|
61
60
|
errorCorrectionLevel: ErrorCorrectionLevel;
|
|
61
|
+
margin: number;
|
|
62
62
|
logo: LogoOptions;
|
|
63
63
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
64
64
|
declare const _default: typeof __VLS_export;
|
package/dist/useSearchState.d.ts
CHANGED
|
@@ -63,8 +63,8 @@ declare const __VLS_export: vue.DefineComponent<Props, {
|
|
|
63
63
|
onSearch?: ((params: SearchFormParams) => any) | undefined;
|
|
64
64
|
"onChange-params"?: ((params: SearchFormParams) => any) | undefined;
|
|
65
65
|
}>, {
|
|
66
|
-
size: "small" | "medium" | "large";
|
|
67
66
|
bordered: boolean;
|
|
67
|
+
size: "small" | "medium" | "large";
|
|
68
68
|
formItemList: SearchFormItem[];
|
|
69
69
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
70
70
|
declare const _default: typeof __VLS_export;
|
|
@@ -109,9 +109,9 @@ declare const __VLS_export: vue.DefineComponent<SignatureProps, SignatureExpose,
|
|
|
109
109
|
}>, {
|
|
110
110
|
disabled: boolean;
|
|
111
111
|
height: number | string;
|
|
112
|
-
showToolbar: boolean;
|
|
113
|
-
readonly: boolean;
|
|
114
112
|
width: number | string;
|
|
113
|
+
readonly: boolean;
|
|
114
|
+
showToolbar: boolean;
|
|
115
115
|
maxHistory: number;
|
|
116
116
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
117
117
|
declare const _default: typeof __VLS_export;
|
package/dist/useSplitResize.d.ts
CHANGED
|
@@ -66,22 +66,22 @@ type __VLS_Slots = {} & {
|
|
|
66
66
|
second?: (props: typeof __VLS_13) => any;
|
|
67
67
|
};
|
|
68
68
|
declare const __VLS_base: vue.DefineComponent<Props, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
69
|
-
resize: (firstSize: number, secondSize: number) => any;
|
|
70
|
-
collapse: (target: CollapseTarget) => any;
|
|
71
69
|
expand: (target: CollapseTarget) => any;
|
|
70
|
+
collapse: (target: CollapseTarget) => any;
|
|
71
|
+
resize: (firstSize: number, secondSize: number) => any;
|
|
72
72
|
"drag-start": (size: number) => any;
|
|
73
73
|
"drag-end": (size: number) => any;
|
|
74
74
|
}, string, vue.PublicProps, Readonly<Props> & Readonly<{
|
|
75
|
-
onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
|
|
76
|
-
onCollapse?: ((target: CollapseTarget) => any) | undefined;
|
|
77
75
|
onExpand?: ((target: CollapseTarget) => any) | undefined;
|
|
76
|
+
onCollapse?: ((target: CollapseTarget) => any) | undefined;
|
|
77
|
+
onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
|
|
78
78
|
"onDrag-start"?: ((size: number) => any) | undefined;
|
|
79
79
|
"onDrag-end"?: ((size: number) => any) | undefined;
|
|
80
80
|
}>, {
|
|
81
81
|
disabled: boolean;
|
|
82
82
|
step: number;
|
|
83
|
-
defaultSize: number;
|
|
84
83
|
direction: SplitDirection;
|
|
84
|
+
defaultSize: number;
|
|
85
85
|
minSize: number;
|
|
86
86
|
maxSize: number;
|
|
87
87
|
collapsible: boolean;
|
|
@@ -52,7 +52,6 @@ declare const __VLS_export: vue.DefineComponent<TimeProps, TimeExpose, {}, {}, {
|
|
|
52
52
|
placeholder: string;
|
|
53
53
|
startPlaceholder: string;
|
|
54
54
|
endPlaceholder: string;
|
|
55
|
-
attrs: Record<string, any>;
|
|
56
55
|
format: string;
|
|
57
56
|
useHours: boolean;
|
|
58
57
|
useMinutes: boolean;
|
|
@@ -62,6 +61,7 @@ declare const __VLS_export: vue.DefineComponent<TimeProps, TimeExpose, {}, {}, {
|
|
|
62
61
|
secondStep: number;
|
|
63
62
|
startTimeProps: Record<string, any>;
|
|
64
63
|
endTimeProps: Record<string, any>;
|
|
64
|
+
attrs: Record<string, any>;
|
|
65
65
|
defaultStartTime: number | null;
|
|
66
66
|
defaultEndTime: number | null;
|
|
67
67
|
defaultSingleTime: number | null;
|
|
@@ -91,24 +91,24 @@ type __VLS_Slots = {} & {
|
|
|
91
91
|
};
|
|
92
92
|
declare const __VLS_base: vue.DefineComponent<TreeProps, TreeExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
93
93
|
add: (parentNode?: TreeNodeData | undefined) => any;
|
|
94
|
+
refresh: () => any;
|
|
94
95
|
"node-select": (node: TreeNodeData | null, selectedKeys: (string | number)[]) => any;
|
|
95
96
|
"node-action": (action: string, node: TreeNodeData) => any;
|
|
96
97
|
"node-drop": (info: DropInfo) => any;
|
|
97
|
-
refresh: () => any;
|
|
98
98
|
}, string, vue.PublicProps, Readonly<TreeProps> & Readonly<{
|
|
99
99
|
onAdd?: ((parentNode?: TreeNodeData | undefined) => any) | undefined;
|
|
100
|
+
onRefresh?: (() => any) | undefined;
|
|
100
101
|
"onNode-select"?: ((node: TreeNodeData | null, selectedKeys: (string | number)[]) => any) | undefined;
|
|
101
102
|
"onNode-action"?: ((action: string, node: TreeNodeData) => any) | undefined;
|
|
102
103
|
"onNode-drop"?: ((info: DropInfo) => any) | undefined;
|
|
103
|
-
onRefresh?: (() => any) | undefined;
|
|
104
104
|
}>, {
|
|
105
105
|
mode: TreeMode;
|
|
106
|
-
draggable: boolean;
|
|
107
106
|
showToolbar: boolean;
|
|
107
|
+
draggable: boolean;
|
|
108
108
|
labelField: string;
|
|
109
|
+
keyField: string;
|
|
109
110
|
childrenField: string;
|
|
110
111
|
actions: ActionConfig[];
|
|
111
|
-
keyField: string;
|
|
112
112
|
searchPattern: string;
|
|
113
113
|
searchable: boolean;
|
|
114
114
|
searchPlaceholder: string;
|
|
@@ -239,16 +239,16 @@ declare const __VLS_export: vue.DefineComponent<WorkflowProps, {
|
|
|
239
239
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
240
240
|
"update:modelValue": (value: WorkflowData) => any;
|
|
241
241
|
change: (value: WorkflowData) => any;
|
|
242
|
+
save: (data: WorkflowData) => any;
|
|
242
243
|
"node-click": (node: WorkflowNode) => any;
|
|
243
244
|
"edge-click": (edge: WorkflowEdge) => any;
|
|
244
|
-
save: (data: WorkflowData) => any;
|
|
245
245
|
"validate-error": (errors: ValidationError[]) => any;
|
|
246
246
|
}, string, vue.PublicProps, Readonly<WorkflowProps> & Readonly<{
|
|
247
247
|
"onUpdate:modelValue"?: ((value: WorkflowData) => any) | undefined;
|
|
248
248
|
onChange?: ((value: WorkflowData) => any) | undefined;
|
|
249
|
+
onSave?: ((data: WorkflowData) => any) | undefined;
|
|
249
250
|
"onNode-click"?: ((node: WorkflowNode) => any) | undefined;
|
|
250
251
|
"onEdge-click"?: ((edge: WorkflowEdge) => any) | undefined;
|
|
251
|
-
onSave?: ((data: WorkflowData) => any) | undefined;
|
|
252
252
|
"onValidate-error"?: ((errors: ValidationError[]) => any) | undefined;
|
|
253
253
|
}>, {
|
|
254
254
|
readonly: boolean;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"C_Breadcrumb-D55Jd2CK.css","names":[],"sources":["../src/components/C_Breadcrumb/index.vue?vue&type=style&index=0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.c-breadcrumb__trigger, .c-breadcrumb__link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"C_Breadcrumb-mBL4CWps.css","names":[],"sources":["../src/components/C_Breadcrumb/index.vue?vue&type=style&index=0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.c-breadcrumb__trigger, .c-breadcrumb__link {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA"}
|