@veltra/desktop 1.1.30 → 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 (92) hide show
  1. package/dist/components/action/action-group.vue.d.ts +2 -2
  2. package/dist/components/action/action.vue.d.ts +1 -1
  3. package/dist/components/auto-complete/auto-complete.vue.d.ts +1 -1
  4. package/dist/components/batch-edit/batch-edit.vue.d.ts +1 -1
  5. package/dist/components/cascade/cascade.vue.d.ts +1 -1
  6. package/dist/components/checkbox/checkbox-button.vue.d.ts +1 -1
  7. package/dist/components/checkbox-group/checkbox-group.vue.d.ts +1 -1
  8. package/dist/components/contextmenu/api.d.ts +8 -0
  9. package/dist/components/{context-menu → contextmenu}/api.js +2 -2
  10. package/dist/components/contextmenu/api.js.map +1 -0
  11. package/dist/components/contextmenu/contextmenu-item.js +64 -0
  12. package/dist/components/contextmenu/contextmenu-item.js.map +1 -0
  13. package/dist/components/contextmenu/contextmenu-panel.js +33 -0
  14. package/dist/components/contextmenu/contextmenu-panel.js.map +1 -0
  15. package/dist/components/contextmenu/contextmenu-sub.js +83 -0
  16. package/dist/components/contextmenu/contextmenu-sub.js.map +1 -0
  17. package/dist/components/contextmenu/contextmenu.js +79 -0
  18. package/dist/components/contextmenu/contextmenu.js.map +1 -0
  19. package/dist/components/{context-menu/context-menu.vue.d.ts → contextmenu/contextmenu.vue.d.ts} +5 -5
  20. package/dist/components/contextmenu/di.js +7 -0
  21. package/dist/components/contextmenu/di.js.map +1 -0
  22. package/dist/components/contextmenu/helper.js +8 -0
  23. package/dist/components/contextmenu/helper.js.map +1 -0
  24. package/dist/components/contextmenu/index.d.ts +2 -0
  25. package/dist/components/contextmenu/style2.css +154 -0
  26. package/dist/components/date-picker/date-picker.vue.d.ts +2 -2
  27. package/dist/components/date-range-picker/date-range-picker.vue.d.ts +2 -2
  28. package/dist/components/drawer/drawer.vue.d.ts +2 -2
  29. package/dist/components/empty/empty.vue.d.ts +1 -1
  30. package/dist/components/file-viewer/file-viewer.vue.d.ts +1 -1
  31. package/dist/components/file-viewer/previewers/sheet-previewer.js +33 -93
  32. package/dist/components/file-viewer/previewers/sheet-previewer.js.map +1 -1
  33. package/dist/components/file-viewer/sheet-parser.js +46 -0
  34. package/dist/components/file-viewer/sheet-parser.js.map +1 -0
  35. package/dist/components/index.d.ts +2 -2
  36. package/dist/components/index.js +3 -3
  37. package/dist/components/index.js.map +1 -1
  38. package/dist/components/input/input.vue.d.ts +1 -1
  39. package/dist/components/multi-select/multi-select.vue.d.ts +2 -2
  40. package/dist/components/multi-tree-select/multi-tree-select.vue.d.ts +2 -2
  41. package/dist/components/number-input/number-input.vue.d.ts +1 -1
  42. package/dist/components/number-range-input/number-range-input.vue.d.ts +2 -2
  43. package/dist/components/password-input/password-input.vue.d.ts +1 -1
  44. package/dist/components/progress-nodes/progress-nodes.vue.d.ts +2 -2
  45. package/dist/components/radio-group/radio-group.vue.d.ts +1 -1
  46. package/dist/components/rich-text-editor/rich-text-editor.vue.d.ts +1 -1
  47. package/dist/components/select/select.vue.d.ts +1 -1
  48. package/dist/components/steps/steps.vue.d.ts +1 -1
  49. package/dist/components/tabs/tabs-horizontal.vue.d.ts +2 -2
  50. package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
  51. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  52. package/dist/components/textarea/textarea.vue.d.ts +2 -2
  53. package/dist/components/tree-select/tree-select.vue.d.ts +2 -2
  54. package/dist/index.d.ts +5 -5
  55. package/dist/index.js +3 -3
  56. package/dist/style.js +1 -1
  57. package/dist/types/{context-menu.d.ts → contextmenu.d.ts} +12 -10
  58. package/dist/types/index.d.ts +2 -2
  59. package/package.json +6 -6
  60. package/src/components/{context-menu → contextmenu}/api.ts +4 -4
  61. package/src/components/contextmenu/contextmenu-item.vue +63 -0
  62. package/src/components/contextmenu/contextmenu-panel.vue +28 -0
  63. package/src/components/contextmenu/contextmenu-sub.vue +88 -0
  64. package/src/components/contextmenu/contextmenu.vue +77 -0
  65. package/src/components/contextmenu/di.ts +13 -0
  66. package/src/components/contextmenu/helper.ts +5 -0
  67. package/src/components/contextmenu/index.ts +3 -0
  68. package/src/components/contextmenu/style.scss +135 -0
  69. package/src/components/file-viewer/previewers/sheet-previewer.vue +35 -131
  70. package/src/components/file-viewer/sheet-parser.ts +52 -0
  71. package/src/components/index.ts +1 -1
  72. package/src/style.ts +1 -1
  73. package/src/types/{context-menu.ts → contextmenu.ts} +9 -7
  74. package/src/types/index.ts +1 -1
  75. package/dist/components/context-menu/api.d.ts +0 -8
  76. package/dist/components/context-menu/api.js.map +0 -1
  77. package/dist/components/context-menu/context-menu-item.js +0 -60
  78. package/dist/components/context-menu/context-menu-item.js.map +0 -1
  79. package/dist/components/context-menu/context-menu.js +0 -95
  80. package/dist/components/context-menu/context-menu.js.map +0 -1
  81. package/dist/components/context-menu/di.js +0 -6
  82. package/dist/components/context-menu/di.js.map +0 -1
  83. package/dist/components/context-menu/index.d.ts +0 -2
  84. package/dist/components/context-menu/style2.css +0 -52
  85. package/src/components/context-menu/context-menu-item.vue +0 -67
  86. package/src/components/context-menu/context-menu.vue +0 -117
  87. package/src/components/context-menu/di.ts +0 -5
  88. package/src/components/context-menu/index.ts +0 -3
  89. package/src/components/context-menu/style.scss +0 -51
  90. /package/dist/components/{context-menu → contextmenu}/style.d.ts +0 -0
  91. /package/dist/components/{context-menu → contextmenu}/style.js +0 -0
  92. /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,117 +0,0 @@
1
- <template>
2
- <transition name="zoom-in" appear @after-leave="emit('destroy')">
3
- <ul
4
- :class="[cls.b, cls.m(size)]"
5
- :style="style"
6
- ref="contextMenuRef"
7
- v-if="visible"
8
- v-click-outside="handleClickOutside"
9
- >
10
- <UContextMenuItem
11
- v-for="menu of menus"
12
- :menu="menu"
13
- :disabled="getMenuDisabled(menu)"
14
- @click-start="handleClickStart"
15
- @click-end="handleClickEnd"
16
- />
17
- </ul>
18
- </transition>
19
- </template>
20
-
21
- <script lang="ts" setup>
22
- import { useFallbackProps } from '@veltra/compositions'
23
- import { vClickOutside } from '@veltra/directives'
24
- import { bem, withUnit, zIndex } from '@veltra/utils'
25
- import { computed, provide, shallowRef, type CSSProperties } from 'vue'
26
-
27
- import type {
28
- ContextMenuEmits,
29
- ContextMenuItem,
30
- ContextMenuProps,
31
- ComponentSize
32
- } from '../../types'
33
- import UContextMenuItem from './context-menu-item.vue'
34
- import { ContextMenuDIKey } from './di'
35
-
36
- defineOptions({ name: 'ContextMenu' })
37
-
38
- const props = withDefaults(defineProps<ContextMenuProps>(), { width: 150 })
39
-
40
- const emit = defineEmits<ContextMenuEmits>()
41
-
42
- const { size } = useFallbackProps([props], { size: 'default' as ComponentSize })
43
-
44
- const cls = bem('context-menu')
45
-
46
- const contextMenuRef = shallowRef<HTMLElement>()
47
-
48
- const visible = shallowRef(true)
49
-
50
- const computePosition = () => {
51
- const position: {
52
- top?: number
53
- left?: number
54
- right?: number
55
- bottom?: number
56
- transformOrigin?: string
57
- } = {}
58
-
59
- const { mousePosition } = props
60
- const { x, y } = mousePosition
61
- if (x > window.innerWidth / 2) {
62
- position.right = window.innerWidth - x - 1
63
- } else {
64
- position.left = x + 1
65
- }
66
- if (y > window.innerHeight / 2) {
67
- position.bottom = window.innerHeight - y - 1
68
- } else {
69
- position.top = y + 1
70
- }
71
-
72
- const positionY = position.top ? 'top' : 'bottom'
73
- const positionX = position.left ? 'left' : 'right'
74
- position.transformOrigin = `${positionY} ${positionX}`
75
-
76
- return Object.fromEntries(
77
- Object.entries(position).map(([k, v]) => [k, withUnit(v as number | string | undefined, 'px')])
78
- ) as CSSProperties
79
- }
80
-
81
- const style = computed<CSSProperties>(() => {
82
- return { width: withUnit(props.width, 'px'), ...computePosition(), zIndex: zIndex() }
83
- })
84
-
85
- const menus = computed(() => {
86
- const { menus } = props
87
- if (typeof menus === 'function') {
88
- return menus()
89
- }
90
- return menus
91
- })
92
-
93
- const getMenuDisabled = (menu: ContextMenuItem) => {
94
- return typeof menu.disabled === 'function' ? menu.disabled() : menu.disabled
95
- }
96
-
97
- function close() {
98
- visible.value = false
99
- }
100
-
101
- let loading = false
102
- function handleClickStart() {
103
- loading = true
104
- }
105
-
106
- function handleClickEnd() {
107
- loading = false
108
- close()
109
- }
110
-
111
- function handleClickOutside() {
112
- if (loading) return
113
- close()
114
- }
115
-
116
- provide(ContextMenuDIKey, { cls })
117
- </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
- }