@ditari/bsui 5.0.7 → 5.0.9

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 (59) hide show
  1. package/dist/cjs/components/date/RangePicker.vue2.cjs +7 -20
  2. package/dist/cjs/components/date/RangePicker.vue2.cjs.map +1 -1
  3. package/dist/cjs/components/index.cjs +6 -0
  4. package/dist/cjs/components/index.cjs.map +1 -1
  5. package/dist/cjs/components/layout/Layout.vue2.cjs +39 -54
  6. package/dist/cjs/components/layout/Layout.vue2.cjs.map +1 -1
  7. package/dist/cjs/components/layout/List.cjs +27 -19
  8. package/dist/cjs/components/layout/List.cjs.map +1 -1
  9. package/dist/cjs/components/layout/Show.cjs +39 -33
  10. package/dist/cjs/components/layout/Show.cjs.map +1 -1
  11. package/dist/cjs/components/layout/components/index.cjs +26 -0
  12. package/dist/cjs/components/layout/components/index.cjs.map +1 -0
  13. package/dist/cjs/components/layout/components/layout/HeaderLayout.vue2.cjs +1 -0
  14. package/dist/cjs/components/layout/components/layout/HeaderLayout.vue2.cjs.map +1 -1
  15. package/dist/cjs/components/layout/components/layout/ThemeApp.vue2.cjs +1 -1
  16. package/dist/cjs/components/layout/components/layout/ThemeApp.vue2.cjs.map +1 -1
  17. package/dist/cjs/components/layout/components/menu/Menu.cjs +13 -10
  18. package/dist/cjs/components/layout/components/menu/Menu.cjs.map +1 -1
  19. package/dist/cjs/components/layout/index.cjs +11 -4
  20. package/dist/cjs/components/layout/index.cjs.map +1 -1
  21. package/dist/cjs/index.cjs +6 -0
  22. package/dist/cjs/index.cjs.map +1 -1
  23. package/dist/css/components/layout/components/settings/style/index.css +1 -1
  24. package/dist/css/index.css +1 -1
  25. package/dist/esm/components/date/RangePicker.vue2.mjs +8 -21
  26. package/dist/esm/components/date/RangePicker.vue2.mjs.map +1 -1
  27. package/dist/esm/components/index.mjs +3 -0
  28. package/dist/esm/components/index.mjs.map +1 -1
  29. package/dist/esm/components/layout/Layout.vue2.mjs +43 -58
  30. package/dist/esm/components/layout/Layout.vue2.mjs.map +1 -1
  31. package/dist/esm/components/layout/List.mjs +29 -21
  32. package/dist/esm/components/layout/List.mjs.map +1 -1
  33. package/dist/esm/components/layout/Show.mjs +41 -35
  34. package/dist/esm/components/layout/Show.mjs.map +1 -1
  35. package/dist/esm/components/layout/components/index.mjs +22 -0
  36. package/dist/esm/components/layout/components/index.mjs.map +1 -0
  37. package/dist/esm/components/layout/components/layout/HeaderLayout.vue2.mjs +1 -0
  38. package/dist/esm/components/layout/components/layout/HeaderLayout.vue2.mjs.map +1 -1
  39. package/dist/esm/components/layout/components/layout/ThemeApp.vue2.mjs +1 -1
  40. package/dist/esm/components/layout/components/layout/ThemeApp.vue2.mjs.map +1 -1
  41. package/dist/esm/components/layout/components/menu/Menu.mjs +13 -10
  42. package/dist/esm/components/layout/components/menu/Menu.mjs.map +1 -1
  43. package/dist/esm/components/layout/index.mjs +8 -4
  44. package/dist/esm/components/layout/index.mjs.map +1 -1
  45. package/dist/esm/index.mjs +3 -0
  46. package/dist/esm/index.mjs.map +1 -1
  47. package/dist/style/index.scss +18 -0
  48. package/dist/style/layout/components/settings/style/index.scss +1 -1
  49. package/dist/types/components/layout/Layout.vue.d.ts +1 -10
  50. package/dist/types/components/layout/Layout.vue.d.ts.map +1 -1
  51. package/dist/types/components/layout/List.d.ts.map +1 -1
  52. package/dist/types/components/layout/Show.d.ts.map +1 -1
  53. package/dist/types/components/layout/components/index.d.ts +5 -0
  54. package/dist/types/components/layout/components/index.d.ts.map +1 -0
  55. package/dist/types/components/layout/components/layout/HeaderLayout.vue.d.ts.map +1 -1
  56. package/dist/types/components/layout/components/menu/Menu.d.ts.map +1 -1
  57. package/dist/types/components/layout/index.d.ts +1 -0
  58. package/dist/types/components/layout/index.d.ts.map +1 -1
  59. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderLayout.vue2.cjs","sources":["../../../../../../src/components/layout/components/layout/HeaderLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, type ComputedRef } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { MenuFoldOutlined, MenuUnfoldOutlined } from \"@ant-design/icons-vue\";\r\nimport { useAppStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nimport Tab from \"../../../tab/Tab.vue\";\r\n\r\nconst { layout, modeConfig, headerTokenStyle } = storeToRefs(useAppStore());\r\nconst { headerStyle, headerTabStyle, collapsedStyle, rightStyle } = useStyle();\r\n\r\nfunction useStyle(): {\r\n headerStyle: ComputedRef<string>;\r\n headerTabStyle: ComputedRef<string>;\r\n collapsedStyle: ComputedRef<string>;\r\n rightStyle: ComputedRef<string>;\r\n} {\r\n const { useToken } = theme;\r\n const { token }: { token: ComputedRef<GlobalToken> } = useToken();\r\n\r\n const left = computed(\r\n () =>\r\n `${layout.value.collapsed ? layout.value.collapsedWidth : layout.value.sideWidth}px`\r\n );\r\n\r\n const headerStyle = computed(\r\n () => css`\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n background-color: ${modeConfig.value.mode !== \"light\"\r\n ? token.value.colorBgContainer\r\n : headerTokenStyle.value.bgColor};\r\n left: ${left.value};\r\n height: ${layout.value.headerHeight}px;\r\n transition: left 0.4s cubic-bezier(0.22, 1.2, 0.36, 1);\r\n display: flex;\r\n align-items: flex-end;\r\n `\r\n );\r\n\r\n const headerTabStyle = computed(\r\n () => css`\r\n flex: 1;\r\n overflow: hidden;\r\n padding-right: 10px;\r\n `\r\n );\r\n\r\n const collapsedStyle = computed(\r\n () => css`\r\n padding: 0 10px;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n color: ${modeConfig.value.mode === \"light\"\r\n ? headerTokenStyle.value.txtColor\r\n : \"inherit\"};\r\n `\r\n );\r\n\r\n const rightStyle = computed(\r\n () => css`\r\n height: 100%;\r\n `\r\n );\r\n\r\n return {\r\n headerStyle,\r\n headerTabStyle,\r\n collapsedStyle,\r\n rightStyle\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <div :class=\"headerStyle\">\r\n <div :class=\"collapsedStyle\" @click=\"layout.collapsed = !layout.collapsed\">\r\n <menu-unfold-outlined v-if=\"layout.collapsed\" class=\"trigger\" />\r\n <menu-fold-outlined v-else />\r\n </div>\r\n <div :class=\"headerTabStyle\">\r\n <Tab />\r\n </div>\r\n <div :class=\"rightStyle\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["storeToRefs","useAppStore","theme","computed","headerStyle","css","headerTabStyle","collapsedStyle","rightStyle"],"mappings":";;;;;;;;;;;;;;;;;AAYA,IAAA,MAAM,EAAE,MAAQ,EAAA,UAAA,EAAY,kBAAqB,GAAAA,iBAAA,CAAYC,mBAAa,CAAA;AAC1E,IAAA,MAAM,EAAE,WAAa,EAAA,cAAA,EAAgB,cAAgB,EAAA,UAAA,KAAe,QAAS,EAAA;AAE7E,IAAA,SAAS,QAKP,GAAA;AACA,MAAM,MAAA,EAAE,UAAa,GAAAC,kBAAA;AACrB,MAAM,MAAA,EAAE,KAAM,EAAA,GAAyC,QAAS,EAAA;AAEhE,MAAA,MAAM,IAAO,GAAAC,YAAA;AAAA,QACX,MACE,CAAG,EAAA,MAAA,CAAO,KAAM,CAAA,SAAA,GAAY,OAAO,KAAM,CAAA,cAAA,GAAiB,MAAO,CAAA,KAAA,CAAM,SAAS,CAAA,EAAA;AAAA,OACpF;AAEA,MAAA,MAAMC,YAAc,GAAAD,YAAA;AAAA,QAClB,MAAME,OAAA;AAAA;AAAA;AAAA;AAAA,wBAIgB,EAAA,UAAA,CAAW,MAAM,IAAS,KAAA,OAAA,GAC1C,MAAM,KAAM,CAAA,gBAAA,GACZ,gBAAiB,CAAA,KAAA,CAAM,OAAO,CAAA;AAAA,YAAA,EAC1B,KAAK,KAAK,CAAA;AAAA,cACR,EAAA,MAAA,CAAO,MAAM,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,OAKvC;AAEA,MAAA,MAAMC,eAAiB,GAAAH,YAAA;AAAA,QACrB,MAAME,OAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,OAKR;AAEA,MAAA,MAAME,eAAiB,GAAAJ,YAAA;AAAA,QACrB,MAAME,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAOK,WAAW,KAAM,CAAA,IAAA,KAAS,UAC/B,gBAAiB,CAAA,KAAA,CAAM,WACvB,SAAS,CAAA;AAAA,IAAA;AAAA,OAEjB;AAEA,MAAA,MAAMG,WAAa,GAAAL,YAAA;AAAA,QACjB,MAAME,OAAA;AAAA;AAAA,IAAA;AAAA,OAGR;AAEA,MAAO,OAAA;AAAA,QACL,WAAAD,EAAAA,YAAAA;AAAA,QACA,cAAAE,EAAAA,eAAAA;AAAA,QACA,cAAAC,EAAAA,eAAAA;AAAA,QACA,UAAAC,EAAAA;AAAA,OACF;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"HeaderLayout.vue2.cjs","sources":["../../../../../../src/components/layout/components/layout/HeaderLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, type ComputedRef } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { MenuFoldOutlined, MenuUnfoldOutlined } from \"@ant-design/icons-vue\";\r\nimport { useAppStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nimport Tab from \"../../../tab/Tab.vue\";\r\n\r\nconst { layout, modeConfig, headerTokenStyle } = storeToRefs(useAppStore());\r\nconst { headerStyle, headerTabStyle, collapsedStyle, rightStyle } = useStyle();\r\n\r\nfunction useStyle(): {\r\n headerStyle: ComputedRef<string>;\r\n headerTabStyle: ComputedRef<string>;\r\n collapsedStyle: ComputedRef<string>;\r\n rightStyle: ComputedRef<string>;\r\n} {\r\n const { useToken } = theme;\r\n const { token }: { token: ComputedRef<GlobalToken> } = useToken();\r\n\r\n const left = computed(\r\n () =>\r\n `${layout.value.collapsed ? layout.value.collapsedWidth : layout.value.sideWidth}px`\r\n );\r\n\r\n const headerStyle = computed(\r\n () => css`\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n z-index: 1;\r\n background-color: ${modeConfig.value.mode !== \"light\"\r\n ? token.value.colorBgContainer\r\n : headerTokenStyle.value.bgColor};\r\n left: ${left.value};\r\n height: ${layout.value.headerHeight}px;\r\n transition: left 0.4s cubic-bezier(0.22, 1.2, 0.36, 1);\r\n display: flex;\r\n align-items: flex-end;\r\n `\r\n );\r\n\r\n const headerTabStyle = computed(\r\n () => css`\r\n flex: 1;\r\n overflow: hidden;\r\n padding-right: 10px;\r\n `\r\n );\r\n\r\n const collapsedStyle = computed(\r\n () => css`\r\n padding: 0 10px;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n color: ${modeConfig.value.mode === \"light\"\r\n ? headerTokenStyle.value.txtColor\r\n : \"inherit\"};\r\n `\r\n );\r\n\r\n const rightStyle = computed(\r\n () => css`\r\n height: 100%;\r\n `\r\n );\r\n\r\n return {\r\n headerStyle,\r\n headerTabStyle,\r\n collapsedStyle,\r\n rightStyle\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <div :class=\"headerStyle\">\r\n <div :class=\"collapsedStyle\" @click=\"layout.collapsed = !layout.collapsed\">\r\n <menu-unfold-outlined v-if=\"layout.collapsed\" class=\"trigger\" />\r\n <menu-fold-outlined v-else />\r\n </div>\r\n <div :class=\"headerTabStyle\">\r\n <Tab />\r\n </div>\r\n <div :class=\"rightStyle\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["storeToRefs","useAppStore","theme","computed","headerStyle","css","headerTabStyle","collapsedStyle","rightStyle"],"mappings":";;;;;;;;;;;;;;;;;AAYA,IAAA,MAAM,EAAE,MAAQ,EAAA,UAAA,EAAY,kBAAqB,GAAAA,iBAAA,CAAYC,mBAAa,CAAA;AAC1E,IAAA,MAAM,EAAE,WAAa,EAAA,cAAA,EAAgB,cAAgB,EAAA,UAAA,KAAe,QAAS,EAAA;AAE7E,IAAA,SAAS,QAKP,GAAA;AACA,MAAM,MAAA,EAAE,UAAa,GAAAC,kBAAA;AACrB,MAAM,MAAA,EAAE,KAAM,EAAA,GAAyC,QAAS,EAAA;AAEhE,MAAA,MAAM,IAAO,GAAAC,YAAA;AAAA,QACX,MACE,CAAG,EAAA,MAAA,CAAO,KAAM,CAAA,SAAA,GAAY,OAAO,KAAM,CAAA,cAAA,GAAiB,MAAO,CAAA,KAAA,CAAM,SAAS,CAAA,EAAA;AAAA,OACpF;AAEA,MAAA,MAAMC,YAAc,GAAAD,YAAA;AAAA,QAClB,MAAME,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKgB,EAAA,UAAA,CAAW,MAAM,IAAS,KAAA,OAAA,GAC1C,MAAM,KAAM,CAAA,gBAAA,GACZ,gBAAiB,CAAA,KAAA,CAAM,OAAO,CAAA;AAAA,YAAA,EAC1B,KAAK,KAAK,CAAA;AAAA,cACR,EAAA,MAAA,CAAO,MAAM,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,OAKvC;AAEA,MAAA,MAAMC,eAAiB,GAAAH,YAAA;AAAA,QACrB,MAAME,OAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,OAKR;AAEA,MAAA,MAAME,eAAiB,GAAAJ,YAAA;AAAA,QACrB,MAAME,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAAA,EAOK,WAAW,KAAM,CAAA,IAAA,KAAS,UAC/B,gBAAiB,CAAA,KAAA,CAAM,WACvB,SAAS,CAAA;AAAA,IAAA;AAAA,OAEjB;AAEA,MAAA,MAAMG,WAAa,GAAAL,YAAA;AAAA,QACjB,MAAME,OAAA;AAAA;AAAA,IAAA;AAAA,OAGR;AAEA,MAAO,OAAA;AAAA,QACL,WAAAD,EAAAA,YAAAA;AAAA,QACA,cAAAE,EAAAA,eAAAA;AAAA,QACA,cAAAC,EAAAA,eAAAA;AAAA,QACA,UAAAC,EAAAA;AAAA,OACF;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -14,7 +14,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
14
14
  const { appTheme } = useTheme();
15
15
  function useTheme() {
16
16
  const { modeConfig } = pinia.storeToRefs(store.useAppStore());
17
- const appTheme2 = vue.ref({ algorithm: "" });
17
+ const appTheme2 = vue.ref({});
18
18
  vue.watch(
19
19
  () => modeConfig.value.mode,
20
20
  (val) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeApp.vue2.cjs","sources":["../../../../../../src/components/layout/components/layout/ThemeApp.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Ref, ref, watch } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useAppStore } from \"@ditari/store\";\r\n\r\nconst { appTheme } = useTheme();\r\n\r\nfunction useTheme(): { appTheme: Ref<unknown> } {\r\n const { modeConfig } = storeToRefs(useAppStore());\r\n const appTheme = ref<Record<string, unknown>>({ algorithm: \"\" });\r\n\r\n watch(\r\n () => modeConfig.value.mode,\r\n (val: string) => {\r\n if (val === \"os\") {\r\n const isDarkMode =\r\n window.matchMedia &&\r\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\r\n if (isDarkMode) {\r\n appTheme.value.algorithm = theme.darkAlgorithm;\r\n } else {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n }\r\n } else if (val === \"light\") {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n } else if (val === \"dark\") {\r\n appTheme.value.algorithm = theme.darkAlgorithm;\r\n } else {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n\r\n return {\r\n appTheme\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <a-config-provider :theme=\"appTheme\">\r\n <slot></slot>\r\n </a-config-provider>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["storeToRefs","useAppStore","appTheme","ref","watch","theme"],"mappings":";;;;;;;;;;;;;AAOA,IAAM,MAAA,EAAE,QAAS,EAAA,GAAI,QAAS,EAAA;AAE9B,IAAA,SAAS,QAAuC,GAAA;AAC9C,MAAA,MAAM,EAAE,UAAA,EAAe,GAAAA,iBAAA,CAAYC,mBAAa,CAAA;AAChD,MAAA,MAAMC,SAAW,GAAAC,OAAA,CAA6B,EAAE,SAAA,EAAW,IAAI,CAAA;AAE/D,MAAAC,SAAA;AAAA,QACE,MAAM,WAAW,KAAM,CAAA,IAAA;AAAA,QACvB,CAAC,GAAgB,KAAA;AACf,UAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,YAAA,MAAM,aACJ,MAAO,CAAA,UAAA,IACP,MAAO,CAAA,UAAA,CAAW,8BAA8B,CAAE,CAAA,OAAA;AACpD,YAAA,IAAI,UAAY,EAAA;AACd,cAAAF,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,aAAA;AAAA,aAC5B,MAAA;AACL,cAAAH,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,gBAAA;AAAA;AACnC,WACF,MAAA,IAAW,QAAQ,OAAS,EAAA;AAC1B,YAAAH,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,gBAAA;AAAA,WACnC,MAAA,IAAW,QAAQ,MAAQ,EAAA;AACzB,YAAAH,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,aAAA;AAAA,WAC5B,MAAA;AACL,YAAAH,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,gBAAA;AAAA;AACnC,SACF;AAAA,QACA,EAAE,WAAW,IAAK;AAAA,OACpB;AAEA,MAAO,OAAA;AAAA,QACL,QAAAH,EAAAA;AAAA,OACF;AAAA;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ThemeApp.vue2.cjs","sources":["../../../../../../src/components/layout/components/layout/ThemeApp.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Ref, ref, watch } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useAppStore } from \"@ditari/store\";\r\n\r\nconst { appTheme } = useTheme();\r\n\r\nfunction useTheme(): { appTheme: Ref<unknown> } {\r\n const { modeConfig } = storeToRefs(useAppStore());\r\n const appTheme = ref<Record<string, unknown>>({});\r\n\r\n watch(\r\n () => modeConfig.value.mode,\r\n (val: string) => {\r\n if (val === \"os\") {\r\n const isDarkMode =\r\n window.matchMedia &&\r\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\r\n if (isDarkMode) {\r\n appTheme.value.algorithm = theme.darkAlgorithm;\r\n } else {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n }\r\n } else if (val === \"light\") {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n } else if (val === \"dark\") {\r\n appTheme.value.algorithm = theme.darkAlgorithm;\r\n } else {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n\r\n return {\r\n appTheme\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <a-config-provider :theme=\"appTheme\">\r\n <slot></slot>\r\n </a-config-provider>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["storeToRefs","useAppStore","appTheme","ref","watch","theme"],"mappings":";;;;;;;;;;;;;AAOA,IAAM,MAAA,EAAE,QAAS,EAAA,GAAI,QAAS,EAAA;AAE9B,IAAA,SAAS,QAAuC,GAAA;AAC9C,MAAA,MAAM,EAAE,UAAA,EAAe,GAAAA,iBAAA,CAAYC,mBAAa,CAAA;AAChD,MAAMC,MAAAA,SAAAA,GAAWC,OAA6B,CAAA,EAAE,CAAA;AAEhD,MAAAC,SAAA;AAAA,QACE,MAAM,WAAW,KAAM,CAAA,IAAA;AAAA,QACvB,CAAC,GAAgB,KAAA;AACf,UAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,YAAA,MAAM,aACJ,MAAO,CAAA,UAAA,IACP,MAAO,CAAA,UAAA,CAAW,8BAA8B,CAAE,CAAA,OAAA;AACpD,YAAA,IAAI,UAAY,EAAA;AACd,cAAAF,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,aAAA;AAAA,aAC5B,MAAA;AACL,cAAAH,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,gBAAA;AAAA;AACnC,WACF,MAAA,IAAW,QAAQ,OAAS,EAAA;AAC1B,YAAAH,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,gBAAA;AAAA,WACnC,MAAA,IAAW,QAAQ,MAAQ,EAAA;AACzB,YAAAH,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,aAAA;AAAA,WAC5B,MAAA;AACL,YAAAH,SAAAA,CAAS,KAAM,CAAA,SAAA,GAAYG,kBAAM,CAAA,gBAAA;AAAA;AACnC,SACF;AAAA,QACA,EAAE,WAAW,IAAK;AAAA,OACpB;AAEA,MAAO,OAAA;AAAA,QACL,QAAAH,EAAAA;AAAA,OACF;AAAA;;;;;;;;;;;;;;;;"}
@@ -29,7 +29,7 @@ var __async = (__this, __arguments, generator) => {
29
29
  step((generator = generator.apply(__this, __arguments)).next());
30
30
  });
31
31
  };
32
- var DMenu = /* @__PURE__ */ vue.defineComponent({
32
+ var Menu = /* @__PURE__ */ vue.defineComponent({
33
33
  name: "DMenu",
34
34
  setup() {
35
35
  const {
@@ -78,7 +78,6 @@ var DMenu = /* @__PURE__ */ vue.defineComponent({
78
78
  const route = vueRouter.useRoute();
79
79
  const router = vueRouter.useRouter();
80
80
  vue.watch(() => route.fullPath, (path) => __async(this, null, function* () {
81
- console.log(path);
82
81
  const flag = selectedKeys2.value.some((item) => item === path);
83
82
  if (!flag) {
84
83
  const rs = _findMatchedMenuKey(path, data.value);
@@ -121,13 +120,17 @@ var DMenu = /* @__PURE__ */ vue.defineComponent({
121
120
  return result;
122
121
  }
123
122
  }
124
- const match = path.match(/^\/[^/]+/);
125
- const basePath = match ? match[0] : "";
126
- if (item.key.startsWith(basePath)) {
127
- return {
128
- matchedKey: item.key,
129
- parentKey
130
- };
123
+ if (path.startsWith(item.key)) {
124
+ if (!item.children || item.children.length === 0) {
125
+ return {
126
+ matchedKey: item.key,
127
+ parentKey
128
+ };
129
+ }
130
+ const result = _findMatchedMenuKey(path, item.children, item.key);
131
+ if (result) {
132
+ return result;
133
+ }
131
134
  }
132
135
  }
133
136
  return null;
@@ -168,5 +171,5 @@ var DMenu = /* @__PURE__ */ vue.defineComponent({
168
171
  }
169
172
  });
170
173
 
171
- exports.default = DMenu;
174
+ exports.default = Menu;
172
175
  //# sourceMappingURL=Menu.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.cjs","sources":["../../../../../../src/components/layout/components/menu/Menu.tsx"],"sourcesContent":["import { computed, defineComponent, watch } from \"vue\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useAppStore, useMenuStore, useNoStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nexport default defineComponent({\r\n name: \"DMenu\",\r\n setup() {\r\n const { layout, modeConfig } = storeToRefs(useAppStore());\r\n const { menuList } = storeToRefs(useNoStore());\r\n const { menuWrapperStyle } = useStyle();\r\n const { openKeys, selectedKeys, onClick } = useMenu();\r\n\r\n function useStyle() {\r\n const menuWrapperStyle = computed(\r\n () => css`\r\n flex: 1;\r\n overflow: hidden;\r\n\r\n .ant-menu {\r\n height: 100%;\r\n overflow: scroll;\r\n -ms-overflow-style: none; /* 对 IE 和 Edge 生效 */\r\n scrollbar-width: none; /* 对 Firefox 生效 */\r\n\r\n ${modeConfig.value.mode === \"light\"\r\n ? \"background:transparent;\"\r\n : \"\"}\r\n /* Webkit 浏览器 */\r\n ::-webkit-scrollbar {\r\n display: none;\r\n }\r\n }\r\n `\r\n );\r\n return {\r\n menuWrapperStyle\r\n };\r\n }\r\n\r\n function useMenu() {\r\n const { openKeys, selectedKeys, data } = storeToRefs(useMenuStore());\r\n const route = useRoute();\r\n const router = useRouter();\r\n\r\n /**\r\n * 在标签切换的时候,路由会变化,需要动态关联左侧菜单的选中状态\r\n */\r\n watch(\r\n () => route.fullPath,\r\n async path => {\r\n console.log(path);\r\n const flag = selectedKeys.value.some((item: string) => item === path);\r\n if (!flag) {\r\n const rs = _findMatchedMenuKey(path, data.value as never);\r\n if (rs) {\r\n if (!layout.value.collapsed) {\r\n if (rs?.parentKey) {\r\n openKeys.value = [rs.parentKey];\r\n } else {\r\n openKeys.value = [rs!.matchedKey];\r\n }\r\n }\r\n selectedKeys.value = [rs!.matchedKey];\r\n }\r\n }\r\n }\r\n );\r\n\r\n watch(\r\n () => layout.value.collapsed,\r\n val => {\r\n const path = selectedKeys.value[0];\r\n const rs = _findMatchedMenuKey(path, data.value as never);\r\n if (val) {\r\n openKeys.value = [];\r\n } else {\r\n if (rs?.parentKey) {\r\n openKeys.value = [rs.parentKey];\r\n } else {\r\n openKeys.value = [rs!.matchedKey];\r\n }\r\n }\r\n }\r\n );\r\n\r\n // 匹配菜单项的函数(支持嵌套 children)\r\n const _findMatchedMenuKey = (\r\n path: string,\r\n menuItems: { key: string; children: [] }[],\r\n parentKey: string = \"\"\r\n ): { matchedKey: string; parentKey: string } | null => {\r\n // 遍历菜单项\r\n for (const item of menuItems) {\r\n // 完全匹配\r\n if (item.key === path) {\r\n return { matchedKey: item.key, parentKey };\r\n }\r\n\r\n // 如果当前菜单项有 children,递归查找\r\n if (item.children && item.children.length > 0) {\r\n const result = _findMatchedMenuKey(path, item.children, item.key);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n\r\n // 匹配以 basePath 开头的菜单项\r\n const match = path.match(/^\\/[^/]+/); // 匹配以 / 开头,后面不包含 / 的部分\r\n const basePath = match ? match[0] : \"\"; // 提取基础路径,如 /user\r\n if (item.key.startsWith(basePath)) {\r\n return { matchedKey: item.key, parentKey };\r\n }\r\n }\r\n\r\n // 如果没有找到匹配的菜单项,返回 null\r\n return null;\r\n };\r\n\r\n const onClick = ({\r\n key,\r\n keyPath\r\n }: {\r\n item: string;\r\n key: string;\r\n keyPath: string[];\r\n }) => {\r\n openKeys.value = keyPath;\r\n selectedKeys.value = [key];\r\n\r\n // 判断目标路由和当前路由是否相等;\r\n // 不相等的时候再跳转\r\n if (route.path !== key) {\r\n router.push(key).then(r => {\r\n if (r) {\r\n console.warn(r);\r\n }\r\n });\r\n }\r\n };\r\n\r\n return {\r\n openKeys,\r\n selectedKeys,\r\n data,\r\n onClick\r\n };\r\n }\r\n\r\n return () => (\r\n <div class={menuWrapperStyle.value}>\r\n <a-menu\r\n v-model:open-keys={openKeys.value}\r\n v-model:selected-keys={selectedKeys.value}\r\n items={menuList.value}\r\n mode=\"inline\"\r\n triggerSubMenuAction={\"hover\"}\r\n onClick={onClick}\r\n ></a-menu>\r\n </div>\r\n );\r\n }\r\n});\r\n"],"names":["defineComponent","name","setup","layout","modeConfig","storeToRefs","useAppStore","menuList","useNoStore","menuWrapperStyle","useStyle","openKeys","selectedKeys","onClick","useMenu","computed","css","value","mode","data","useMenuStore","route","useRoute","router","useRouter","watch","fullPath","path","console","log","flag","some","item","rs","_findMatchedMenuKey","collapsed","parentKey","matchedKey","val","menuItems","key","children","length","result","match","basePath","startsWith","keyPath","push","then","r","warn","_createVNode","_resolveComponent","$event"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.cjs","sources":["../../../../../../src/components/layout/components/menu/Menu.tsx"],"sourcesContent":["import { computed, defineComponent, watch } from \"vue\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useAppStore, useMenuStore, useNoStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nexport default defineComponent({\r\n name: \"DMenu\",\r\n setup() {\r\n const { layout, modeConfig } = storeToRefs(useAppStore());\r\n const { menuList } = storeToRefs(useNoStore());\r\n const { menuWrapperStyle } = useStyle();\r\n const { openKeys, selectedKeys, onClick } = useMenu();\r\n\r\n function useStyle() {\r\n const menuWrapperStyle = computed(\r\n () => css`\r\n flex: 1;\r\n overflow: hidden;\r\n\r\n .ant-menu {\r\n height: 100%;\r\n overflow: scroll;\r\n -ms-overflow-style: none; /* 对 IE 和 Edge 生效 */\r\n scrollbar-width: none; /* 对 Firefox 生效 */\r\n\r\n ${modeConfig.value.mode === \"light\"\r\n ? \"background:transparent;\"\r\n : \"\"}\r\n /* Webkit 浏览器 */\r\n ::-webkit-scrollbar {\r\n display: none;\r\n }\r\n }\r\n `\r\n );\r\n return {\r\n menuWrapperStyle\r\n };\r\n }\r\n\r\n function useMenu() {\r\n const { openKeys, selectedKeys, data } = storeToRefs(useMenuStore());\r\n const route = useRoute();\r\n const router = useRouter();\r\n\r\n /**\r\n * 在标签切换的时候,路由会变化,需要动态关联左侧菜单的选中状态\r\n */\r\n watch(\r\n () => route.fullPath,\r\n async path => {\r\n const flag = selectedKeys.value.some((item: string) => item === path);\r\n if (!flag) {\r\n const rs = _findMatchedMenuKey(path, data.value as never);\r\n if (rs) {\r\n if (!layout.value.collapsed) {\r\n if (rs?.parentKey) {\r\n openKeys.value = [rs.parentKey];\r\n } else {\r\n openKeys.value = [rs!.matchedKey];\r\n }\r\n }\r\n selectedKeys.value = [rs!.matchedKey];\r\n }\r\n }\r\n }\r\n );\r\n\r\n watch(\r\n () => layout.value.collapsed,\r\n val => {\r\n const path = selectedKeys.value[0];\r\n const rs = _findMatchedMenuKey(path, data.value as never);\r\n if (val) {\r\n openKeys.value = [];\r\n } else {\r\n if (rs?.parentKey) {\r\n openKeys.value = [rs.parentKey];\r\n } else {\r\n openKeys.value = [rs!.matchedKey];\r\n }\r\n }\r\n }\r\n );\r\n\r\n const _findMatchedMenuKey = (\r\n path: string,\r\n menuItems: { key: string; children?: never[] }[],\r\n parentKey: string = \"\"\r\n ): { matchedKey: string; parentKey: string } | null => {\r\n // 遍历菜单项\r\n for (const item of menuItems) {\r\n // 完全匹配\r\n if (item.key === path) {\r\n return { matchedKey: item.key, parentKey };\r\n }\r\n\r\n // 如果当前菜单项有 children,递归查找\r\n if (item.children && item.children.length > 0) {\r\n const result = _findMatchedMenuKey(path, item.children, item.key);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n\r\n // 匹配路径前缀(确保只匹配最深层的菜单项)\r\n if (path.startsWith(item.key)) {\r\n // 如果路径以该菜单项的 key 开头,且该菜单项没有子菜单,直接返回匹配的菜单\r\n if (!item.children || item.children.length === 0) {\r\n return { matchedKey: item.key, parentKey };\r\n }\r\n // 如果是父菜单且有子菜单,继续递归寻找匹配的子菜单\r\n const result = _findMatchedMenuKey(path, item.children, item.key);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n // 如果没有找到匹配的菜单项,返回 null\r\n return null;\r\n };\r\n\r\n const onClick = ({\r\n key,\r\n keyPath\r\n }: {\r\n item: string;\r\n key: string;\r\n keyPath: string[];\r\n }) => {\r\n openKeys.value = keyPath;\r\n selectedKeys.value = [key];\r\n\r\n // 判断目标路由和当前路由是否相等;\r\n // 不相等的时候再跳转\r\n if (route.path !== key) {\r\n router.push(key).then(r => {\r\n if (r) {\r\n console.warn(r);\r\n }\r\n });\r\n }\r\n };\r\n\r\n return {\r\n openKeys,\r\n selectedKeys,\r\n data,\r\n onClick\r\n };\r\n }\r\n\r\n return () => (\r\n <div class={menuWrapperStyle.value}>\r\n <a-menu\r\n v-model:open-keys={openKeys.value}\r\n v-model:selected-keys={selectedKeys.value}\r\n items={menuList.value}\r\n mode=\"inline\"\r\n triggerSubMenuAction={\"hover\"}\r\n onClick={onClick}\r\n ></a-menu>\r\n </div>\r\n );\r\n }\r\n});\r\n"],"names":["defineComponent","name","setup","layout","modeConfig","storeToRefs","useAppStore","menuList","useNoStore","menuWrapperStyle","useStyle","openKeys","selectedKeys","onClick","useMenu","computed","css","value","mode","data","useMenuStore","route","useRoute","router","useRouter","watch","fullPath","path","flag","some","item","rs","_findMatchedMenuKey","collapsed","parentKey","matchedKey","val","menuItems","key","children","length","result","startsWith","keyPath","push","then","r","console","warn","_createVNode","_resolveComponent","$event"],"mappings":"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"}
@@ -3,13 +3,13 @@
3
3
  var List = require('./List.cjs');
4
4
  var Show = require('./Show.cjs');
5
5
  require('./Layout.vue.cjs');
6
+ require('./components/index.cjs');
6
7
  var Layout_vue_vue_type_script_setup_true_lang = require('./Layout.vue2.cjs');
8
+ var ThemeApp_vue_vue_type_script_setup_true_lang = require('./components/layout/ThemeApp.vue2.cjs');
9
+ var HeaderLayout_vue_vue_type_script_setup_true_lang = require('./components/layout/HeaderLayout.vue2.cjs');
10
+ var Menu = require('./components/menu/Menu.cjs');
7
11
 
8
12
  "use strict";
9
- Layout_vue_vue_type_script_setup_true_lang.default.install = function(app) {
10
- app.component("DLayout", Layout_vue_vue_type_script_setup_true_lang.default);
11
- return app;
12
- };
13
13
  List.default.install = function(app) {
14
14
  app.component(List.default.name, List.default);
15
15
  return app;
@@ -18,8 +18,15 @@ Show.default.install = function(app) {
18
18
  app.component(Show.default.name, Show.default);
19
19
  return app;
20
20
  };
21
+ Layout_vue_vue_type_script_setup_true_lang.default.install = function(app) {
22
+ app.component("DLayout", Layout_vue_vue_type_script_setup_true_lang.default);
23
+ return app;
24
+ };
21
25
 
22
26
  exports.List = List.default;
23
27
  exports.Show = Show.default;
24
28
  exports.Layout = Layout_vue_vue_type_script_setup_true_lang.default;
29
+ exports.AppTheme = ThemeApp_vue_vue_type_script_setup_true_lang.default;
30
+ exports.HeaderLayout = HeaderLayout_vue_vue_type_script_setup_true_lang.default;
31
+ exports.Menu = Menu.default;
25
32
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/layout/index.ts"],"sourcesContent":["import List from \"./List\";\r\nimport Show from \"./Show\";\r\nimport type { App } from \"vue\";\r\n\r\nimport Layout from \"./Layout.vue\";\r\n\r\nLayout.install = function (app: App) {\r\n app.component(\"DLayout\", Layout);\r\n return app;\r\n};\r\n\r\nList.install = function (app: App) {\r\n app.component(List.name!, List);\r\n return app;\r\n};\r\n\r\nShow.install = function (app: App) {\r\n app.component(Show.name!, Show);\r\n return app;\r\n};\r\n\r\nexport { Layout, List, Show };\r\n"],"names":["Layout","List","Show"],"mappings":";;;;;;;;AAMAA,kDAAO,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AACnC,EAAI,GAAA,CAAA,SAAA,CAAU,WAAWA,kDAAM,CAAA;AAC/B,EAAO,OAAA,GAAA;AACT,CAAA;AAEAC,YAAK,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AACjC,EAAI,GAAA,CAAA,SAAA,CAAUA,YAAK,CAAA,IAAA,EAAOA,YAAI,CAAA;AAC9B,EAAO,OAAA,GAAA;AACT,CAAA;AAEAC,YAAK,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AACjC,EAAI,GAAA,CAAA,SAAA,CAAUA,YAAK,CAAA,IAAA,EAAOA,YAAI,CAAA;AAC9B,EAAO,OAAA,GAAA;AACT,CAAA;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/layout/index.ts"],"sourcesContent":["import List from \"./List\";\r\nimport Show from \"./Show\";\r\nimport type { App } from \"vue\";\r\n\r\nimport Layout from \"./Layout.vue\";\r\n\r\nexport * from \"./components\";\r\n\r\nList.install = function (app: App) {\r\n app.component(List.name!, List);\r\n return app;\r\n};\r\n\r\nShow.install = function (app: App) {\r\n app.component(Show.name!, Show);\r\n return app;\r\n};\r\nLayout.install = function (app: App) {\r\n app.component(\"DLayout\", Layout);\r\n return app;\r\n};\r\n\r\nexport { Layout, List, Show };\r\n"],"names":["List","Show","Layout"],"mappings":";;;;;;;;;;;;AAQAA,YAAK,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AACjC,EAAI,GAAA,CAAA,SAAA,CAAUA,YAAK,CAAA,IAAA,EAAOA,YAAI,CAAA;AAC9B,EAAO,OAAA,GAAA;AACT,CAAA;AAEAC,YAAK,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AACjC,EAAI,GAAA,CAAA,SAAA,CAAUA,YAAK,CAAA,IAAA,EAAOA,YAAI,CAAA;AAC9B,EAAO,OAAA,GAAA;AACT,CAAA;AACAC,kDAAO,CAAA,OAAA,GAAU,SAAU,GAAU,EAAA;AACnC,EAAI,GAAA,CAAA,SAAA,CAAU,WAAWA,kDAAM,CAAA;AAC/B,EAAO,OAAA,GAAA;AACT,CAAA;;;;;;;;;"}
@@ -10,6 +10,9 @@ var RangePicker_vue_vue_type_script_setup_true_lang = require('./components/date
10
10
  var FormLayout = require('./components/form/FormLayout.cjs');
11
11
  var Moon = require('./components/icon/Moon.vue.cjs');
12
12
  var Sun = require('./components/icon/Sun.vue.cjs');
13
+ var ThemeApp_vue_vue_type_script_setup_true_lang = require('./components/layout/components/layout/ThemeApp.vue2.cjs');
14
+ var HeaderLayout_vue_vue_type_script_setup_true_lang = require('./components/layout/components/layout/HeaderLayout.vue2.cjs');
15
+ var Menu = require('./components/layout/components/menu/Menu.cjs');
13
16
  var Layout_vue_vue_type_script_setup_true_lang = require('./components/layout/Layout.vue2.cjs');
14
17
  var List = require('./components/layout/List.cjs');
15
18
  var Show = require('./components/layout/Show.cjs');
@@ -37,6 +40,9 @@ exports.RangePicker = RangePicker_vue_vue_type_script_setup_true_lang.default;
37
40
  exports.FormLayout = FormLayout.default;
38
41
  exports.Moon = Moon.default;
39
42
  exports.Sun = Sun.default;
43
+ exports.AppTheme = ThemeApp_vue_vue_type_script_setup_true_lang.default;
44
+ exports.HeaderLayout = HeaderLayout_vue_vue_type_script_setup_true_lang.default;
45
+ exports.Menu = Menu.default;
40
46
  exports.Layout = Layout_vue_vue_type_script_setup_true_lang.default;
41
47
  exports.List = List.default;
42
48
  exports.Show = Show.default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import * as components from \"./components\";\r\nimport type { App, DefineComponent, Plugin } from \"vue\";\r\n\r\n// import { version } from \"../package.json\";\r\n\r\nexport * from \"./components\";\r\n\r\nconsole.log(components);\r\n// 定义组件类型,确保每个组件都可能具有 `install` 方法\r\ntype ComponentWithInstall = DefineComponent<never, never, never> & {\r\n install?: (app: App) => void;\r\n};\r\n\r\nexport const install = (app: App) => {\r\n Object.keys(components).forEach(key => {\r\n const component = components[\r\n key as keyof typeof components\r\n ] as ComponentWithInstall;\r\n // 类型断言,告诉 TypeScript component 可能是一个插件\r\n const plugin = component as Plugin;\r\n // 如果组件有 install 方法,则按插件安装\r\n if (plugin.install) {\r\n app.use(plugin);\r\n }\r\n });\r\n};\r\n\r\nexport default {\r\n // version,\r\n install\r\n};\r\n"],"names":["components"],"mappings":";;;;;;;;;;;;;;;;;AAOA,OAAA,CAAQ,IAAIA,OAAU,CAAA;AAMT,MAAA,OAAA,GAAU,CAAC,GAAa,KAAA;AACnC,EAAA,MAAA,CAAO,IAAK,CAAAA,OAAU,CAAE,CAAA,OAAA,CAAQ,CAAO,GAAA,KAAA;AACrC,IAAM,MAAA,SAAA,GAAYA,QAChB,GACF,CAAA;AAEA,IAAA,MAAM,MAAS,GAAA,SAAA;AAEf,IAAA,IAAI,OAAO,OAAS,EAAA;AAClB,MAAA,GAAA,CAAI,IAAI,MAAM,CAAA;AAAA;AAChB,GACD,CAAA;AACH;AAEA,YAAe;AAAA;AAAA,EAEb;AACF,CAAA;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/index.ts"],"sourcesContent":["import * as components from \"./components\";\r\nimport type { App, DefineComponent, Plugin } from \"vue\";\r\n\r\n// import { version } from \"../package.json\";\r\n\r\nexport * from \"./components\";\r\n\r\nconsole.log(components);\r\n// 定义组件类型,确保每个组件都可能具有 `install` 方法\r\ntype ComponentWithInstall = DefineComponent<never, never, never> & {\r\n install?: (app: App) => void;\r\n};\r\n\r\nexport const install = (app: App) => {\r\n Object.keys(components).forEach(key => {\r\n const component = components[\r\n key as keyof typeof components\r\n ] as ComponentWithInstall;\r\n // 类型断言,告诉 TypeScript component 可能是一个插件\r\n const plugin = component as Plugin;\r\n // 如果组件有 install 方法,则按插件安装\r\n if (plugin.install) {\r\n app.use(plugin);\r\n }\r\n });\r\n};\r\n\r\nexport default {\r\n // version,\r\n install\r\n};\r\n"],"names":["components"],"mappings":";;;;;;;;;;;;;;;;;;;;AAOA,OAAA,CAAQ,IAAIA,OAAU,CAAA;AAMT,MAAA,OAAA,GAAU,CAAC,GAAa,KAAA;AACnC,EAAA,MAAA,CAAO,IAAK,CAAAA,OAAU,CAAE,CAAA,OAAA,CAAQ,CAAO,GAAA,KAAA;AACrC,IAAM,MAAA,SAAA,GAAYA,QAChB,GACF,CAAA;AAEA,IAAA,MAAM,MAAS,GAAA,SAAA;AAEf,IAAA,IAAI,OAAO,OAAS,EAAA;AAClB,MAAA,GAAA,CAAI,IAAI,MAAM,CAAA;AAAA;AAChB,GACD,CAAA;AACH;AAEA,YAAe;AAAA;AAAA,EAEb;AACF,CAAA;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- .ant-pro-drawer-setting-handle{position:fixed;inset-block-start:240px;inset-inline-end:0;z-index:0;display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:16px;text-align:center;backdrop-filter:saturate(180%) blur(20px);cursor:pointer;pointer-events:auto}.ant-pro-drawer-setting-handle .icon{color:#fff}.ant-pro-drawer-setting-handle-icon-dark{color:#e5e0d8}.ant-pro-drawer-setting-theme-color{margin-top:16px;overflow:hidden}.ant-pro-drawer-setting-theme-color-block{float:left;width:20px;height:20px;margin-top:8px;margin-right:8px;font-weight:700;display:flex;color:#fff;align-items:center;justify-content:center;border-radius:2px;cursor:pointer}.ant-pro-drawer-setting-block-checkbox{display:flex;min-height:42px}.ant-pro-drawer-setting-block-checkbox-selectIcon{position:absolute;right:6px;bottom:4px;font-weight:700;font-size:14px;pointer-events:none}.ant-pro-drawer-setting-block-checkbox-item{position:relative;width:44px;height:36px;margin-right:16px;overflow:hidden;background-color:#f0f2f5;border-radius:4px;box-shadow:0 1px 2.5px 0 rgba(0,0,0,.18);cursor:pointer}.ant-pro-drawer-setting-block-checkbox-item::before{position:absolute;top:0;left:0;width:33%;height:100%;background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item::after{position:absolute;top:0;left:0;width:100%;height:25%;background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-dark{background-color:rgba(0,21,41,.85)}.ant-pro-drawer-setting-block-checkbox-item-dark::before{background-color:rgba(0,21,41,.65);content:""}.ant-pro-drawer-setting-block-checkbox-item-dark::after{background-color:rgba(0,21,41,.85)}.ant-pro-drawer-setting-block-checkbox-item-light::before{background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-light::after{background-color:#fff}.ant-pro-drawer-setting-block-checkbox-item-inverted::before,.ant-pro-drawer-setting-block-checkbox-item-side::before{z-index:1;background-color:#001529;content:""}.ant-pro-drawer-setting-block-checkbox-item-inverted::after,.ant-pro-drawer-setting-block-checkbox-item-side::after{background-color:#fff}.ant-pro-drawer-setting-block-checkbox-item-top::before{background-color:rgba(0,0,0,0);content:""}.ant-pro-drawer-setting-block-checkbox-item-top::after{background-color:#001529}.ant-pro-drawer-setting-block-checkbox-item-mix::before{background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-mix::after{background-color:#001529}.ant-pro-drawer-setting-block-checkbox-theme-item{background:#2a2c2c;box-shadow:rgba(13,13,13,.18) 0px 1px 2.5px 0px}.ant-pro-drawer-setting-block-checkbox-theme-item-light::before,.ant-pro-drawer-setting-block-checkbox-theme-item-light::after{background-color:#242525}.ant-pro-drawer-setting-block-checkbox-theme-item-dark::before,.ant-pro-drawer-setting-block-checkbox-theme-item-dark::after{background-color:rgba(15,28,41,.65)}.ant-pro-drawer-setting-block-checkbox-theme-item-side::before,.ant-pro-drawer-setting-block-checkbox-theme-item-inverted::before{background-color:#0f1c29}.ant-pro-drawer-setting-block-checkbox-theme-item-side::after,.ant-pro-drawer-setting-block-checkbox-theme-item-inverted::after{background-color:#242525}.ant-pro-drawer-setting-block-checkbox-theme-item-mix::before{background-color:#242525}
1
+ .ant-pro-drawer-setting-handle{position:fixed;inset-block-start:240px;inset-inline-end:0;z-index:1;display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:16px;text-align:center;backdrop-filter:saturate(180%) blur(20px);cursor:pointer;pointer-events:auto}.ant-pro-drawer-setting-handle .icon{color:#fff}.ant-pro-drawer-setting-handle-icon-dark{color:#e5e0d8}.ant-pro-drawer-setting-theme-color{margin-top:16px;overflow:hidden}.ant-pro-drawer-setting-theme-color-block{float:left;width:20px;height:20px;margin-top:8px;margin-right:8px;font-weight:700;display:flex;color:#fff;align-items:center;justify-content:center;border-radius:2px;cursor:pointer}.ant-pro-drawer-setting-block-checkbox{display:flex;min-height:42px}.ant-pro-drawer-setting-block-checkbox-selectIcon{position:absolute;right:6px;bottom:4px;font-weight:700;font-size:14px;pointer-events:none}.ant-pro-drawer-setting-block-checkbox-item{position:relative;width:44px;height:36px;margin-right:16px;overflow:hidden;background-color:#f0f2f5;border-radius:4px;box-shadow:0 1px 2.5px 0 rgba(0,0,0,.18);cursor:pointer}.ant-pro-drawer-setting-block-checkbox-item::before{position:absolute;top:0;left:0;width:33%;height:100%;background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item::after{position:absolute;top:0;left:0;width:100%;height:25%;background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-dark{background-color:rgba(0,21,41,.85)}.ant-pro-drawer-setting-block-checkbox-item-dark::before{background-color:rgba(0,21,41,.65);content:""}.ant-pro-drawer-setting-block-checkbox-item-dark::after{background-color:rgba(0,21,41,.85)}.ant-pro-drawer-setting-block-checkbox-item-light::before{background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-light::after{background-color:#fff}.ant-pro-drawer-setting-block-checkbox-item-inverted::before,.ant-pro-drawer-setting-block-checkbox-item-side::before{z-index:1;background-color:#001529;content:""}.ant-pro-drawer-setting-block-checkbox-item-inverted::after,.ant-pro-drawer-setting-block-checkbox-item-side::after{background-color:#fff}.ant-pro-drawer-setting-block-checkbox-item-top::before{background-color:rgba(0,0,0,0);content:""}.ant-pro-drawer-setting-block-checkbox-item-top::after{background-color:#001529}.ant-pro-drawer-setting-block-checkbox-item-mix::before{background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-mix::after{background-color:#001529}.ant-pro-drawer-setting-block-checkbox-theme-item{background:#2a2c2c;box-shadow:rgba(13,13,13,.18) 0px 1px 2.5px 0px}.ant-pro-drawer-setting-block-checkbox-theme-item-light::before,.ant-pro-drawer-setting-block-checkbox-theme-item-light::after{background-color:#242525}.ant-pro-drawer-setting-block-checkbox-theme-item-dark::before,.ant-pro-drawer-setting-block-checkbox-theme-item-dark::after{background-color:rgba(15,28,41,.65)}.ant-pro-drawer-setting-block-checkbox-theme-item-side::before,.ant-pro-drawer-setting-block-checkbox-theme-item-inverted::before{background-color:#0f1c29}.ant-pro-drawer-setting-block-checkbox-theme-item-side::after,.ant-pro-drawer-setting-block-checkbox-theme-item-inverted::after{background-color:#242525}.ant-pro-drawer-setting-block-checkbox-theme-item-mix::before{background-color:#242525}
@@ -1 +1 @@
1
- .d-tabs-nav{flex:1;overflow:hidden}.d-tabs-nav .ant-tabs-nav{margin-bottom:0 !important}.d-tabs-nav .ant-tabs-nav:before{border-bottom-width:0}.d-tabs-nav .ant-tabs-nav-operations{display:none !important}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab{position:relative;transition:none !important;border:0;background:rgba(0,0,0,0)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:first-child{margin-left:20px}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:first-child .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:nth-last-child(2){margin-right:20px}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:before,.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:after{position:absolute;bottom:-1px;content:"";width:30px;height:30px;border-radius:100%;box-shadow:0 0 0 40px rgba(0,0,0,0)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:before{left:-30px;clip-path:inset(50% -10px 0 50%)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:after{right:-30px;clip-path:inset(50% 50% 0 -10px)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab.ant-tabs-tab-active{border-radius:10px 10px 0 0 !important;background:var(--active-tab-color)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab.ant-tabs-tab-active .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab.ant-tabs-tab-active:before,.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab.ant-tabs-tab-active:after{z-index:10;box-shadow:0 0 0 30px var(--active-tab-color)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:hover:not(.ant-tabs-tab-active) .tab-hover-bg{position:absolute;display:flex;flex-direction:column;justify-content:center;top:0;right:0;bottom:0;left:0;z-index:-1}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:hover:not(.ant-tabs-tab-active) .tab-hover-bg:before{content:"";width:100%;height:25px;border-radius:6px}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:hover:not(.ant-tabs-tab-active) .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:hover:not(.ant-tabs-tab-active)+.ant-tabs-tab .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:not(.ant-tabs-tab-active) .close-btn{color:#fff}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:not(.ant-tabs-tab-active) .tab-item{color:#fff}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab-active+.ant-tabs-tab .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab-btn{display:flex;align-items:center}.d-tabs-nav .tab-close{position:absolute;top:0;right:0;bottom:0;padding:4px;display:flex;align-items:center;justify-content:center}.d-tabs-nav .tab-close .close-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;z-index:20}.d-tabs-nav .tab-close .anticon{margin:0}.d-tabs-nav .tab-item{padding-right:30px}.d-tabs-nav .tab-dividers{position:absolute;z-index:0;height:14px;left:-2px}.d-tabs-nav .tab-dividers::before{content:"";display:block;position:absolute;top:0;left:1px;bottom:0;width:1px;opacity:1;background-color:var(--splitColor);border-radius:10px;transition:opacity .2s ease,background-color .3s}.search-popover-wrapper .ant-popover-inner{padding:0}.ant-pro-drawer-setting-handle{position:fixed;inset-block-start:240px;inset-inline-end:0;z-index:0;display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:16px;text-align:center;backdrop-filter:saturate(180%) blur(20px);cursor:pointer;pointer-events:auto}.ant-pro-drawer-setting-handle .icon{color:#fff}.ant-pro-drawer-setting-handle-icon-dark{color:#e5e0d8}.ant-pro-drawer-setting-theme-color{margin-top:16px;overflow:hidden}.ant-pro-drawer-setting-theme-color-block{float:left;width:20px;height:20px;margin-top:8px;margin-right:8px;font-weight:700;display:flex;color:#fff;align-items:center;justify-content:center;border-radius:2px;cursor:pointer}.ant-pro-drawer-setting-block-checkbox{display:flex;min-height:42px}.ant-pro-drawer-setting-block-checkbox-selectIcon{position:absolute;right:6px;bottom:4px;font-weight:700;font-size:14px;pointer-events:none}.ant-pro-drawer-setting-block-checkbox-item{position:relative;width:44px;height:36px;margin-right:16px;overflow:hidden;background-color:#f0f2f5;border-radius:4px;box-shadow:0 1px 2.5px 0 rgba(0,0,0,.18);cursor:pointer}.ant-pro-drawer-setting-block-checkbox-item::before{position:absolute;top:0;left:0;width:33%;height:100%;background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item::after{position:absolute;top:0;left:0;width:100%;height:25%;background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-dark{background-color:rgba(0,21,41,.85)}.ant-pro-drawer-setting-block-checkbox-item-dark::before{background-color:rgba(0,21,41,.65);content:""}.ant-pro-drawer-setting-block-checkbox-item-dark::after{background-color:rgba(0,21,41,.85)}.ant-pro-drawer-setting-block-checkbox-item-light::before{background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-light::after{background-color:#fff}.ant-pro-drawer-setting-block-checkbox-item-inverted::before,.ant-pro-drawer-setting-block-checkbox-item-side::before{z-index:1;background-color:#001529;content:""}.ant-pro-drawer-setting-block-checkbox-item-inverted::after,.ant-pro-drawer-setting-block-checkbox-item-side::after{background-color:#fff}.ant-pro-drawer-setting-block-checkbox-item-top::before{background-color:rgba(0,0,0,0);content:""}.ant-pro-drawer-setting-block-checkbox-item-top::after{background-color:#001529}.ant-pro-drawer-setting-block-checkbox-item-mix::before{background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-mix::after{background-color:#001529}.ant-pro-drawer-setting-block-checkbox-theme-item{background:#2a2c2c;box-shadow:rgba(13,13,13,.18) 0px 1px 2.5px 0px}.ant-pro-drawer-setting-block-checkbox-theme-item-light::before,.ant-pro-drawer-setting-block-checkbox-theme-item-light::after{background-color:#242525}.ant-pro-drawer-setting-block-checkbox-theme-item-dark::before,.ant-pro-drawer-setting-block-checkbox-theme-item-dark::after{background-color:rgba(15,28,41,.65)}.ant-pro-drawer-setting-block-checkbox-theme-item-side::before,.ant-pro-drawer-setting-block-checkbox-theme-item-inverted::before{background-color:#0f1c29}.ant-pro-drawer-setting-block-checkbox-theme-item-side::after,.ant-pro-drawer-setting-block-checkbox-theme-item-inverted::after{background-color:#242525}.ant-pro-drawer-setting-block-checkbox-theme-item-mix::before{background-color:#242525}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0 !important;display:none}
1
+ .d-tabs-nav{flex:1;overflow:hidden}.d-tabs-nav .ant-tabs-nav{margin-bottom:0 !important}.d-tabs-nav .ant-tabs-nav:before{border-bottom-width:0}.d-tabs-nav .ant-tabs-nav-operations{display:none !important}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab{position:relative;transition:none !important;border:0;background:rgba(0,0,0,0)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:first-child{margin-left:20px}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:first-child .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:nth-last-child(2){margin-right:20px}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:before,.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:after{position:absolute;bottom:-1px;content:"";width:30px;height:30px;border-radius:100%;box-shadow:0 0 0 40px rgba(0,0,0,0)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:before{left:-30px;clip-path:inset(50% -10px 0 50%)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:after{right:-30px;clip-path:inset(50% 50% 0 -10px)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab.ant-tabs-tab-active{border-radius:10px 10px 0 0 !important;background:var(--active-tab-color)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab.ant-tabs-tab-active .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab.ant-tabs-tab-active:before,.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab.ant-tabs-tab-active:after{z-index:10;box-shadow:0 0 0 30px var(--active-tab-color)}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:hover:not(.ant-tabs-tab-active) .tab-hover-bg{position:absolute;display:flex;flex-direction:column;justify-content:center;top:0;right:0;bottom:0;left:0;z-index:-1}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:hover:not(.ant-tabs-tab-active) .tab-hover-bg:before{content:"";width:100%;height:25px;border-radius:6px}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:hover:not(.ant-tabs-tab-active) .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:hover:not(.ant-tabs-tab-active)+.ant-tabs-tab .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:not(.ant-tabs-tab-active) .close-btn{color:#fff}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab:not(.ant-tabs-tab-active) .tab-item{color:#fff}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab-active+.ant-tabs-tab .tab-dividers::before{opacity:0}.d-tabs-nav .ant-tabs-nav-list .ant-tabs-tab-btn{display:flex;align-items:center}.d-tabs-nav .tab-close{position:absolute;top:0;right:0;bottom:0;padding:4px;display:flex;align-items:center;justify-content:center}.d-tabs-nav .tab-close .close-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;z-index:20}.d-tabs-nav .tab-close .anticon{margin:0}.d-tabs-nav .tab-item{padding-right:30px}.d-tabs-nav .tab-dividers{position:absolute;z-index:0;height:14px;left:-2px}.d-tabs-nav .tab-dividers::before{content:"";display:block;position:absolute;top:0;left:1px;bottom:0;width:1px;opacity:1;background-color:var(--splitColor);border-radius:10px;transition:opacity .2s ease,background-color .3s}.search-popover-wrapper .ant-popover-inner{padding:0}.ant-pro-drawer-setting-handle{position:fixed;inset-block-start:240px;inset-inline-end:0;z-index:1;display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:16px;text-align:center;backdrop-filter:saturate(180%) blur(20px);cursor:pointer;pointer-events:auto}.ant-pro-drawer-setting-handle .icon{color:#fff}.ant-pro-drawer-setting-handle-icon-dark{color:#e5e0d8}.ant-pro-drawer-setting-theme-color{margin-top:16px;overflow:hidden}.ant-pro-drawer-setting-theme-color-block{float:left;width:20px;height:20px;margin-top:8px;margin-right:8px;font-weight:700;display:flex;color:#fff;align-items:center;justify-content:center;border-radius:2px;cursor:pointer}.ant-pro-drawer-setting-block-checkbox{display:flex;min-height:42px}.ant-pro-drawer-setting-block-checkbox-selectIcon{position:absolute;right:6px;bottom:4px;font-weight:700;font-size:14px;pointer-events:none}.ant-pro-drawer-setting-block-checkbox-item{position:relative;width:44px;height:36px;margin-right:16px;overflow:hidden;background-color:#f0f2f5;border-radius:4px;box-shadow:0 1px 2.5px 0 rgba(0,0,0,.18);cursor:pointer}.ant-pro-drawer-setting-block-checkbox-item::before{position:absolute;top:0;left:0;width:33%;height:100%;background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item::after{position:absolute;top:0;left:0;width:100%;height:25%;background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-dark{background-color:rgba(0,21,41,.85)}.ant-pro-drawer-setting-block-checkbox-item-dark::before{background-color:rgba(0,21,41,.65);content:""}.ant-pro-drawer-setting-block-checkbox-item-dark::after{background-color:rgba(0,21,41,.85)}.ant-pro-drawer-setting-block-checkbox-item-light::before{background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-light::after{background-color:#fff}.ant-pro-drawer-setting-block-checkbox-item-inverted::before,.ant-pro-drawer-setting-block-checkbox-item-side::before{z-index:1;background-color:#001529;content:""}.ant-pro-drawer-setting-block-checkbox-item-inverted::after,.ant-pro-drawer-setting-block-checkbox-item-side::after{background-color:#fff}.ant-pro-drawer-setting-block-checkbox-item-top::before{background-color:rgba(0,0,0,0);content:""}.ant-pro-drawer-setting-block-checkbox-item-top::after{background-color:#001529}.ant-pro-drawer-setting-block-checkbox-item-mix::before{background-color:#fff;content:""}.ant-pro-drawer-setting-block-checkbox-item-mix::after{background-color:#001529}.ant-pro-drawer-setting-block-checkbox-theme-item{background:#2a2c2c;box-shadow:rgba(13,13,13,.18) 0px 1px 2.5px 0px}.ant-pro-drawer-setting-block-checkbox-theme-item-light::before,.ant-pro-drawer-setting-block-checkbox-theme-item-light::after{background-color:#242525}.ant-pro-drawer-setting-block-checkbox-theme-item-dark::before,.ant-pro-drawer-setting-block-checkbox-theme-item-dark::after{background-color:rgba(15,28,41,.65)}.ant-pro-drawer-setting-block-checkbox-theme-item-side::before,.ant-pro-drawer-setting-block-checkbox-theme-item-inverted::before{background-color:#0f1c29}.ant-pro-drawer-setting-block-checkbox-theme-item-side::after,.ant-pro-drawer-setting-block-checkbox-theme-item-inverted::after{background-color:#242525}.ant-pro-drawer-setting-block-checkbox-theme-item-mix::before{background-color:#242525}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0 !important;display:none}.main-enter-active{transition:.2s}.main-leave-active{transition:.15s}.main-enter-from{opacity:0;margin-left:-20px}.main-leave-to{opacity:0;margin-left:20px}
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, watch, resolveComponent, createElementBlock, openBlock, Fragment, createTextVNode, createVNode, toDisplayString } from 'vue';
1
+ import { defineComponent, ref, watch, resolveComponent, createBlock, openBlock } from 'vue';
2
2
  import dayjs from '../../_virtual/dayjs.min.mjs';
3
3
 
4
4
  "use strict";
@@ -70,26 +70,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
70
70
  };
71
71
  return (_ctx, _cache) => {
72
72
  const _component_a_range_picker = resolveComponent("a-range-picker");
73
- return openBlock(), createElementBlock(
74
- Fragment,
75
- null,
76
- [
77
- createTextVNode(
78
- toDisplayString(innerValue.value) + " ",
79
- 1
80
- /* TEXT */
81
- ),
82
- createVNode(_component_a_range_picker, {
83
- style: { "width": "100%" },
84
- value: innerValue.value,
85
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event),
86
- placeholder: ["\u5F00\u59CB\u65F6\u95F4", "\u7ED3\u675F\u65F6\u95F4"],
87
- onChange: handleChange
88
- }, null, 8, ["value"])
89
- ],
90
- 64
91
- /* STABLE_FRAGMENT */
92
- );
73
+ return openBlock(), createBlock(_component_a_range_picker, {
74
+ style: { "width": "100%" },
75
+ value: innerValue.value,
76
+ "onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event),
77
+ placeholder: ["\u5F00\u59CB\u65F6\u95F4", "\u7ED3\u675F\u65F6\u95F4"],
78
+ onChange: handleChange
79
+ }, null, 8, ["value"]);
93
80
  };
94
81
  }
95
82
  });
@@ -1 +1 @@
1
- {"version":3,"file":"RangePicker.vue2.mjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, watch } from \"vue\";\r\n\r\nimport type { RangeValue } from \"ant-design-vue/es/vc-picker/interface\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport dayjs from \"dayjs\";\r\n\r\n// 定义 props 类型\r\ninterface Props {\r\n value: Record<string, unknown>; // 使用 any 以兼容任意字段\r\n startField?: string;\r\n endField?: string;\r\n format?: string;\r\n}\r\n\r\nconst props = defineProps({\n value: { type: Object, required: true, default: () => ({}) },\n startField: { type: String, required: false, default: \"startTime\" },\n endField: { type: String, required: false, default: \"endTime\" },\n format: { type: String, required: false, default: \"YYYY-MM-DD\" }\n});\r\n\r\n// 定义 emits 类型\r\nconst emits = defineEmits([\"update:value\", \"change\"]);\r\n\r\n// 定义 innerValue 的类型为 RangeValue<Dayjs>\r\nconst innerValue = ref<RangeValue<Dayjs>>(null);\r\n\r\n// 监听外部 value 变化,更新内部值\r\nwatch(\r\n () => props.value,\r\n newVal => {\r\n if (newVal[props.startField] && newVal[props.endField]) {\r\n innerValue.value = [\r\n dayjs(newVal[props.startField] as string),\r\n dayjs(newVal[props.endField] as string)\r\n ];\r\n } else {\r\n innerValue.value = null;\r\n }\r\n },\r\n { immediate: true, deep: true }\r\n);\r\n\r\n// 处理日期变化\r\nconst handleChange = (dates: RangeValue<Dayjs>) => {\r\n if (dates && dates.length === 2) {\r\n const [startTime, endTime] = dates;\r\n\r\n // 创建一个新对象,保留原 params 的其他属性\r\n const formattedValue = {\r\n ...props.value, // 保留原对象的所有属性\r\n [props.startField]: startTime ? startTime.format(props.format) : null,\r\n [props.endField]: endTime ? endTime.format(props.format) : null\r\n };\r\n\r\n emits(\"update:value\", formattedValue);\r\n emits(\"change\", formattedValue);\r\n } else {\r\n // 如果日期为空,则清空 startField 和 endField\r\n const formattedValue = {\r\n ...props.value, // 保留原对象的所有属性\r\n [props.startField]: null,\r\n [props.endField]: null\r\n };\r\n\r\n emits(\"update:value\", formattedValue);\r\n emits(\"change\", formattedValue);\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n {{ innerValue }}\r\n <a-range-picker\r\n style=\"width: 100%\"\r\n v-model:value=\"innerValue\"\r\n :placeholder=\"['开始时间', '结束时间']\"\r\n @change=\"handleChange\"\r\n />\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAQd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAGd,IAAM,MAAA,UAAA,GAAa,IAAuB,IAAI,CAAA;AAG9C,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,CAAU,MAAA,KAAA;AACR,QAAA,IAAI,OAAO,KAAM,CAAA,UAAU,KAAK,MAAO,CAAA,KAAA,CAAM,QAAQ,CAAG,EAAA;AACtD,UAAA,UAAA,CAAW,KAAQ,GAAA;AAAA,YACjB,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,UAAU,CAAW,CAAA;AAAA,YACxC,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAQ,CAAW;AAAA,WACxC;AAAA,SACK,MAAA;AACL,UAAA,UAAA,CAAW,KAAQ,GAAA,IAAA;AAAA;AACrB,OACF;AAAA,MACA,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,IAAK;AAAA,KAChC;AAGA,IAAM,MAAA,YAAA,GAAe,CAAC,KAA6B,KAAA;AACjD,MAAI,IAAA,KAAA,IAAS,KAAM,CAAA,MAAA,KAAW,CAAG,EAAA;AAC/B,QAAM,MAAA,CAAC,SAAW,EAAA,OAAO,CAAI,GAAA,KAAA;AAG7B,QAAM,MAAA,cAAA,GAAiB,aAClB,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,CAAM,KADY,CAAA,EAAA;AAAA;AAAA,UAErB,CAAC,MAAM,UAAU,GAAG,YAAY,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,MAAM,CAAI,GAAA,IAAA;AAAA,UACjE,CAAC,MAAM,QAAQ,GAAG,UAAU,OAAQ,CAAA,MAAA,CAAO,KAAM,CAAA,MAAM,CAAI,GAAA;AAAA,SAC7D,CAAA;AAEA,QAAA,KAAA,CAAM,gBAAgB,cAAc,CAAA;AACpC,QAAA,KAAA,CAAM,UAAU,cAAc,CAAA;AAAA,OACzB,MAAA;AAEL,QAAM,MAAA,cAAA,GAAiB,aAClB,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,CAAM,KADY,CAAA,EAAA;AAAA;AAAA,UAErB,CAAC,KAAM,CAAA,UAAU,GAAG,IAAA;AAAA,UACpB,CAAC,KAAM,CAAA,QAAQ,GAAG;AAAA,SACpB,CAAA;AAEA,QAAA,KAAA,CAAM,gBAAgB,cAAc,CAAA;AACpC,QAAA,KAAA,CAAM,UAAU,cAAc,CAAA;AAAA;AAChC,KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"RangePicker.vue2.mjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, watch } from \"vue\";\r\n\r\nimport type { RangeValue } from \"ant-design-vue/es/vc-picker/interface\";\r\nimport type { Dayjs } from \"dayjs\";\r\nimport dayjs from \"dayjs\";\r\n\r\n// 定义 props 类型\r\ninterface Props {\r\n value: Record<string, unknown>; // 使用 any 以兼容任意字段\r\n startField?: string;\r\n endField?: string;\r\n format?: string;\r\n}\r\n\r\nconst props = defineProps({\n value: { type: Object, required: true, default: () => ({}) },\n startField: { type: String, required: false, default: \"startTime\" },\n endField: { type: String, required: false, default: \"endTime\" },\n format: { type: String, required: false, default: \"YYYY-MM-DD\" }\n});\r\n\r\n// 定义 emits 类型\r\nconst emits = defineEmits([\"update:value\", \"change\"]);\r\n\r\n// 定义 innerValue 的类型为 RangeValue<Dayjs>\r\nconst innerValue = ref<RangeValue<Dayjs>>(null);\r\n\r\n// 监听外部 value 变化,更新内部值\r\nwatch(\r\n () => props.value,\r\n newVal => {\r\n if (newVal[props.startField] && newVal[props.endField]) {\r\n innerValue.value = [\r\n dayjs(newVal[props.startField] as string),\r\n dayjs(newVal[props.endField] as string)\r\n ];\r\n } else {\r\n innerValue.value = null;\r\n }\r\n },\r\n { immediate: true, deep: true }\r\n);\r\n\r\n// 处理日期变化\r\nconst handleChange = (dates: RangeValue<Dayjs>) => {\r\n if (dates && dates.length === 2) {\r\n const [startTime, endTime] = dates;\r\n\r\n // 创建一个新对象,保留原 params 的其他属性\r\n const formattedValue = {\r\n ...props.value, // 保留原对象的所有属性\r\n [props.startField]: startTime ? startTime.format(props.format) : null,\r\n [props.endField]: endTime ? endTime.format(props.format) : null\r\n };\r\n\r\n emits(\"update:value\", formattedValue);\r\n emits(\"change\", formattedValue);\r\n } else {\r\n // 如果日期为空,则清空 startField 和 endField\r\n const formattedValue = {\r\n ...props.value, // 保留原对象的所有属性\r\n [props.startField]: null,\r\n [props.endField]: null\r\n };\r\n\r\n emits(\"update:value\", formattedValue);\r\n emits(\"change\", formattedValue);\r\n }\r\n};\r\n</script>\r\n\r\n<template>\r\n <a-range-picker\r\n style=\"width: 100%\"\r\n v-model:value=\"innerValue\"\r\n :placeholder=\"['开始时间', '结束时间']\"\r\n @change=\"handleChange\"\r\n />\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAQd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAGd,IAAM,MAAA,UAAA,GAAa,IAAuB,IAAI,CAAA;AAG9C,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,CAAU,MAAA,KAAA;AACR,QAAA,IAAI,OAAO,KAAM,CAAA,UAAU,KAAK,MAAO,CAAA,KAAA,CAAM,QAAQ,CAAG,EAAA;AACtD,UAAA,UAAA,CAAW,KAAQ,GAAA;AAAA,YACjB,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,UAAU,CAAW,CAAA;AAAA,YACxC,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,QAAQ,CAAW;AAAA,WACxC;AAAA,SACK,MAAA;AACL,UAAA,UAAA,CAAW,KAAQ,GAAA,IAAA;AAAA;AACrB,OACF;AAAA,MACA,EAAE,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,IAAK;AAAA,KAChC;AAGA,IAAM,MAAA,YAAA,GAAe,CAAC,KAA6B,KAAA;AACjD,MAAI,IAAA,KAAA,IAAS,KAAM,CAAA,MAAA,KAAW,CAAG,EAAA;AAC/B,QAAM,MAAA,CAAC,SAAW,EAAA,OAAO,CAAI,GAAA,KAAA;AAG7B,QAAM,MAAA,cAAA,GAAiB,aAClB,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,CAAM,KADY,CAAA,EAAA;AAAA;AAAA,UAErB,CAAC,MAAM,UAAU,GAAG,YAAY,SAAU,CAAA,MAAA,CAAO,KAAM,CAAA,MAAM,CAAI,GAAA,IAAA;AAAA,UACjE,CAAC,MAAM,QAAQ,GAAG,UAAU,OAAQ,CAAA,MAAA,CAAO,KAAM,CAAA,MAAM,CAAI,GAAA;AAAA,SAC7D,CAAA;AAEA,QAAA,KAAA,CAAM,gBAAgB,cAAc,CAAA;AACpC,QAAA,KAAA,CAAM,UAAU,cAAc,CAAA;AAAA,OACzB,MAAA;AAEL,QAAM,MAAA,cAAA,GAAiB,aAClB,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,CAAM,KADY,CAAA,EAAA;AAAA;AAAA,UAErB,CAAC,KAAM,CAAA,UAAU,GAAG,IAAA;AAAA,UACpB,CAAC,KAAM,CAAA,QAAQ,GAAG;AAAA,SACpB,CAAA;AAEA,QAAA,KAAA,CAAM,gBAAgB,cAAc,CAAA;AACpC,QAAA,KAAA,CAAM,UAAU,cAAc,CAAA;AAAA;AAChC,KACF;;;;;;;;;;;;;;;;"}
@@ -12,6 +12,9 @@ export { default as RangePicker } from './date/RangePicker.vue2.mjs';
12
12
  export { default as FormLayout } from './form/FormLayout.mjs';
13
13
  export { default as Moon } from './icon/Moon.vue.mjs';
14
14
  export { default as Sun } from './icon/Sun.vue.mjs';
15
+ export { default as AppTheme } from './layout/components/layout/ThemeApp.vue2.mjs';
16
+ export { default as HeaderLayout } from './layout/components/layout/HeaderLayout.vue2.mjs';
17
+ export { default as Menu } from './layout/components/menu/Menu.mjs';
15
18
  export { default as Layout } from './layout/Layout.vue2.mjs';
16
19
  export { default as List } from './layout/List.mjs';
17
20
  export { default as Show } from './layout/Show.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
@@ -1,18 +1,17 @@
1
- import { defineComponent, watch, ref, computed, resolveComponent, createElementBlock, openBlock, Fragment, createVNode, withCtx, normalizeClass, unref, renderSlot } from 'vue';
1
+ import { defineComponent, watch, ref, provide, computed, resolveComponent, createElementBlock, openBlock, Fragment, createVNode, normalizeClass, unref, withCtx, createElementVNode, renderSlot } from 'vue';
2
2
  import { useRoute } from 'vue-router';
3
3
  import { storeToRefs } from 'pinia';
4
- import DMenu from './components/menu/Menu.mjs';
4
+ import Menu from './components/menu/Menu.mjs';
5
5
  import SettingDrawer from './components/settings/SettingDrawer.mjs';
6
6
  import { useAppStore, useKeepAliveStore } from '@ditari/store';
7
7
  import { css } from '@emotion/css';
8
8
  import './components/layout/HeaderLayout.vue.mjs';
9
9
  import './components/layout/RouterContent.vue.mjs';
10
- import './components/layout/ThemeApp.vue.mjs';
11
- import _sfc_main$1 from './components/layout/ThemeApp.vue2.mjs';
12
- import _sfc_main$2 from './components/layout/HeaderLayout.vue2.mjs';
13
- import _sfc_main$3 from './components/layout/RouterContent.vue2.mjs';
10
+ import _sfc_main$1 from './components/layout/HeaderLayout.vue2.mjs';
11
+ import _sfc_main$2 from './components/layout/RouterContent.vue2.mjs';
14
12
 
15
13
  "use strict";
14
+ const _hoisted_1 = { class: "app-side" };
16
15
  var _sfc_main = /* @__PURE__ */ defineComponent({
17
16
  __name: "Layout",
18
17
  props: {
@@ -26,7 +25,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
26
25
  const route = useRoute();
27
26
  const { layoutStyle, siderStyle, rightStyle, rightContentStyle } = useStyle();
28
27
  useKeepAlive();
29
- const { watermarkContent } = useWatermark();
28
+ useWatermark();
30
29
  function useKeepAlive() {
31
30
  const { save } = useKeepAliveStore();
32
31
  watch(
@@ -40,17 +39,15 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
40
39
  );
41
40
  }
42
41
  function useWatermark() {
43
- const watermarkContent2 = ref("");
42
+ const watermarkContent = ref("");
43
+ provide("watermarkContent", watermarkContent);
44
44
  watch(
45
45
  () => props.watermark,
46
46
  (val) => {
47
- watermarkContent2.value = val.content || "";
47
+ watermarkContent.value = val.content || "";
48
48
  },
49
49
  { deep: true, immediate: true }
50
50
  );
51
- return {
52
- watermarkContent: watermarkContent2
53
- };
54
51
  }
55
52
  function useStyle() {
56
53
  const layoutStyle2 = css`
@@ -68,12 +65,14 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
68
65
  top: 0;
69
66
  bottom: 0;
70
67
  left: 0;
68
+ z-index: 1;
71
69
  width: ${layout.value.sideWidth}px;
72
70
 
73
- ${modeConfig.value.mode === "light" ? `background:${sideTokenStyle.value.bgColor}!important;` : ""}
74
- .ant-layout-sider-children {
71
+ .app-side {
72
+ height: 100%;
75
73
  display: flex;
76
74
  flex-direction: column;
75
+ ${modeConfig.value.mode === "light" ? `background:${sideTokenStyle.value.bgColor};` : ""}
77
76
  }
78
77
  `
79
78
  );
@@ -98,66 +97,52 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
98
97
  return (_ctx, _cache) => {
99
98
  const _component_a_layout_sider = resolveComponent("a-layout-sider");
100
99
  const _component_a_layout_content = resolveComponent("a-layout-content");
101
- const _component_a_watermark = resolveComponent("a-watermark");
102
100
  const _component_a_layout = resolveComponent("a-layout");
103
101
  const _component_a_back_top = resolveComponent("a-back-top");
104
102
  return openBlock(), createElementBlock(
105
103
  Fragment,
106
104
  null,
107
105
  [
108
- createVNode(_sfc_main$1, null, {
106
+ createVNode(_component_a_layout, {
107
+ class: normalizeClass(unref(layoutStyle))
108
+ }, {
109
109
  default: withCtx(() => [
110
+ createVNode(_component_a_layout_sider, {
111
+ collapsed: unref(layout).collapsed,
112
+ "onUpdate:collapsed": _cache[0] || (_cache[0] = ($event) => unref(layout).collapsed = $event),
113
+ theme: "light",
114
+ collapsible: "",
115
+ trigger: null,
116
+ class: normalizeClass(unref(siderStyle))
117
+ }, {
118
+ default: withCtx(() => [
119
+ createElementVNode("div", _hoisted_1, [
120
+ renderSlot(_ctx.$slots, "logo"),
121
+ createVNode(unref(Menu))
122
+ ])
123
+ ]),
124
+ _: 3
125
+ /* FORWARDED */
126
+ }, 8, ["collapsed", "class"]),
110
127
  createVNode(_component_a_layout, {
111
- class: normalizeClass(unref(layoutStyle))
128
+ class: normalizeClass(unref(rightStyle))
112
129
  }, {
113
130
  default: withCtx(() => [
114
- createVNode(_component_a_layout_sider, {
115
- collapsed: unref(layout).collapsed,
116
- "onUpdate:collapsed": _cache[0] || (_cache[0] = ($event) => unref(layout).collapsed = $event),
117
- theme: "light",
118
- collapsible: "",
119
- trigger: null,
120
- class: normalizeClass(unref(siderStyle))
121
- }, {
131
+ createVNode(_sfc_main$1, null, {
122
132
  default: withCtx(() => [
123
- renderSlot(_ctx.$slots, "logo"),
124
- createVNode(unref(DMenu))
133
+ renderSlot(_ctx.$slots, "headerRight")
125
134
  ]),
126
135
  _: 3
127
136
  /* FORWARDED */
128
- }, 8, ["collapsed", "class"]),
129
- createVNode(_component_a_layout, {
130
- class: normalizeClass(unref(rightStyle))
137
+ }),
138
+ createVNode(_component_a_layout_content, {
139
+ class: normalizeClass(unref(rightContentStyle))
131
140
  }, {
132
141
  default: withCtx(() => [
133
- createVNode(_component_a_watermark, {
134
- content: unref(watermarkContent),
135
- style: { "display": "flex", "height": "100%" }
136
- }, {
137
- default: withCtx(() => [
138
- createVNode(_sfc_main$2, null, {
139
- default: withCtx(() => [
140
- renderSlot(_ctx.$slots, "headerRight")
141
- ]),
142
- _: 3
143
- /* FORWARDED */
144
- }),
145
- createVNode(_component_a_layout_content, {
146
- class: normalizeClass(unref(rightContentStyle))
147
- }, {
148
- default: withCtx(() => [
149
- createVNode(_sfc_main$3)
150
- ]),
151
- _: 1
152
- /* STABLE */
153
- }, 8, ["class"])
154
- ]),
155
- _: 3
156
- /* FORWARDED */
157
- }, 8, ["content"])
142
+ createVNode(_sfc_main$2)
158
143
  ]),
159
- _: 3
160
- /* FORWARDED */
144
+ _: 1
145
+ /* STABLE */
161
146
  }, 8, ["class"])
162
147
  ]),
163
148
  _: 3
@@ -166,7 +151,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
166
151
  ]),
167
152
  _: 3
168
153
  /* FORWARDED */
169
- }),
154
+ }, 8, ["class"]),
170
155
  createVNode(unref(SettingDrawer)),
171
156
  createVNode(_component_a_back_top)
172
157
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.vue2.mjs","sources":["../../../../src/components/layout/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, ref, watch } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport DMenu from \"./components/menu/Menu\";\r\nimport SettingDrawer from \"./components/settings/SettingDrawer\";\r\nimport { useAppStore, useKeepAliveStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nimport HeaderLayout from \"./components/layout/HeaderLayout.vue\";\r\nimport RouterContent from \"./components/layout/RouterContent.vue\";\r\nimport AppTheme from \"./components/layout/ThemeApp.vue\";\r\n\r\nconst props = defineProps({\n watermark: { type: Object, required: false, default: () => ({\r\n content: \"\"\r\n }) }\n});\r\n\r\nconst { layout, modeConfig, sideTokenStyle } = storeToRefs(useAppStore());\r\nconst route = useRoute();\r\n\r\nconst { layoutStyle, siderStyle, rightStyle, rightContentStyle } = useStyle();\r\nuseKeepAlive();\r\nconst { watermarkContent } = useWatermark();\r\n\r\nfunction useKeepAlive() {\r\n // 保存需要被缓存的标签\r\n const { save } = useKeepAliveStore();\r\n\r\n watch(\r\n () => route.path,\r\n () => {\r\n save(route);\r\n },\r\n {\r\n immediate: true\r\n }\r\n );\r\n}\r\n\r\nfunction useWatermark() {\r\n const watermarkContent = ref(\"\");\r\n // 监听 watermark 的变化\r\n watch(\r\n () => props.watermark,\r\n val => {\r\n watermarkContent.value = val.content || \"\";\r\n },\r\n { deep: true, immediate: true }\r\n );\r\n\r\n return {\r\n watermarkContent\r\n };\r\n}\r\n\r\nfunction useStyle() {\r\n const layoutStyle = css`\r\n height: 100%;\r\n `;\r\n\r\n const transitionStyle = css`\r\n transition: margin-left 0.4s cubic-bezier(0.22, 1.2, 0.36, 1);\r\n `;\r\n\r\n const left = computed(\r\n () =>\r\n `${layout.value.collapsed ? layout.value.collapsedWidth : layout.value.sideWidth}px`\r\n );\r\n\r\n const siderStyle = computed(\r\n () => css`\r\n position: fixed !important;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n width: ${layout.value.sideWidth}px;\r\n\r\n ${modeConfig.value.mode === \"light\"\r\n ? `background:${sideTokenStyle.value.bgColor}!important;`\r\n : \"\"}\r\n .ant-layout-sider-children {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n `\r\n );\r\n\r\n const rightStyle = computed(\r\n () => css`\r\n margin-left: ${left.value};\r\n ${transitionStyle}\r\n `\r\n );\r\n\r\n const rightContentStyle = computed(\r\n () => css`\r\n padding-top: ${layout.value.headerHeight}px;\r\n `\r\n );\r\n\r\n return {\r\n layoutStyle,\r\n siderStyle,\r\n rightStyle,\r\n rightContentStyle\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <app-theme>\r\n <a-layout :class=\"layoutStyle\">\r\n <a-layout-sider\r\n v-model:collapsed=\"layout.collapsed\"\r\n theme=\"light\"\r\n collapsible\r\n :trigger=\"null\"\r\n :class=\"siderStyle\"\r\n >\r\n <slot name=\"logo\"></slot>\r\n <d-menu />\r\n </a-layout-sider>\r\n <a-layout :class=\"rightStyle\">\r\n <a-watermark\r\n :content=\"watermarkContent\"\r\n style=\"display: flex; height: 100%\"\r\n >\r\n <header-layout>\r\n <slot name=\"headerRight\"></slot>\r\n </header-layout>\r\n <a-layout-content :class=\"rightContentStyle\">\r\n <RouterContent />\r\n </a-layout-content>\r\n </a-watermark>\r\n </a-layout>\r\n </a-layout>\r\n </app-theme>\r\n <SettingDrawer />\r\n <a-back-top></a-back-top>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["watermarkContent","layoutStyle","siderStyle","rightStyle","rightContentStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,EAAE,MAAQ,EAAA,UAAA,EAAY,gBAAmB,GAAA,WAAA,CAAY,aAAa,CAAA;AACxE,IAAA,MAAM,QAAQ,QAAS,EAAA;AAEvB,IAAA,MAAM,EAAE,WAAa,EAAA,UAAA,EAAY,UAAY,EAAA,iBAAA,KAAsB,QAAS,EAAA;AAC5E,IAAa,YAAA,EAAA;AACb,IAAM,MAAA,EAAE,gBAAiB,EAAA,GAAI,YAAa,EAAA;AAE1C,IAAA,SAAS,YAAe,GAAA;AAEtB,MAAM,MAAA,EAAE,IAAK,EAAA,GAAI,iBAAkB,EAAA;AAEnC,MAAA,KAAA;AAAA,QACE,MAAM,KAAM,CAAA,IAAA;AAAA,QACZ,MAAM;AACJ,UAAA,IAAA,CAAK,KAAK,CAAA;AAAA,SACZ;AAAA,QACA;AAAA,UACE,SAAW,EAAA;AAAA;AACb,OACF;AAAA;AAGF,IAAA,SAAS,YAAe,GAAA;AACtB,MAAMA,MAAAA,iBAAAA,GAAmB,IAAI,EAAE,CAAA;AAE/B,MAAA,KAAA;AAAA,QACE,MAAM,KAAM,CAAA,SAAA;AAAA,QACZ,CAAO,GAAA,KAAA;AACL,UAAAA,iBAAAA,CAAiB,KAAQ,GAAA,GAAA,CAAI,OAAW,IAAA,EAAA;AAAA,SAC1C;AAAA,QACA,EAAE,IAAA,EAAM,IAAM,EAAA,SAAA,EAAW,IAAK;AAAA,OAChC;AAEA,MAAO,OAAA;AAAA,QACL,gBAAAA,EAAAA;AAAA,OACF;AAAA;AAGF,IAAA,SAAS,QAAW,GAAA;AAClB,MAAA,MAAMC,YAAc,GAAA,GAAA;AAAA;AAAA,EAAA,CAAA;AAIpB,MAAA,MAAM,eAAkB,GAAA,GAAA;AAAA;AAAA,EAAA,CAAA;AAIxB,MAAA,MAAM,IAAO,GAAA,QAAA;AAAA,QACX,MACE,CAAG,EAAA,MAAA,CAAO,KAAM,CAAA,SAAA,GAAY,OAAO,KAAM,CAAA,cAAA,GAAiB,MAAO,CAAA,KAAA,CAAM,SAAS,CAAA,EAAA;AAAA,OACpF;AAEA,MAAA,MAAMC,WAAa,GAAA,QAAA;AAAA,QACjB,MAAM,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAKK,EAAA,MAAA,CAAO,MAAM,SAAS,CAAA;;AAAA,MAE7B,EAAA,UAAA,CAAW,MAAM,IAAS,KAAA,OAAA,GACxB,cAAc,cAAe,CAAA,KAAA,CAAM,OAAO,CAAA,WAAA,CAAA,GAC1C,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,OAMV;AAEA,MAAA,MAAMC,WAAa,GAAA,QAAA;AAAA,QACjB,MAAM,GAAA;AAAA,mBAAA,EACW,KAAK,KAAK,CAAA;AAAA,MAAA,EACvB,eAAe;AAAA,IAAA;AAAA,OAErB;AAEA,MAAA,MAAMC,kBAAoB,GAAA,QAAA;AAAA,QACxB,MAAM,GAAA;AAAA,mBACW,EAAA,MAAA,CAAO,MAAM,YAAY,CAAA;AAAA,IAAA;AAAA,OAE5C;AAEA,MAAO,OAAA;AAAA,QACL,WAAAH,EAAAA,YAAAA;AAAA,QACA,UAAAC,EAAAA,WAAAA;AAAA,QACA,UAAAC,EAAAA,WAAAA;AAAA,QACA,iBAAAC,EAAAA;AAAA,OACF;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Layout.vue2.mjs","sources":["../../../../src/components/layout/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, provide, ref, watch } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport DMenu from \"./components/menu/Menu\";\r\nimport SettingDrawer from \"./components/settings/SettingDrawer\";\r\nimport { useAppStore, useKeepAliveStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nimport HeaderLayout from \"./components/layout/HeaderLayout.vue\";\r\nimport RouterContent from \"./components/layout/RouterContent.vue\";\r\nimport AppTheme from \"./components/layout/ThemeApp.vue\";\r\n\r\nconst props = defineProps({\n watermark: { type: Object, required: false, default: () => ({\r\n content: \"\"\r\n }) }\n});\r\n\r\nconst { layout, modeConfig, sideTokenStyle } = storeToRefs(useAppStore());\r\nconst route = useRoute();\r\n\r\nconst { layoutStyle, siderStyle, rightStyle, rightContentStyle } = useStyle();\r\nuseKeepAlive();\r\nuseWatermark();\r\n\r\nfunction useKeepAlive() {\r\n // 保存需要被缓存的标签\r\n const { save } = useKeepAliveStore();\r\n\r\n watch(\r\n () => route.path,\r\n () => {\r\n save(route);\r\n },\r\n {\r\n immediate: true\r\n }\r\n );\r\n}\r\n\r\nfunction useWatermark() {\r\n const watermarkContent = ref(\"\");\r\n provide(\"watermarkContent\", watermarkContent);\r\n // 监听 watermark 的变化\r\n watch(\r\n () => props.watermark,\r\n val => {\r\n watermarkContent.value = val.content || \"\";\r\n },\r\n { deep: true, immediate: true }\r\n );\r\n}\r\n\r\nfunction useStyle() {\r\n const layoutStyle = css`\r\n height: 100%;\r\n `;\r\n\r\n const transitionStyle = css`\r\n transition: margin-left 0.4s cubic-bezier(0.22, 1.2, 0.36, 1);\r\n `;\r\n\r\n const left = computed(\r\n () =>\r\n `${layout.value.collapsed ? layout.value.collapsedWidth : layout.value.sideWidth}px`\r\n );\r\n\r\n const siderStyle = computed(\r\n () => css`\r\n position: fixed !important;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n width: ${layout.value.sideWidth}px;\r\n\r\n .app-side {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n ${modeConfig.value.mode === \"light\"\r\n ? `background:${sideTokenStyle.value.bgColor};`\r\n : \"\"}\r\n }\r\n `\r\n );\r\n\r\n const rightStyle = computed(\r\n () => css`\r\n margin-left: ${left.value};\r\n ${transitionStyle}\r\n `\r\n );\r\n\r\n const rightContentStyle = computed(\r\n () => css`\r\n padding-top: ${layout.value.headerHeight}px;\r\n `\r\n );\r\n\r\n return {\r\n layoutStyle,\r\n siderStyle,\r\n rightStyle,\r\n rightContentStyle\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <a-layout :class=\"layoutStyle\">\r\n <a-layout-sider\r\n v-model:collapsed=\"layout.collapsed\"\r\n theme=\"light\"\r\n collapsible\r\n :trigger=\"null\"\r\n :class=\"siderStyle\"\r\n >\r\n <div class=\"app-side\">\r\n <slot name=\"logo\"></slot>\r\n <d-menu />\r\n </div>\r\n </a-layout-sider>\r\n <a-layout :class=\"rightStyle\">\r\n <header-layout>\r\n <slot name=\"headerRight\"></slot>\r\n </header-layout>\r\n <a-layout-content :class=\"rightContentStyle\">\r\n <RouterContent />\r\n </a-layout-content>\r\n </a-layout>\r\n </a-layout>\r\n <SettingDrawer />\r\n <a-back-top></a-back-top>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["layoutStyle","siderStyle","rightStyle","rightContentStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,EAAE,MAAQ,EAAA,UAAA,EAAY,gBAAmB,GAAA,WAAA,CAAY,aAAa,CAAA;AACxE,IAAA,MAAM,QAAQ,QAAS,EAAA;AAEvB,IAAA,MAAM,EAAE,WAAa,EAAA,UAAA,EAAY,UAAY,EAAA,iBAAA,KAAsB,QAAS,EAAA;AAC5E,IAAa,YAAA,EAAA;AACb,IAAa,YAAA,EAAA;AAEb,IAAA,SAAS,YAAe,GAAA;AAEtB,MAAM,MAAA,EAAE,IAAK,EAAA,GAAI,iBAAkB,EAAA;AAEnC,MAAA,KAAA;AAAA,QACE,MAAM,KAAM,CAAA,IAAA;AAAA,QACZ,MAAM;AACJ,UAAA,IAAA,CAAK,KAAK,CAAA;AAAA,SACZ;AAAA,QACA;AAAA,UACE,SAAW,EAAA;AAAA;AACb,OACF;AAAA;AAGF,IAAA,SAAS,YAAe,GAAA;AACtB,MAAM,MAAA,gBAAA,GAAmB,IAAI,EAAE,CAAA;AAC/B,MAAA,OAAA,CAAQ,oBAAoB,gBAAgB,CAAA;AAE5C,MAAA,KAAA;AAAA,QACE,MAAM,KAAM,CAAA,SAAA;AAAA,QACZ,CAAO,GAAA,KAAA;AACL,UAAiB,gBAAA,CAAA,KAAA,GAAQ,IAAI,OAAW,IAAA,EAAA;AAAA,SAC1C;AAAA,QACA,EAAE,IAAA,EAAM,IAAM,EAAA,SAAA,EAAW,IAAK;AAAA,OAChC;AAAA;AAGF,IAAA,SAAS,QAAW,GAAA;AAClB,MAAA,MAAMA,YAAc,GAAA,GAAA;AAAA;AAAA,EAAA,CAAA;AAIpB,MAAA,MAAM,eAAkB,GAAA,GAAA;AAAA;AAAA,EAAA,CAAA;AAIxB,MAAA,MAAM,IAAO,GAAA,QAAA;AAAA,QACX,MACE,CAAG,EAAA,MAAA,CAAO,KAAM,CAAA,SAAA,GAAY,OAAO,KAAM,CAAA,cAAA,GAAiB,MAAO,CAAA,KAAA,CAAM,SAAS,CAAA,EAAA;AAAA,OACpF;AAEA,MAAA,MAAMC,WAAa,GAAA,QAAA;AAAA,QACjB,MAAM,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAMK,EAAA,MAAA,CAAO,MAAM,SAAS,CAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,QAM3B,EAAA,UAAA,CAAW,MAAM,IAAS,KAAA,OAAA,GACxB,cAAc,cAAe,CAAA,KAAA,CAAM,OAAO,CAAA,CAAA,CAAA,GAC1C,EAAE;AAAA;AAAA,IAAA;AAAA,OAGZ;AAEA,MAAA,MAAMC,WAAa,GAAA,QAAA;AAAA,QACjB,MAAM,GAAA;AAAA,mBAAA,EACW,KAAK,KAAK,CAAA;AAAA,MAAA,EACvB,eAAe;AAAA,IAAA;AAAA,OAErB;AAEA,MAAA,MAAMC,kBAAoB,GAAA,QAAA;AAAA,QACxB,MAAM,GAAA;AAAA,mBACW,EAAA,MAAA,CAAO,MAAM,YAAY,CAAA;AAAA,IAAA;AAAA,OAE5C;AAEA,MAAO,OAAA;AAAA,QACL,WAAAH,EAAAA,YAAAA;AAAA,QACA,UAAAC,EAAAA,WAAAA;AAAA,QACA,UAAAC,EAAAA,WAAAA;AAAA,QACA,iBAAAC,EAAAA;AAAA,OACF;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}