@veltra/desktop 1.1.31 → 1.1.32

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 (90) hide show
  1. package/dist/components/action/action-group.vue.d.ts +1 -1
  2. package/dist/components/auto-complete/auto-complete.vue.d.ts +1 -1
  3. package/dist/components/batch-edit/batch-edit.vue.d.ts +1 -1
  4. package/dist/components/cascade/cascade.vue.d.ts +1 -1
  5. package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
  6. package/dist/components/checkbox-group/checkbox-group.vue.d.ts +1 -1
  7. package/dist/components/contextmenu/api.d.ts +8 -0
  8. package/dist/components/{context-menu → contextmenu}/api.js +2 -2
  9. package/dist/components/contextmenu/api.js.map +1 -0
  10. package/dist/components/contextmenu/contextmenu-item.js +64 -0
  11. package/dist/components/contextmenu/contextmenu-item.js.map +1 -0
  12. package/dist/components/contextmenu/contextmenu-panel.js +33 -0
  13. package/dist/components/contextmenu/contextmenu-panel.js.map +1 -0
  14. package/dist/components/contextmenu/contextmenu-sub.js +83 -0
  15. package/dist/components/contextmenu/contextmenu-sub.js.map +1 -0
  16. package/dist/components/contextmenu/contextmenu.js +79 -0
  17. package/dist/components/contextmenu/contextmenu.js.map +1 -0
  18. package/dist/components/{context-menu/context-menu.vue.d.ts → contextmenu/contextmenu.vue.d.ts} +5 -5
  19. package/dist/components/contextmenu/di.js +7 -0
  20. package/dist/components/contextmenu/di.js.map +1 -0
  21. package/dist/components/contextmenu/helper.js +8 -0
  22. package/dist/components/contextmenu/helper.js.map +1 -0
  23. package/dist/components/contextmenu/index.d.ts +2 -0
  24. package/dist/components/contextmenu/style2.css +154 -0
  25. package/dist/components/date-picker/date-picker.vue.d.ts +1 -1
  26. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +1 -1
  27. package/dist/components/drawer/drawer.vue.d.ts +2 -2
  28. package/dist/components/file-viewer/file-viewer.vue.d.ts +1 -1
  29. package/dist/components/file-viewer/previewers/sheet-previewer.js +33 -93
  30. package/dist/components/file-viewer/previewers/sheet-previewer.js.map +1 -1
  31. package/dist/components/file-viewer/sheet-parser.js +46 -0
  32. package/dist/components/file-viewer/sheet-parser.js.map +1 -0
  33. package/dist/components/index.d.ts +2 -2
  34. package/dist/components/index.js +3 -3
  35. package/dist/components/index.js.map +1 -1
  36. package/dist/components/input/input.vue.d.ts +1 -1
  37. package/dist/components/multi-select/multi-select.vue.d.ts +2 -2
  38. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +2 -2
  39. package/dist/components/number-input/number-input.vue.d.ts +1 -1
  40. package/dist/components/number-range-input/number-range-input.vue.d.ts +1 -1
  41. package/dist/components/password-input/password-input.vue.d.ts +1 -1
  42. package/dist/components/progress-nodes/progress-nodes.vue.d.ts +2 -2
  43. package/dist/components/radio-group/radio-group.vue.d.ts +1 -1
  44. package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +1 -1
  45. package/dist/components/select/select.vue.d.ts +1 -1
  46. package/dist/components/steps/steps.vue.d.ts +1 -1
  47. package/dist/components/tabs/tabs-horizontal.vue.d.ts +2 -2
  48. package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
  49. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  50. package/dist/components/textarea/textarea.vue.d.ts +1 -1
  51. package/dist/components/tree-select/tree-select.vue.d.ts +2 -2
  52. package/dist/index.d.ts +5 -5
  53. package/dist/index.js +3 -3
  54. package/dist/style.js +1 -1
  55. package/dist/types/{context-menu.d.ts → contextmenu.d.ts} +12 -10
  56. package/dist/types/index.d.ts +2 -2
  57. package/package.json +6 -6
  58. package/src/components/{context-menu → contextmenu}/api.ts +4 -4
  59. package/src/components/contextmenu/contextmenu-item.vue +63 -0
  60. package/src/components/contextmenu/contextmenu-panel.vue +28 -0
  61. package/src/components/contextmenu/contextmenu-sub.vue +88 -0
  62. package/src/components/contextmenu/contextmenu.vue +77 -0
  63. package/src/components/contextmenu/di.ts +13 -0
  64. package/src/components/contextmenu/helper.ts +5 -0
  65. package/src/components/contextmenu/index.ts +3 -0
  66. package/src/components/contextmenu/style.scss +135 -0
  67. package/src/components/file-viewer/previewers/sheet-previewer.vue +35 -131
  68. package/src/components/file-viewer/sheet-parser.ts +52 -0
  69. package/src/components/index.ts +1 -1
  70. package/src/style.ts +1 -1
  71. package/src/types/{context-menu.ts → contextmenu.ts} +9 -7
  72. package/src/types/index.ts +1 -1
  73. package/dist/components/context-menu/api.d.ts +0 -8
  74. package/dist/components/context-menu/api.js.map +0 -1
  75. package/dist/components/context-menu/context-menu-item.js +0 -60
  76. package/dist/components/context-menu/context-menu-item.js.map +0 -1
  77. package/dist/components/context-menu/context-menu.js +0 -95
  78. package/dist/components/context-menu/context-menu.js.map +0 -1
  79. package/dist/components/context-menu/di.js +0 -6
  80. package/dist/components/context-menu/di.js.map +0 -1
  81. package/dist/components/context-menu/index.d.ts +0 -2
  82. package/dist/components/context-menu/style2.css +0 -52
  83. package/src/components/context-menu/context-menu-item.vue +0 -67
  84. package/src/components/context-menu/context-menu.vue +0 -119
  85. package/src/components/context-menu/di.ts +0 -5
  86. package/src/components/context-menu/index.ts +0 -3
  87. package/src/components/context-menu/style.scss +0 -51
  88. /package/dist/components/{context-menu → contextmenu}/style.d.ts +0 -0
  89. /package/dist/components/{context-menu → contextmenu}/style.js +0 -0
  90. /package/src/components/{context-menu → contextmenu}/style.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"di.js","names":[],"sources":["../../../src/components/context-menu/di.ts"],"sourcesContent":["import type { BEM } from '@veltra/utils'\nimport type { InjectionKey } from 'vue'\n\nexport const ContextMenuDIKey: InjectionKey<{ cls: BEM<'context-menu'> }> =\n Symbol('ContextMenuDIKey')\n"],"mappings":";AAGA,MAAa,mBACX,OAAO,kBAAkB"}
@@ -1,2 +0,0 @@
1
- import { _default } from "./context-menu.vue.js";
2
- import { contextmenu } from "./api.js";
@@ -1,52 +0,0 @@
1
- @charset "UTF-8";
2
- /** flex布局 */
3
- /**
4
- * 设置css变量
5
- * 参数1:变量前缀
6
- * 参数2: 一个由值组成的列表或者由key, value组成的map
7
- * css-var(height, (
8
- * large: 40px
9
- * default: 32px
10
- * small: 24px
11
- * ))
12
- * 生成的css变量:
13
- * --u-height-large: 40px;
14
- * --u-height-default: 32px;
15
- * --u-height-small: 24px;
16
- */
17
- /** 暗色:data-theme 与系统偏好,与 UITheme.injectBuiltInThemes 选择器策略一致 */
18
- .u-context-menu {
19
- position: fixed;
20
- background-color: var(--u-bg-color-top);
21
- box-shadow: var(--u-shadow);
22
- border-radius: var(--u-radius-default);
23
- padding: var(--u-gap-small);
24
- backdrop-filter: var(--u-bg-filter);
25
- -webkit-backdrop-filter: var(--u-bg-filter);
26
- }
27
- .u-context-menu__label {
28
- margin-left: var(--u-gap-small);
29
- }
30
- .u-context-menu__item {
31
- cursor: pointer;
32
- padding: var(--u-gap-small);
33
- border-radius: var(--u-radius-default);
34
- display: flex;
35
- justify-content: flex-start;
36
- align-items: center;
37
- flex-wrap: nowrap;
38
- }
39
- .u-context-menu__item:not(.is-disabled):not(.is-loading):hover {
40
- background-color: var(--u-color-primary-light-9);
41
- }
42
- .u-context-menu__item.is-disabled {
43
- cursor: not-allowed;
44
- color: var(--u-text-color-disabled);
45
- }
46
- .u-context-menu__item.is-loading {
47
- cursor: not-allowed;
48
- color: var(--u-text-color-disabled);
49
- }
50
- .u-context-menu__icon-place {
51
- width: 14px;
52
- }
@@ -1,67 +0,0 @@
1
- <template>
2
- <li
3
- :class="[
4
- cls.e('item'),
5
- bem.is('disabled', disabled),
6
- bem.is('loading', loading),
7
- cls.em('item', 'menu')
8
- ]"
9
- v-ripple="!disabled && !loading"
10
- @click="handleClickMenu"
11
- >
12
- <u-icon v-if="loading" :class="bem.is('loading')">
13
- <Loading />
14
- </u-icon>
15
- <template v-else>
16
- <u-icon v-if="menu.icon">
17
- <component :is="menu.icon" />
18
- </u-icon>
19
- <i v-else :class="cls.e('icon-place')"></i>
20
- </template>
21
-
22
- <span :class="cls.e('label')">{{ menu.label }}</span>
23
- </li>
24
- </template>
25
-
26
- <script lang="ts" setup>
27
- import { vRipple } from '@veltra/directives'
28
- import { Loading } from '@veltra/icons/normal'
29
- import { bem } from '@veltra/utils'
30
- import { computed, inject, shallowRef } from 'vue'
31
-
32
- import type { ContextMenuItem } from '../../types'
33
- import { UIcon } from '../icon'
34
- import { ContextMenuDIKey } from './di'
35
-
36
- defineOptions({ name: 'ContextMenuItem' })
37
-
38
- const { menu } = defineProps<{ menu: ContextMenuItem }>()
39
-
40
- const emit = defineEmits<{ (e: 'click-start'): void; (e: 'click-end'): void }>()
41
-
42
- const { cls } = inject(ContextMenuDIKey)!
43
-
44
- const loading = shallowRef(false)
45
-
46
- const disabled = computed(() => {
47
- return (typeof menu.disabled === 'function' ? menu.disabled() : menu.disabled) ?? false
48
- })
49
-
50
- function handleClickMenu() {
51
- if (disabled.value || loading.value) return
52
- emit('click-start')
53
- loading.value = true
54
- const result = menu.callback?.()
55
-
56
- if (result instanceof Promise) {
57
- return result
58
- .then(() => {})
59
- .finally(() => {
60
- emit('click-end')
61
- loading.value = false
62
- })
63
- }
64
- loading.value = false
65
- emit('click-end')
66
- }
67
- </script>
@@ -1,119 +0,0 @@
1
- <template>
2
- <Teleport to="body">
3
- <transition name="zoom-in" appear @after-leave="emit('destroy')">
4
- <ul
5
- :class="[cls.b, cls.m(size)]"
6
- :style="style"
7
- ref="contextMenuRef"
8
- v-if="visible"
9
- v-click-outside="handleClickOutside"
10
- >
11
- <UContextMenuItem
12
- v-for="menu of menus"
13
- :menu="menu"
14
- :disabled="getMenuDisabled(menu)"
15
- @click-start="handleClickStart"
16
- @click-end="handleClickEnd"
17
- />
18
- </ul>
19
- </transition>
20
- </Teleport>
21
- </template>
22
-
23
- <script lang="ts" setup>
24
- import { useFallbackProps } from '@veltra/compositions'
25
- import { vClickOutside } from '@veltra/directives'
26
- import { bem, withUnit, zIndex } from '@veltra/utils'
27
- import { computed, provide, shallowRef, type CSSProperties } from 'vue'
28
-
29
- import type {
30
- ContextMenuEmits,
31
- ContextMenuItem,
32
- ContextMenuProps,
33
- ComponentSize
34
- } from '../../types'
35
- import UContextMenuItem from './context-menu-item.vue'
36
- import { ContextMenuDIKey } from './di'
37
-
38
- defineOptions({ name: 'ContextMenu' })
39
-
40
- const props = withDefaults(defineProps<ContextMenuProps>(), { width: 150 })
41
-
42
- const emit = defineEmits<ContextMenuEmits>()
43
-
44
- const { size } = useFallbackProps([props], { size: 'default' as ComponentSize })
45
-
46
- const cls = bem('context-menu')
47
-
48
- const contextMenuRef = shallowRef<HTMLElement>()
49
-
50
- const visible = shallowRef(true)
51
-
52
- const computePosition = () => {
53
- const position: {
54
- top?: number
55
- left?: number
56
- right?: number
57
- bottom?: number
58
- transformOrigin?: string
59
- } = {}
60
-
61
- const { mousePosition } = props
62
- const { x, y } = mousePosition
63
- if (x > window.innerWidth / 2) {
64
- position.right = window.innerWidth - x - 1
65
- } else {
66
- position.left = x + 1
67
- }
68
- if (y > window.innerHeight / 2) {
69
- position.bottom = window.innerHeight - y - 1
70
- } else {
71
- position.top = y + 1
72
- }
73
-
74
- const positionY = position.top ? 'top' : 'bottom'
75
- const positionX = position.left ? 'left' : 'right'
76
- position.transformOrigin = `${positionY} ${positionX}`
77
-
78
- return Object.fromEntries(
79
- Object.entries(position).map(([k, v]) => [k, withUnit(v as number | string | undefined, 'px')])
80
- ) as CSSProperties
81
- }
82
-
83
- const style = computed<CSSProperties>(() => {
84
- return { width: withUnit(props.width, 'px'), ...computePosition(), zIndex: zIndex() }
85
- })
86
-
87
- const menus = computed(() => {
88
- const { menus } = props
89
- if (typeof menus === 'function') {
90
- return menus()
91
- }
92
- return menus
93
- })
94
-
95
- const getMenuDisabled = (menu: ContextMenuItem) => {
96
- return typeof menu.disabled === 'function' ? menu.disabled() : menu.disabled
97
- }
98
-
99
- function close() {
100
- visible.value = false
101
- }
102
-
103
- let loading = false
104
- function handleClickStart() {
105
- loading = true
106
- }
107
-
108
- function handleClickEnd() {
109
- loading = false
110
- close()
111
- }
112
-
113
- function handleClickOutside() {
114
- if (loading) return
115
- close()
116
- }
117
-
118
- provide(ContextMenuDIKey, { cls })
119
- </script>
@@ -1,5 +0,0 @@
1
- import type { BEM } from '@veltra/utils'
2
- import type { InjectionKey } from 'vue'
3
-
4
- export const ContextMenuDIKey: InjectionKey<{ cls: BEM<'context-menu'> }> =
5
- Symbol('ContextMenuDIKey')
@@ -1,3 +0,0 @@
1
- export { default as UContextMenu } from './context-menu.vue'
2
-
3
- export { contextmenu } from './api'
@@ -1,51 +0,0 @@
1
- @use 'pkg:@veltra/styles/mixins' as m;
2
- @use 'pkg:@veltra/styles/functions' as fn;
3
- @use 'pkg:@veltra/styles/vars';
4
-
5
- // 方便拼接
6
- $root-name: context-menu;
7
-
8
- @include m.b($root-name) {
9
- position: fixed;
10
- background-color: fn.use-var(bg-color, top);
11
- box-shadow: fn.use-var(shadow);
12
- border-radius: fn.use-var(radius, default);
13
- padding: fn.use-var(gap, small);
14
- backdrop-filter: fn.use-var(bg-filter);
15
- -webkit-backdrop-filter: fn.use-var(bg-filter);
16
-
17
- @include m.e(label) {
18
- margin-left: fn.use-var(gap, small);
19
- }
20
-
21
- // @include m.size using ($size) {
22
- // padding: fn.use-var(gap, $size);
23
-
24
- // @include m.bem($root-name, item) {
25
- // padding: fn.use-var(gap, $size);
26
- // border-radius: fn.use-var(radius, $size);
27
- // }
28
- // }
29
-
30
- @include m.e(item) {
31
- cursor: pointer;
32
- padding: fn.use-var(gap, small);
33
- border-radius: fn.use-var(radius, default);
34
- @include m.flex;
35
-
36
- @include m.is-not(disabled, loading) {
37
- &:hover {
38
- background-color: fn.use-var(color, primary, light-9);
39
- }
40
- }
41
-
42
- @include m.is(disabled, loading) {
43
- cursor: not-allowed;
44
- color: fn.use-var(text-color, disabled);
45
- }
46
- }
47
-
48
- @include m.e(icon-place) {
49
- width: 14px;
50
- }
51
- }