@yimou6/common-ui 1.10.2 → 1.10.4

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.
Files changed (93) hide show
  1. package/cdn/index.cdn.js +8 -8
  2. package/cdn/index.cdn.js.map +1 -1
  3. package/cdn/index.cdn.mjs +8 -8
  4. package/cdn/index.cdn.mjs.map +1 -1
  5. package/cdn/index.css +1 -1
  6. package/es/components/checkbox/src/checkbox.vue2.mjs.map +1 -1
  7. package/es/components/concise-logger/src/concise-logger.vue2.mjs.map +1 -1
  8. package/es/components/date-picker/src/date-picker.vue2.mjs.map +1 -1
  9. package/es/components/descriptions/src/description-item.vue2.mjs.map +1 -1
  10. package/es/components/descriptions/src/descriptions.vue2.mjs.map +1 -1
  11. package/es/components/dialog/src/dialog.vue2.mjs.map +1 -1
  12. package/es/components/divider/src/divider.vue2.mjs.map +1 -1
  13. package/es/components/drawer/src/drawer.vue2.mjs +1 -1
  14. package/es/components/drawer/src/drawer.vue2.mjs.map +1 -1
  15. package/es/components/form/src/form-item.vue2.mjs.map +1 -1
  16. package/es/components/form/src/form.vue2.mjs.map +1 -1
  17. package/es/components/icon-select/src/icon-select.vue2.mjs +5 -5
  18. package/es/components/icon-select/src/icon-select.vue2.mjs.map +1 -1
  19. package/es/components/image-verification/src/image-verification.vue2.mjs.map +1 -1
  20. package/es/components/link/src/link.vue2.mjs.map +1 -1
  21. package/es/components/live-player/src/live-player.vue2.mjs.map +1 -1
  22. package/es/components/live-player/src/xgPlayer.vue2.mjs +1 -1
  23. package/es/components/live-player/src/xgPlayer.vue2.mjs.map +1 -1
  24. package/es/components/live-player/src/ysPlayer.vue2.mjs +1 -2
  25. package/es/components/live-player/src/ysPlayer.vue2.mjs.map +1 -1
  26. package/es/components/page-header/src/page-header.vue2.mjs.map +1 -1
  27. package/es/components/radio/src/radio.vue2.mjs.map +1 -1
  28. package/es/components/search/src/search.vue2.mjs.map +1 -1
  29. package/es/components/segmented/src/segmented.vue2.mjs.map +1 -1
  30. package/es/components/select/src/select.vue2.mjs.map +1 -1
  31. package/es/components/split-pane/src/resizer.vue.mjs.map +1 -1
  32. package/es/components/split-pane/src/split-pane.vue2.mjs.map +1 -1
  33. package/es/components/table/src/table.vue2.mjs.map +1 -1
  34. package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs.map +1 -1
  35. package/es/components/text-button/src/text-button-group.vue2.mjs.map +1 -1
  36. package/es/components/text-button/src/text-button.vue2.mjs.map +1 -1
  37. package/es/components/tzj-player/index.d.ts +2 -0
  38. package/es/components/tzj-player/src/easyPlayer.vue2.mjs.map +1 -1
  39. package/es/components/tzj-player/src/tzj-player.d.ts +1 -0
  40. package/es/components/tzj-player/src/tzj-player.mjs +12 -1
  41. package/es/components/tzj-player/src/tzj-player.mjs.map +1 -1
  42. package/es/components/tzj-player/src/tzj-player.vue.d.ts +2 -0
  43. package/es/components/tzj-player/src/tzj-player.vue2.mjs +21 -8
  44. package/es/components/tzj-player/src/tzj-player.vue2.mjs.map +1 -1
  45. package/es/components/tzj-player/src/ysPlayer.vue2.mjs +1 -2
  46. package/es/components/tzj-player/src/ysPlayer.vue2.mjs.map +1 -1
  47. package/es/types.d.ts +3 -2
  48. package/lib/components/checkbox/src/checkbox.vue2.js.map +1 -1
  49. package/lib/components/concise-logger/src/concise-logger.vue2.js.map +1 -1
  50. package/lib/components/date-picker/src/date-picker.vue2.js.map +1 -1
  51. package/lib/components/descriptions/src/description-item.vue2.js.map +1 -1
  52. package/lib/components/descriptions/src/descriptions.vue2.js.map +1 -1
  53. package/lib/components/dialog/src/dialog.vue2.js.map +1 -1
  54. package/lib/components/divider/src/divider.vue2.js.map +1 -1
  55. package/lib/components/drawer/src/drawer.vue2.js +1 -1
  56. package/lib/components/drawer/src/drawer.vue2.js.map +1 -1
  57. package/lib/components/form/src/form-item.vue2.js.map +1 -1
  58. package/lib/components/form/src/form.vue2.js.map +1 -1
  59. package/lib/components/icon-select/src/icon-select.vue2.js +5 -5
  60. package/lib/components/icon-select/src/icon-select.vue2.js.map +1 -1
  61. package/lib/components/image-verification/src/image-verification.vue2.js.map +1 -1
  62. package/lib/components/link/src/link.vue2.js.map +1 -1
  63. package/lib/components/live-player/src/live-player.vue2.js.map +1 -1
  64. package/lib/components/live-player/src/xgPlayer.vue2.js +1 -1
  65. package/lib/components/live-player/src/xgPlayer.vue2.js.map +1 -1
  66. package/lib/components/live-player/src/ysPlayer.vue2.js +1 -2
  67. package/lib/components/live-player/src/ysPlayer.vue2.js.map +1 -1
  68. package/lib/components/page-header/src/page-header.vue2.js.map +1 -1
  69. package/lib/components/radio/src/radio.vue2.js.map +1 -1
  70. package/lib/components/search/src/search.vue2.js.map +1 -1
  71. package/lib/components/segmented/src/segmented.vue2.js.map +1 -1
  72. package/lib/components/select/src/select.vue2.js.map +1 -1
  73. package/lib/components/split-pane/src/resizer.vue.js.map +1 -1
  74. package/lib/components/split-pane/src/split-pane.vue2.js.map +1 -1
  75. package/lib/components/table/src/table.vue2.js.map +1 -1
  76. package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js.map +1 -1
  77. package/lib/components/text-button/src/text-button-group.vue2.js.map +1 -1
  78. package/lib/components/text-button/src/text-button.vue2.js.map +1 -1
  79. package/lib/components/tzj-player/index.d.ts +2 -0
  80. package/lib/components/tzj-player/src/easyPlayer.vue2.js.map +1 -1
  81. package/lib/components/tzj-player/src/tzj-player.d.ts +1 -0
  82. package/lib/components/tzj-player/src/tzj-player.js +12 -0
  83. package/lib/components/tzj-player/src/tzj-player.js.map +1 -1
  84. package/lib/components/tzj-player/src/tzj-player.vue.d.ts +2 -0
  85. package/lib/components/tzj-player/src/tzj-player.vue2.js +19 -6
  86. package/lib/components/tzj-player/src/tzj-player.vue2.js.map +1 -1
  87. package/lib/components/tzj-player/src/ysPlayer.vue2.js +1 -2
  88. package/lib/components/tzj-player/src/ysPlayer.vue2.js.map +1 -1
  89. package/lib/types.d.ts +3 -2
  90. package/package.json +1 -1
  91. package/theme-default/i-tzj-player.css +1 -1
  92. package/theme-default/index.css +1 -1
  93. package/theme-default/i-wisdom-chat.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"description-item.vue2.js","sources":["../../../../../../../packages/components/descriptions/src/description-item.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { inject, useSlots } from 'vue';\n import { descriptionContextKey } from './descriptions';\n\n defineOptions({\n name: 'IDescriptionItem',\n });\n\n defineProps({\n label: {\n type: String,\n default: '',\n },\n icon: {\n type: String,\n default: '',\n },\n // 合并列数\n span: {\n type: Number,\n default: 1,\n },\n // 合并行数\n rowSpan: {\n type: Number,\n default: 1,\n },\n });\n const descProps = inject(descriptionContextKey);\n const slots = useSlots();\n</script>\n\n<template>\n <div\n :class=\"`i-descriptions-item__${descProps?.size || 'default'}`\"\n class=\"i-descriptions-item\"\n :style=\"{\n gridColumnStart: `span ${span}`,\n gridRowStart: `span ${rowSpan}`,\n }\"\n >\n <div class=\"i-descriptions-label\" :title=\"label\" :style=\"{ width: descProps?.labelWidth || '100px' }\">\n <slot v-if=\"slots.label\" name=\"label\" />\n <template v-else>\n <i v-if=\"icon\" class=\"iconfont\" :class=\"icon\" />\n <div class=\"i-descriptions-label__text\">{{ label }}</div>\n </template>\n </div>\n <div class=\"i-descriptions-value\">\n <slot name=\"default\" />\n </div>\n </div>\n</template>\n"],"names":["inject","descriptionContextKey","useSlots"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BE,IAAM,MAAA,SAAA,GAAYA,WAAOC,kCAAqB,CAAA;AAC9C,IAAA,MAAM,QAAQC,YAAS,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"description-item.vue2.js","sources":["../../../../../../../packages/components/descriptions/src/description-item.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { inject, useSlots } from 'vue';\n import { descriptionContextKey } from './descriptions';\n\n defineOptions({\n name: 'IDescriptionItem',\n });\n\n defineProps({\n label: {\n type: String,\n default: '',\n },\n icon: {\n type: String,\n default: '',\n },\n // 合并列数\n span: {\n type: Number,\n default: 1,\n },\n // 合并行数\n rowSpan: {\n type: Number,\n default: 1,\n },\n });\n const descProps = inject(descriptionContextKey);\n const slots = useSlots();\n</script>\n\n<template>\n <div\n :class=\"`i-descriptions-item__${descProps?.size || 'default'}`\"\n class=\"i-descriptions-item\"\n :style=\"{\n gridColumnStart: `span ${span}`,\n gridRowStart: `span ${rowSpan}`,\n }\"\n >\n <div class=\"i-descriptions-label\" :title=\"label\" :style=\"{ width: descProps?.labelWidth || '100px' }\">\n <slot v-if=\"slots.label\" name=\"label\" />\n <template v-else>\n <i v-if=\"icon\" class=\"iconfont\" :class=\"icon\" />\n <div class=\"i-descriptions-label__text\">{{ label }}</div>\n </template>\n </div>\n <div class=\"i-descriptions-value\">\n <slot name=\"default\" />\n </div>\n </div>\n</template>\n"],"names":["inject","descriptionContextKey","useSlots","_createElementBlock","_normalizeClass","_unref","_normalizeStyle","_createElementVNode","_renderSlot","_Fragment","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BE,IAAM,MAAA,SAAA,GAAYA,WAAOC,kCAAqB,CAAA;AAC9C,IAAA,MAAM,QAAQC,YAAS,EAAA;;;4BAIvB,EAAAC,sBAAA;AAAA,QAkBM,KAAA;AAAA,QAAA;AAAA,UAjBH,KAA+B,EAAAC,kBAAA,CAAA,CAAA,CAAA,qBAAA,EAAA,CAAA,CAAA,EAAA,GAAAC,SAAA,CAAA,SAAA,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAW,mBACrC,CAAA,EAAA,qBAAqB,CAAA,CAAA;AAAA,UAC1B,OAAKC,kBAAA,CAAA;AAAA,8BAAmC,KAAA,EAAA,OAAA,CAAI,IAAA,CAAA,CAAA;AAAA,2BAAgC,KAAA,EAAA,OAAA,CAAO,OAAA,CAAA;AAAA;;;UAKpFC,uBAMM,KAAA,EAAA;AAAA,YAND,KAAM,EAAA,sBAAA;AAAA,YAAwB,OAAO,OAAK,CAAA,KAAA;AAAA,YAAG,KAAA,EAAKD,kBAAA,CAAA,EAAA,KAAW,EAAA,CAAA,CAAA,EAAA,GAAAD,SAAA,CAAS,SAAA,CAAT,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAW,UAAU,KAAA,OAAA,EAAA;AAAA;YACzEA,SAAA,CAAA,KAAA,CAAM,CAAA,KAAA,GAAlBG,eAAwC,IAAA,CAAA,MAAA,EAAA,OAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA,mBACxC,EAAAL,sBAAA;AAAA,cAGWM,YAAA;AAAA,cAAA,EAAA,KAAA,CAAA,EAAA;AAAA,cAAA;AAAA,gBAFA,OAAA,CAAI,uBAAb,EAAAN,sBAAA;AAAA,kBAAgD,GAAA;AAAA,kBAAA;AAAA;oBAAjC,OAAKC,kBAAA,CAAA,CAAC,UAAmB,EAAA,OAAA,CAAI,IAAA,CAAA;AAAA;;;;;gBAC5CG,sBAAA;AAAA,kBAAyD,KAAA;AAAA,kBAAzD,UAAA;AAAA,kBAAyDG,mBAAA,CAAd,QAAK,KAAA,CAAA;AAAA,kBAAA;AAAA;AAAA;AAAA;;;;;UAGpDH,sBAAA,CAEM,OAFN,UAEM,EAAA;AAAA,YADJC,cAAA,CAAuB,IAAA,CAAA,MAAA,EAAA,SAAA;AAAA;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"descriptions.vue2.js","sources":["../../../../../../../packages/components/descriptions/src/descriptions.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { nextTick, provide, ref, useSlots, watchEffect } from 'vue';\n import { descriptionContextKey, DescriptionsProps, flattedChildren } from './descriptions';\n import type { IDescriptionItem } from './descriptions';\n defineOptions({\n name: 'IDescriptions',\n });\n\n const props = defineProps(DescriptionsProps);\n const slots = useSlots();\n const otSpan = ref(0);\n const otRowSpan = ref(0);\n\n provide(descriptionContextKey, props);\n\n watchEffect(() => {\n nextTick().then(() => {\n if (slots.default) {\n const list = flattedChildren(slots.default()).filter((item: any) => item.type?.name === 'IDescriptionItem');\n const rows = getRows(list, props.columns);\n const lastRow = rows[rows.length - 1];\n const spanTotal = lastRow.reduce((acc, cur) => acc + (cur.props?.span || 1), 0);\n otSpan.value = props.columns - spanTotal;\n otRowSpan.value = Math.max(0, ...lastRow.map((item: any) => item.props?.rowSpan || 1));\n }\n });\n });\n\n /**\n * 获取行数据\n * @param list 列表\n * @param columns 列数\n */\n function getRows(list: IDescriptionItem[], columns: number): IDescriptionItem[][] {\n const rows: IDescriptionItem[][] = [];\n let currentRow: IDescriptionItem[] = [];\n let currentColumn = 0;\n list.forEach((item: IDescriptionItem) => {\n const span = item.props?.span || 1; // 列数\n const rowSpan = item.props?.rowSpan || 1; // 行数\n\n // 如果当前行已满,则创建新行\n if (currentColumn + span > columns) {\n rows.push(currentRow);\n currentRow = [];\n currentColumn = 0;\n }\n\n // 将子组件添加到当前行\n currentRow.push(item);\n currentColumn += span;\n\n // 处理 rowSpan\n for (let i = 1; i < rowSpan; i++) {\n if (rows.length < rows.length + i) {\n rows.push([]);\n }\n rows[rows.length - 1 + i].push({ ...item, _isPlaceholder: true });\n }\n });\n // 添加最后一行\n if (currentRow.length > 0) {\n rows.push(currentRow);\n }\n return rows;\n }\n</script>\n\n<template>\n <div\n class=\"i-descriptions\"\n :class=\"{ 'i-descriptions__border': border }\"\n :style=\"{\n 'grid-template-columns': `repeat(${columns}, 1fr)`,\n }\"\n >\n <slot />\n <div\n v-if=\"otSpan > 0\"\n class=\"i-descriptions-item\"\n :class=\"[`i-descriptions-item__${size || 'default'}`]\"\n :style=\"{\n gridColumnStart: `span ${otSpan}`,\n gridRowStart: `span ${otRowSpan}`,\n }\"\n />\n </div>\n</template>\n"],"names":["useSlots","ref","provide","descriptionContextKey","watchEffect","nextTick","flattedChildren"],"mappings":"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"}
1
+ {"version":3,"file":"descriptions.vue2.js","sources":["../../../../../../../packages/components/descriptions/src/descriptions.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { nextTick, provide, ref, useSlots, watchEffect } from 'vue';\n import { descriptionContextKey, DescriptionsProps, flattedChildren } from './descriptions';\n import type { IDescriptionItem } from './descriptions';\n defineOptions({\n name: 'IDescriptions',\n });\n\n const props = defineProps(DescriptionsProps);\n const slots = useSlots();\n const otSpan = ref(0);\n const otRowSpan = ref(0);\n\n provide(descriptionContextKey, props);\n\n watchEffect(() => {\n nextTick().then(() => {\n if (slots.default) {\n const list = flattedChildren(slots.default()).filter((item: any) => item.type?.name === 'IDescriptionItem');\n const rows = getRows(list, props.columns);\n const lastRow = rows[rows.length - 1];\n const spanTotal = lastRow.reduce((acc, cur) => acc + (cur.props?.span || 1), 0);\n otSpan.value = props.columns - spanTotal;\n otRowSpan.value = Math.max(0, ...lastRow.map((item: any) => item.props?.rowSpan || 1));\n }\n });\n });\n\n /**\n * 获取行数据\n * @param list 列表\n * @param columns 列数\n */\n function getRows(list: IDescriptionItem[], columns: number): IDescriptionItem[][] {\n const rows: IDescriptionItem[][] = [];\n let currentRow: IDescriptionItem[] = [];\n let currentColumn = 0;\n list.forEach((item: IDescriptionItem) => {\n const span = item.props?.span || 1; // 列数\n const rowSpan = item.props?.rowSpan || 1; // 行数\n\n // 如果当前行已满,则创建新行\n if (currentColumn + span > columns) {\n rows.push(currentRow);\n currentRow = [];\n currentColumn = 0;\n }\n\n // 将子组件添加到当前行\n currentRow.push(item);\n currentColumn += span;\n\n // 处理 rowSpan\n for (let i = 1; i < rowSpan; i++) {\n if (rows.length < rows.length + i) {\n rows.push([]);\n }\n rows[rows.length - 1 + i].push({ ...item, _isPlaceholder: true });\n }\n });\n // 添加最后一行\n if (currentRow.length > 0) {\n rows.push(currentRow);\n }\n return rows;\n }\n</script>\n\n<template>\n <div\n class=\"i-descriptions\"\n :class=\"{ 'i-descriptions__border': border }\"\n :style=\"{\n 'grid-template-columns': `repeat(${columns}, 1fr)`,\n }\"\n >\n <slot />\n <div\n v-if=\"otSpan > 0\"\n class=\"i-descriptions-item\"\n :class=\"[`i-descriptions-item__${size || 'default'}`]\"\n :style=\"{\n gridColumnStart: `span ${otSpan}`,\n gridRowStart: `span ${otRowSpan}`,\n }\"\n />\n </div>\n</template>\n"],"names":["useSlots","ref","provide","descriptionContextKey","watchEffect","nextTick","flattedChildren","_createElementBlock","_normalizeClass","border","_normalizeStyle","columns","_renderSlot","size"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.vue2.js","sources":["../../../../../../../packages/components/dialog/src/dialog.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, ref, useSlots, watchEffect } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import { DialogProps } from './dialog';\n\n defineOptions({\n name: 'IDialog',\n });\n const props = defineProps(DialogProps);\n const slots = useSlots();\n\n const visible = ref(false);\n\n watchEffect(() => {\n visible.value = props.modelValue;\n });\n\n const attrs = computed(() => excludeObjectKeys(props, ['modelValue']));\n\n const hasFooter = computed(() => !!slots.footer);\n</script>\n\n<template>\n <el-dialog\n v-model=\"visible\"\n v-bind=\"attrs\"\n class=\"i-dialog\"\n :class=\"{\n 'i-dialog__empty_footer': !hasFooter,\n }\"\n >\n <template #header>\n <slot v-if=\"slots.header\" name=\"header\" />\n </template>\n <template #default>\n <slot name=\"default\" />\n </template>\n <template #footer>\n <slot v-if=\"slots.footer\" name=\"footer\" />\n </template>\n </el-dialog>\n</template>\n"],"names":["useSlots","ref","watchEffect","computed","excludeObjectKeys"],"mappings":";;;;;;;;;;;;;;;;AAQE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,QAAQA,YAAS,EAAA;AAEvB,IAAM,MAAA,OAAA,GAAUC,QAAI,KAAK,CAAA;AAEzB,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAA,OAAA,CAAQ,QAAQ,KAAM,CAAA,UAAA;AAAA,KACvB,CAAA;AAED,IAAM,MAAA,KAAA,GAAQC,aAAS,MAAMC,sBAAA,CAAkB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;AAErE,IAAA,MAAM,YAAYD,YAAS,CAAA,MAAM,CAAC,CAAC,MAAM,MAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dialog.vue2.js","sources":["../../../../../../../packages/components/dialog/src/dialog.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, ref, useSlots, watchEffect } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import { DialogProps } from './dialog';\n\n defineOptions({\n name: 'IDialog',\n });\n const props = defineProps(DialogProps);\n const slots = useSlots();\n\n const visible = ref(false);\n\n watchEffect(() => {\n visible.value = props.modelValue;\n });\n\n const attrs = computed(() => excludeObjectKeys(props, ['modelValue']));\n\n const hasFooter = computed(() => !!slots.footer);\n</script>\n\n<template>\n <el-dialog\n v-model=\"visible\"\n v-bind=\"attrs\"\n class=\"i-dialog\"\n :class=\"{\n 'i-dialog__empty_footer': !hasFooter,\n }\"\n >\n <template #header>\n <slot v-if=\"slots.header\" name=\"header\" />\n </template>\n <template #default>\n <slot name=\"default\" />\n </template>\n <template #footer>\n <slot v-if=\"slots.footer\" name=\"footer\" />\n </template>\n </el-dialog>\n</template>\n"],"names":["useSlots","ref","watchEffect","computed","excludeObjectKeys","_openBlock","_createBlock","_mergeProps","_unref","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;AAQE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,QAAQA,YAAS,EAAA;AAEvB,IAAM,MAAA,OAAA,GAAUC,QAAI,KAAK,CAAA;AAEzB,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAA,OAAA,CAAQ,QAAQ,KAAM,CAAA,UAAA;AAAA,KACvB,CAAA;AAED,IAAM,MAAA,KAAA,GAAQC,aAAS,MAAMC,sBAAA,CAAkB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;AAErE,IAAA,MAAM,YAAYD,YAAS,CAAA,MAAM,CAAC,CAAC,MAAM,MAAM,CAAA;;;AAI/C,MAAA,OAAAE,aAAA,EAAA,EAAAC,eAiBY,CAAA,oBAAA,EAjBZC,cAiBY,CAAA;AAAA,oBAhBD,OAAO,CAAA,KAAA;AAAA,gEAAP,KAAA,OAAA,CAAO,KAAA,GAAA,MAAA;AAAA,SACR,MAAK,KAAA,EAAA;AAAA,QACb,KAAA,GAAM,UAAU,EAAA;AAAA,qCAC2B,SAAS,CAAA;AAAA;;QAIzC,MAAA,cACT,MAA0C;AAAA,UAA9BC,SAAA,CAAA,KAAA,CAAM,CAAA,MAAA,GAAlBC,eAA0C,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,EAAA,KAAA,CAAA,EAAA;;QAEjC,OAAA,cACT,MAAuB;AAAA,UAAvBA,cAAA,CAAuB,IAAA,CAAA,MAAA,EAAA,SAAA;AAAA;QAEd,MAAA,cACT,MAA0C;AAAA,UAA9BD,SAAA,CAAA,KAAA,CAAM,CAAA,MAAA,GAAlBC,eAA0C,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,EAAA,KAAA,CAAA,EAAA;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"divider.vue2.js","sources":["../../../../../../../packages/components/divider/src/divider.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElDivider } from 'element-plus';\n import { computed } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import { DividerProps } from './divider';\n\n defineOptions({\n name: 'IDivider',\n });\n const props = defineProps(DividerProps);\n\n const attrs = computed(() => excludeObjectKeys(props, ['label']));\n</script>\n\n<template>\n <ElDivider v-bind=\"attrs\">{{ label }}</ElDivider>\n</template>\n\n<style scoped></style>\n"],"names":["computed","excludeObjectKeys"],"mappings":";;;;;;;;;;;;;;;;;AASE,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,KAAA,GAAQA,aAAS,MAAMC,sBAAA,CAAkB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"divider.vue2.js","sources":["../../../../../../../packages/components/divider/src/divider.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElDivider } from 'element-plus';\n import { computed } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import { DividerProps } from './divider';\n\n defineOptions({\n name: 'IDivider',\n });\n const props = defineProps(DividerProps);\n\n const attrs = computed(() => excludeObjectKeys(props, ['label']));\n</script>\n\n<template>\n <ElDivider v-bind=\"attrs\">{{ label }}</ElDivider>\n</template>\n\n<style scoped></style>\n"],"names":["computed","excludeObjectKeys","_openBlock","_createBlock","_unref","label"],"mappings":";;;;;;;;;;;;;;;;;AASE,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAM,MAAA,KAAA,GAAQA,aAAS,MAAMC,sBAAA,CAAkB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;;AAIhE,MAAA,OAAAC,eAAA,EAAAC,eAAA;AAAA,QAAiDC;kDAA9B,KAAK,CAAA,KAAA,CAAA,CAAA;AAAA,QAAA;AAAA,+BAAE,MAAW;AAAA;kCAARC,KAAK,KAAA,CAAA;AAAA,cAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;"}
@@ -119,7 +119,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
119
119
  { class: "iconfont icon-guanbi" },
120
120
  null,
121
121
  -1
122
- /* HOISTED */
122
+ /* CACHED */
123
123
  )
124
124
  ]), 8, _hoisted_4)
125
125
  ], 8, _hoisted_1)
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.vue2.js","sources":["../../../../../../../packages/components/drawer/src/drawer.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElDrawer } from 'element-plus';\n import { computed, ref, useSlots } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import { DrawerProps } from './drawer';\n\n defineOptions({\n name: 'IDrawer',\n });\n\n const props = defineProps(DrawerProps);\n const emit = defineEmits({\n 'update:modelValue': (val: boolean) => val,\n openAutoFocus: () => true,\n closeAutoFocus: () => true,\n close: () => true,\n closed: () => true,\n open: () => true,\n opened: () => true,\n });\n\n const attrs = computed(() => excludeObjectKeys(props, ['hasScrollbar', 'overTop']));\n\n const slots = useSlots();\n const drawerRef = ref();\n\n defineExpose({\n getRef() {\n return drawerRef.value;\n },\n });\n const handleClose = () => {\n emit('update:modelValue', false);\n emit('close');\n };\n</script>\n\n<template>\n <ElDrawer\n ref=\"drawerRef\"\n class=\"i-drawer\"\n :class=\"{\n 'i-drawer-over-top': !overTop,\n }\"\n v-bind=\"attrs\"\n @close=\"handleClose\"\n @closed=\"emit('closed')\"\n @open=\"emit('open')\"\n @opened=\"emit('opened')\"\n @close-auto-focus=\"emit('closeAutoFocus')\"\n @open-auto-focus=\"emit('openAutoFocus')\"\n >\n <!-- 自定义header -->\n <template v-if=\"slots.header\">\n <slot name=\"header\" />\n </template>\n <!-- 默认header -->\n <template v-if=\"!slots.header\" #header=\"{ titleId, close }\">\n <div :id=\"titleId\" class=\"i-drawer-header\">\n <div class=\"i-drawer-title\">\n <div class=\"y-block-name\">{{ title }}</div>\n <slot name=\"headerDesc\" />\n </div>\n <div class=\"i-drawer-header-close\" @click=\"close\">\n <i class=\"iconfont icon-guanbi\" />\n </div>\n </div>\n </template>\n <!-- 内容 -->\n <div class=\"i-drawer-body\" :class=\"{ 'i-drawer-no-footer': !slots.footer }\">\n <ElScrollbar v-if=\"hasScrollbar\" style=\"padding-right: 10px\">\n <slot name=\"default\" />\n </ElScrollbar>\n <slot v-else name=\"default\" />\n </div>\n <div v-if=\"slots.footer\" class=\"i-drawer-footer\">\n <slot name=\"footer\" />\n </div>\n </ElDrawer>\n</template>\n"],"names":["computed","excludeObjectKeys","useSlots","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA;AAUb,IAAM,MAAA,KAAA,GAAQA,aAAS,MAAMC,sBAAA,CAAkB,OAAO,CAAC,cAAA,EAAgB,SAAS,CAAC,CAAC,CAAA;AAElF,IAAA,MAAM,QAAQC,YAAS,EAAA;AACvB,IAAA,MAAM,YAAYC,OAAI,EAAA;AAEtB,IAAa,QAAA,CAAA;AAAA,MACX,MAAS,GAAA;AACP,QAAA,OAAO,SAAU,CAAA,KAAA;AAAA;AACnB,KACD,CAAA;AACD,IAAA,MAAM,8BAAoB,MAAA,CAAA,MAAA;AACxB,MAAA,IAAA,CAAK,qBAAqB,KAAK,CAAA;AAC/B,MAAA,IAAA,CAAK,OAAO,CAAA;AAAA,KAFM,EAAA,aAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"drawer.vue2.js","sources":["../../../../../../../packages/components/drawer/src/drawer.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElDrawer } from 'element-plus';\n import { computed, ref, useSlots } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import { DrawerProps } from './drawer';\n\n defineOptions({\n name: 'IDrawer',\n });\n\n const props = defineProps(DrawerProps);\n const emit = defineEmits({\n 'update:modelValue': (val: boolean) => val,\n openAutoFocus: () => true,\n closeAutoFocus: () => true,\n close: () => true,\n closed: () => true,\n open: () => true,\n opened: () => true,\n });\n\n const attrs = computed(() => excludeObjectKeys(props, ['hasScrollbar', 'overTop']));\n\n const slots = useSlots();\n const drawerRef = ref();\n\n defineExpose({\n getRef() {\n return drawerRef.value;\n },\n });\n const handleClose = () => {\n emit('update:modelValue', false);\n emit('close');\n };\n</script>\n\n<template>\n <ElDrawer\n ref=\"drawerRef\"\n class=\"i-drawer\"\n :class=\"{\n 'i-drawer-over-top': !overTop,\n }\"\n v-bind=\"attrs\"\n @close=\"handleClose\"\n @closed=\"emit('closed')\"\n @open=\"emit('open')\"\n @opened=\"emit('opened')\"\n @close-auto-focus=\"emit('closeAutoFocus')\"\n @open-auto-focus=\"emit('openAutoFocus')\"\n >\n <!-- 自定义header -->\n <template v-if=\"slots.header\">\n <slot name=\"header\" />\n </template>\n <!-- 默认header -->\n <template v-if=\"!slots.header\" #header=\"{ titleId, close }\">\n <div :id=\"titleId\" class=\"i-drawer-header\">\n <div class=\"i-drawer-title\">\n <div class=\"y-block-name\">{{ title }}</div>\n <slot name=\"headerDesc\" />\n </div>\n <div class=\"i-drawer-header-close\" @click=\"close\">\n <i class=\"iconfont icon-guanbi\" />\n </div>\n </div>\n </template>\n <!-- 内容 -->\n <div class=\"i-drawer-body\" :class=\"{ 'i-drawer-no-footer': !slots.footer }\">\n <ElScrollbar v-if=\"hasScrollbar\" style=\"padding-right: 10px\">\n <slot name=\"default\" />\n </ElScrollbar>\n <slot v-else name=\"default\" />\n </div>\n <div v-if=\"slots.footer\" class=\"i-drawer-footer\">\n <slot name=\"footer\" />\n </div>\n </ElDrawer>\n</template>\n"],"names":["computed","excludeObjectKeys","useSlots","ref","_openBlock","_createBlock","_unref","_mergeProps","overTop","_renderSlot","_createElementVNode","_normalizeClass","hasScrollbar","_createElementBlock","_toDisplayString","title"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-item.vue2.js","sources":["../../../../../../../packages/components/form/src/form-item.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { ElFormItem } from 'element-plus';\n import { computed, ref, watch } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import { formItemExcludeKeys, FormItemProps } from './form';\n\n defineOptions({\n name: 'IFormItem',\n });\n\n const props = defineProps(FormItemProps);\n const emits = defineEmits<{\n (e: 'change', prop: string, val: any, ref: any, component: string): void;\n (e: 'update:modelValue', value: any): void;\n (e: 'blur', value: any): void;\n }>();\n\n // 计算排除特定键后的属性\n const attrs = computed(() => excludeObjectKeys(props, formItemExcludeKeys));\n\n // 动态样式计算\n const mergeStyle = computed(() => ({\n gridColumnStart: props.column ? `span ${props.column}` : 'span 1',\n gridRowStart: props.row ? `span ${props.row}` : 'span 1',\n }));\n\n // 将-分割的字符串转换为小写字母开头的驼峰格式\n const toCamelCase = (str?: string): string => {\n return str ? str.replace(/-([a-z])/g, (_, group1) => group1.toUpperCase()) : '';\n };\n\n // 动态组件属性计算\n const componentName = computed(() => toCamelCase(props.comp));\n const componentProps = computed(() => {\n const key = componentName.value;\n // @ts-ignore\n return key ? props[key] || {} : {};\n });\n const componentAttrs = computed(() => excludeObjectKeys(componentProps.value, ['className']));\n\n const componentRef = ref<HTMLElement | null>(null);\n const v = ref<any>(props.modelValue);\n const formItemRef = ref();\n\n // 监听 modelValue 变化并更新本地状态\n watch(\n () => props.modelValue,\n val => {\n if (v.value !== val) {\n v.value = val;\n }\n },\n { deep: true, immediate: true },\n );\n\n // 处理 change 事件\n const handleChange = async (val: any) => {\n emits('update:modelValue', val);\n emits('change', props.prop as string, val, componentRef.value, props.comp as string);\n await formItemRef.value?.validate('change');\n };\n const handleBlur = async (event: Event) => {\n emits('blur', event);\n await formItemRef.value?.validate('blur');\n };\n</script>\n\n<template>\n <ElFormItem ref=\"formItemRef\" v-bind=\"attrs\" :class=\"className\" :style=\"mergeStyle\">\n <slot v-if=\"comp === 'slot'\" :name=\"prop\" />\n <component\n :is=\"comp\"\n v-else\n ref=\"componentRef\"\n v-bind=\"componentAttrs\"\n v-model=\"v\"\n :action=\"action\"\n class=\"i-form-component\"\n :class=\"componentProps?.className\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n />\n </ElFormItem>\n</template>\n"],"names":["computed","excludeObjectKeys","formItemExcludeKeys","ref","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;AAUE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAOd,IAAA,MAAM,QAAQA,YAAS,CAAA,MAAMC,sBAAkB,CAAA,KAAA,EAAOC,wBAAmB,CAAC,CAAA;AAG1E,IAAM,MAAA,UAAA,GAAaF,aAAS,OAAO;AAAA,MACjC,iBAAiB,KAAM,CAAA,MAAA,GAAS,CAAQ,KAAA,EAAA,KAAA,CAAM,MAAM,CAAK,CAAA,GAAA,QAAA;AAAA,MACzD,cAAc,KAAM,CAAA,GAAA,GAAM,CAAQ,KAAA,EAAA,KAAA,CAAM,GAAG,CAAK,CAAA,GAAA;AAAA,KAChD,CAAA,CAAA;AAGF,IAAM,MAAA,WAAA,2BAAe,GAAyB,KAAA;AAC5C,MAAO,OAAA,GAAA,GAAM,GAAI,CAAA,OAAA,CAAQ,WAAa,EAAA,CAAC,GAAG,MAAW,KAAA,MAAA,CAAO,WAAY,EAAC,CAAI,GAAA,EAAA;AAAA,KAD3D,EAAA,aAAA,CAAA;AAKpB,IAAA,MAAM,gBAAgBA,YAAS,CAAA,MAAM,WAAY,CAAA,KAAA,CAAM,IAAI,CAAC,CAAA;AAC5D,IAAM,MAAA,cAAA,GAAiBA,aAAS,MAAM;AACpC,MAAA,MAAM,MAAM,aAAc,CAAA,KAAA;AAE1B,MAAA,OAAO,MAAM,KAAM,CAAA,GAAG,CAAK,IAAA,KAAK,EAAC;AAAA,KAClC,CAAA;AACD,IAAM,MAAA,cAAA,GAAiBA,aAAS,MAAMC,sBAAA,CAAkB,eAAe,KAAO,EAAA,CAAC,WAAW,CAAC,CAAC,CAAA;AAE5F,IAAM,MAAA,YAAA,GAAeE,QAAwB,IAAI,CAAA;AACjD,IAAM,MAAA,CAAA,GAAIA,OAAS,CAAA,KAAA,CAAM,UAAU,CAAA;AACnC,IAAA,MAAM,cAAcA,OAAI,EAAA;AAGxB,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAO,GAAA,KAAA;AACL,QAAI,IAAA,CAAA,CAAE,UAAU,GAAK,EAAA;AACnB,UAAA,CAAA,CAAE,KAAQ,GAAA,GAAA;AAAA;AACZ,OACF;AAAA,MACA,EAAE,IAAA,EAAM,IAAM,EAAA,SAAA,EAAW,IAAK;AAAA,KAChC;AAGA,IAAM,MAAA,YAAA,iCAAsB,GAAa,KAAA;;AACvC,MAAA,KAAA,CAAM,qBAAqB,GAAG,CAAA;AAC9B,MAAA,KAAA,CAAM,UAAU,KAAM,CAAA,IAAA,EAAgB,KAAK,YAAa,CAAA,KAAA,EAAO,MAAM,IAAc,CAAA;AACnF,MAAM,OAAA,CAAA,EAAA,GAAA,WAAA,CAAY,KAAZ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAmB,QAAS,CAAA,QAAA,CAAA,CAAA;AAAA,KAHf,EAAA,cAAA,CAAA;AAKrB,IAAM,MAAA,UAAA,iCAAoB,KAAiB,KAAA;;AACzC,MAAA,KAAA,CAAM,QAAQ,KAAK,CAAA;AACnB,MAAM,OAAA,CAAA,EAAA,GAAA,WAAA,CAAY,KAAZ,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAmB,QAAS,CAAA,MAAA,CAAA,CAAA;AAAA,KAFjB,EAAA,YAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"form-item.vue2.js","sources":["../../../../../../../packages/components/form/src/form-item.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { ElFormItem } from 'element-plus';\n import { computed, ref, watch } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import { formItemExcludeKeys, FormItemProps } from './form';\n\n defineOptions({\n name: 'IFormItem',\n });\n\n const props = defineProps(FormItemProps);\n const emits = defineEmits<{\n (e: 'change', prop: string, val: any, ref: any, component: string): void;\n (e: 'update:modelValue', value: any): void;\n (e: 'blur', value: any): void;\n }>();\n\n // 计算排除特定键后的属性\n const attrs = computed(() => excludeObjectKeys(props, formItemExcludeKeys));\n\n // 动态样式计算\n const mergeStyle = computed(() => ({\n gridColumnStart: props.column ? `span ${props.column}` : 'span 1',\n gridRowStart: props.row ? `span ${props.row}` : 'span 1',\n }));\n\n // 将-分割的字符串转换为小写字母开头的驼峰格式\n const toCamelCase = (str?: string): string => {\n return str ? str.replace(/-([a-z])/g, (_, group1) => group1.toUpperCase()) : '';\n };\n\n // 动态组件属性计算\n const componentName = computed(() => toCamelCase(props.comp));\n const componentProps = computed(() => {\n const key = componentName.value;\n // @ts-ignore\n return key ? props[key] || {} : {};\n });\n const componentAttrs = computed(() => excludeObjectKeys(componentProps.value, ['className']));\n\n const componentRef = ref<HTMLElement | null>(null);\n const v = ref<any>(props.modelValue);\n const formItemRef = ref();\n\n // 监听 modelValue 变化并更新本地状态\n watch(\n () => props.modelValue,\n val => {\n if (v.value !== val) {\n v.value = val;\n }\n },\n { deep: true, immediate: true },\n );\n\n // 处理 change 事件\n const handleChange = async (val: any) => {\n emits('update:modelValue', val);\n emits('change', props.prop as string, val, componentRef.value, props.comp as string);\n await formItemRef.value?.validate('change');\n };\n const handleBlur = async (event: Event) => {\n emits('blur', event);\n await formItemRef.value?.validate('blur');\n };\n</script>\n\n<template>\n <ElFormItem ref=\"formItemRef\" v-bind=\"attrs\" :class=\"className\" :style=\"mergeStyle\">\n <slot v-if=\"comp === 'slot'\" :name=\"prop\" />\n <component\n :is=\"comp\"\n v-else\n ref=\"componentRef\"\n v-bind=\"componentAttrs\"\n v-model=\"v\"\n :action=\"action\"\n class=\"i-form-component\"\n :class=\"componentProps?.className\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n />\n </ElFormItem>\n</template>\n"],"names":["computed","excludeObjectKeys","formItemExcludeKeys","ref","watch","_openBlock","_createBlock","_unref","_mergeProps","className","comp","_renderSlot","prop","_resolveDynamicComponent","action"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form.vue2.js","sources":["../../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElForm } from 'element-plus';\n import { ref } from 'vue';\n import type { FormItemProp, FormValidateCallback, FormValidationResult } from 'element-plus';\n import { excludeObjectKeys } from '../../../utils';\n import { ArrayAble, FormProps } from './form';\n import IFormItem from './form-item.vue';\n\n defineOptions({\n name: 'IForm',\n });\n\n const props = defineProps(FormProps);\n const emit = defineEmits<{\n (e: 'validate', prop: FormItemProp, isValid: boolean, message?: string): void;\n (e: 'change', key: string, value: any, ref: any, component: string): void;\n }>();\n const formRef = ref();\n\n defineExpose({\n getRef() {\n return formRef.value;\n },\n validate(callback?: FormValidateCallback): Promise<void> {\n return formRef.value?.validate(callback);\n },\n validateField(props?: ArrayAble<FormItemProp>, callback?: FormValidateCallback): FormValidationResult | undefined {\n return formRef.value?.validateField(props, callback);\n },\n resetFields(props?: ArrayAble<FormItemProp>): void {\n formRef.value?.resetFields(props);\n },\n scrollToField(prop: FormItemProp): void {\n formRef.value?.scrollToField(prop);\n },\n clearValidate(props?: ArrayAble<FormItemProp>): void {\n formRef.value?.clearValidate(props);\n },\n });\n /**\n * 任一表单项值变化后触发\n * @param key\n * @param value\n * @param ref\n * @param component\n */\n const handleItemChange = (key: string, value: any, ref: any, component: string) => {\n emit('change', key, value, ref, component);\n };\n\n const handleValidate = (prop: FormItemProp, isValid: boolean, message?: string) => {\n emit('validate', prop, isValid, message);\n };\n</script>\n\n<template>\n <ElForm\n ref=\"formRef\"\n class=\"i-form\"\n :model=\"model\"\n v-bind=\"excludeObjectKeys(props, ['fields', 'column', 'model', 'action'])\"\n :style=\"props.column ? { gridTemplateColumns: `repeat(${props.column}, 1fr)` } : {}\"\n @validate=\"handleValidate\"\n >\n <IFormItem\n v-for=\"field of fields\"\n v-bind=\"field\"\n :key=\"field.prop\"\n v-model=\"model[field.prop || '_field']\"\n :action=\"action\"\n @change=\"handleItemChange\"\n >\n <template v-for=\"(item, key) in $slots\" :key=\"key\" #[key]>\n <slot :name=\"key\" v-bind=\"item\" />\n </template>\n </IFormItem>\n </ElForm>\n</template>\n"],"names":["ref","props"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAYE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA;AAIb,IAAA,MAAM,UAAUA,OAAI,EAAA;AAEpB,IAAa,QAAA,CAAA;AAAA,MACX,MAAS,GAAA;AACP,QAAA,OAAO,OAAQ,CAAA,KAAA;AAAA,OACjB;AAAA,MACA,SAAS,QAAgD,EAAA;;AACvD,QAAO,OAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,KAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,QAAS,CAAA,QAAA,CAAA;AAAA,OACjC;AAAA,MACA,aAAA,CAAcC,QAAiC,QAAmE,EAAA;;AAChH,QAAA,OAAA,CAAO,EAAQ,GAAA,OAAA,CAAA,KAAA,KAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAA,CAAcA,MAAO,EAAA,QAAA,CAAA;AAAA,OAC7C;AAAA,MACA,YAAYA,MAAuC,EAAA;;AACjD,QAAQ,CAAA,EAAA,GAAA,OAAA,CAAA,KAAA,KAAR,mBAAe,WAAYA,CAAAA,MAAAA,CAAAA;AAAA,OAC7B;AAAA,MACA,cAAc,IAA0B,EAAA;;AACtC,QAAQ,CAAA,EAAA,GAAA,OAAA,CAAA,KAAA,KAAR,mBAAe,aAAc,CAAA,IAAA,CAAA;AAAA,OAC/B;AAAA,MACA,cAAcA,MAAuC,EAAA;;AACnD,QAAQ,CAAA,EAAA,GAAA,OAAA,CAAA,KAAA,KAAR,mBAAe,aAAcA,CAAAA,MAAAA,CAAAA;AAAA;AAC/B,KACD,CAAA;AAQD,IAAA,MAAM,gBAAmB,mBAAA,MAAA,CAAA,CAAC,GAAa,EAAA,KAAA,EAAYD,MAAU,SAAsB,KAAA;AACjF,MAAA,IAAA,CAAK,QAAU,EAAA,GAAA,EAAK,KAAOA,EAAAA,IAAAA,EAAK,SAAS,CAAA;AAAA,KADlB,EAAA,kBAAA,CAAA;AAIzB,IAAA,MAAM,cAAiB,mBAAA,MAAA,CAAA,CAAC,IAAoB,EAAA,OAAA,EAAkB,OAAqB,KAAA;AACjF,MAAK,IAAA,CAAA,UAAA,EAAY,IAAM,EAAA,OAAA,EAAS,OAAO,CAAA;AAAA,KADlB,EAAA,gBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"form.vue2.js","sources":["../../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElForm } from 'element-plus';\n import { ref } from 'vue';\n import type { FormItemProp, FormValidateCallback, FormValidationResult } from 'element-plus';\n import { excludeObjectKeys } from '../../../utils';\n import { ArrayAble, FormProps } from './form';\n import IFormItem from './form-item.vue';\n\n defineOptions({\n name: 'IForm',\n });\n\n const props = defineProps(FormProps);\n const emit = defineEmits<{\n (e: 'validate', prop: FormItemProp, isValid: boolean, message?: string): void;\n (e: 'change', key: string, value: any, ref: any, component: string): void;\n }>();\n const formRef = ref();\n\n defineExpose({\n getRef() {\n return formRef.value;\n },\n validate(callback?: FormValidateCallback): Promise<void> {\n return formRef.value?.validate(callback);\n },\n validateField(props?: ArrayAble<FormItemProp>, callback?: FormValidateCallback): FormValidationResult | undefined {\n return formRef.value?.validateField(props, callback);\n },\n resetFields(props?: ArrayAble<FormItemProp>): void {\n formRef.value?.resetFields(props);\n },\n scrollToField(prop: FormItemProp): void {\n formRef.value?.scrollToField(prop);\n },\n clearValidate(props?: ArrayAble<FormItemProp>): void {\n formRef.value?.clearValidate(props);\n },\n });\n /**\n * 任一表单项值变化后触发\n * @param key\n * @param value\n * @param ref\n * @param component\n */\n const handleItemChange = (key: string, value: any, ref: any, component: string) => {\n emit('change', key, value, ref, component);\n };\n\n const handleValidate = (prop: FormItemProp, isValid: boolean, message?: string) => {\n emit('validate', prop, isValid, message);\n };\n</script>\n\n<template>\n <ElForm\n ref=\"formRef\"\n class=\"i-form\"\n :model=\"model\"\n v-bind=\"excludeObjectKeys(props, ['fields', 'column', 'model', 'action'])\"\n :style=\"props.column ? { gridTemplateColumns: `repeat(${props.column}, 1fr)` } : {}\"\n @validate=\"handleValidate\"\n >\n <IFormItem\n v-for=\"field of fields\"\n v-bind=\"field\"\n :key=\"field.prop\"\n v-model=\"model[field.prop || '_field']\"\n :action=\"action\"\n @change=\"handleItemChange\"\n >\n <template v-for=\"(item, key) in $slots\" :key=\"key\" #[key]>\n <slot :name=\"key\" v-bind=\"item\" />\n </template>\n </IFormItem>\n </ElForm>\n</template>\n"],"names":["ref","props","_openBlock","_createBlock","_unref","_mergeProps","model","excludeObjectKeys","_createElementBlock","_Fragment","_renderList","fields","IFormItem","action","$slots","_renderSlot"],"mappings":"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"}
@@ -173,14 +173,14 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
173
173
  null,
174
174
  "\u9009\u62E9",
175
175
  -1
176
- /* HOISTED */
176
+ /* CACHED */
177
177
  )),
178
178
  _cache[4] || (_cache[4] = vue.createElementVNode(
179
179
  "span",
180
180
  null,
181
181
  "\u56FE\u6807",
182
182
  -1
183
- /* HOISTED */
183
+ /* CACHED */
184
184
  ))
185
185
  ],
186
186
  64
@@ -228,7 +228,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
228
228
  null,
229
229
  "Name\uFF1A",
230
230
  -1
231
- /* HOISTED */
231
+ /* CACHED */
232
232
  )),
233
233
  vue.createElementVNode("span", {
234
234
  title: activeIcon.value.name
@@ -240,7 +240,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
240
240
  null,
241
241
  "Class\uFF1A",
242
242
  -1
243
- /* HOISTED */
243
+ /* CACHED */
244
244
  )),
245
245
  vue.createElementVNode("span", {
246
246
  title: activeIcon.value.font_class
@@ -252,7 +252,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
252
252
  null,
253
253
  "Unicode\uFF1A",
254
254
  -1
255
- /* HOISTED */
255
+ /* CACHED */
256
256
  )),
257
257
  vue.createElementVNode(
258
258
  "span",
@@ -1 +1 @@
1
- {"version":3,"file":"icon-select.vue2.js","sources":["../../../../../../../packages/components/icon-select/src/icon-select.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { onClickOutside } from '@vueuse/core';\n import { ElInput, ElPagination } from 'element-plus';\n import { ref, unref, watchEffect } from 'vue';\n import { IconSelectProps } from './icon-select';\n import Iconfont from './iconfont';\n\n defineOptions({\n name: 'IIconSelect',\n });\n const props = defineProps(IconSelectProps);\n const emit = defineEmits({\n 'update:modelValue': (value: string) => value,\n change: (value: string) => value,\n });\n const iconValue = ref<string>('');\n const triggerRef = ref();\n const popoverRef = ref();\n\n onClickOutside(triggerRef.value, () => {\n unref(popoverRef).popperRef?.delayHide?.();\n });\n\n watchEffect(() => {\n iconValue.value = props.modelValue;\n });\n\n const searchValue = ref<string>('');\n const pageSize = 50;\n const current = ref<number>(1);\n const icons = ref<any[]>([]); // 显示列表\n const iconsBaseList = ref<any[]>(Iconfont.glyphs || []); // 基础列表\n const activeIcon = ref({\n font_class: '',\n unicode: '',\n name: '',\n });\n\n // 翻页\n const handleCurrentChange = (current: number) => {\n const startIndex = (current - 1) * pageSize;\n const endIndex = startIndex + pageSize;\n const list: any[] = iconsBaseList.value.slice(startIndex, endIndex);\n // 不足 pageSize 的情况,补全\n if (list.length < pageSize) {\n const len = pageSize - list.length;\n for (let i = 0; i < len; i++) {\n list.push({\n font_class: '',\n unicode: '-',\n name: '-',\n });\n }\n }\n icons.value = list;\n };\n\n // 首次加载第一页\n handleCurrentChange(1);\n\n // 点击选择\n const handleClick = (row: any) => {\n if (row.font_class) {\n activeIcon.value = row;\n iconValue.value = `icon-${row.font_class}`;\n emit('update:modelValue', iconValue.value);\n emit('change', row);\n } else {\n return null;\n }\n };\n\n // 搜索\n const handleChange = () => {\n if (Array.isArray(Iconfont.glyphs)) {\n if (searchValue.value) {\n iconsBaseList.value = Iconfont.glyphs.filter((item: any) => {\n return item.font_class.indexOf(searchValue.value) > -1 || item.name.indexOf(searchValue.value) > -1;\n });\n current.value = 1;\n handleCurrentChange(current.value);\n } else {\n handleHide();\n }\n }\n };\n\n // 弹出框显示之前触发\n function handleShow() {\n if (props.modelValue) {\n const font_class = props.modelValue.replace('icon-', '');\n const index = iconsBaseList.value.findIndex((item: any) => {\n return item.font_class === font_class;\n });\n if (index > -1) {\n activeIcon.value = iconsBaseList.value[index];\n // 该icon在第index项,找到它在第几页\n current.value = Math.ceil(index / pageSize);\n handleCurrentChange(current.value);\n }\n }\n }\n\n // 弹出框隐藏时触发\n // 重置检索项 searchValue\n // 重置分页 current\n function handleHide() {\n searchValue.value = '';\n activeIcon.value = {\n font_class: '',\n unicode: '',\n name: '',\n };\n current.value = 1;\n iconsBaseList.value = Iconfont.glyphs;\n handleCurrentChange(current.value);\n }\n</script>\n\n<template>\n <div>\n <div v-if=\"type === 'input'\" class=\"t-icon-select__input\">\n <ElInput ref=\"triggerRef\" v-model=\"iconValue\" placeholder=\"选择图标\" readonly>\n <template #prepend>\n <i class=\"iconfont\" :class=\"iconValue\" />\n </template>\n </ElInput>\n </div>\n <div\n v-else-if=\"type === 'card'\"\n ref=\"triggerRef\"\n class=\"t-icon-select-card\"\n :style=\"{\n width: size,\n height: size,\n }\"\n >\n <template v-if=\"!iconValue\">\n <span>选择</span>\n <span>图标</span>\n </template>\n <i v-else class=\"iconfont\" :class=\"iconValue\" />\n </div>\n <ElPopover\n ref=\"popoverRef\"\n :virtual-ref=\"triggerRef\"\n trigger=\"click\"\n width=\"515px\"\n @before-enter=\"handleShow\"\n @hide=\"handleHide\"\n >\n <div class=\"t-icon-select__wrap\">\n <div class=\"icon-view\">\n <div class=\"icon-view-box\">\n <i class=\"iconfont\" :class=\"`icon-${activeIcon.font_class}`\" />\n </div>\n <div class=\"icon-text\">\n <label>Name:</label>\n <span :title=\"activeIcon.name\">{{ activeIcon.name }}</span>\n </div>\n <div class=\"icon-text\">\n <label>Class:</label>\n <span :title=\"activeIcon.font_class\">{{ activeIcon.font_class }}</span>\n </div>\n <div class=\"icon-text\">\n <label>Unicode:</label>\n <span>{{ activeIcon.unicode }}</span>\n </div>\n </div>\n <div class=\"icon-list-wrap\">\n <ElInput\n v-model=\"searchValue\"\n class=\"icon-search\"\n placeholder=\"图标Name/Class\"\n clearable\n @change=\"handleChange\"\n />\n <div class=\"icon-list\">\n <div\n v-for=\"item in icons\"\n :key=\"item.icon_id\"\n class=\"icon-list-item\"\n :class=\"{\n active: item.font_class === activeIcon.font_class,\n disabled: !item.font_class,\n }\"\n @click=\"handleClick(item)\"\n >\n <i class=\"iconfont\" :class=\"[`icon-${item.font_class}`]\" />\n </div>\n </div>\n <div class=\"icon-footer\">\n <ElPagination\n v-model:current-page=\"current\"\n :total=\"iconsBaseList.length\"\n :pager-count=\"4\"\n :page-size=\"pageSize\"\n layout=\"prev,pager,next\"\n background\n small\n @current-change=\"handleCurrentChange\"\n />\n </div>\n </div>\n </div>\n </ElPopover>\n </div>\n</template>\n"],"names":["ref","onClickOutside","unref","watchEffect","Iconfont","current"],"mappings":"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"}
1
+ {"version":3,"file":"icon-select.vue2.js","sources":["../../../../../../../packages/components/icon-select/src/icon-select.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { onClickOutside } from '@vueuse/core';\n import { ElInput, ElPagination } from 'element-plus';\n import { ref, unref, watchEffect } from 'vue';\n import { IconSelectProps } from './icon-select';\n import Iconfont from './iconfont';\n\n defineOptions({\n name: 'IIconSelect',\n });\n const props = defineProps(IconSelectProps);\n const emit = defineEmits({\n 'update:modelValue': (value: string) => value,\n change: (value: string) => value,\n });\n const iconValue = ref<string>('');\n const triggerRef = ref();\n const popoverRef = ref();\n\n onClickOutside(triggerRef.value, () => {\n unref(popoverRef).popperRef?.delayHide?.();\n });\n\n watchEffect(() => {\n iconValue.value = props.modelValue;\n });\n\n const searchValue = ref<string>('');\n const pageSize = 50;\n const current = ref<number>(1);\n const icons = ref<any[]>([]); // 显示列表\n const iconsBaseList = ref<any[]>(Iconfont.glyphs || []); // 基础列表\n const activeIcon = ref({\n font_class: '',\n unicode: '',\n name: '',\n });\n\n // 翻页\n const handleCurrentChange = (current: number) => {\n const startIndex = (current - 1) * pageSize;\n const endIndex = startIndex + pageSize;\n const list: any[] = iconsBaseList.value.slice(startIndex, endIndex);\n // 不足 pageSize 的情况,补全\n if (list.length < pageSize) {\n const len = pageSize - list.length;\n for (let i = 0; i < len; i++) {\n list.push({\n font_class: '',\n unicode: '-',\n name: '-',\n });\n }\n }\n icons.value = list;\n };\n\n // 首次加载第一页\n handleCurrentChange(1);\n\n // 点击选择\n const handleClick = (row: any) => {\n if (row.font_class) {\n activeIcon.value = row;\n iconValue.value = `icon-${row.font_class}`;\n emit('update:modelValue', iconValue.value);\n emit('change', row);\n } else {\n return null;\n }\n };\n\n // 搜索\n const handleChange = () => {\n if (Array.isArray(Iconfont.glyphs)) {\n if (searchValue.value) {\n iconsBaseList.value = Iconfont.glyphs.filter((item: any) => {\n return item.font_class.indexOf(searchValue.value) > -1 || item.name.indexOf(searchValue.value) > -1;\n });\n current.value = 1;\n handleCurrentChange(current.value);\n } else {\n handleHide();\n }\n }\n };\n\n // 弹出框显示之前触发\n function handleShow() {\n if (props.modelValue) {\n const font_class = props.modelValue.replace('icon-', '');\n const index = iconsBaseList.value.findIndex((item: any) => {\n return item.font_class === font_class;\n });\n if (index > -1) {\n activeIcon.value = iconsBaseList.value[index];\n // 该icon在第index项,找到它在第几页\n current.value = Math.ceil(index / pageSize);\n handleCurrentChange(current.value);\n }\n }\n }\n\n // 弹出框隐藏时触发\n // 重置检索项 searchValue\n // 重置分页 current\n function handleHide() {\n searchValue.value = '';\n activeIcon.value = {\n font_class: '',\n unicode: '',\n name: '',\n };\n current.value = 1;\n iconsBaseList.value = Iconfont.glyphs;\n handleCurrentChange(current.value);\n }\n</script>\n\n<template>\n <div>\n <div v-if=\"type === 'input'\" class=\"t-icon-select__input\">\n <ElInput ref=\"triggerRef\" v-model=\"iconValue\" placeholder=\"选择图标\" readonly>\n <template #prepend>\n <i class=\"iconfont\" :class=\"iconValue\" />\n </template>\n </ElInput>\n </div>\n <div\n v-else-if=\"type === 'card'\"\n ref=\"triggerRef\"\n class=\"t-icon-select-card\"\n :style=\"{\n width: size,\n height: size,\n }\"\n >\n <template v-if=\"!iconValue\">\n <span>选择</span>\n <span>图标</span>\n </template>\n <i v-else class=\"iconfont\" :class=\"iconValue\" />\n </div>\n <ElPopover\n ref=\"popoverRef\"\n :virtual-ref=\"triggerRef\"\n trigger=\"click\"\n width=\"515px\"\n @before-enter=\"handleShow\"\n @hide=\"handleHide\"\n >\n <div class=\"t-icon-select__wrap\">\n <div class=\"icon-view\">\n <div class=\"icon-view-box\">\n <i class=\"iconfont\" :class=\"`icon-${activeIcon.font_class}`\" />\n </div>\n <div class=\"icon-text\">\n <label>Name:</label>\n <span :title=\"activeIcon.name\">{{ activeIcon.name }}</span>\n </div>\n <div class=\"icon-text\">\n <label>Class:</label>\n <span :title=\"activeIcon.font_class\">{{ activeIcon.font_class }}</span>\n </div>\n <div class=\"icon-text\">\n <label>Unicode:</label>\n <span>{{ activeIcon.unicode }}</span>\n </div>\n </div>\n <div class=\"icon-list-wrap\">\n <ElInput\n v-model=\"searchValue\"\n class=\"icon-search\"\n placeholder=\"图标Name/Class\"\n clearable\n @change=\"handleChange\"\n />\n <div class=\"icon-list\">\n <div\n v-for=\"item in icons\"\n :key=\"item.icon_id\"\n class=\"icon-list-item\"\n :class=\"{\n active: item.font_class === activeIcon.font_class,\n disabled: !item.font_class,\n }\"\n @click=\"handleClick(item)\"\n >\n <i class=\"iconfont\" :class=\"[`icon-${item.font_class}`]\" />\n </div>\n </div>\n <div class=\"icon-footer\">\n <ElPagination\n v-model:current-page=\"current\"\n :total=\"iconsBaseList.length\"\n :pager-count=\"4\"\n :page-size=\"pageSize\"\n layout=\"prev,pager,next\"\n background\n small\n @current-change=\"handleCurrentChange\"\n />\n </div>\n </div>\n </div>\n </ElPopover>\n </div>\n</template>\n"],"names":["ref","onClickOutside","unref","watchEffect","Iconfont","current","_createElementBlock","type","_openBlock","_createVNode","_unref","ElInput","_createElementVNode","_normalizeClass","_normalizeStyle","size","_Fragment","_toDisplayString","_renderList","ElPagination"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"image-verification.vue2.js","sources":["../../../../../../../packages/components/image-verification/src/image-verification.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { useElementSize, watchDebounced } from '@vueuse/core';\n import { computed, nextTick, onMounted, ref, watchEffect } from 'vue';\n import { ImageVerificationProps } from './image-verification';\n\n defineOptions({\n name: 'IImageVerification',\n });\n\n defineProps(ImageVerificationProps);\n const emits = defineEmits({\n 'update:modelValue': (value: string) => value,\n refresh: () => true,\n });\n\n const CODE_STRING = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; // 验证码字符串\n const CODE_LENGTH = 4; // 验证码长度\n\n const imgVerifyRef = ref();\n // @ts-ignore\n const { width, height } = useElementSize(imgVerifyRef);\n const imgVerify = computed(() => {\n return { width: width.value, height: height.value };\n });\n const canvasRef = ref<HTMLCanvasElement>();\n const imgCodeText = ref('');\n onMounted(() => handleRefresh());\n watchEffect(() => {\n if (imgCodeText.value) {\n emits('update:modelValue', imgCodeText.value);\n }\n });\n watchDebounced(\n () => imgVerify.value,\n () => handleRefresh(),\n );\n defineExpose({\n refresh: handleRefresh,\n });\n\n /**\n * 刷新验证码\n */\n async function handleRefresh() {\n if (canvasRef.value) {\n await sleep(100);\n await nextTick();\n imgCodeText.value = drawCode(canvasRef.value, width.value, height.value);\n } else {\n console.error('canvas获取上下文失败');\n }\n }\n\n /**\n * 绘制验证码\n * @param canvas\n * @param w\n * @param h\n */\n function drawCode(canvas: HTMLCanvasElement, w: number, h: number): string {\n const ctx = canvas.getContext('2d');\n let codeText = '';\n if (!ctx) return '';\n ctx.fillStyle = randomColor(180, 230); // 背景色\n ctx.fillRect(0, 0, w, h); // 矩形填充区域\n for (let i = 0; i < CODE_LENGTH; i++) {\n // 字符\n const text = CODE_STRING[randomNum(0, CODE_STRING.length)];\n codeText += text;\n // 字体大小\n const fontSize = randomNum(h - 6, h);\n // 字体样式\n ctx.font = `550 ${fontSize}px Simhei`;\n // 基线对齐\n ctx.textBaseline = 'top';\n // 文本对齐\n ctx.textAlign = 'left';\n ctx.fillStyle = randomColor(50, 160);\n ctx.save();\n ctx.translate((w / (CODE_LENGTH + 1)) * i, 0);\n ctx.rotate((randomNum(-10, 10) * Math.PI) / 180);\n ctx.fillText(text, 5, 0);\n ctx.restore();\n }\n return codeText;\n }\n\n function sleep(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n /**\n * 根据min和max随机返回一个随机数\n * @param min\n * @param max\n */\n function randomNum(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min) + min);\n }\n /**\n * 返回一个随机颜色(rgb格式)\n * @param min 色值最小值\n * @param max 色值最大值\n */\n function randomColor(min: number, max: number): string {\n const r = randomNum(min, max);\n const g = randomNum(min, max);\n const b = randomNum(min, max);\n return `rgb(${r},${g},${b})`;\n }\n</script>\n\n<template>\n <div ref=\"imgVerifyRef\" class=\"t-img-verify\">\n <canvas ref=\"canvasRef\" :width=\"imgVerify.width\" :height=\"imgVerify.height\" @click=\"handleRefresh\" />\n </div>\n</template>\n"],"names":["ref","useElementSize","computed","onMounted","watchEffect","watchDebounced","nextTick"],"mappings":"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"}
1
+ {"version":3,"file":"image-verification.vue2.js","sources":["../../../../../../../packages/components/image-verification/src/image-verification.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { useElementSize, watchDebounced } from '@vueuse/core';\n import { computed, nextTick, onMounted, ref, watchEffect } from 'vue';\n import { ImageVerificationProps } from './image-verification';\n\n defineOptions({\n name: 'IImageVerification',\n });\n\n defineProps(ImageVerificationProps);\n const emits = defineEmits({\n 'update:modelValue': (value: string) => value,\n refresh: () => true,\n });\n\n const CODE_STRING = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; // 验证码字符串\n const CODE_LENGTH = 4; // 验证码长度\n\n const imgVerifyRef = ref();\n // @ts-ignore\n const { width, height } = useElementSize(imgVerifyRef);\n const imgVerify = computed(() => {\n return { width: width.value, height: height.value };\n });\n const canvasRef = ref<HTMLCanvasElement>();\n const imgCodeText = ref('');\n onMounted(() => handleRefresh());\n watchEffect(() => {\n if (imgCodeText.value) {\n emits('update:modelValue', imgCodeText.value);\n }\n });\n watchDebounced(\n () => imgVerify.value,\n () => handleRefresh(),\n );\n defineExpose({\n refresh: handleRefresh,\n });\n\n /**\n * 刷新验证码\n */\n async function handleRefresh() {\n if (canvasRef.value) {\n await sleep(100);\n await nextTick();\n imgCodeText.value = drawCode(canvasRef.value, width.value, height.value);\n } else {\n console.error('canvas获取上下文失败');\n }\n }\n\n /**\n * 绘制验证码\n * @param canvas\n * @param w\n * @param h\n */\n function drawCode(canvas: HTMLCanvasElement, w: number, h: number): string {\n const ctx = canvas.getContext('2d');\n let codeText = '';\n if (!ctx) return '';\n ctx.fillStyle = randomColor(180, 230); // 背景色\n ctx.fillRect(0, 0, w, h); // 矩形填充区域\n for (let i = 0; i < CODE_LENGTH; i++) {\n // 字符\n const text = CODE_STRING[randomNum(0, CODE_STRING.length)];\n codeText += text;\n // 字体大小\n const fontSize = randomNum(h - 6, h);\n // 字体样式\n ctx.font = `550 ${fontSize}px Simhei`;\n // 基线对齐\n ctx.textBaseline = 'top';\n // 文本对齐\n ctx.textAlign = 'left';\n ctx.fillStyle = randomColor(50, 160);\n ctx.save();\n ctx.translate((w / (CODE_LENGTH + 1)) * i, 0);\n ctx.rotate((randomNum(-10, 10) * Math.PI) / 180);\n ctx.fillText(text, 5, 0);\n ctx.restore();\n }\n return codeText;\n }\n\n function sleep(ms: number) {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n /**\n * 根据min和max随机返回一个随机数\n * @param min\n * @param max\n */\n function randomNum(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min) + min);\n }\n /**\n * 返回一个随机颜色(rgb格式)\n * @param min 色值最小值\n * @param max 色值最大值\n */\n function randomColor(min: number, max: number): string {\n const r = randomNum(min, max);\n const g = randomNum(min, max);\n const b = randomNum(min, max);\n return `rgb(${r},${g},${b})`;\n }\n</script>\n\n<template>\n <div ref=\"imgVerifyRef\" class=\"t-img-verify\">\n <canvas ref=\"canvasRef\" :width=\"imgVerify.width\" :height=\"imgVerify.height\" @click=\"handleRefresh\" />\n </div>\n</template>\n"],"names":["ref","useElementSize","computed","onMounted","watchEffect","watchDebounced","nextTick","_createElementBlock","_createElementVNode"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"link.vue2.js","sources":["../../../../../../../packages/components/link/src/link.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { useMouseInElement } from '@vueuse/core';\n import { ElLink } from 'element-plus';\n import { computed, ref, watchEffect } from 'vue';\n import { customLinkType, darkenColor, getLinkIcon, linkEmits, LinkProps } from './link';\n\n defineOptions({\n name: 'ILink',\n });\n const props = defineProps(LinkProps);\n const emit = defineEmits(linkEmits);\n\n const handleClick = (evt: MouseEvent) => {\n if (!props.disabled) emit('click', evt);\n };\n\n const _icon = computed(() => getLinkIcon(props.type, props.icon));\n const _color = computed(() => {\n return props.color\n ? props.color\n : props.type && customLinkType[props.type]\n ? customLinkType[props.type].color || 'var(--el-color-primary)'\n : 'var(--el-color-primary)';\n });\n\n const linkRef = ref();\n const { isOutside } = useMouseInElement(linkRef);\n const changeColorByIsOutside = () => {\n if (props.disabled) return;\n if (isOutside.value) {\n if (linkRef.value) {\n (linkRef.value?.$el as HTMLDivElement).style.color = _color.value;\n }\n } else {\n const color = (linkRef.value?.$el as HTMLDivElement).style.color;\n (linkRef.value?.$el as HTMLDivElement).style.color =\n color.indexOf('var') > -1 ? 'var(--el-color-primary-dark-2)' : props.hover || darkenColor(color, 0.2);\n }\n };\n watchEffect(() => changeColorByIsOutside());\n</script>\n\n<template>\n <ElLink ref=\"linkRef\" class=\"t-link\" :underline=\"false\" :disabled=\"disabled\" @click=\"handleClick\">\n <div v-if=\"$slots.icon || _icon\" class=\"t-link-icon\">\n <slot v-if=\"$slots.icon\" name=\"icon\" />\n <i v-else class=\"iconfont\" :class=\"[_icon]\" />\n </div>\n <div class=\"t-link-content\">\n <slot name=\"default\" />\n </div>\n </ElLink>\n</template>\n"],"names":["computed","getLinkIcon","customLinkType","ref","useMouseInElement","darkenColor","watchEffect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA;AAEb,IAAM,MAAA,WAAA,2BAAe,GAAoB,KAAA;AACvC,MAAA,IAAI,CAAC,KAAA,CAAM,QAAU,EAAA,IAAA,CAAK,SAAS,GAAG,CAAA;AAAA,KADpB,EAAA,aAAA,CAAA;AAIpB,IAAM,MAAA,KAAA,GAAQA,aAAS,MAAMC,gBAAA,CAAY,MAAM,IAAM,EAAA,KAAA,CAAM,IAAI,CAAC,CAAA;AAChE,IAAM,MAAA,MAAA,GAASD,aAAS,MAAM;AAC5B,MAAA,OAAO,KAAM,CAAA,KAAA,GACT,KAAM,CAAA,KAAA,GACN,MAAM,IAAQ,IAAAE,mBAAA,CAAe,KAAM,CAAA,IAAI,IACrCA,mBAAe,CAAA,KAAA,CAAM,IAAI,CAAA,CAAE,SAAS,yBACpC,GAAA,yBAAA;AAAA,KACP,CAAA;AAED,IAAA,MAAM,UAAUC,OAAI,EAAA;AACpB,IAAA,MAAM,EAAE,SAAA,EAAc,GAAAC,sBAAA,CAAkB,OAAO,CAAA;AAC/C,IAAA,MAAM,yCAA+B,MAAA,CAAA,MAAA;;AACnC,MAAA,IAAI,MAAM,QAAU,EAAA;AACpB,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,UAAA,CAAA,CAAC,aAAQ,KAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,GAAuB,EAAA,KAAA,CAAM,QAAQ,MAAO,CAAA,KAAA;AAAA;AAC9D,OACK,MAAA;AACL,QAAA,MAAM,KAAS,GAAA,CAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,KAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,KAAuB,KAAM,CAAA,KAAA;AAC3D,QAAA,CAAA,CAAC,aAAQ,KAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,GAAuB,EAAA,KAAA,CAAM,QAC3C,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAK,gCAAmC,GAAA,KAAA,CAAM,KAAS,IAAAC,gBAAA,CAAY,OAAO,GAAG,CAAA;AAAA;AACxG,KAV6B,EAAA,wBAAA,CAAA;AAY/B,IAAYC,eAAA,CAAA,MAAM,wBAAwB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"link.vue2.js","sources":["../../../../../../../packages/components/link/src/link.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { useMouseInElement } from '@vueuse/core';\n import { ElLink } from 'element-plus';\n import { computed, ref, watchEffect } from 'vue';\n import { customLinkType, darkenColor, getLinkIcon, linkEmits, LinkProps } from './link';\n\n defineOptions({\n name: 'ILink',\n });\n const props = defineProps(LinkProps);\n const emit = defineEmits(linkEmits);\n\n const handleClick = (evt: MouseEvent) => {\n if (!props.disabled) emit('click', evt);\n };\n\n const _icon = computed(() => getLinkIcon(props.type, props.icon));\n const _color = computed(() => {\n return props.color\n ? props.color\n : props.type && customLinkType[props.type]\n ? customLinkType[props.type].color || 'var(--el-color-primary)'\n : 'var(--el-color-primary)';\n });\n\n const linkRef = ref();\n const { isOutside } = useMouseInElement(linkRef);\n const changeColorByIsOutside = () => {\n if (props.disabled) return;\n if (isOutside.value) {\n if (linkRef.value) {\n (linkRef.value?.$el as HTMLDivElement).style.color = _color.value;\n }\n } else {\n const color = (linkRef.value?.$el as HTMLDivElement).style.color;\n (linkRef.value?.$el as HTMLDivElement).style.color =\n color.indexOf('var') > -1 ? 'var(--el-color-primary-dark-2)' : props.hover || darkenColor(color, 0.2);\n }\n };\n watchEffect(() => changeColorByIsOutside());\n</script>\n\n<template>\n <ElLink ref=\"linkRef\" class=\"t-link\" :underline=\"false\" :disabled=\"disabled\" @click=\"handleClick\">\n <div v-if=\"$slots.icon || _icon\" class=\"t-link-icon\">\n <slot v-if=\"$slots.icon\" name=\"icon\" />\n <i v-else class=\"iconfont\" :class=\"[_icon]\" />\n </div>\n <div class=\"t-link-content\">\n <slot name=\"default\" />\n </div>\n </ElLink>\n</template>\n"],"names":["computed","getLinkIcon","customLinkType","ref","useMouseInElement","darkenColor","watchEffect","_createBlock","_unref","ElLink","disabled","$slots","_openBlock","_createElementBlock","_renderSlot","_normalizeClass","_createElementVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA;AAEb,IAAM,MAAA,WAAA,2BAAe,GAAoB,KAAA;AACvC,MAAA,IAAI,CAAC,KAAA,CAAM,QAAU,EAAA,IAAA,CAAK,SAAS,GAAG,CAAA;AAAA,KADpB,EAAA,aAAA,CAAA;AAIpB,IAAM,MAAA,KAAA,GAAQA,aAAS,MAAMC,gBAAA,CAAY,MAAM,IAAM,EAAA,KAAA,CAAM,IAAI,CAAC,CAAA;AAChE,IAAM,MAAA,MAAA,GAASD,aAAS,MAAM;AAC5B,MAAA,OAAO,KAAM,CAAA,KAAA,GACT,KAAM,CAAA,KAAA,GACN,MAAM,IAAQ,IAAAE,mBAAA,CAAe,KAAM,CAAA,IAAI,IACrCA,mBAAe,CAAA,KAAA,CAAM,IAAI,CAAA,CAAE,SAAS,yBACpC,GAAA,yBAAA;AAAA,KACP,CAAA;AAED,IAAA,MAAM,UAAUC,OAAI,EAAA;AACpB,IAAA,MAAM,EAAE,SAAA,EAAc,GAAAC,sBAAA,CAAkB,OAAO,CAAA;AAC/C,IAAA,MAAM,yCAA+B,MAAA,CAAA,MAAA;;AACnC,MAAA,IAAI,MAAM,QAAU,EAAA;AACpB,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,UAAA,CAAA,CAAC,aAAQ,KAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,GAAuB,EAAA,KAAA,CAAM,QAAQ,MAAO,CAAA,KAAA;AAAA;AAC9D,OACK,MAAA;AACL,QAAA,MAAM,KAAS,GAAA,CAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,KAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,KAAuB,KAAM,CAAA,KAAA;AAC3D,QAAA,CAAA,CAAC,aAAQ,KAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAe,GAAuB,EAAA,KAAA,CAAM,QAC3C,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAK,gCAAmC,GAAA,KAAA,CAAM,KAAS,IAAAC,gBAAA,CAAY,OAAO,GAAG,CAAA;AAAA;AACxG,KAV6B,EAAA,wBAAA,CAAA;AAY/B,IAAYC,eAAA,CAAA,MAAM,wBAAwB,CAAA;;8BAI1CC,eAQS,CAAAC,SAAA,CAAAC,kBAAA,CAAA,EAAA;AAAA,eARG,EAAA,SAAA;AAAA,QAAJ,GAAI,EAAA,OAAA;AAAA,QAAU,KAAM,EAAA,QAAA;AAAA,QAAU,SAAW,EAAA,KAAA;AAAA,QAAQ,UAAUC,IAAQ,CAAA,QAAA;AAAA,QAAG,OAAO,EAAA;AAAA;6BACnF,MAGM;AAAA,UAHKC,IAAAA,CAAM,OAAC,IAAQ,IAAA,KAAA,CAAK,SAA/BC,aAAA,EAAA,EAAAC,sBAGM,CAAA,KAAA,EAHN,UAGM,EAAA;AAAA,YAFQF,IAAAA,CAAAA,MAAAA,CAAO,IAAnB,GAAAG,cAAA,CAAuC,IAAA,CAAA,MAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA,mBACvC,EAAAD,sBAAA;AAAA,cAA8C,GAAA;AAAA,cAAA;AAAA;gBAApC,KAAA,EAAKE,mBAAA,CAAC,UAAA,EAAU,CAAU,KAAK,CAAA,KAAA,CAAA,CAAA;AAAA;;;;;;UAE3CC,sBAAA,CAEM,OAFN,UAEM,EAAA;AAAA,YADJF,cAAA,CAAuB,IAAA,CAAA,MAAA,EAAA,SAAA;AAAA;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"live-player.vue2.js","sources":["../../../../../../../packages/components/live-player/src/live-player.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { onMounted, shallowRef } from 'vue';\n import { LivePlayerProps } from './live-player';\n import XgPlayer from './xgPlayer.vue';\n import YsPlayer from './ysPlayer.vue';\n\n defineOptions({\n name: 'ILivePlayer',\n });\n\n const props = defineProps(LivePlayerProps);\n const comp = shallowRef();\n const compRef = shallowRef();\n\n onMounted(() => {\n // 当访问令牌存在时,使用萤石云播放器(YsPlayer)\n // 否则使用西瓜播放器(XgPlayer)\n comp.value = props.accessToken && props.accessToken.length > 32 ? YsPlayer : XgPlayer;\n });\n\n defineExpose({\n play(options?: any) {\n compRef.value?.play(options);\n },\n destroy() {\n compRef.value?.destroy();\n },\n resize() {\n compRef.value?.resize();\n },\n });\n</script>\n\n<template>\n <div class=\"i-player-bg i-player-container\">\n <component :is=\"comp\" ref=\"compRef\" v-bind=\"props\" />\n </div>\n</template>\n"],"names":["shallowRef","onMounted","YsPlayer","XgPlayer"],"mappings":";;;;;;;;;;;;;;;;;;;AAUE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,OAAOA,cAAW,EAAA;AACxB,IAAA,MAAM,UAAUA,cAAW,EAAA;AAE3B,IAAAC,aAAA,CAAU,MAAM;AAGd,MAAA,IAAA,CAAK,QAAQ,KAAM,CAAA,WAAA,IAAe,MAAM,WAAY,CAAA,MAAA,GAAS,KAAKC,oDAAW,GAAAC,oDAAA;AAAA,KAC9E,CAAA;AAED,IAAa,QAAA,CAAA;AAAA,MACX,KAAK,OAAe,EAAA;;AAClB,QAAQ,CAAA,EAAA,GAAA,OAAA,CAAA,KAAA,KAAR,mBAAe,IAAK,CAAA,OAAA,CAAA;AAAA,OACtB;AAAA,MACA,OAAU,GAAA;;AACR,QAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,EAAA;AAAA,OACjB;AAAA,MACA,MAAS,GAAA;;AACP,QAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,EAAA;AAAA;AACjB,KACD,CAAA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"live-player.vue2.js","sources":["../../../../../../../packages/components/live-player/src/live-player.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { onMounted, shallowRef } from 'vue';\n import { LivePlayerProps } from './live-player';\n import XgPlayer from './xgPlayer.vue';\n import YsPlayer from './ysPlayer.vue';\n\n defineOptions({\n name: 'ILivePlayer',\n });\n\n const props = defineProps(LivePlayerProps);\n const comp = shallowRef();\n const compRef = shallowRef();\n\n onMounted(() => {\n // 当访问令牌存在时,使用萤石云播放器(YsPlayer)\n // 否则使用西瓜播放器(XgPlayer)\n comp.value = props.accessToken && props.accessToken.length > 32 ? YsPlayer : XgPlayer;\n });\n\n defineExpose({\n play(options?: any) {\n compRef.value?.play(options);\n },\n destroy() {\n compRef.value?.destroy();\n },\n resize() {\n compRef.value?.resize();\n },\n });\n</script>\n\n<template>\n <div class=\"i-player-bg i-player-container\">\n <component :is=\"comp\" ref=\"compRef\" v-bind=\"props\" />\n </div>\n</template>\n"],"names":["shallowRef","onMounted","YsPlayer","XgPlayer","_openBlock","_createElementBlock","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":";;;;;;;;;;;;;;;;;;;AAUE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,OAAOA,cAAW,EAAA;AACxB,IAAA,MAAM,UAAUA,cAAW,EAAA;AAE3B,IAAAC,aAAA,CAAU,MAAM;AAGd,MAAA,IAAA,CAAK,QAAQ,KAAM,CAAA,WAAA,IAAe,MAAM,WAAY,CAAA,MAAA,GAAS,KAAKC,oDAAW,GAAAC,oDAAA;AAAA,KAC9E,CAAA;AAED,IAAa,QAAA,CAAA;AAAA,MACX,KAAK,OAAe,EAAA;;AAClB,QAAQ,CAAA,EAAA,GAAA,OAAA,CAAA,KAAA,KAAR,mBAAe,IAAK,CAAA,OAAA,CAAA;AAAA,OACtB;AAAA,MACA,OAAU,GAAA;;AACR,QAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,EAAA;AAAA,OACjB;AAAA,MACA,MAAS,GAAA;;AACP,QAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,EAAA;AAAA;AACjB,KACD,CAAA;;AAID,MAAA,OAAAC,aAAA,EAAA,EAAAC,sBAEM,CAAA,KAAA,EAFN,UAEM,EAAA;AAAA,wBADJ,EAAAC,eAAA;AAAA,UAAqDC,2BAAA,CAArC,KAAI,KAAA,CAAA;AAAA,UAApBC,cAAqD,CAAA;AAAA,mBAA3B,EAAA,SAAA;AAAA,YAAJ,GAAI,EAAA;AAAA,aAAkB,KAAK,CAAA;AAAA,UAAA,IAAA;AAAA,UAAA;AAAA;AAAA,SAAA;AAAA;;;;;;;"}
@@ -125,7 +125,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
125
125
  null,
126
126
  "\u65E0\u64AD\u653E\u5730\u5740",
127
127
  -1
128
- /* HOISTED */
128
+ /* CACHED */
129
129
  )
130
130
  ]))) : (vue.openBlock(), vue.createElementBlock(
131
131
  "div",
@@ -1 +1 @@
1
- {"version":3,"file":"xgPlayer.vue2.js","sources":["../../../../../../../packages/components/live-player/src/xgPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, nextTick, onMounted, ref, shallowRef } from 'vue';\n import Player from 'xgplayer';\n import FlvPlugin from 'xgplayer-flv';\n import HlsPlugin from 'xgplayer-hls';\n import { videoType } from './live-player';\n import { customLang, onLineIgnores, recordIgnores } from './preset';\n\n /**\n * 西瓜播放器\n */\n defineOptions({\n name: 'XgPlayer',\n });\n\n const props = defineProps<{\n url: string;\n onLine?: boolean;\n }>();\n\n const playerRef = shallowRef<HTMLElement>();\n const playerInstance = ref<Player | null>(null);\n const videoUrl = computed(() => props.url);\n\n onMounted(() => {\n // @ts-ignore\n Player.I18N.extend([customLang]);\n play();\n });\n\n defineExpose({ play, destroy });\n\n function play() {\n destroy();\n nextTick(() => {\n console.log(videoUrl.value);\n // 视频地址为空,不播放\n if (!videoUrl.value) {\n return;\n }\n createXgPlayer();\n });\n }\n\n function destroy() {\n if (playerInstance.value) {\n playerInstance.value.destroy();\n playerInstance.value = null;\n }\n }\n\n /**\n * 检查插件支持情况\n */\n function checkPluginSupport() {\n const plugins: any[] = [];\n const type = videoType(props.url);\n\n try {\n if (type === 'flv' && FlvPlugin.isSupported()) {\n plugins.push(FlvPlugin);\n } else if (type === 'hls') {\n const videoElement = document.createElement('video');\n const isNativeHlsSupported = videoElement.canPlayType('application/vnd.apple.mpegurl');\n\n if (!isNativeHlsSupported && HlsPlugin.isSupported()) {\n plugins.push(HlsPlugin);\n }\n } else if (type !== 'flv' && type !== 'hls') {\n console.warn(`不支持的视频类型: ${type}. 请使用 'flv' 或 'hls'。`);\n }\n } catch (error) {\n console.error('检查插件支持时出错:', error);\n }\n\n return plugins;\n }\n\n /**\n * 创建播放器配置\n */\n function createPlayerConfig(plugins: any[]) {\n const ignores = props.onLine ? onLineIgnores : recordIgnores;\n\n return {\n el: playerRef.value!,\n url: props.url,\n height: '100%',\n width: '100%',\n autoplay: true,\n autoplayMuted: true,\n videoInit: true,\n plugins,\n ignores,\n marginControls: false,\n screenShot: props.onLine,\n lang: 'zh-cn',\n videoAttributes: {\n crossOrigin: 'anonymous',\n },\n };\n }\n\n /**\n * 创建西瓜播放器实例,播放hls,flv流\n */\n function createXgPlayer() {\n const plugins = checkPluginSupport();\n const config = createPlayerConfig(plugins);\n\n playerInstance.value = new Player(config);\n\n // 播放出错之后,点击\"刷新\"按钮重新播放\n playerInstance.value.getPlugin('error').useHooks('errorRetry', () => {\n playerInstance.value!.setConfig({\n url: props.url,\n });\n // 重置状态\n playerInstance.value!.resetState();\n // 重新播放\n playerInstance.value!.play();\n return false;\n });\n\n playerInstance.value.on('error', (error: Record<string, any>) => {\n console.error('播放出错:', error);\n // 播放出错时,禁用控制栏插件\n playerInstance.value!.unRegisterPlugin('controls');\n });\n\n // 视频缓冲足够数据,可以播放\n playerInstance.value.on('canplay', () => {\n console.log('视频缓冲足够数据,可以播放');\n });\n }\n</script>\n\n<template>\n <div class=\"i-player-bg i-player-container\">\n <!-- 视频地址为空的提示 -->\n <div v-if=\"!videoUrl\" class=\"i-player-no__url\">\n <div>无播放地址</div>\n </div>\n <div v-else ref=\"playerRef\" class=\"i-player-container\" />\n </div>\n</template>\n"],"names":["shallowRef","ref","computed","onMounted","customLang","nextTick","videoType","onLineIgnores","recordIgnores"],"mappings":"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"}
1
+ {"version":3,"file":"xgPlayer.vue2.js","sources":["../../../../../../../packages/components/live-player/src/xgPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { computed, nextTick, onMounted, ref, shallowRef } from 'vue';\n import Player from 'xgplayer';\n import FlvPlugin from 'xgplayer-flv';\n import HlsPlugin from 'xgplayer-hls';\n import { videoType } from './live-player';\n import { customLang, onLineIgnores, recordIgnores } from './preset';\n\n /**\n * 西瓜播放器\n */\n defineOptions({\n name: 'XgPlayer',\n });\n\n const props = defineProps<{\n url: string;\n onLine?: boolean;\n }>();\n\n const playerRef = shallowRef<HTMLElement>();\n const playerInstance = ref<Player | null>(null);\n const videoUrl = computed(() => props.url);\n\n onMounted(() => {\n // @ts-ignore\n Player.I18N.extend([customLang]);\n play();\n });\n\n defineExpose({ play, destroy });\n\n function play() {\n destroy();\n nextTick(() => {\n console.log(videoUrl.value);\n // 视频地址为空,不播放\n if (!videoUrl.value) {\n return;\n }\n createXgPlayer();\n });\n }\n\n function destroy() {\n if (playerInstance.value) {\n playerInstance.value.destroy();\n playerInstance.value = null;\n }\n }\n\n /**\n * 检查插件支持情况\n */\n function checkPluginSupport() {\n const plugins: any[] = [];\n const type = videoType(props.url);\n\n try {\n if (type === 'flv' && FlvPlugin.isSupported()) {\n plugins.push(FlvPlugin);\n } else if (type === 'hls') {\n const videoElement = document.createElement('video');\n const isNativeHlsSupported = videoElement.canPlayType('application/vnd.apple.mpegurl');\n\n if (!isNativeHlsSupported && HlsPlugin.isSupported()) {\n plugins.push(HlsPlugin);\n }\n } else if (type !== 'flv' && type !== 'hls') {\n console.warn(`不支持的视频类型: ${type}. 请使用 'flv' 或 'hls'。`);\n }\n } catch (error) {\n console.error('检查插件支持时出错:', error);\n }\n\n return plugins;\n }\n\n /**\n * 创建播放器配置\n */\n function createPlayerConfig(plugins: any[]) {\n const ignores = props.onLine ? onLineIgnores : recordIgnores;\n\n return {\n el: playerRef.value!,\n url: props.url,\n height: '100%',\n width: '100%',\n autoplay: true,\n autoplayMuted: true,\n videoInit: true,\n plugins,\n ignores,\n marginControls: false,\n screenShot: props.onLine,\n lang: 'zh-cn',\n videoAttributes: {\n crossOrigin: 'anonymous',\n },\n };\n }\n\n /**\n * 创建西瓜播放器实例,播放hls,flv流\n */\n function createXgPlayer() {\n const plugins = checkPluginSupport();\n const config = createPlayerConfig(plugins);\n\n playerInstance.value = new Player(config);\n\n // 播放出错之后,点击\"刷新\"按钮重新播放\n playerInstance.value.getPlugin('error').useHooks('errorRetry', () => {\n playerInstance.value!.setConfig({\n url: props.url,\n });\n // 重置状态\n playerInstance.value!.resetState();\n // 重新播放\n playerInstance.value!.play();\n return false;\n });\n\n playerInstance.value.on('error', (error: Record<string, any>) => {\n console.error('播放出错:', error);\n // 播放出错时,禁用控制栏插件\n playerInstance.value!.unRegisterPlugin('controls');\n });\n\n // 视频缓冲足够数据,可以播放\n playerInstance.value.on('canplay', () => {\n console.log('视频缓冲足够数据,可以播放');\n });\n }\n</script>\n\n<template>\n <div class=\"i-player-bg i-player-container\">\n <!-- 视频地址为空的提示 -->\n <div v-if=\"!videoUrl\" class=\"i-player-no__url\">\n <div>无播放地址</div>\n </div>\n <div v-else ref=\"playerRef\" class=\"i-player-container\" />\n </div>\n</template>\n"],"names":["shallowRef","ref","computed","onMounted","customLang","nextTick","videoType","onLineIgnores","recordIgnores","_openBlock","_createElementBlock","_createCommentVNode","_createElementVNode"],"mappings":"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"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
6
  var core = require('@vueuse/core');
7
- var EZUIKit = require('ezuikit-js');
8
7
  var livePlayer = require('./live-player.js');
9
8
 
10
9
  var __defProp = Object.defineProperty;
@@ -98,7 +97,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
98
97
  }
99
98
  __name(resize, "resize");
100
99
  function createPlayer(options) {
101
- playerInstance = new EZUIKit.EZUIKitPlayer({
100
+ playerInstance = new window.EZUIKit.EZUIKitPlayer({
102
101
  id,
103
102
  url: formatterUrl(),
104
103
  accessToken: props.accessToken,
@@ -1 +1 @@
1
- {"version":3,"file":"ysPlayer.vue2.js","sources":["../../../../../../../packages/components/live-player/src/ysPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { useElementSize } from '@vueuse/core';\n import EZUIKit from 'ezuikit-js';\n import { nextTick, onBeforeUnmount, onMounted, shallowRef, watch } from 'vue';\n import { uuid } from './live-player';\n // 萤石云播放器\n defineOptions({\n name: 'YsPlayer',\n });\n\n // 传值方式\n // 1、传url、accessToken\n // 2、传deviceSerial、channel、accessToken\n const props = defineProps<{\n // 播放地址\n // 高清:ezopen://open.ys7.com/${设备序列号}/${通道号}.hd.live\n // 流畅:ezopen://open.ys7.com/${设备序列号}/${通道号}.live\n url?: string;\n // 设备序列号\n deviceSerial?: string;\n // 通道号\n channel?: number;\n // 清晰度,默认为空,也表示高清\n // hd:高清;sd:流畅\n quality?: 'hd' | 'sd' | '';\n accessToken: string;\n // 播放器模板ID\n playerTemplate?: string;\n }>();\n\n // 播放器模板ID\n // 可在萤石云控制台查看、修改、获取\n // 位置:云直播-轻应用-特致珈默认模板\n const PLAYER_TEMPLATE = '5f295a9341a74d439b5d69374c90d501';\n const id = uuid();\n let playerInstance: any = null;\n let errorMsg = '';\n const ysRef = shallowRef();\n const { width, height } = useElementSize(ysRef);\n let ratio = 16 / 9;\n let isCurrentFullscreen = false;\n\n onMounted(() => play());\n\n onBeforeUnmount(() => destroy());\n\n defineExpose({ play, destroy, resize });\n\n // 防抖函数\n function debounce(func: Function, wait: number) {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n return function (this: any, ...args: any[]) {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), wait);\n };\n }\n\n // 加上防抖的 resize 函数\n const debouncedResize = debounce(resize, 300);\n\n watch(\n () => [width.value, height.value, ratio],\n () => {\n if (!isCurrentFullscreen) {\n debouncedResize();\n }\n },\n );\n\n function play(options?: Record<string, any>) {\n if (!props.accessToken) {\n errorMsg = `params 'accessToken' is not found`;\n } else {\n const url = formatterUrl();\n if (url) {\n createPlayerDom();\n nextTick(() => createPlayer(options));\n }\n }\n }\n function destroy() {\n if (playerInstance) {\n playerInstance.destroy();\n playerInstance = null;\n removePlayerDom();\n }\n }\n function resize() {\n // 根据播放器宽高比,设置播放器高度\n if (width.value > 0 && height.value > 0) {\n let calculatedWidth = width.value;\n let calculatedHeight = calculatedWidth / ratio;\n if (calculatedHeight > height.value) {\n calculatedHeight = height.value;\n calculatedWidth = calculatedHeight * ratio;\n }\n if (playerInstance?.resize) {\n playerInstance.resize(calculatedWidth, calculatedHeight);\n } else {\n const dom = document.getElementById(id);\n if (dom) {\n dom.style.width = `${calculatedWidth}px`;\n dom.style.height = `${calculatedHeight}px`;\n }\n }\n }\n }\n\n /**\n * 创建萤石云播放器实例,播放萤石云直播流\n */\n function createPlayer(options?: Record<string, any>) {\n playerInstance = new EZUIKit.EZUIKitPlayer({\n id,\n url: formatterUrl(),\n accessToken: props.accessToken,\n template: props.playerTemplate || PLAYER_TEMPLATE,\n width: width.value,\n height: height.value,\n audio: 1,\n // @ts-ignore\n loggerOptions: {\n name: 'YSPLAYER',\n level: 'ERROR',\n showTime: true,\n },\n staticPath: '/plugins/ezuikit/ezuikit_static',\n ...options,\n });\n\n playerInstance.eventEmitter.on('fullscreen', () => {\n isCurrentFullscreen = true;\n });\n playerInstance.eventEmitter.on('exitFullscreen', () => {\n isCurrentFullscreen = false;\n });\n playerInstance.eventEmitter.on('videoInfo', (args: any) => {\n const { width: w, height: h } = args;\n // 计算播放器宽高比\n if (w && h) {\n ratio = w / h;\n }\n });\n }\n\n function formatterUrl(): string {\n if (props.url) {\n return props.url;\n } else {\n if (props.deviceSerial && props.channel) {\n const quality = props.quality === '' || props.quality === 'hd' ? 'hd.' : '';\n return `ezopen://open.ys7.com/${props.deviceSerial}/${props.channel}.${quality}live`;\n } else {\n errorMsg = `params 'deviceSerial' or 'channel' is not found`;\n return '';\n }\n }\n }\n\n // 移除播放器DOM\n function removePlayerDom() {\n const dom = document.getElementById(id);\n dom && dom.remove();\n }\n // 创建播放器DOM\n function createPlayerDom() {\n if (!errorMsg) {\n removePlayerDom();\n const dom = document.createElement('div');\n dom.id = id;\n dom.style.width = '100%';\n dom.style.height = '100%';\n ysRef.value?.appendChild(dom);\n }\n }\n</script>\n\n<template>\n <div ref=\"ysRef\" class=\"i-player-bg i-player-container\">\n <div v-if=\"errorMsg\" class=\"i-player__error\" style=\"color: red; font-weight: bold\">\n {{ errorMsg }}\n </div>\n </div>\n</template>\n"],"names":["uuid","shallowRef","useElementSize","onMounted","onBeforeUnmount","watch","nextTick"],"mappings":"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"}
1
+ {"version":3,"file":"ysPlayer.vue2.js","sources":["../../../../../../../packages/components/live-player/src/ysPlayer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useElementSize } from \"@vueuse/core\";\nimport { nextTick, onBeforeUnmount, onMounted, shallowRef, watch } from \"vue\";\nimport { uuid } from \"./live-player\";\n// 萤石云播放器\ndefineOptions({\n name: \"YsPlayer\",\n});\n\n// 传值方式\n// 1、传url、accessToken\n// 2、传deviceSerial、channel、accessToken\nconst props = defineProps<{\n // 播放地址\n // 高清:ezopen://open.ys7.com/${设备序列号}/${通道号}.hd.live\n // 流畅:ezopen://open.ys7.com/${设备序列号}/${通道号}.live\n url?: string;\n // 设备序列号\n deviceSerial?: string;\n // 通道号\n channel?: number;\n // 清晰度,默认为空,也表示高清\n // hd:高清;sd:流畅\n quality?: \"hd\" | \"sd\" | \"\";\n accessToken: string;\n // 播放器模板ID\n playerTemplate?: string;\n}>();\n\n// 播放器模板ID\n// 可在萤石云控制台查看、修改、获取\n// 位置:云直播-轻应用-特致珈默认模板\nconst PLAYER_TEMPLATE = \"5f295a9341a74d439b5d69374c90d501\";\nconst id = uuid();\nlet playerInstance: any = null;\nlet errorMsg = \"\";\nconst ysRef = shallowRef();\nconst { width, height } = useElementSize(ysRef);\nlet ratio = 16 / 9;\nlet isCurrentFullscreen = false;\n\nonMounted(() => play());\n\nonBeforeUnmount(() => destroy());\n\ndefineExpose({ play, destroy, resize });\n\n// 防抖函数\nfunction debounce(func: Function, wait: number) {\n let timeout: ReturnType<typeof setTimeout> | null = null;\n return function (this: any, ...args: any[]) {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), wait);\n };\n}\n\n// 加上防抖的 resize 函数\nconst debouncedResize = debounce(resize, 300);\n\nwatch(\n () => [width.value, height.value, ratio],\n () => {\n if (!isCurrentFullscreen) {\n debouncedResize();\n }\n },\n);\n\nfunction play(options?: Record<string, any>) {\n if (!props.accessToken) {\n errorMsg = `params 'accessToken' is not found`;\n } else {\n const url = formatterUrl();\n if (url) {\n createPlayerDom();\n nextTick(() => createPlayer(options));\n }\n }\n}\nfunction destroy() {\n if (playerInstance) {\n playerInstance.destroy();\n playerInstance = null;\n removePlayerDom();\n }\n}\nfunction resize() {\n // 根据播放器宽高比,设置播放器高度\n if (width.value > 0 && height.value > 0) {\n let calculatedWidth = width.value;\n let calculatedHeight = calculatedWidth / ratio;\n if (calculatedHeight > height.value) {\n calculatedHeight = height.value;\n calculatedWidth = calculatedHeight * ratio;\n }\n if (playerInstance?.resize) {\n playerInstance.resize(calculatedWidth, calculatedHeight);\n } else {\n const dom = document.getElementById(id);\n if (dom) {\n dom.style.width = `${calculatedWidth}px`;\n dom.style.height = `${calculatedHeight}px`;\n }\n }\n }\n}\n\n/**\n * 创建萤石云播放器实例,播放萤石云直播流\n */\nfunction createPlayer(options?: Record<string, any>) {\n playerInstance = new window.EZUIKit.EZUIKitPlayer({\n id,\n url: formatterUrl(),\n accessToken: props.accessToken,\n template: props.playerTemplate || PLAYER_TEMPLATE,\n width: width.value,\n height: height.value,\n audio: 1,\n // @ts-ignore\n loggerOptions: {\n name: \"YSPLAYER\",\n level: \"ERROR\",\n showTime: true,\n },\n staticPath: \"/plugins/ezuikit/ezuikit_static\",\n ...options,\n });\n\n playerInstance.eventEmitter.on(\"fullscreen\", () => {\n isCurrentFullscreen = true;\n });\n playerInstance.eventEmitter.on(\"exitFullscreen\", () => {\n isCurrentFullscreen = false;\n });\n playerInstance.eventEmitter.on(\"videoInfo\", (args: any) => {\n const { width: w, height: h } = args;\n // 计算播放器宽高比\n if (w && h) {\n ratio = w / h;\n }\n });\n}\n\nfunction formatterUrl(): string {\n if (props.url) {\n return props.url;\n } else {\n if (props.deviceSerial && props.channel) {\n const quality =\n props.quality === \"\" || props.quality === \"hd\" ? \"hd.\" : \"\";\n return `ezopen://open.ys7.com/${props.deviceSerial}/${props.channel}.${quality}live`;\n } else {\n errorMsg = `params 'deviceSerial' or 'channel' is not found`;\n return \"\";\n }\n }\n}\n\n// 移除播放器DOM\nfunction removePlayerDom() {\n const dom = document.getElementById(id);\n dom && dom.remove();\n}\n// 创建播放器DOM\nfunction createPlayerDom() {\n if (!errorMsg) {\n removePlayerDom();\n const dom = document.createElement(\"div\");\n dom.id = id;\n dom.style.width = \"100%\";\n dom.style.height = \"100%\";\n ysRef.value?.appendChild(dom);\n }\n}\n</script>\n\n<template>\n <div ref=\"ysRef\" class=\"i-player-bg i-player-container\">\n <div\n v-if=\"errorMsg\"\n class=\"i-player__error\"\n style=\"color: red; font-weight: bold\"\n >\n {{ errorMsg }}\n </div>\n </div>\n</template>\n"],"names":["uuid","shallowRef","useElementSize","onMounted","onBeforeUnmount","watch","nextTick","_createElementBlock","_unref","_toDisplayString"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-header.vue2.js","sources":["../../../../../../../packages/components/page-header/src/page-header.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { inject, ref, watchEffect } from 'vue';\n import { MENU_STORE } from '../../../utils';\n import { PageHeaderProps } from './page-header';\n\n defineOptions({\n name: 'IPageHeader',\n });\n\n const props = defineProps(PageHeaderProps);\n const menuStore = inject(MENU_STORE);\n const headerText = ref('');\n\n function setHeaderText() {\n if (props.title) return props.title;\n if (props.action) return props.action?.getCurrentMenu()?.label || '';\n if (menuStore) return menuStore.getCurrentMenu()?.label || '';\n return '';\n }\n watchEffect(() => {\n headerText.value = setHeaderText();\n });\n</script>\n\n<template>\n <div\n class=\"t-page-header\"\n :class=\"{\n 't-page-header__underline': underline,\n 't-page-header__between': slotFlex === 'between',\n 't-page-header__start': slotFlex === 'start',\n }\"\n >\n <div :class=\"{ 't-page-name': headerText }\">{{ headerText }}</div>\n <slot name=\"default\" />\n </div>\n</template>\n"],"names":["inject","MENU_STORE","ref","watchEffect"],"mappings":";;;;;;;;;;;;;;;;;;AASE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAM,MAAA,SAAA,GAAYA,WAAOC,kBAAU,CAAA;AACnC,IAAM,MAAA,UAAA,GAAaC,QAAI,EAAE,CAAA;AAEzB,IAAA,SAAS,aAAgB,GAAA;;AACvB,MAAI,IAAA,KAAA,CAAM,KAAO,EAAA,OAAO,KAAM,CAAA,KAAA;AAC9B,MAAI,IAAA,KAAA,CAAM,QAAe,OAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,WAAN,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAA,EAAA,KAAd,mBAAgC,KAAS,KAAA,EAAA;AAClE,MAAA,IAAI,WAAkB,OAAA,CAAA,CAAA,EAAA,GAAA,SAAA,CAAU,cAAe,EAAA,KAAzB,mBAA4B,KAAS,KAAA,EAAA;AAC3D,MAAO,OAAA,EAAA;AAAA;AAJA,IAAA,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAMT,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAA,UAAA,CAAW,QAAQ,aAAc,EAAA;AAAA,KAClC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"page-header.vue2.js","sources":["../../../../../../../packages/components/page-header/src/page-header.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { inject, ref, watchEffect } from 'vue';\n import { MENU_STORE } from '../../../utils';\n import { PageHeaderProps } from './page-header';\n\n defineOptions({\n name: 'IPageHeader',\n });\n\n const props = defineProps(PageHeaderProps);\n const menuStore = inject(MENU_STORE);\n const headerText = ref('');\n\n function setHeaderText() {\n if (props.title) return props.title;\n if (props.action) return props.action?.getCurrentMenu()?.label || '';\n if (menuStore) return menuStore.getCurrentMenu()?.label || '';\n return '';\n }\n watchEffect(() => {\n headerText.value = setHeaderText();\n });\n</script>\n\n<template>\n <div\n class=\"t-page-header\"\n :class=\"{\n 't-page-header__underline': underline,\n 't-page-header__between': slotFlex === 'between',\n 't-page-header__start': slotFlex === 'start',\n }\"\n >\n <div :class=\"{ 't-page-name': headerText }\">{{ headerText }}</div>\n <slot name=\"default\" />\n </div>\n</template>\n"],"names":["inject","MENU_STORE","ref","watchEffect","_createElementBlock","underline","slotFlex","_createElementVNode","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;;AASE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAM,MAAA,SAAA,GAAYA,WAAOC,kBAAU,CAAA;AACnC,IAAM,MAAA,UAAA,GAAaC,QAAI,EAAE,CAAA;AAEzB,IAAA,SAAS,aAAgB,GAAA;;AACvB,MAAI,IAAA,KAAA,CAAM,KAAO,EAAA,OAAO,KAAM,CAAA,KAAA;AAC9B,MAAI,IAAA,KAAA,CAAM,QAAe,OAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAA,CAAM,WAAN,IAAc,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAA,EAAA,KAAd,mBAAgC,KAAS,KAAA,EAAA;AAClE,MAAA,IAAI,WAAkB,OAAA,CAAA,CAAA,EAAA,GAAA,SAAA,CAAU,cAAe,EAAA,KAAzB,mBAA4B,KAAS,KAAA,EAAA;AAC3D,MAAO,OAAA,EAAA;AAAA;AAJA,IAAA,MAAA,CAAA,aAAA,EAAA,eAAA,CAAA;AAMT,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAA,UAAA,CAAW,QAAQ,aAAc,EAAA;AAAA,KAClC,CAAA;;4BAID,EAAAC,sBAAA;AAAA,QAUM,KAAA;AAAA,QAAA;AAAA,UATJ,KAAA,sBAAM,eAAe,EAAA;AAAA,wCACuBC,IAAS,CAAA,SAAA;AAAA,sCAAkCC,KAAQ,QAAA,KAAA,SAAA;AAAA,oCAA8CA,KAAQ,QAAA,KAAA;AAAA;;;UAMrJC,sBAAA;AAAA,YAAkE,KAAA;AAAA,YAAA;AAAA,cAA5D,yCAAwB,EAAA,UAAA,CAAU,OAAA;AAAA;gCAAO,WAAU,KAAA,CAAA;AAAA,YAAA;AAAA;AAAA,WAAA;AAAA,UACzDC,cAAA,CAAuB,IAAA,CAAA,MAAA,EAAA,SAAA;AAAA;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"radio.vue2.js","sources":["../../../../../../../packages/components/radio/src/radio.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElRadio, ElRadioButton, ElRadioGroup } from 'element-plus';\n import { computed, inject, onMounted, ref, watch } from 'vue';\n import { DICT_STORE, excludeObjectKeys } from '../../../utils';\n import { excludeRadioKeys, RadioProps } from './radio';\n\n defineOptions({\n name: 'IRadio',\n });\n const props = defineProps(RadioProps);\n const emit = defineEmits({\n 'update:modelValue': (value: any) => value,\n change: (value: any) => value,\n });\n const dictStore = inject(DICT_STORE);\n const bindAttrs = computed(() => excludeObjectKeys(props, excludeRadioKeys));\n\n const radioOptions = ref<any[]>([]);\n onMounted(() => setOptions());\n watch(\n () => props.data,\n () => setOptions(),\n { deep: true },\n );\n async function setOptions() {\n const list = await getList();\n radioOptions.value = props.dataCallback ? props.dataCallback(list) : list;\n }\n\n async function getList() {\n if (Array.isArray(props.data)) {\n return props.data;\n }\n if (dictStore) {\n return await dictStore.getDict(props.data);\n }\n return [];\n }\n\n const value = ref('');\n watch(\n () => props.modelValue,\n (val: any) => (value.value = val),\n { deep: true, immediate: true },\n );\n const handleChange = (val: any) => {\n emit('change', val);\n emit('update:modelValue', val);\n };\n</script>\n\n<template>\n <ElRadioGroup v-model=\"value\" v-bind=\"bindAttrs\" @change=\"handleChange\">\n <template v-if=\"type === 'button'\">\n <ElRadioButton\n v-for=\"item of radioOptions\"\n :key=\"item[optValue]\"\n :label=\"item[optValue]\"\n :disabled=\"item.disabled\"\n >\n {{ item[optLabel] }}\n </ElRadioButton>\n </template>\n <template v-else>\n <ElRadio v-for=\"item of radioOptions\" :key=\"item[optValue]\" :label=\"item[optValue]\" :disabled=\"item.disabled\">\n {{ item[optLabel] }}\n </ElRadio>\n </template>\n </ElRadioGroup>\n</template>\n"],"names":["inject","DICT_STORE","computed","excludeObjectKeys","excludeRadioKeys","ref","onMounted","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA;AAIb,IAAM,MAAA,SAAA,GAAYA,WAAOC,kBAAU,CAAA;AACnC,IAAA,MAAM,YAAYC,YAAS,CAAA,MAAMC,sBAAkB,CAAA,KAAA,EAAOC,sBAAgB,CAAC,CAAA;AAE3E,IAAM,MAAA,YAAA,GAAeC,OAAW,CAAA,EAAE,CAAA;AAClC,IAAUC,aAAA,CAAA,MAAM,YAAY,CAAA;AAC5B,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,MAAM,UAAW,EAAA;AAAA,MACjB,EAAE,MAAM,IAAK;AAAA,KACf;AACA,IAAA,eAAe,UAAa,GAAA;AAC1B,MAAM,MAAA,IAAA,GAAO,MAAM,OAAQ,EAAA;AAC3B,MAAA,YAAA,CAAa,QAAQ,KAAM,CAAA,YAAA,GAAe,KAAM,CAAA,YAAA,CAAa,IAAI,CAAI,GAAA,IAAA;AAAA;AAFxD,IAAA,MAAA,CAAA,UAAA,EAAA,YAAA,CAAA;AAKf,IAAA,eAAe,OAAU,GAAA;AACvB,MAAA,IAAI,KAAM,CAAA,OAAA,CAAQ,KAAM,CAAA,IAAI,CAAG,EAAA;AAC7B,QAAA,OAAO,KAAM,CAAA,IAAA;AAAA;AAEf,MAAA,IAAI,SAAW,EAAA;AACb,QAAA,OAAO,MAAM,SAAA,CAAU,OAAQ,CAAA,KAAA,CAAM,IAAI,CAAA;AAAA;AAE3C,MAAA,OAAO,EAAC;AAAA;AAPK,IAAA,MAAA,CAAA,OAAA,EAAA,SAAA,CAAA;AAUf,IAAM,MAAA,KAAA,GAAQF,QAAI,EAAE,CAAA;AACpB,IAAAE,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAC,GAAc,KAAA,KAAA,CAAM,KAAQ,GAAA,GAAA;AAAA,MAC7B,EAAE,IAAA,EAAM,IAAM,EAAA,SAAA,EAAW,IAAK;AAAA,KAChC;AACA,IAAM,MAAA,YAAA,2BAAgB,GAAa,KAAA;AACjC,MAAA,IAAA,CAAK,UAAU,GAAG,CAAA;AAClB,MAAA,IAAA,CAAK,qBAAqB,GAAG,CAAA;AAAA,KAFV,EAAA,cAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"radio.vue2.js","sources":["../../../../../../../packages/components/radio/src/radio.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElRadio, ElRadioButton, ElRadioGroup } from 'element-plus';\n import { computed, inject, onMounted, ref, watch } from 'vue';\n import { DICT_STORE, excludeObjectKeys } from '../../../utils';\n import { excludeRadioKeys, RadioProps } from './radio';\n\n defineOptions({\n name: 'IRadio',\n });\n const props = defineProps(RadioProps);\n const emit = defineEmits({\n 'update:modelValue': (value: any) => value,\n change: (value: any) => value,\n });\n const dictStore = inject(DICT_STORE);\n const bindAttrs = computed(() => excludeObjectKeys(props, excludeRadioKeys));\n\n const radioOptions = ref<any[]>([]);\n onMounted(() => setOptions());\n watch(\n () => props.data,\n () => setOptions(),\n { deep: true },\n );\n async function setOptions() {\n const list = await getList();\n radioOptions.value = props.dataCallback ? props.dataCallback(list) : list;\n }\n\n async function getList() {\n if (Array.isArray(props.data)) {\n return props.data;\n }\n if (dictStore) {\n return await dictStore.getDict(props.data);\n }\n return [];\n }\n\n const value = ref('');\n watch(\n () => props.modelValue,\n (val: any) => (value.value = val),\n { deep: true, immediate: true },\n );\n const handleChange = (val: any) => {\n emit('change', val);\n emit('update:modelValue', val);\n };\n</script>\n\n<template>\n <ElRadioGroup v-model=\"value\" v-bind=\"bindAttrs\" @change=\"handleChange\">\n <template v-if=\"type === 'button'\">\n <ElRadioButton\n v-for=\"item of radioOptions\"\n :key=\"item[optValue]\"\n :label=\"item[optValue]\"\n :disabled=\"item.disabled\"\n >\n {{ item[optLabel] }}\n </ElRadioButton>\n </template>\n <template v-else>\n <ElRadio v-for=\"item of radioOptions\" :key=\"item[optValue]\" :label=\"item[optValue]\" :disabled=\"item.disabled\">\n {{ item[optLabel] }}\n </ElRadio>\n </template>\n </ElRadioGroup>\n</template>\n"],"names":["inject","DICT_STORE","computed","excludeObjectKeys","excludeRadioKeys","ref","onMounted","watch","_openBlock","_createBlock","_unref","_mergeProps","type","_createElementBlock","_Fragment","_renderList","ElRadioButton","optValue","_createTextVNode","_toDisplayString","optLabel","ElRadio"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.vue2.js","sources":["../../../../../../../packages/components/search/src/search.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElButton } from 'element-plus';\n import { ref, watchEffect } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import IForm from '../../form/src/form.vue';\n import { excludeSearchPropsKeys, SearchEmits, SearchProps } from './search';\n\n defineOptions({\n name: 'ISearch',\n });\n const props = defineProps(SearchProps);\n const emit = defineEmits(SearchEmits);\n\n const bindAttrs = ref<any>();\n watchEffect(() => {\n const attrs = excludeObjectKeys(props, excludeSearchPropsKeys);\n if (!attrs.fileds) {\n attrs.fileds = [];\n }\n if (!attrs.fields.some((item: any) => item.prop === 'searchBtn')) {\n attrs.fields.push({\n prop: 'searchBtn',\n comp: 'slot',\n });\n }\n bindAttrs.value = attrs;\n });\n\n const formRef = ref();\n defineExpose({\n getRef() {\n return formRef.value?.getRef();\n },\n });\n\n const handleChange = (key: string, value: any, ref: any, comp: string) => {\n emit('change', key, value, ref, comp);\n if (comp === 'el-input') {\n // el-input change 调用查询事件\n // 即在输入框值变化和按下回车时,触发查询事件。\n // emit('search', props.model);\n }\n };\n</script>\n\n<template>\n <div class=\"i-search\">\n <IForm ref=\"formRef\" v-bind=\"bindAttrs\" @change=\"handleChange\">\n <template v-for=\"(item, key) in $slots\" :key=\"key\" #[key]>\n <slot v-if=\"key !== 'searchBtn' && key !== 'btn'\" :name=\"key\" v-bind=\"item\" />\n </template>\n <template #searchBtn>\n <div class=\"i-search__opera\">\n <template v-if=\"showDefaultBtn\">\n <ElButton type=\"primary\" :loading=\"loading\" @click=\"emit('search', model)\">{{ searchBtnText }}</ElButton>\n <ElButton :loading=\"loading\" @click=\"emit('reset')\">{{ resetBtnText }}</ElButton>\n </template>\n <template v-if=\"$slots.btn\">\n <slot name=\"btn\" />\n </template>\n </div>\n </template>\n </IForm>\n </div>\n</template>\n"],"names":["ref","watchEffect","excludeObjectKeys","excludeSearchPropsKeys"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAUE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,IAAO,GAAA,MAAA;AAEb,IAAA,MAAM,YAAYA,OAAS,EAAA;AAC3B,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAM,MAAA,KAAA,GAAQC,sBAAkB,CAAA,KAAA,EAAOC,6BAAsB,CAAA;AAC7D,MAAI,IAAA,CAAC,MAAM,MAAQ,EAAA;AACjB,QAAA,KAAA,CAAM,SAAS,EAAC;AAAA;AAElB,MAAI,IAAA,CAAC,MAAM,MAAO,CAAA,IAAA,CAAK,CAAC,IAAc,KAAA,IAAA,CAAK,IAAS,KAAA,WAAW,CAAG,EAAA;AAChE,QAAA,KAAA,CAAM,OAAO,IAAK,CAAA;AAAA,UAChB,IAAM,EAAA,WAAA;AAAA,UACN,IAAM,EAAA;AAAA,SACP,CAAA;AAAA;AAEH,MAAA,SAAA,CAAU,KAAQ,GAAA,KAAA;AAAA,KACnB,CAAA;AAED,IAAA,MAAM,UAAUH,OAAI,EAAA;AACpB,IAAa,QAAA,CAAA;AAAA,MACX,MAAS,GAAA;;AACP,QAAO,OAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,EAAA;AAAA;AACxB,KACD,CAAA;AAED,IAAA,MAAM,YAAe,mBAAA,MAAA,CAAA,CAAC,GAAa,EAAA,KAAA,EAAYA,MAAU,IAAiB,KAAA;AACxE,MAAA,IAAA,CAAK,QAAU,EAAA,GAAA,EAAK,KAAOA,EAAAA,IAAAA,EAAK,IAAI,CAAA;AACpC,MAAA,IAAI,SAAS,UAAY,EAAA;AAAA;AAIzB,KANmB,EAAA,cAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"search.vue2.js","sources":["../../../../../../../packages/components/search/src/search.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { ElButton } from 'element-plus';\n import { ref, watchEffect } from 'vue';\n import { excludeObjectKeys } from '../../../utils';\n import IForm from '../../form/src/form.vue';\n import { excludeSearchPropsKeys, SearchEmits, SearchProps } from './search';\n\n defineOptions({\n name: 'ISearch',\n });\n const props = defineProps(SearchProps);\n const emit = defineEmits(SearchEmits);\n\n const bindAttrs = ref<any>();\n watchEffect(() => {\n const attrs = excludeObjectKeys(props, excludeSearchPropsKeys);\n if (!attrs.fileds) {\n attrs.fileds = [];\n }\n if (!attrs.fields.some((item: any) => item.prop === 'searchBtn')) {\n attrs.fields.push({\n prop: 'searchBtn',\n comp: 'slot',\n });\n }\n bindAttrs.value = attrs;\n });\n\n const formRef = ref();\n defineExpose({\n getRef() {\n return formRef.value?.getRef();\n },\n });\n\n const handleChange = (key: string, value: any, ref: any, comp: string) => {\n emit('change', key, value, ref, comp);\n if (comp === 'el-input') {\n // el-input change 调用查询事件\n // 即在输入框值变化和按下回车时,触发查询事件。\n // emit('search', props.model);\n }\n };\n</script>\n\n<template>\n <div class=\"i-search\">\n <IForm ref=\"formRef\" v-bind=\"bindAttrs\" @change=\"handleChange\">\n <template v-for=\"(item, key) in $slots\" :key=\"key\" #[key]>\n <slot v-if=\"key !== 'searchBtn' && key !== 'btn'\" :name=\"key\" v-bind=\"item\" />\n </template>\n <template #searchBtn>\n <div class=\"i-search__opera\">\n <template v-if=\"showDefaultBtn\">\n <ElButton type=\"primary\" :loading=\"loading\" @click=\"emit('search', model)\">{{ searchBtnText }}</ElButton>\n <ElButton :loading=\"loading\" @click=\"emit('reset')\">{{ resetBtnText }}</ElButton>\n </template>\n <template v-if=\"$slots.btn\">\n <slot name=\"btn\" />\n </template>\n </div>\n </template>\n </IForm>\n </div>\n</template>\n"],"names":["ref","watchEffect","excludeObjectKeys","excludeSearchPropsKeys","_openBlock","_createElementBlock","_createVNode","IForm","_mergeProps","_createSlots","_createElementVNode","showDefaultBtn","_Fragment","_unref","ElButton","loading","model","searchBtnText","resetBtnText","$slots","_renderSlot","_normalizeProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"segmented.vue2.js","sources":["../../../../../../../packages/components/segmented/src/segmented.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { useElementSize } from '@vueuse/core';\n import { computed, nextTick, onMounted, onUnmounted, ref, useSlots, watch } from 'vue';\n import { SegmentedProps } from './segmented';\n\n defineOptions({\n name: 'ISegmented',\n });\n\n const props = defineProps(SegmentedProps);\n const emits = defineEmits(['update:modelValue', 'change']);\n\n // ref 引用\n const segmentedControl = ref<HTMLElement | null>(null);\n // 当前选中的索引\n const activeSegment = ref(-1);\n\n // 获取每个按钮的宽度\n const buttonWidths = ref<number[]>([]);\n\n const { width: cw } = useElementSize(segmentedControl);\n\n // 更新按钮宽度\n const updateButtonWidths = () => {\n nextTick(() => {\n setTimeout(() => {\n // 同样增加延迟以确保样式已完全应用\n const buttons = segmentedControl.value?.querySelectorAll('.i-segmented-control__item') || [];\n buttonWidths.value = Array.from(buttons).map(button => {\n return button.getBoundingClientRect().width;\n });\n activeSegment.value = props.segments.findIndex(it => it.value === props.modelValue);\n }, 100); // 延迟 100ms\n });\n };\n\n // 在组件挂载后获取按钮宽度\n onMounted(() => {\n updateButtonWidths();\n // 监听窗口大小变化,重新计算按钮宽度\n window.addEventListener('resize', updateButtonWidths);\n });\n\n // 监听 modelValue 的变化\n watch(\n () => props.modelValue,\n newValue => {\n activeSegment.value = props.segments.findIndex(it => it.value === newValue);\n },\n );\n\n // 在组件卸载时移除 resize 事件监听\n onUnmounted(() => {\n window.removeEventListener('resize', updateButtonWidths);\n });\n\n // 计算当前激活分段的样式偏移量\n const activeOffset = computed(() => {\n if (buttonWidths.value.length === 0) return '0px';\n const offset = buttonWidths.value.slice(0, activeSegment.value).reduce((sum, width) => sum + width, 0);\n return `${offset}px`;\n });\n\n // 切换分段的方法\n const selectSegment = (index: number, disabled?: boolean) => {\n if (disabled) return;\n activeSegment.value = index;\n nextTick(() => {\n emits('update:modelValue', props.segments[index].value);\n emits('change', props.segments[index].value);\n });\n };\n\n const slots = useSlots();\n</script>\n\n<template>\n <div ref=\"segmentedControl\" class=\"i-segmented\" :class=\"[`i-segmented__${size || 'default'}`]\">\n <div class=\"i-segmented-control\">\n <!-- 分段按钮 -->\n <div\n v-for=\"(segment, index) in segments\"\n :key=\"index\"\n class=\"i-segmented-control__item\"\n :class=\"{ active: activeSegment === index, 'i-segmented-control__disabled': segment.disabled }\"\n @click=\"selectSegment(index, segment.disabled)\"\n >\n <slot v-if=\"slots.default\" name=\"default\" :segment=\"segment\" :index=\"index\" />\n <span\n v-else\n class=\"i-segmented-label\"\n :style=\"{ width: block ? `${cw / segments.length - 20}px` : '100%' }\"\n :title=\"segment.label\"\n >{{ segment.label }}</span\n >\n </div>\n\n <!-- 平移动效指示器 -->\n <span\n class=\"indicator\"\n :style=\"{\n transform: `translateX(${activeOffset})`,\n width: block ? `calc(100% / ${segments.length})` : `${buttonWidths[activeSegment]}px`,\n }\"\n />\n </div>\n </div>\n</template>\n"],"names":["ref","useElementSize","nextTick","onMounted","watch","onUnmounted","computed","useSlots"],"mappings":";;;;;;;;;;;;;;;;;;;;;AASE,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAGd,IAAM,MAAA,gBAAA,GAAmBA,QAAwB,IAAI,CAAA;AAErD,IAAM,MAAA,aAAA,GAAgBA,QAAI,CAAE,CAAA,CAAA;AAG5B,IAAM,MAAA,YAAA,GAAeA,OAAc,CAAA,EAAE,CAAA;AAErC,IAAA,MAAM,EAAE,KAAA,EAAO,EAAG,EAAA,GAAIC,oBAAe,gBAAgB,CAAA;AAGrD,IAAA,MAAM,qCAA2B,MAAA,CAAA,MAAA;AAC/B,MAAAC,YAAA,CAAS,MAAM;AACb,QAAA,UAAA,CAAW,MAAM;;AAEf,UAAA,MAAM,YAAU,EAAiB,GAAA,gBAAA,CAAA,KAAA,KAAjB,IAAwB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,gBAAA,CAAiB,kCAAiC,EAAC;AAC3F,UAAA,YAAA,CAAa,QAAQ,KAAM,CAAA,IAAA,CAAK,OAAO,CAAA,CAAE,IAAI,CAAU,MAAA,KAAA;AACrD,YAAO,OAAA,MAAA,CAAO,uBAAwB,CAAA,KAAA;AAAA,WACvC,CAAA;AACD,UAAc,aAAA,CAAA,KAAA,GAAQ,MAAM,QAAS,CAAA,SAAA,CAAU,QAAM,EAAG,CAAA,KAAA,KAAU,MAAM,UAAU,CAAA;AAAA,WACjF,GAAG,CAAA;AAAA,OACP,CAAA;AAAA,KAVwB,EAAA,oBAAA,CAAA;AAc3B,IAAAC,aAAA,CAAU,MAAM;AACd,MAAmB,kBAAA,EAAA;AAEnB,MAAO,MAAA,CAAA,gBAAA,CAAiB,UAAU,kBAAkB,CAAA;AAAA,KACrD,CAAA;AAGD,IAAAC,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,UAAA;AAAA,MACZ,CAAY,QAAA,KAAA;AACV,QAAA,aAAA,CAAc,QAAQ,KAAM,CAAA,QAAA,CAAS,UAAU,CAAM,EAAA,KAAA,EAAA,CAAG,UAAU,QAAQ,CAAA;AAAA;AAC5E,KACF;AAGA,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAO,MAAA,CAAA,mBAAA,CAAoB,UAAU,kBAAkB,CAAA;AAAA,KACxD,CAAA;AAGD,IAAM,MAAA,YAAA,GAAeC,aAAS,MAAM;AAClC,MAAA,IAAI,YAAa,CAAA,KAAA,CAAM,MAAW,KAAA,CAAA,EAAU,OAAA,KAAA;AAC5C,MAAA,MAAM,MAAS,GAAA,YAAA,CAAa,KAAM,CAAA,KAAA,CAAM,GAAG,aAAc,CAAA,KAAK,CAAE,CAAA,MAAA,CAAO,CAAC,GAAA,EAAK,KAAU,KAAA,GAAA,GAAM,OAAO,CAAC,CAAA;AACrG,MAAA,OAAO,GAAG,MAAM,CAAA,EAAA,CAAA;AAAA,KACjB,CAAA;AAGD,IAAM,MAAA,aAAA,mBAAiB,MAAA,CAAA,CAAA,KAAA,EAAe,QAAuB,KAAA;AAC3D,MAAA,IAAI,QAAU,EAAA;AACd,MAAA,aAAA,CAAc,KAAQ,GAAA,KAAA;AACtB,MAAAJ,YAAA,CAAS,MAAM;AACb,QAAA,KAAA,CAAM,mBAAqB,EAAA,KAAA,CAAM,QAAS,CAAA,KAAK,EAAE,KAAK,CAAA;AACtD,QAAA,KAAA,CAAM,QAAU,EAAA,KAAA,CAAM,QAAS,CAAA,KAAK,EAAE,KAAK,CAAA;AAAA,OAC5C,CAAA;AAAA,KANmB,EAAA,eAAA,CAAA;AAStB,IAAA,MAAM,QAAQK,YAAS,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"segmented.vue2.js","sources":["../../../../../../../packages/components/segmented/src/segmented.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { useElementSize } from '@vueuse/core';\n import { computed, nextTick, onMounted, onUnmounted, ref, useSlots, watch } from 'vue';\n import { SegmentedProps } from './segmented';\n\n defineOptions({\n name: 'ISegmented',\n });\n\n const props = defineProps(SegmentedProps);\n const emits = defineEmits(['update:modelValue', 'change']);\n\n // ref 引用\n const segmentedControl = ref<HTMLElement | null>(null);\n // 当前选中的索引\n const activeSegment = ref(-1);\n\n // 获取每个按钮的宽度\n const buttonWidths = ref<number[]>([]);\n\n const { width: cw } = useElementSize(segmentedControl);\n\n // 更新按钮宽度\n const updateButtonWidths = () => {\n nextTick(() => {\n setTimeout(() => {\n // 同样增加延迟以确保样式已完全应用\n const buttons = segmentedControl.value?.querySelectorAll('.i-segmented-control__item') || [];\n buttonWidths.value = Array.from(buttons).map(button => {\n return button.getBoundingClientRect().width;\n });\n activeSegment.value = props.segments.findIndex(it => it.value === props.modelValue);\n }, 100); // 延迟 100ms\n });\n };\n\n // 在组件挂载后获取按钮宽度\n onMounted(() => {\n updateButtonWidths();\n // 监听窗口大小变化,重新计算按钮宽度\n window.addEventListener('resize', updateButtonWidths);\n });\n\n // 监听 modelValue 的变化\n watch(\n () => props.modelValue,\n newValue => {\n activeSegment.value = props.segments.findIndex(it => it.value === newValue);\n },\n );\n\n // 在组件卸载时移除 resize 事件监听\n onUnmounted(() => {\n window.removeEventListener('resize', updateButtonWidths);\n });\n\n // 计算当前激活分段的样式偏移量\n const activeOffset = computed(() => {\n if (buttonWidths.value.length === 0) return '0px';\n const offset = buttonWidths.value.slice(0, activeSegment.value).reduce((sum, width) => sum + width, 0);\n return `${offset}px`;\n });\n\n // 切换分段的方法\n const selectSegment = (index: number, disabled?: boolean) => {\n if (disabled) return;\n activeSegment.value = index;\n nextTick(() => {\n emits('update:modelValue', props.segments[index].value);\n emits('change', props.segments[index].value);\n });\n };\n\n const slots = useSlots();\n</script>\n\n<template>\n <div ref=\"segmentedControl\" class=\"i-segmented\" :class=\"[`i-segmented__${size || 'default'}`]\">\n <div class=\"i-segmented-control\">\n <!-- 分段按钮 -->\n <div\n v-for=\"(segment, index) in segments\"\n :key=\"index\"\n class=\"i-segmented-control__item\"\n :class=\"{ active: activeSegment === index, 'i-segmented-control__disabled': segment.disabled }\"\n @click=\"selectSegment(index, segment.disabled)\"\n >\n <slot v-if=\"slots.default\" name=\"default\" :segment=\"segment\" :index=\"index\" />\n <span\n v-else\n class=\"i-segmented-label\"\n :style=\"{ width: block ? `${cw / segments.length - 20}px` : '100%' }\"\n :title=\"segment.label\"\n >{{ segment.label }}</span\n >\n </div>\n\n <!-- 平移动效指示器 -->\n <span\n class=\"indicator\"\n :style=\"{\n transform: `translateX(${activeOffset})`,\n width: block ? `calc(100% / ${segments.length})` : `${buttonWidths[activeSegment]}px`,\n }\"\n />\n </div>\n </div>\n</template>\n"],"names":["ref","useElementSize","nextTick","onMounted","watch","onUnmounted","computed","useSlots","_createElementBlock","_normalizeClass","size","_createElementVNode","_createCommentVNode","_openBlock","_Fragment","segments","_unref","_renderSlot","block","_toDisplayString","_normalizeStyle"],"mappings":"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"}