hys-ui 0.1.1 → 0.2.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 (225) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/README.md +3 -1
  3. package/dist/components/HysAccordion/HysAccordion.vue.js +1 -1
  4. package/dist/components/HysAccordion/HysAccordion2.vue.js +181 -47
  5. package/dist/components/HysAutocomplete/HysAutocomplete.vue.js +7 -0
  6. package/dist/components/HysAutocomplete/HysAutocomplete2.vue.js +627 -0
  7. package/dist/components/HysAvatar/HysAvatar.vue.js +5 -35
  8. package/dist/components/HysAvatar/HysAvatar2.vue.js +221 -2
  9. package/dist/components/HysAvatarGroup/HysAvatarGroup.vue.js +7 -0
  10. package/dist/components/HysAvatarGroup/HysAvatarGroup2.vue.js +252 -0
  11. package/dist/components/HysBadge/HysBadge.vue.js +2 -2
  12. package/dist/components/HysBadge/HysBadge2.vue.js +154 -27
  13. package/dist/components/HysBreadcrumb/HysBreadcrumb.vue.js +5 -38
  14. package/dist/components/HysBreadcrumb/HysBreadcrumb2.vue.js +74 -2
  15. package/dist/components/HysButton/HysButton.vue.js +2 -2
  16. package/dist/components/HysButton/HysButton2.vue.js +29 -28
  17. package/dist/components/HysCalendar/HysCalendar.vue.js +5 -92
  18. package/dist/components/HysCalendar/HysCalendar2.vue.js +803 -2
  19. package/dist/components/HysCard/HysCard.vue.js +2 -2
  20. package/dist/components/HysCard/HysCard2.vue.js +175 -42
  21. package/dist/components/HysCascader/HysCascader.vue.js +5 -194
  22. package/dist/components/HysCascader/HysCascader2.vue.js +760 -2
  23. package/dist/components/HysCascader/HysCascaderColumn.vue.js +7 -0
  24. package/dist/components/HysCascader/HysCascaderColumn2.vue.js +232 -0
  25. package/dist/components/HysCheckbox/HysCheckbox.vue.js +3 -3
  26. package/dist/components/HysCheckbox/HysCheckbox2.vue.js +180 -65
  27. package/dist/components/HysCheckboxGroup/HysCheckboxGroup.vue.js +7 -0
  28. package/dist/components/HysCheckboxGroup/HysCheckboxGroup2.vue.js +237 -0
  29. package/dist/components/HysColorPicker/HysColorPicker.vue.js +2 -2
  30. package/dist/components/HysColorPicker/HysColorPicker2.vue.js +107 -106
  31. package/dist/components/HysDataGrid/HysDataGrid.vue.js +1 -1
  32. package/dist/components/HysDataGrid/HysDataGrid2.vue.js +399 -392
  33. package/dist/components/HysDatePicker/HysDatePicker.vue.js +268 -139
  34. package/dist/components/HysDatePicker/HysDatePickerControl.vue.js +7 -0
  35. package/dist/components/HysDatePicker/HysDatePickerControl2.vue.js +807 -0
  36. package/dist/components/HysDatePicker/HysDatePickerPanel.vue.js +7 -0
  37. package/dist/components/HysDatePicker/HysDatePickerPanel2.vue.js +357 -0
  38. package/dist/components/HysDateRangePicker/HysDateRangePicker.vue.js +268 -158
  39. package/dist/components/HysDivider/HysDivider.vue.js +2 -2
  40. package/dist/components/HysDivider/HysDivider2.vue.js +33 -13
  41. package/dist/components/HysFileManager/HysFileManager.vue.js +3 -3
  42. package/dist/components/HysFileManager/HysFileManager2.vue.js +43 -42
  43. package/dist/components/HysForm/HysForm.vue.js +3 -3
  44. package/dist/components/HysForm/HysForm2.vue.js +578 -92
  45. package/dist/components/HysFormItem/HysFormItem.vue.js +5 -85
  46. package/dist/components/HysFormItem/HysFormItem2.vue.js +521 -2
  47. package/dist/components/HysGantt/HysGantt.vue.js +1 -1
  48. package/dist/components/HysGantt/HysGantt2.vue.js +1369 -272
  49. package/dist/components/HysInput/HysInput.vue.js +2 -2
  50. package/dist/components/HysInput/HysInput2.vue.js +467 -120
  51. package/dist/components/HysMention/HysMention.vue.js +2 -2
  52. package/dist/components/HysMention/HysMention2.vue.js +89 -88
  53. package/dist/components/HysNumberInput/HysNumberInput.vue.js +2 -2
  54. package/dist/components/HysNumberInput/HysNumberInput2.vue.js +561 -79
  55. package/dist/components/HysOrgTree/HysOrgTree.vue.js +29 -26
  56. package/dist/components/HysPagination/HysPagination.vue.js +1 -1
  57. package/dist/components/HysPagination/HysPagination2.vue.js +2 -0
  58. package/dist/components/HysPermissionMatrix/HysPermissionMatrix.vue.js +2 -2
  59. package/dist/components/HysPermissionMatrix/HysPermissionMatrix2.vue.js +52 -51
  60. package/dist/components/HysRadio/HysRadio.vue.js +7 -0
  61. package/dist/components/HysRadio/HysRadio2.vue.js +180 -0
  62. package/dist/components/HysRadioGroup/HysRadioGroup.vue.js +2 -2
  63. package/dist/components/HysRadioGroup/HysRadioGroup2.vue.js +190 -65
  64. package/dist/components/HysRating/HysRating.vue.js +1 -1
  65. package/dist/components/HysRating/HysRating2.vue.js +288 -68
  66. package/dist/components/HysRichTextEditor/HysRichTextEditor.vue.js +1 -1
  67. package/dist/components/HysRichTextEditor/HysRichTextEditor2.vue.js +70 -69
  68. package/dist/components/HysSearch/HysSearch.vue.js +37 -36
  69. package/dist/components/HysSegmented/HysSegmented.vue.js +5 -63
  70. package/dist/components/HysSegmented/HysSegmented2.vue.js +273 -2
  71. package/dist/components/HysSelect/HysSelect.vue.js +3 -2
  72. package/dist/components/HysSelect/HysSelect2.vue.js +859 -185
  73. package/dist/components/HysSkeleton/HysSkeleton.vue.js +2 -2
  74. package/dist/components/HysSkeleton/HysSkeleton2.vue.js +126 -29
  75. package/dist/components/HysSlider/HysSlider.vue.js +2 -2
  76. package/dist/components/HysSlider/HysSlider2.vue.js +532 -59
  77. package/dist/components/HysSlider/SliderTooltip.vue.js +7 -0
  78. package/dist/components/HysSlider/SliderTooltip2.vue.js +156 -0
  79. package/dist/components/HysSteps/HysSteps.vue.js +1 -1
  80. package/dist/components/HysSteps/HysSteps2.vue.js +110 -36
  81. package/dist/components/HysSwitch/HysSwitch.vue.js +2 -2
  82. package/dist/components/HysSwitch/HysSwitch2.vue.js +232 -50
  83. package/dist/components/HysTable/HysTable.vue.js +2 -2
  84. package/dist/components/HysTable/HysTable2.vue.js +1473 -88
  85. package/dist/components/HysTable/HysTableFilterOptions.vue.js +7 -0
  86. package/dist/components/HysTable/HysTableFilterOptions2.vue.js +133 -0
  87. package/dist/components/HysTabs/HysTabs.vue.js +2 -2
  88. package/dist/components/HysTabs/HysTabs2.vue.js +262 -68
  89. package/dist/components/HysTagInput/HysTagInput.vue.js +43 -42
  90. package/dist/components/HysTextarea/HysTextarea.vue.js +138 -77
  91. package/dist/components/HysTransfer/HysTransfer.vue.js +5 -223
  92. package/dist/components/HysTransfer/HysTransfer2.vue.js +416 -2
  93. package/dist/components/HysTransfer/HysTransferPanel.vue.js +7 -0
  94. package/dist/components/HysTransfer/HysTransferPanel2.vue.js +454 -0
  95. package/dist/components/HysTree/HysTree.vue.js +2 -3
  96. package/dist/components/HysTree/HysTree2.vue.js +641 -302
  97. package/dist/components/HysTreeSelect/HysTreeSelect.vue.js +5 -136
  98. package/dist/components/HysTreeSelect/HysTreeSelect2.vue.js +558 -2
  99. package/dist/components/HysTreeSelect/HysTreeSelectPanel.vue.js +7 -0
  100. package/dist/components/HysTreeSelect/HysTreeSelectPanel2.vue.js +323 -0
  101. package/dist/components/HysUpload/HysUpload.vue.js +2 -2
  102. package/dist/components/HysUpload/HysUpload2.vue.js +77 -76
  103. package/dist/composables/autocomplete.js +50 -0
  104. package/dist/composables/avatar.js +57 -0
  105. package/dist/composables/calendar.js +96 -0
  106. package/dist/composables/cascader.js +79 -0
  107. package/dist/composables/choice.js +38 -0
  108. package/dist/composables/choiceModel.js +67 -0
  109. package/dist/composables/datePicker.js +227 -0
  110. package/dist/composables/formContext.js +92 -7
  111. package/dist/composables/formLayout.js +57 -0
  112. package/dist/composables/formValidation.js +240 -0
  113. package/dist/composables/ganttConflicts.js +143 -0
  114. package/dist/composables/numberInput.js +91 -0
  115. package/dist/composables/rating.js +16 -0
  116. package/dist/composables/selectOptions.js +54 -0
  117. package/dist/composables/table.js +150 -0
  118. package/dist/composables/textInput.js +34 -0
  119. package/dist/composables/transfer.js +63 -0
  120. package/dist/composables/tree.js +118 -0
  121. package/dist/composables/treeSelect.js +71 -0
  122. package/dist/composables/useCascader.js +438 -0
  123. package/dist/composables/useDatePicker.js +425 -0
  124. package/dist/composables/useFloating.js +97 -51
  125. package/dist/composables/useGanttDependencies.js +306 -0
  126. package/dist/composables/useGanttHistory.js +157 -0
  127. package/dist/composables/useGanttLabelResize.js +100 -0
  128. package/dist/composables/useTable.js +474 -0
  129. package/dist/composables/useTextareaSize.js +72 -0
  130. package/dist/composables/useTransfer.js +257 -0
  131. package/dist/composables/useTree.js +439 -0
  132. package/dist/composables/useTreeSelect.js +361 -0
  133. package/dist/index.js +149 -139
  134. package/dist/style.css +1 -1
  135. package/dist/types/components/HysAccordion/HysAccordion.vue.d.ts +61 -22
  136. package/dist/types/components/HysAutocomplete/HysAutocomplete.vue.d.ts +201 -0
  137. package/dist/types/components/HysAvatar/HysAvatar.vue.d.ts +28 -15
  138. package/dist/types/components/HysAvatarGroup/HysAvatarGroup.vue.d.ts +99 -0
  139. package/dist/types/components/HysBadge/HysBadge.vue.d.ts +41 -4
  140. package/dist/types/components/HysBreadcrumb/HysBreadcrumb.vue.d.ts +38 -10
  141. package/dist/types/components/HysButton/HysButton.vue.d.ts +0 -1
  142. package/dist/types/components/HysCalendar/HysCalendar.vue.d.ts +119 -31
  143. package/dist/types/components/HysCard/HysCard.vue.d.ts +55 -7
  144. package/dist/types/components/HysCascader/HysCascader.vue.d.ts +129 -41
  145. package/dist/types/components/HysCascader/HysCascaderColumn.vue.d.ts +55 -0
  146. package/dist/types/components/HysCheckbox/HysCheckbox.vue.d.ts +50 -39
  147. package/dist/types/components/HysCheckboxGroup/HysCheckboxGroup.vue.d.ts +73 -0
  148. package/dist/types/components/HysDataGrid/HysDataGrid.vue.d.ts +1 -1
  149. package/dist/types/components/HysDatePicker/HysDatePicker.vue.d.ts +66 -14
  150. package/dist/types/components/HysDatePicker/HysDatePickerControl.vue.d.ts +90 -0
  151. package/dist/types/components/HysDatePicker/HysDatePickerPanel.vue.d.ts +93 -0
  152. package/dist/types/components/HysDateRangePicker/HysDateRangePicker.vue.d.ts +66 -14
  153. package/dist/types/components/HysDivider/HysDivider.vue.d.ts +8 -3
  154. package/dist/types/components/HysFileManager/HysFileManager.vue.d.ts +2 -2
  155. package/dist/types/components/HysForm/HysForm.vue.d.ts +110 -18
  156. package/dist/types/components/HysFormItem/HysFormItem.vue.d.ts +108 -2
  157. package/dist/types/components/HysGantt/HysGantt.vue.d.ts +82 -4
  158. package/dist/types/components/HysInput/HysInput.vue.d.ts +52 -29
  159. package/dist/types/components/HysMention/HysMention.vue.d.ts +2 -2
  160. package/dist/types/components/HysNumberInput/HysNumberInput.vue.d.ts +93 -35
  161. package/dist/types/components/HysOrgTree/HysOrgTree.vue.d.ts +1 -0
  162. package/dist/types/components/HysPagination/HysPagination.vue.d.ts +1 -1
  163. package/dist/types/components/HysPermissionMatrix/HysPermissionMatrix.vue.d.ts +2 -2
  164. package/dist/types/components/HysPopover/HysPopover.vue.d.ts +3 -3
  165. package/dist/types/components/HysProgress/HysProgress.vue.d.ts +1 -1
  166. package/dist/types/components/HysRadio/HysRadio.vue.d.ts +56 -0
  167. package/dist/types/components/HysRadioGroup/HysRadioGroup.vue.d.ts +34 -12
  168. package/dist/types/components/HysRating/HysRating.vue.d.ts +85 -5
  169. package/dist/types/components/HysRichTextEditor/HysRichTextEditor.vue.d.ts +4 -4
  170. package/dist/types/components/HysSearch/HysSearch.vue.d.ts +2 -2
  171. package/dist/types/components/HysSegmented/HysSegmented.vue.d.ts +64 -32
  172. package/dist/types/components/HysSelect/HysSelect.vue.d.ts +120 -20
  173. package/dist/types/components/HysSkeleton/HysSkeleton.vue.d.ts +30 -2
  174. package/dist/types/components/HysSlider/HysSlider.vue.d.ts +66 -9
  175. package/dist/types/components/HysSlider/SliderTooltip.vue.d.ts +22 -0
  176. package/dist/types/components/HysSplitPane/HysSplitPane.vue.d.ts +1 -1
  177. package/dist/types/components/HysSteps/HysSteps.vue.d.ts +64 -9
  178. package/dist/types/components/HysSwitch/HysSwitch.vue.d.ts +76 -17
  179. package/dist/types/components/HysTable/HysTable.vue.d.ts +206 -32
  180. package/dist/types/components/HysTable/HysTableFilterOptions.vue.d.ts +18 -0
  181. package/dist/types/components/HysTabs/HysTabs.vue.d.ts +76 -23
  182. package/dist/types/components/HysTagInput/HysTagInput.vue.d.ts +5 -5
  183. package/dist/types/components/HysTextarea/HysTextarea.vue.d.ts +44 -27
  184. package/dist/types/components/HysToast/HysToast.vue.d.ts +3 -3
  185. package/dist/types/components/HysTour/HysTour.vue.d.ts +2 -2
  186. package/dist/types/components/HysTransfer/HysTransfer.vue.d.ts +55 -40
  187. package/dist/types/components/HysTransfer/HysTransferPanel.vue.d.ts +105 -0
  188. package/dist/types/components/HysTree/HysTree.vue.d.ts +140 -73
  189. package/dist/types/components/HysTreeSelect/HysTreeSelect.vue.d.ts +102 -23
  190. package/dist/types/components/HysTreeSelect/HysTreeSelectPanel.vue.d.ts +56 -0
  191. package/dist/types/composables/autocomplete.d.ts +106 -0
  192. package/dist/types/composables/avatar.d.ts +70 -0
  193. package/dist/types/composables/calendar.d.ts +66 -0
  194. package/dist/types/composables/cascader.d.ts +192 -0
  195. package/dist/types/composables/choice.d.ts +110 -0
  196. package/dist/types/composables/choiceModel.d.ts +11 -0
  197. package/dist/types/composables/datePicker.d.ts +247 -0
  198. package/dist/types/composables/formContext.d.ts +133 -8
  199. package/dist/types/composables/formLayout.d.ts +11 -0
  200. package/dist/types/composables/formValidation.d.ts +13 -0
  201. package/dist/types/composables/gantt.d.ts +68 -0
  202. package/dist/types/composables/ganttConflicts.d.ts +30 -0
  203. package/dist/types/composables/numberInput.d.ts +45 -0
  204. package/dist/types/composables/rating.d.ts +18 -0
  205. package/dist/types/composables/segmented.d.ts +15 -0
  206. package/dist/types/composables/selectOptions.d.ts +44 -0
  207. package/dist/types/composables/slider.d.ts +21 -0
  208. package/dist/types/composables/table.d.ts +309 -0
  209. package/dist/types/composables/textInput.d.ts +76 -0
  210. package/dist/types/composables/transfer.d.ts +180 -0
  211. package/dist/types/composables/tree.d.ts +237 -0
  212. package/dist/types/composables/treeSelect.d.ts +167 -0
  213. package/dist/types/composables/useCascader.d.ts +162 -0
  214. package/dist/types/composables/useDatePicker.d.ts +79 -0
  215. package/dist/types/composables/useFloating.d.ts +8 -5
  216. package/dist/types/composables/useGanttDependencies.d.ts +83 -0
  217. package/dist/types/composables/useGanttHistory.d.ts +42 -0
  218. package/dist/types/composables/useGanttLabelResize.d.ts +23 -0
  219. package/dist/types/composables/useTable.d.ts +60 -0
  220. package/dist/types/composables/useTextareaSize.d.ts +3 -0
  221. package/dist/types/composables/useTransfer.d.ts +58 -0
  222. package/dist/types/composables/useTree.d.ts +77 -0
  223. package/dist/types/composables/useTreeSelect.d.ts +117 -0
  224. package/dist/types/index.d.ts +33 -7
  225. package/package.json +2 -1
@@ -0,0 +1,110 @@
1
+ import type { ComputedRef, InjectionKey, Ref } from "vue";
2
+ export type HysChoiceValue = string | number | boolean;
3
+ export interface HysChoiceFieldNames {
4
+ label?: string;
5
+ value?: string;
6
+ disabled?: string;
7
+ indeterminate?: string;
8
+ }
9
+ export interface HysChoiceOption<T extends HysChoiceValue = HysChoiceValue> {
10
+ label: string;
11
+ value: T;
12
+ disabled?: boolean;
13
+ indeterminate?: boolean;
14
+ [key: string]: unknown;
15
+ }
16
+ export type HysChoiceDataOption<T extends HysChoiceValue = HysChoiceValue> = T | HysChoiceOption<T> | Record<string, unknown>;
17
+ export interface HysCheckboxReject {
18
+ value?: HysChoiceValue;
19
+ checked?: boolean;
20
+ reason: "min" | "max" | "range";
21
+ }
22
+ export interface HysCheckboxChange {
23
+ value?: HysChoiceValue;
24
+ checked?: boolean;
25
+ source: "toggle" | "all" | "clear";
26
+ }
27
+ export interface HysCheckboxInstance {
28
+ input: HTMLInputElement | undefined;
29
+ checked: boolean;
30
+ focus: (options?: FocusOptions) => void;
31
+ blur: () => void;
32
+ toggle: () => Promise<boolean>;
33
+ }
34
+ export interface HysCheckboxGroupInstance {
35
+ values: HysChoiceValue[];
36
+ allChecked: boolean;
37
+ indeterminate: boolean;
38
+ focus: (value?: HysChoiceValue) => void;
39
+ blur: () => void;
40
+ checkAll: () => Promise<boolean>;
41
+ clear: () => Promise<boolean>;
42
+ toggle: (value: HysChoiceValue, checked?: boolean) => Promise<boolean>;
43
+ }
44
+ interface CheckboxRegistration {
45
+ input: Ref<HTMLInputElement | undefined>;
46
+ value: ComputedRef<HysChoiceValue | undefined>;
47
+ locked: ComputedRef<boolean>;
48
+ disabled: ComputedRef<boolean>;
49
+ }
50
+ export interface HysCheckboxGroupContext {
51
+ values: ComputedRef<HysChoiceValue[]>;
52
+ disabled: ComputedRef<boolean>;
53
+ readonly: ComputedRef<boolean>;
54
+ size: ComputedRef<"sm" | "md" | "lg">;
55
+ button: ComputedRef<boolean>;
56
+ border: ComputedRef<boolean>;
57
+ solid: ComputedRef<boolean>;
58
+ status: ComputedRef<string | undefined>;
59
+ form: ComputedRef<string | undefined>;
60
+ isLimited: (value: HysChoiceValue) => boolean;
61
+ toggle: (value: HysChoiceValue, checked: boolean) => Promise<boolean>;
62
+ register: (record: CheckboxRegistration) => () => void;
63
+ }
64
+ export declare const checkboxGroupKey: InjectionKey<HysCheckboxGroupContext>;
65
+ export declare function isChoice(value: unknown): value is HysChoiceValue;
66
+ export declare function choiceKey(value: HysChoiceValue): string;
67
+ export declare function uniqueChoices(values: readonly unknown[]): HysChoiceValue[];
68
+ export declare function choiceOptions<T extends HysChoiceValue>(source: readonly HysChoiceDataOption<T>[], fields?: HysChoiceFieldNames): HysChoiceOption<T>[];
69
+ export interface HysRadioInstance {
70
+ input: HTMLInputElement | undefined;
71
+ checked: boolean;
72
+ focus: (options?: FocusOptions) => void;
73
+ blur: () => void;
74
+ select: () => Promise<boolean>;
75
+ }
76
+ export interface HysRadioGroupInstance {
77
+ value: HysChoiceValue | null;
78
+ focus: (value?: HysChoiceValue) => void;
79
+ blur: () => void;
80
+ select: (value: HysChoiceValue) => Promise<boolean>;
81
+ }
82
+ export interface HysRadioGroupContext {
83
+ value: ComputedRef<HysChoiceValue | null>;
84
+ disabled: ComputedRef<boolean>;
85
+ readonly: ComputedRef<boolean>;
86
+ required: ComputedRef<boolean>;
87
+ size: ComputedRef<"sm" | "md" | "lg">;
88
+ button: ComputedRef<boolean>;
89
+ border: ComputedRef<boolean>;
90
+ solid: ComputedRef<boolean>;
91
+ name: ComputedRef<string>;
92
+ form: ComputedRef<string | undefined>;
93
+ status: ComputedRef<string | undefined>;
94
+ select: (value: HysChoiceValue) => Promise<boolean>;
95
+ tabindex: (value: HysChoiceValue) => number;
96
+ register: (record: CheckboxRegistration) => () => void;
97
+ }
98
+ export declare const radioGroupKey: InjectionKey<HysRadioGroupContext>;
99
+ export interface HysSwitchGuardContext {
100
+ signal: AbortSignal;
101
+ }
102
+ export interface HysSwitchInstance {
103
+ element: HTMLButtonElement | undefined;
104
+ checked: boolean;
105
+ pending: boolean;
106
+ focus: (options?: FocusOptions) => void;
107
+ blur: () => void;
108
+ toggle: () => Promise<boolean>;
109
+ }
110
+ export {};
@@ -0,0 +1,11 @@
1
+ import { type Ref } from "vue";
2
+ export declare function useChoiceModel<V>(props: {
3
+ modelValue?: V;
4
+ }, initial: () => V, equal?: (a: V, b: V) => boolean, invalidated?: () => void): {
5
+ current: import("vue").ComputedRef<V>;
6
+ commit: (value: V, update: (value: V) => void, change: (value: V) => void, notifyOnRequest?: boolean) => Promise<boolean>;
7
+ reset: () => void;
8
+ invalidate: () => void;
9
+ isLive: () => boolean;
10
+ };
11
+ export declare function useChoiceNativeReset(element: Ref<HTMLElement | undefined>, reset: () => void, sync?: () => void, formId?: () => string | undefined): void;
@@ -0,0 +1,247 @@
1
+ import type { CSSProperties } from "vue";
2
+ import type { Placement } from "./useFloating";
3
+ export type HysDateScalar = string | Date | number;
4
+ export type HysDatePickerValue = HysDateScalar | readonly (HysDateScalar | null)[] | null;
5
+ export type HysDateRangeValue = readonly [HysDateScalar | null, HysDateScalar | null] | null;
6
+ export type HysDatePickerType = "date" | "dates" | "week" | "weeks" | "month" | "months" | "quarter" | "quarters" | "year" | "years" | "datetime";
7
+ export type HysDatePickerView = "date" | "month" | "quarter" | "year";
8
+ export type HysDatePickerUnit = "date" | "week" | "month" | "quarter" | "year";
9
+ export interface HysDatePoint {
10
+ day: number;
11
+ second: number;
12
+ }
13
+ export interface HysDatePickerContext {
14
+ range: "start" | "end";
15
+ from: Date | null;
16
+ iso: string;
17
+ }
18
+ export interface HysDateDisabledTime {
19
+ hours?: readonly number[];
20
+ minutes?: (hour: number) => readonly number[];
21
+ seconds?: (hour: number, minute: number) => readonly number[];
22
+ }
23
+ export interface HysDateShortcut {
24
+ label: string;
25
+ value: HysDatePickerValue | (() => HysDatePickerValue);
26
+ disabled?: boolean;
27
+ }
28
+ export interface HysDatePickerCell {
29
+ date: Date;
30
+ iso: string;
31
+ value: number;
32
+ end: number;
33
+ text: string;
34
+ type: HysDatePickerView;
35
+ outside: boolean;
36
+ disabled: boolean;
37
+ selected: boolean;
38
+ inRange: boolean;
39
+ today: boolean;
40
+ week: number;
41
+ weekYear: number;
42
+ weekStart: string;
43
+ weekEnd: string;
44
+ }
45
+ export interface HysDatePickerWeek {
46
+ year: number;
47
+ week: number;
48
+ start: string;
49
+ end: string;
50
+ dates: readonly string[];
51
+ }
52
+ export interface HysDatePickerChange {
53
+ source: "date" | "time" | "input" | "shortcut" | "clear" | "confirm" | "api";
54
+ dates: readonly (Date | null)[];
55
+ formatted: readonly string[];
56
+ weeks?: readonly (HysDatePickerWeek | null)[];
57
+ }
58
+ export interface HysDatePickerLocale {
59
+ today: string;
60
+ now: string;
61
+ clear: string;
62
+ cancel: string;
63
+ close: string;
64
+ confirm: string;
65
+ start: string;
66
+ end: string;
67
+ chooseStart: string;
68
+ chooseEnd: string;
69
+ invalid: string;
70
+ week: string;
71
+ year: string;
72
+ month: string;
73
+ back: string;
74
+ prevMonth: string;
75
+ nextMonth: string;
76
+ prevYear: string;
77
+ nextYear: string;
78
+ hour: string;
79
+ minute: string;
80
+ second: string;
81
+ empty: string;
82
+ limit: string;
83
+ }
84
+ export interface HysDatePickerProps<V extends HysDatePickerValue = HysDatePickerValue> {
85
+ modelValue?: V;
86
+ defaultValue?: V;
87
+ clearValue?: V;
88
+ type?: HysDatePickerType;
89
+ valueType?: "string" | "date" | "timestamp";
90
+ valueFormat?: string;
91
+ format?: string;
92
+ inputFormats?: readonly string[];
93
+ disabled?: boolean | readonly [boolean, boolean];
94
+ readonly?: boolean;
95
+ size?: "sm" | "md" | "lg";
96
+ status?: "error" | "warning" | "success";
97
+ bordered?: boolean;
98
+ placeholder?: string;
99
+ label?: string;
100
+ ariaLabel?: string;
101
+ name?: string | readonly [string, string];
102
+ form?: string;
103
+ autofocus?: boolean;
104
+ min?: HysDateScalar;
105
+ max?: HysDateScalar;
106
+ disabledDate?: (date: Date, context: HysDatePickerContext) => boolean;
107
+ disabledTime?: (date: Date, context: HysDatePickerContext) => HysDateDisabledTime;
108
+ firstDayOfWeek?: number;
109
+ firstWeekContainsDate?: number;
110
+ weekNumberFormatter?: (week: HysDatePickerWeek) => string;
111
+ disabledWeek?: (week: HysDatePickerWeek) => boolean;
112
+ weekValidation?: "any" | "full";
113
+ locale?: string;
114
+ messages?: Partial<HysDatePickerLocale>;
115
+ showWeekNumbers?: boolean;
116
+ showAdjacentDays?: boolean;
117
+ defaultPickerValue?: HysDateScalar;
118
+ panelValue?: HysDateScalar;
119
+ mode?: HysDatePickerView;
120
+ defaultMode?: HysDatePickerView;
121
+ shortcuts?: readonly HysDateShortcut[];
122
+ clearable?: boolean;
123
+ editable?: boolean;
124
+ inputReadonly?: boolean;
125
+ showOnFocus?: boolean;
126
+ showToday?: boolean;
127
+ showNow?: boolean;
128
+ showFooter?: boolean;
129
+ showConfirm?: boolean;
130
+ showTime?: boolean;
131
+ defaultTime?: string | readonly [string, string];
132
+ hourStep?: number;
133
+ minuteStep?: number;
134
+ secondStep?: number;
135
+ showSeconds?: boolean;
136
+ rangeSeparator?: string;
137
+ startPlaceholder?: string;
138
+ endPlaceholder?: string;
139
+ allowEmpty?: readonly [boolean, boolean];
140
+ singlePanel?: boolean;
141
+ unlinkPanels?: boolean;
142
+ minRangeDays?: number;
143
+ maxRangeDays?: number;
144
+ rangeValidation?: "endpoints" | "continuous";
145
+ maxDates?: number;
146
+ open?: boolean;
147
+ defaultOpen?: boolean;
148
+ inline?: boolean;
149
+ placement?: Placement;
150
+ appendTo?: string | HTMLElement | false;
151
+ popupWidth?: number | string;
152
+ popupClass?: string;
153
+ popupStyle?: CSSProperties;
154
+ validateEvent?: boolean;
155
+ cellClassName?: (cell: HysDatePickerCell) => string;
156
+ }
157
+ export interface HysDateRangePickerProps<V extends HysDatePickerValue = HysDateRangeValue> extends HysDatePickerProps<V> {
158
+ }
159
+ export interface HysDatePickerInstance<V extends HysDatePickerValue = HysDatePickerValue> {
160
+ readonly element: HTMLElement | undefined;
161
+ readonly open: boolean;
162
+ readonly value: V;
163
+ readonly draft: readonly (Date | null)[];
164
+ focus: () => void;
165
+ blur: () => void;
166
+ show: () => Promise<boolean>;
167
+ hide: (restoreFocus?: boolean) => void;
168
+ handleOpen: () => Promise<boolean>;
169
+ handleClose: () => void;
170
+ clear: () => Promise<boolean>;
171
+ setValue: (value: V) => Promise<boolean>;
172
+ confirm: () => Promise<boolean>;
173
+ cancel: () => void;
174
+ showMonth: (value: HysDateScalar) => Promise<boolean>;
175
+ setMode: (view: HysDatePickerView) => boolean;
176
+ }
177
+ export interface HysDatePickerSlots {
178
+ "week-number"?: (week: HysDatePickerWeek & {
179
+ selected: boolean;
180
+ disabled: boolean;
181
+ }) => any;
182
+ default?: (cell: HysDatePickerCell) => any;
183
+ cell?: (cell: HysDatePickerCell) => any;
184
+ prefix?: () => any;
185
+ suffix?: () => any;
186
+ "clear-icon"?: () => any;
187
+ "prev-month"?: () => any;
188
+ "next-month"?: () => any;
189
+ "prev-year"?: () => any;
190
+ "next-year"?: () => any;
191
+ header?: (context: {
192
+ dates: readonly (Date | null)[];
193
+ view: HysDatePickerView;
194
+ }) => any;
195
+ footer?: (context: {
196
+ dates: readonly (Date | null)[];
197
+ confirm: () => Promise<boolean>;
198
+ cancel: () => void;
199
+ clear: () => Promise<boolean>;
200
+ }) => any;
201
+ shortcut?: (context: {
202
+ shortcut: HysDateShortcut;
203
+ index: number;
204
+ }) => any;
205
+ "range-separator"?: () => any;
206
+ }
207
+ export type HysDateRangePickerInstance<V extends HysDatePickerValue = HysDateRangeValue> = HysDatePickerInstance<V>;
208
+ export declare const datePickerDefaults: {
209
+ readonly open: undefined;
210
+ readonly showConfirm: undefined;
211
+ readonly type: "date";
212
+ readonly clearable: false;
213
+ readonly editable: false;
214
+ readonly bordered: true;
215
+ readonly firstDayOfWeek: 1;
216
+ readonly locale: "zh-CN";
217
+ readonly showAdjacentDays: true;
218
+ readonly showToday: true;
219
+ readonly showNow: true;
220
+ readonly showFooter: true;
221
+ readonly showSeconds: true;
222
+ readonly singlePanel: true;
223
+ readonly rangeSeparator: " 至 ";
224
+ readonly hourStep: 1;
225
+ readonly minuteStep: 1;
226
+ readonly secondStep: 1;
227
+ readonly rangeValidation: "endpoints";
228
+ readonly validateEvent: true;
229
+ readonly appendTo: "body";
230
+ };
231
+ export declare const datePickerWords: HysDatePickerLocale;
232
+ export declare const datePickerEnglish: HysDatePickerLocale;
233
+ export declare const DATE_MIN: number, DATE_MAX: number;
234
+ export declare const dateUnit: (type: string | undefined) => HysDatePickerUnit;
235
+ export declare const dateMultiple: (type: string | undefined) => boolean;
236
+ export declare function datePattern(type: string | undefined, time?: boolean): "YYYY-MM-DD" | "YYYY" | "YYYY-MM-DD HH:mm:ss" | "YYYY-MM" | "YYYY-[Q]Q";
237
+ export declare function datePeriod(day: number, unit: HysDatePickerUnit, first?: number): [number, number];
238
+ export declare function dateTimeString(second: number): string;
239
+ export declare function dateTimeSeconds(value: string | undefined): number;
240
+ export declare function dateWeek(day: number, first?: number, contains?: number): HysDatePickerWeek;
241
+ export declare function dateFormat(point: HysDatePoint, pattern: string, first?: number, contains?: number): string;
242
+ export declare function datePoint(value: unknown, pattern?: string, first?: number, contains?: number): HysDatePoint | undefined;
243
+ export declare function dateNative(point: HysDatePoint): Date;
244
+ export declare function dateEqual(a: HysDatePickerValue | undefined, b: HysDatePickerValue | undefined): boolean;
245
+ export declare function dateClone<V extends HysDatePickerValue>(value: V): V;
246
+ export declare function dateLocale(locale: string): Intl.DateTimeFormat;
247
+ export declare function dateShift(day: number, months: number): number;
@@ -1,20 +1,116 @@
1
- import type { ComputedRef, InjectionKey, Ref } from 'vue';
1
+ import { type ComputedRef, type InjectionKey, type Ref } from "vue";
2
+ import type { RuleType, ValidateMessages } from "async-validator";
3
+ import type { HysFormCol } from "./formLayout";
4
+ export type HysFormPath = string | readonly (string | number)[];
5
+ export type HysFormPaths = string | readonly HysFormPath[];
6
+ export type HysFormTrigger = "blur" | "change";
7
+ export type HysFormStatus = "idle" | "validating" | "success" | "warning" | "error";
8
+ export type HysFormRuleType = RuleType;
9
+ export type HysFormMessages = Partial<ValidateMessages>;
10
+ export interface HysFormValidationContext {
11
+ path: string;
12
+ signal: AbortSignal;
13
+ }
14
+ export type HysFormValidateCallback = (valid: boolean, result: HysFormValidationResult) => void | Promise<void>;
15
+ export interface HysFormFieldData {
16
+ name: HysFormPath;
17
+ value?: unknown;
18
+ errors?: string[];
19
+ warnings?: string[];
20
+ }
2
21
  export interface HysFormRule {
22
+ type?: HysFormRuleType;
3
23
  required?: boolean;
4
- message?: string;
24
+ message?: string | ((path?: string) => string);
5
25
  min?: number;
6
26
  max?: number;
7
- pattern?: RegExp;
8
- trigger?: 'blur' | 'change' | ('blur' | 'change')[];
9
- validator?: (value: unknown, model: Record<string, unknown>) => boolean | string | void | Promise<boolean | string | void>;
27
+ len?: number;
28
+ enum?: Array<string | number | boolean | null | undefined>;
29
+ whitespace?: boolean;
30
+ pattern?: RegExp | string;
31
+ transform?: (value: unknown) => unknown;
32
+ fields?: HysFormRules;
33
+ defaultField?: HysFormRule | HysFormRule[];
34
+ trigger?: HysFormTrigger | HysFormTrigger[];
35
+ level?: "error" | "warning";
36
+ validator?: (value: unknown, model: Record<string, unknown>, context: HysFormValidationContext) => boolean | string | Error | void | Promise<boolean | string | Error | void>;
37
+ asyncValidator?: (value: unknown, callback: (error?: string | Error) => void, model: Record<string, unknown>, context: HysFormValidationContext) => void | Promise<void>;
38
+ }
39
+ export interface HysFormRules {
40
+ [path: string]: HysFormRule | HysFormRule[];
41
+ }
42
+ export interface HysFormValidationResult {
43
+ valid: boolean;
44
+ cancelled: boolean;
45
+ values: Record<string, unknown>;
46
+ errors: Record<string, string>;
47
+ warnings: Record<string, string>;
48
+ errorMessages: Record<string, string[]>;
49
+ warningMessages: Record<string, string[]>;
50
+ }
51
+ export interface HysFormFieldState {
52
+ status: HysFormStatus;
53
+ message: string;
54
+ warning: string;
55
+ validating: boolean;
56
+ }
57
+ export interface HysFormField {
58
+ path: ComputedRef<string>;
59
+ element: Ref<HTMLElement | undefined>;
60
+ rules: ComputedRef<HysFormRule[]>;
61
+ trigger: ComputedRef<HysFormTrigger | HysFormTrigger[]>;
62
+ dependencies?: ComputedRef<readonly HysFormPath[]>;
63
+ label: ComputedRef<string | undefined>;
64
+ validateFirst?: ComputedRef<boolean>;
65
+ preserve?: ComputedRef<boolean>;
66
+ validate: (trigger?: HysFormTrigger) => Promise<boolean>;
67
+ clearValidate: () => void;
68
+ resetField: () => void;
69
+ setInitialValue?: (value: unknown) => void;
70
+ focus: () => void;
10
71
  }
11
72
  export interface HysFormContext {
12
73
  model: ComputedRef<Record<string, unknown> | undefined>;
13
74
  resetting: Ref<boolean>;
75
+ suppressAutoBlur?: Ref<boolean>;
14
76
  errors: Ref<Record<string, string>>;
15
- rules: ComputedRef<Record<string, HysFormRule | HysFormRule[]>>;
16
- register: (name: string) => () => void;
17
- validateField: (name: string, trigger?: 'blur' | 'change') => Promise<boolean>;
77
+ warnings: Ref<Record<string, string>>;
78
+ errorMessages: Ref<Record<string, string[]>>;
79
+ warningMessages: Ref<Record<string, string[]>>;
80
+ states: Ref<Record<string, HysFormFieldState>>;
81
+ rules: ComputedRef<HysFormRules>;
82
+ getRules: (path: HysFormPath) => HysFormRule[];
83
+ disabled: ComputedRef<boolean>;
84
+ size: ComputedRef<"sm" | "md" | "lg">;
85
+ labelPosition: ComputedRef<"top" | "left" | "right">;
86
+ labelWidth: ComputedRef<string>;
87
+ autoLabelWidth: ComputedRef<string>;
88
+ containerWidth: ComputedRef<number>;
89
+ columns: ComputedRef<number>;
90
+ labelAlign: ComputedRef<"left" | "right">;
91
+ labelWrap: ComputedRef<boolean>;
92
+ labelSuffix: ComputedRef<string>;
93
+ colon: ComputedRef<boolean>;
94
+ labelCol: ComputedRef<HysFormCol | undefined>;
95
+ wrapperCol: ComputedRef<HysFormCol | undefined>;
96
+ inlineFeedback: ComputedRef<boolean>;
97
+ feedbackIcon: ComputedRef<boolean>;
98
+ optionalMark: ComputedRef<string>;
99
+ validateFirst: ComputedRef<boolean>;
100
+ preserve: ComputedRef<boolean>;
101
+ setLabelWidth: (key: string, width?: number) => void;
102
+ showLabel: ComputedRef<boolean>;
103
+ showFeedback: ComputedRef<boolean>;
104
+ showRequiredMark: ComputedRef<boolean>;
105
+ requiredMarkPosition: ComputedRef<"left" | "right">;
106
+ validateTrigger: ComputedRef<HysFormTrigger | HysFormTrigger[]>;
107
+ validateOnRuleChange: ComputedRef<boolean>;
108
+ register: (field: HysFormField) => () => void;
109
+ validateField: (name: HysFormPath, trigger?: HysFormTrigger) => Promise<boolean>;
110
+ cancelField: (name: HysFormPath) => void;
111
+ clearValidate: (names?: HysFormPaths) => void;
112
+ resetFields: (names?: HysFormPaths) => void;
113
+ setFieldInitialValue: (name: HysFormPath, value: unknown) => void;
18
114
  }
19
115
  export declare const formKey: InjectionKey<HysFormContext>;
20
116
  export interface HysFieldContext {
@@ -24,6 +120,35 @@ export interface HysFieldContext {
24
120
  errorId: string;
25
121
  describedBy: ComputedRef<string | undefined>;
26
122
  required: ComputedRef<boolean>;
123
+ invalid?: ComputedRef<boolean>;
124
+ status?: ComputedRef<HysFormStatus>;
125
+ validate?: (trigger?: HysFormTrigger) => Promise<boolean>;
126
+ disabled?: ComputedRef<boolean>;
127
+ size?: ComputedRef<"sm" | "md" | "lg">;
27
128
  }
28
129
  export declare const fieldKey: InjectionKey<HysFieldContext>;
130
+ /** Integrate a custom control with its nearest FormItem without DOM queries. */
131
+ export declare function useHysFormItemContext(): {
132
+ id: ComputedRef<string | undefined>;
133
+ label: ComputedRef<string | undefined>;
134
+ disabled: ComputedRef<boolean>;
135
+ size: ComputedRef<"sm" | "md" | "lg">;
136
+ required: ComputedRef<boolean>;
137
+ invalid: ComputedRef<boolean>;
138
+ status: ComputedRef<HysFormStatus>;
139
+ error: ComputedRef<string | undefined>;
140
+ describedBy: ComputedRef<string | undefined>;
141
+ validate: (trigger?: HysFormTrigger) => Promise<boolean>;
142
+ };
143
+ export declare function useHysControlState(props: {
144
+ disabled?: boolean;
145
+ size?: "sm" | "md" | "lg";
146
+ }): {
147
+ disabled: ComputedRef<boolean>;
148
+ size: ComputedRef<"sm" | "md" | "lg">;
149
+ label: ComputedRef<string | undefined>;
150
+ };
151
+ export declare function formPath(path: HysFormPath): string;
152
+ export declare function formValue(model: Record<string, unknown> | undefined, path: HysFormPath): unknown;
153
+ export declare function setFormValue(model: Record<string, unknown>, path: HysFormPath, value: unknown): void;
29
154
  export declare function focusHysField(control: HTMLElement | null | undefined): void;
@@ -0,0 +1,11 @@
1
+ import { type Ref } from "vue";
2
+ export type HysFormBreakpoint = "xs" | "sm" | "md" | "lg" | "xl" | "xxl";
3
+ export type HysFormGridValue = number | Partial<Record<HysFormBreakpoint, number>>;
4
+ export interface HysFormColSize {
5
+ span?: number;
6
+ offset?: number;
7
+ }
8
+ export type HysFormCol = HysFormColSize & Partial<Record<HysFormBreakpoint, number | HysFormColSize>>;
9
+ export declare function resolveFormGrid(value: HysFormGridValue | undefined, width: number, fallback?: number): number;
10
+ export declare function resolveFormCol(value: HysFormCol | undefined, width: number): HysFormColSize | undefined;
11
+ export declare function useFormWidth(element: Ref<HTMLElement | undefined>): import("vue").ComputedRef<number>;
@@ -0,0 +1,13 @@
1
+ import { type HysFormMessages, type HysFormRule, type HysFormRules, type HysFormValidationContext } from "./formContext";
2
+ export declare function snapshotForm(value: unknown, seen?: WeakMap<object, unknown>): unknown;
3
+ export declare function sameFormValue(a: unknown, b: unknown, seen?: WeakMap<object, object>): boolean;
4
+ export interface HysFormRuleResult {
5
+ messages: string[];
6
+ fields: Record<string, string[]>;
7
+ }
8
+ export declare function runFormRules(name: string, value: unknown, rules: HysFormRule[], model: Record<string, unknown>, messages: HysFormMessages | undefined, context: HysFormValidationContext, first?: boolean): HysFormRuleResult | Promise<HysFormRuleResult>;
9
+ /** Resolve a mounted leaf against object/array descriptors declared on parents. */
10
+ export declare function nestedFormRules(path: string, rules: HysFormRules, model?: Record<string, unknown>): {
11
+ rules: HysFormRule[];
12
+ value: unknown;
13
+ };
@@ -0,0 +1,68 @@
1
+ export interface HysGanttScrollOptions {
2
+ behavior?: ScrollBehavior;
3
+ block?: ScrollLogicalPosition;
4
+ horizontal?: boolean;
5
+ }
6
+ export interface HysGanttDependencyChange {
7
+ sourceId: string | number;
8
+ targetId: string | number;
9
+ type: "add" | "remove";
10
+ }
11
+ export type HysGanttDependencyReason = "missing" | "disabled" | "self" | "duplicate" | "cycle" | "rejected" | "busy";
12
+ export type HysGanttHistoryType = "move" | "resize-start" | "resize-end" | "nudge" | "dependency-add" | "dependency-remove" | "dependency-move";
13
+ export interface HysGanttHistoryEntry {
14
+ type: HysGanttHistoryType;
15
+ label: string;
16
+ taskIds: Array<string | number>;
17
+ }
18
+ export interface HysGanttHistoryState {
19
+ canUndo: boolean;
20
+ canRedo: boolean;
21
+ undoCount: number;
22
+ redoCount: number;
23
+ undoLabel: string;
24
+ redoLabel: string;
25
+ pending: boolean;
26
+ }
27
+ export interface HysGanttHistoryInvalid {
28
+ action: "undo" | "redo";
29
+ reason: "disabled" | "busy" | "missing" | "stale" | "rejected";
30
+ }
31
+ export type HysGanttConflictType = "dependency-order" | "invalid-date" | "missing-dependency" | "dependency-cycle";
32
+ export interface HysGanttConflict {
33
+ id: string;
34
+ type: HysGanttConflictType;
35
+ taskId: string | number;
36
+ taskTitle: string;
37
+ sourceId?: string | number;
38
+ sourceTitle?: string;
39
+ message: string;
40
+ expectedStart?: string;
41
+ days?: number;
42
+ }
43
+ export interface HysGanttDependencyMove {
44
+ sourceId: string | number;
45
+ previousTargetId: string | number;
46
+ targetId: string | number;
47
+ type: "move";
48
+ }
49
+ export type HysGanttDependencyInvalid = (HysGanttDependencyChange | HysGanttDependencyMove) & {
50
+ reason: HysGanttDependencyReason;
51
+ };
52
+ export interface HysGanttInstance {
53
+ element: HTMLElement | undefined;
54
+ viewport: HTMLElement | null;
55
+ scrollToTask: (id: string | number, options?: HysGanttScrollOptions) => Promise<boolean>;
56
+ scrollToTop: (options?: Pick<HysGanttScrollOptions, "behavior">) => void;
57
+ addDependency: (sourceId: string | number, targetId: string | number) => Promise<boolean>;
58
+ removeDependency: (sourceId: string | number, targetId: string | number) => Promise<boolean>;
59
+ cancelDependency: () => void;
60
+ moveDependency: (sourceId: string | number, previousTargetId: string | number, targetId: string | number) => Promise<boolean>;
61
+ canUndo: boolean;
62
+ canRedo: boolean;
63
+ historyState: HysGanttHistoryState;
64
+ undo: () => Promise<boolean>;
65
+ redo: () => Promise<boolean>;
66
+ clearHistory: () => void;
67
+ conflicts: readonly HysGanttConflict[];
68
+ }
@@ -0,0 +1,30 @@
1
+ import type { HysGanttConflict } from "./gantt";
2
+ type Id = string | number;
3
+ export interface GanttScheduleTask {
4
+ id: Id;
5
+ title: string;
6
+ start: string;
7
+ end: string;
8
+ dependencies?: readonly Id[];
9
+ }
10
+ interface Task extends GanttScheduleTask {
11
+ s: number | null;
12
+ e: number | null;
13
+ }
14
+ interface Edge {
15
+ sourceId: Id;
16
+ targetId: Id;
17
+ id: string;
18
+ }
19
+ export declare function parseGanttDay(value: string): number | null;
20
+ export declare const ganttEdgeKey: (source: Id, target: Id) => string;
21
+ export declare function analyzeGanttSchedule(items: readonly GanttScheduleTask[]): {
22
+ conflicts: HysGanttConflict[];
23
+ byTask: Map<Id, HysGanttConflict[]>;
24
+ byEdge: Map<string, HysGanttConflict>;
25
+ tasks: Map<Id, Task>;
26
+ incident: Map<Id, Edge[]>;
27
+ cyclic: Set<string>;
28
+ };
29
+ export declare function previewGanttConflicts(analysis: ReturnType<typeof analyzeGanttSchedule>, id: Id, start: number, end: number): HysGanttConflict[];
30
+ export {};