@xen-orchestra/web-core 0.35.0 → 0.36.0

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 (118) hide show
  1. package/lib/components/console/VtsRemoteConsole.vue +1 -1
  2. package/lib/components/copy-button/VtsCopyButton.vue +1 -1
  3. package/lib/components/layout/VtsLayoutSidebar.vue +1 -1
  4. package/lib/components/quick-info-card/VtsQuickInfoCard.vue +1 -1
  5. package/lib/components/relative-time/VtsRelativeTime.vue +2 -3
  6. package/lib/components/select/VtsSelect.vue +1 -1
  7. package/lib/components/state-hero/VtsStateHero.vue +20 -10
  8. package/lib/components/table/VtsRow.vue +26 -0
  9. package/lib/components/table/VtsTable.vue +99 -42
  10. package/lib/components/table/cells/VtsCollapsedListCell.vue +59 -0
  11. package/lib/components/table/cells/VtsHeaderCell.vue +31 -0
  12. package/lib/components/table/cells/VtsLinkCell.vue +33 -0
  13. package/lib/components/table/cells/VtsNumberCell.vue +21 -0
  14. package/lib/components/{size-progress-cell/VtsSizeProgressCell.vue → table/cells/VtsProgressBarCell.vue} +8 -5
  15. package/lib/components/table/cells/VtsStatusCell.vue +69 -0
  16. package/lib/components/table/cells/VtsTagCell.vue +24 -0
  17. package/lib/components/table/cells/VtsTextCell.vue +32 -0
  18. package/lib/components/table/cells/VtsTruncatedTextCell.vue +64 -0
  19. package/lib/components/task/VtsQuickTaskButton.vue +1 -1
  20. package/lib/components/tree/VtsTreeLine.vue +1 -1
  21. package/lib/components/ui/alert/UiAlert.vue +1 -1
  22. package/lib/components/ui/button/UiButton.vue +4 -2
  23. package/lib/components/ui/button-icon/UiButtonIcon.vue +12 -11
  24. package/lib/components/ui/column-header/UiColumnHeader.vue +22 -0
  25. package/lib/components/ui/info/UiInfo.vue +5 -1
  26. package/lib/components/ui/input/UiInput.vue +3 -2
  27. package/lib/components/ui/link/UiLink.vue +5 -0
  28. package/lib/components/ui/log-entry-viewer/UiLogEntryViewer.vue +1 -1
  29. package/lib/components/ui/query-search-bar/UiQuerySearchBar.vue +2 -2
  30. package/lib/components/ui/table-cell/UiTableCell.vue +41 -0
  31. package/lib/components/ui/table-pagination/PaginationButton.vue +1 -1
  32. package/lib/components/ui/toaster/UiToaster.vue +1 -1
  33. package/lib/components/ui/top-bottom-table/UiTopBottomTable.vue +6 -2
  34. package/lib/composables/pagination.composable.ts +16 -1
  35. package/lib/composables/relative-time.composable.ts +8 -61
  36. package/lib/composables/table-state.composable.ts +56 -0
  37. package/lib/composables/tree-filter.composable.ts +2 -2
  38. package/lib/icons/fa-icons.ts +2 -0
  39. package/lib/icons/object-icons.ts +1 -1
  40. package/lib/locales/en.json +23 -0
  41. package/lib/locales/fr.json +23 -0
  42. package/lib/packages/form-select/use-form-select-controller.ts +1 -0
  43. package/lib/packages/remote-resource/define-remote-resource.ts +4 -4
  44. package/lib/packages/table/README.md +53 -308
  45. package/lib/packages/table/define-column.ts +7 -0
  46. package/lib/packages/table/define-columns.ts +104 -50
  47. package/lib/packages/table/index.ts +3 -11
  48. package/lib/packages/table/types.ts +10 -0
  49. package/lib/{composables/tree.composable.md → packages/tree/README.md} +28 -23
  50. package/lib/{composables → packages}/tree/branch-definition.ts +9 -4
  51. package/lib/{composables → packages}/tree/branch.ts +15 -20
  52. package/lib/{composables → packages}/tree/build-nodes.ts +5 -5
  53. package/lib/{composables → packages}/tree/define-branch.ts +8 -4
  54. package/lib/{composables → packages}/tree/define-leaf.ts +8 -3
  55. package/lib/{composables → packages}/tree/define-tree.ts +10 -5
  56. package/lib/{composables → packages}/tree/leaf-definition.ts +1 -1
  57. package/lib/{composables → packages}/tree/leaf.ts +3 -3
  58. package/lib/{composables → packages}/tree/tree-node-base.ts +18 -3
  59. package/lib/{composables → packages}/tree/tree-node-definition-base.ts +4 -2
  60. package/lib/{composables → packages}/tree/types.ts +11 -9
  61. package/lib/{composables/tree.composable.ts → packages/tree/use-tree.ts} +24 -11
  62. package/lib/tables/column-definitions/address-column.ts +4 -0
  63. package/lib/tables/column-definitions/button-column.ts +35 -0
  64. package/lib/tables/column-definitions/button-icon-column.ts +30 -0
  65. package/lib/tables/column-definitions/collapsed-list-column.ts +12 -0
  66. package/lib/tables/column-definitions/date-column.ts +34 -0
  67. package/lib/tables/column-definitions/info-column.ts +12 -0
  68. package/lib/tables/column-definitions/input-column.ts +32 -0
  69. package/lib/tables/column-definitions/link-column.ts +14 -0
  70. package/lib/tables/column-definitions/literal-column.ts +9 -0
  71. package/lib/tables/column-definitions/number-column.ts +10 -0
  72. package/lib/tables/column-definitions/percent-column.ts +15 -0
  73. package/lib/tables/column-definitions/progress-bar-column.ts +10 -0
  74. package/lib/tables/column-definitions/select-column.ts +12 -0
  75. package/lib/tables/column-definitions/select-item-column.ts +8 -0
  76. package/lib/tables/column-definitions/status-column.ts +16 -0
  77. package/lib/tables/column-definitions/tag-column.ts +11 -0
  78. package/lib/tables/column-definitions/text-column.ts +11 -0
  79. package/lib/tables/column-definitions/truncated-text-column.ts +10 -0
  80. package/lib/tables/column-sets/backup-issue-columns.ts +15 -0
  81. package/lib/tables/column-sets/backup-job-columns.ts +23 -0
  82. package/lib/tables/column-sets/backup-job-schedule-columns.ts +21 -0
  83. package/lib/tables/column-sets/backup-log-columns.ts +19 -0
  84. package/lib/tables/column-sets/host-columns.ts +19 -0
  85. package/lib/tables/column-sets/network-columns.ts +22 -0
  86. package/lib/tables/column-sets/new-vm-network-columns.ts +24 -0
  87. package/lib/tables/column-sets/new-vm-sr-columns.ts +33 -0
  88. package/lib/tables/column-sets/patch-columns.ts +13 -0
  89. package/lib/tables/column-sets/pif-columns.ts +23 -0
  90. package/lib/tables/column-sets/server-columns.ts +18 -0
  91. package/lib/tables/column-sets/sr-columns.ts +20 -0
  92. package/lib/tables/column-sets/vdi-columns.ts +21 -0
  93. package/lib/tables/column-sets/vif-columns.ts +23 -0
  94. package/lib/tables/column-sets/vm-columns.ts +21 -0
  95. package/lib/tables/helpers/render-body-cell.ts +4 -0
  96. package/lib/tables/helpers/render-head-cell.ts +6 -0
  97. package/lib/tables/helpers/render-loading-cell.ts +5 -0
  98. package/lib/tables/types.ts +7 -0
  99. package/lib/utils/size.util.ts +5 -9
  100. package/package.json +1 -1
  101. package/lib/components/data-table/VtsDataTable.vue +0 -70
  102. package/lib/components/table/ColumnTitle.vue +0 -152
  103. package/lib/packages/table/apply-extensions.ts +0 -26
  104. package/lib/packages/table/define-renderer/define-table-cell-renderer.ts +0 -27
  105. package/lib/packages/table/define-renderer/define-table-renderer.ts +0 -47
  106. package/lib/packages/table/define-renderer/define-table-row-renderer.ts +0 -29
  107. package/lib/packages/table/define-renderer/define-table-section-renderer.ts +0 -29
  108. package/lib/packages/table/define-table/define-multi-source-table.ts +0 -39
  109. package/lib/packages/table/define-table/define-table.ts +0 -13
  110. package/lib/packages/table/define-table/define-typed-table.ts +0 -18
  111. package/lib/packages/table/transform-sources.ts +0 -13
  112. package/lib/packages/table/types/extensions.ts +0 -16
  113. package/lib/packages/table/types/index.ts +0 -47
  114. package/lib/packages/table/types/table-cell.ts +0 -18
  115. package/lib/packages/table/types/table-row.ts +0 -20
  116. package/lib/packages/table/types/table-section.ts +0 -19
  117. package/lib/packages/table/types/table.ts +0 -28
  118. package/lib/types/button.type.ts +0 -3
@@ -1,39 +0,0 @@
1
- import { type MaybeRefOrGetter } from 'vue'
2
- import { type Sources, type TransformProperty, transformSources } from '..'
3
-
4
- export function defineMultiSourceTable<
5
- TSources extends Record<string, Sources>,
6
- TConfig extends Record<string, unknown> = Record<string, unknown>,
7
- >(setup: (sources: TSources, config: TConfig) => any) {
8
- return function useTable<
9
- TUseSources extends {
10
- [K in keyof TSources]: any
11
- },
12
- TTransforms extends {
13
- [K in keyof TSources]: TSources[K] extends Sources<infer T>
14
- ? TransformProperty<T, TUseSources[K], K & string>[K & string]
15
- : never
16
- },
17
- >(
18
- sources: {
19
- [K in keyof TUseSources]: MaybeRefOrGetter<TUseSources[K][]>
20
- },
21
- config: TConfig &
22
- (Record<keyof TTransforms, undefined> extends TTransforms
23
- ? { transform?: Partial<TTransforms> }
24
- : {
25
- transform: { [K in keyof TTransforms as undefined extends TTransforms[K] ? K : never]?: TTransforms[K] } & {
26
- [K in keyof TTransforms as undefined extends TTransforms[K] ? never : K]: TTransforms[K]
27
- }
28
- })
29
- ) {
30
- const transformedSources = Object.fromEntries(
31
- Object.entries(sources).map(([key, value]) => [
32
- key,
33
- transformSources(value, (config.transform as any)?.[key as any]),
34
- ])
35
- )
36
-
37
- return setup(transformedSources as TSources, config)
38
- }
39
- }
@@ -1,13 +0,0 @@
1
- import { type MaybeRefOrGetter } from 'vue'
2
- import { type Sources, type TableVNode, type TransformProperty, transformSources } from '..'
3
-
4
- export function defineTable<TSource, TConfig extends Record<string, unknown> = Record<string, unknown>>(
5
- setup: (sources: Sources<TSource>, config: TConfig) => () => TableVNode
6
- ) {
7
- return function useTable<TUseSource>(
8
- sources: MaybeRefOrGetter<TUseSource[]>,
9
- config: TConfig & TransformProperty<TSource, TUseSource>
10
- ) {
11
- return setup(transformSources<TSource>(sources, config?.transform), config)
12
- }
13
- }
@@ -1,18 +0,0 @@
1
- import { type MaybeRefOrGetter } from 'vue'
2
- import { type Sources, type TransformProperty, transformSources } from '..'
3
-
4
- export function defineTypedTable<
5
- TTypedSource extends { type: string; data: Sources },
6
- TConfig extends Record<string, unknown> = Record<string, unknown>,
7
- >(setup: (typedSource: TTypedSource, config: TConfig) => any) {
8
- return function useTable<
9
- TUseSource,
10
- const TType extends TTypedSource['type'],
11
- TSource extends TTypedSource extends { type: TType; data: Sources<infer TSource> } ? TSource : never,
12
- >(type: TType, sources: MaybeRefOrGetter<TUseSource[]>, config: TConfig & TransformProperty<TSource, TUseSource>) {
13
- return setup(
14
- { type, data: transformSources<TSource>(sources, config.transform) } as unknown as TTypedSource,
15
- config
16
- )
17
- }
18
- }
@@ -1,13 +0,0 @@
1
- import { useArrayMap } from '@vueuse/shared'
2
- import { type MaybeRefOrGetter, type ComputedRef, computed, toValue } from 'vue'
3
-
4
- export function transformSources<TSource>(
5
- sources: MaybeRefOrGetter<any[]>,
6
- transformer?: (source: any, index: number) => any
7
- ) {
8
- return transformer
9
- ? (useArrayMap(sources, (source, index) => ({ ...source, ...transformer!(source, index) })) as ComputedRef<
10
- TSource[]
11
- >)
12
- : (computed(() => toValue(sources)) as unknown as ComputedRef<TSource[]>)
13
- }
@@ -1,16 +0,0 @@
1
- import type { PropsOverride, Renderer } from '.'
2
-
3
- export type Extension<
4
- TConfig extends Record<string, any> = Record<string, any>,
5
- TComponentProps extends Record<string, any> = Record<string, any>,
6
- > = (config: TConfig) => { props: PropsOverride<TComponentProps> }
7
-
8
- export type Extensions<TComponentProps extends Record<string, any>> = Record<string, Extension<any, TComponentProps>>
9
-
10
- export type ExtensionConfig<
11
- TRenderer extends Renderer<any, any, any>,
12
- TExtensionName extends keyof $Extensions,
13
- $Extensions extends Record<string, any> = TRenderer extends Renderer<any, infer TExtensions, any>
14
- ? { [K in keyof TExtensions]: Parameters<TExtensions[K]>[0] }
15
- : never,
16
- > = $Extensions[TExtensionName]
@@ -1,47 +0,0 @@
1
- import type { Extensions, TableRenderer, TableCellRenderer, TableRowRenderer, TableSectionRenderer } from '.'
2
- import type { ComputedRef } from 'vue'
3
-
4
- export * from './table-cell'
5
- export * from './table-row'
6
- export * from './extensions'
7
- export * from './table'
8
- export * from './table-section'
9
-
10
- export type ComponentLoader<TProps> = () => Promise<{
11
- default: abstract new () => {
12
- $props: TProps
13
- }
14
- }>
15
-
16
- export type PropsOverride<TComponentProps> = Partial<TComponentProps> & Record<string, any>
17
-
18
- export type Renderer<
19
- TComponentProps extends Record<string, any>,
20
- TExtensions extends Extensions<TComponentProps>,
21
- TPropsConfig extends Record<string, any>,
22
- > =
23
- | TableRenderer<TComponentProps, TExtensions, TPropsConfig>
24
- | TableSectionRenderer<TComponentProps, TExtensions, TPropsConfig>
25
- | TableRowRenderer<TComponentProps, TExtensions, TPropsConfig>
26
- | TableCellRenderer<TComponentProps, TExtensions, TPropsConfig>
27
-
28
- export type Sources<T = any> = ComputedRef<T[]>
29
-
30
- export type TransformProperty<
31
- TSource,
32
- TUseSource,
33
- TPropertyName extends string = 'transform',
34
- > = TUseSource extends TSource
35
- ? { [K in TPropertyName]?: (source: TUseSource, index: number) => Partial<TSource> }
36
- : {
37
- [K in TPropertyName]: (
38
- source: TUseSource,
39
- index: number
40
- ) => Partial<TSource> & {
41
- [K in keyof TSource as K extends keyof TUseSource
42
- ? TUseSource[K] extends TSource[K]
43
- ? never
44
- : K
45
- : K]: TSource[K]
46
- }
47
- }
@@ -1,18 +0,0 @@
1
- import type { Branded } from '@core/types/utility.type'
2
- import type { PropsOverride, Extensions } from '.'
3
- import type { VNode } from 'vue'
4
-
5
- export type TableCellVNode = Branded<'CellVNode', VNode>
6
-
7
- export type TableCellVNodes = TableCellVNode | TableCellVNodes[]
8
-
9
- export type TableCellRenderer<
10
- TComponentProps extends Record<string, any>,
11
- TExtensions extends Extensions<TComponentProps>,
12
- TPropsConfig extends Record<string, any>,
13
- > = (
14
- renderConfig: {
15
- extensions?: { [K in keyof TExtensions]?: Parameters<TExtensions[K]>[0] }
16
- props?: PropsOverride<TComponentProps>
17
- } & TPropsConfig
18
- ) => TableCellVNode
@@ -1,20 +0,0 @@
1
- import type { Branded } from '@core/types/utility.type'
2
- import type { PropsOverride, Extensions, TableCellVNodes } from '.'
3
- import type { VNode } from 'vue'
4
-
5
- export type TableRowVNode = Branded<'RowVNode', VNode>
6
-
7
- export type TableRowVNodes = TableRowVNode | TableRowVNodes[]
8
-
9
- export type TableRowRenderer<
10
- TComponentProps extends Record<string, any>,
11
- TExtensions extends Extensions<TComponentProps>,
12
- TPropsConfig extends Record<string, any>,
13
- > = (
14
- renderConfig: {
15
- extensions?: { [K in keyof TExtensions]?: Parameters<TExtensions[K]>[0] }
16
- key: string | number
17
- props?: PropsOverride<TComponentProps>
18
- cells: () => TableCellVNodes
19
- } & TPropsConfig
20
- ) => TableRowVNode
@@ -1,19 +0,0 @@
1
- import type { Branded } from '@core/types/utility.type'
2
- import type { PropsOverride, Extensions, TableRowVNodes } from '.'
3
- import type { VNode } from 'vue'
4
-
5
- export type TableSectionVNode = Branded<'SectionVNode', VNode>
6
-
7
- export type TableSectionVNodes = TableSectionVNode | TableSectionVNodes[]
8
-
9
- export type TableSectionRenderer<
10
- TComponentProps extends Record<string, any>,
11
- TExtensions extends Extensions<TComponentProps>,
12
- TPropsConfig extends Record<string, any>,
13
- > = (
14
- renderConfig: {
15
- extensions?: { [K in keyof TExtensions]?: Parameters<TExtensions[K]>[0] }
16
- rows: () => TableRowVNodes
17
- props?: PropsOverride<TComponentProps>
18
- } & TPropsConfig
19
- ) => TableSectionVNode
@@ -1,28 +0,0 @@
1
- import type { Branded } from '@core/types/utility.type'
2
- import type {
3
- TableCellVNodes,
4
- PropsOverride,
5
- TableRowVNodes,
6
- TableSectionVNode,
7
- TableSectionVNodes,
8
- Extensions,
9
- } from '.'
10
- import type { VNode } from 'vue'
11
-
12
- export type TableVNode = Branded<'TableVNode', VNode>
13
-
14
- export type TableRenderer<
15
- TComponentProps extends Record<string, any>,
16
- TExtensions extends Extensions<TComponentProps>,
17
- TPropsConfig extends Record<string, any>,
18
- > = (
19
- renderConfig: {
20
- extensions?: { [K in keyof TExtensions]?: Parameters<TExtensions[K]>[0] }
21
- props?: PropsOverride<TComponentProps>
22
- thead:
23
- | (() => TableSectionVNode)
24
- | { rows: () => TableRowVNodes; cells?: never }
25
- | { rows?: never; cells: () => TableCellVNodes }
26
- tbody: (() => TableSectionVNodes) | { rows: () => TableRowVNodes }
27
- } & TPropsConfig
28
- ) => TableVNode
@@ -1,3 +0,0 @@
1
- export type ButtonLevel = 'primary' | 'secondary' | 'tertiary'
2
-
3
- export type ButtonSize = 'small' | 'medium' | 'large'