@falcon-ui/falcon-ui 1.0.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.
- package/LICENSE +21 -0
- package/README.md +182 -0
- package/cjs/JsBarcode-BlUjuVmB.cjs +3519 -0
- package/cjs/JsBarcode-BlUjuVmB.cjs.map +1 -0
- package/cjs/chunk-D4y6LrGi.cjs +40 -0
- package/cjs/components/JsBarcode-BOXEZn4Q.cjs +3519 -0
- package/cjs/components/JsBarcode-BOXEZn4Q.cjs.map +1 -0
- package/cjs/components/barcode/JsBarcode-BOXEZn4Q.cjs +3519 -0
- package/cjs/components/barcode/JsBarcode-BOXEZn4Q.cjs.map +1 -0
- package/cjs/components/barcode/chunk-D4y6LrGi.cjs +40 -0
- package/cjs/components/barcode/index.cjs +211 -0
- package/cjs/components/barcode/index.cjs.map +1 -0
- package/cjs/components/barcode/src/JsBarcode-BOXEZn4Q.cjs +3519 -0
- package/cjs/components/barcode/src/JsBarcode-BOXEZn4Q.cjs.map +1 -0
- package/cjs/components/barcode/src/barcode.cjs +102 -0
- package/cjs/components/barcode/src/barcode.cjs.map +1 -0
- package/cjs/components/barcode/src/barcode.vue.cjs +200 -0
- package/cjs/components/barcode/src/barcode.vue.cjs.map +1 -0
- package/cjs/components/barcode/src/chunk-D4y6LrGi.cjs +40 -0
- package/cjs/components/button/index.cjs +135 -0
- package/cjs/components/button/index.cjs.map +1 -0
- package/cjs/components/button/src/button.cjs +16 -0
- package/cjs/components/button/src/button.cjs.map +1 -0
- package/cjs/components/button/src/button.vue.cjs +124 -0
- package/cjs/components/button/src/button.vue.cjs.map +1 -0
- package/cjs/components/chunk-D4y6LrGi.cjs +40 -0
- package/cjs/components/date-picker/index.cjs +164 -0
- package/cjs/components/date-picker/index.cjs.map +1 -0
- package/cjs/components/date-picker/src/date-picker.cjs +25 -0
- package/cjs/components/date-picker/src/date-picker.cjs.map +1 -0
- package/cjs/components/date-picker/src/date-picker.vue.cjs +153 -0
- package/cjs/components/date-picker/src/date-picker.vue.cjs.map +1 -0
- package/cjs/components/dialog/index.cjs +346 -0
- package/cjs/components/dialog/index.cjs.map +1 -0
- package/cjs/components/dialog/src/dialog.cjs +40 -0
- package/cjs/components/dialog/src/dialog.cjs.map +1 -0
- package/cjs/components/dialog/src/dialog.vue.cjs +343 -0
- package/cjs/components/dialog/src/dialog.vue.cjs.map +1 -0
- package/cjs/components/index.cjs +9450 -0
- package/cjs/components/index.cjs.map +1 -0
- package/cjs/components/input/index.cjs +175 -0
- package/cjs/components/input/index.cjs.map +1 -0
- package/cjs/components/input/src/input.cjs +27 -0
- package/cjs/components/input/src/input.cjs.map +1 -0
- package/cjs/components/input/src/input.vue.cjs +164 -0
- package/cjs/components/input/src/input.vue.cjs.map +1 -0
- package/cjs/components/input-number/index.cjs +374 -0
- package/cjs/components/input-number/index.cjs.map +1 -0
- package/cjs/components/input-number/src/input-number.cjs +48 -0
- package/cjs/components/input-number/src/input-number.cjs.map +1 -0
- package/cjs/components/input-number/src/input-number.vue.cjs +363 -0
- package/cjs/components/input-number/src/input-number.vue.cjs.map +1 -0
- package/cjs/components/input-search/index.cjs +286 -0
- package/cjs/components/input-search/index.cjs.map +1 -0
- package/cjs/components/input-search/src/input-search.cjs +55 -0
- package/cjs/components/input-search/src/input-search.cjs.map +1 -0
- package/cjs/components/input-search/src/input-search.vue.cjs +275 -0
- package/cjs/components/input-search/src/input-search.vue.cjs.map +1 -0
- package/cjs/components/qr-code/index.cjs +1975 -0
- package/cjs/components/qr-code/index.cjs.map +1 -0
- package/cjs/components/qr-code/src/qr-code.cjs +63 -0
- package/cjs/components/qr-code/src/qr-code.cjs.map +1 -0
- package/cjs/components/qr-code/src/qr-code.vue.cjs +1964 -0
- package/cjs/components/qr-code/src/qr-code.vue.cjs.map +1 -0
- package/cjs/components/radial-menu/index.cjs +983 -0
- package/cjs/components/radial-menu/index.cjs.map +1 -0
- package/cjs/components/radial-menu/src/radial-menu.cjs +96 -0
- package/cjs/components/radial-menu/src/radial-menu.cjs.map +1 -0
- package/cjs/components/radial-menu/src/radial-menu.vue.cjs +921 -0
- package/cjs/components/radial-menu/src/radial-menu.vue.cjs.map +1 -0
- package/cjs/components/select/index.cjs +163 -0
- package/cjs/components/select/index.cjs.map +1 -0
- package/cjs/components/select/src/select.cjs +16 -0
- package/cjs/components/select/src/select.cjs.map +1 -0
- package/cjs/components/select/src/select.vue.cjs +152 -0
- package/cjs/components/select/src/select.vue.cjs.map +1 -0
- package/cjs/components/table/index.cjs +3351 -0
- package/cjs/components/table/index.cjs.map +1 -0
- package/cjs/components/table/src/table.cjs +62 -0
- package/cjs/components/table/src/table.cjs.map +1 -0
- package/cjs/components/table/src/table.vue.cjs +3085 -0
- package/cjs/components/table/src/table.vue.cjs.map +1 -0
- package/cjs/dialog-CJU00aEV.cjs +614 -0
- package/cjs/dialog-CJU00aEV.cjs.map +1 -0
- package/cjs/dialog-DcH26KbE.cjs +2 -0
- package/cjs/hooks/dialog-DpYPBcKV.cjs +266 -0
- package/cjs/hooks/dialog-DpYPBcKV.cjs.map +1 -0
- package/cjs/hooks/hooks-D2Jaq5kO.cjs +328 -0
- package/cjs/hooks/hooks-D2Jaq5kO.cjs.map +1 -0
- package/cjs/hooks/index.cjs +8 -0
- package/cjs/icons/index.cjs +86 -0
- package/cjs/icons/index.cjs.map +1 -0
- package/cjs/index.cjs +9141 -0
- package/cjs/index.cjs.map +1 -0
- package/cjs/utils/index.cjs +69 -0
- package/cjs/utils/index.cjs.map +1 -0
- package/esm/JsBarcode-kVJER62m.js +3514 -0
- package/esm/JsBarcode-kVJER62m.js.map +1 -0
- package/esm/chunk-BuRq7rDw.js +23 -0
- package/esm/components/JsBarcode-CzzxrEd_.js +3514 -0
- package/esm/components/JsBarcode-CzzxrEd_.js.map +1 -0
- package/esm/components/barcode/JsBarcode-C5ux6wsb.js +3514 -0
- package/esm/components/barcode/JsBarcode-C5ux6wsb.js.map +1 -0
- package/esm/components/barcode/chunk--em_ddB3.js +23 -0
- package/esm/components/barcode/index.mjs +204 -0
- package/esm/components/barcode/index.mjs.map +1 -0
- package/esm/components/barcode/src/JsBarcode-C5ux6wsb.js +3514 -0
- package/esm/components/barcode/src/JsBarcode-C5ux6wsb.js.map +1 -0
- package/esm/components/barcode/src/barcode.mjs +98 -0
- package/esm/components/barcode/src/barcode.mjs.map +1 -0
- package/esm/components/barcode/src/barcode.vue.mjs +194 -0
- package/esm/components/barcode/src/barcode.vue.mjs.map +1 -0
- package/esm/components/barcode/src/chunk--em_ddB3.js +23 -0
- package/esm/components/button/index.mjs +126 -0
- package/esm/components/button/index.mjs.map +1 -0
- package/esm/components/button/src/button.mjs +14 -0
- package/esm/components/button/src/button.mjs.map +1 -0
- package/esm/components/button/src/button.vue.mjs +117 -0
- package/esm/components/button/src/button.vue.mjs.map +1 -0
- package/esm/components/chunk-BuRq7rDw.js +23 -0
- package/esm/components/date-picker/index.mjs +155 -0
- package/esm/components/date-picker/index.mjs.map +1 -0
- package/esm/components/date-picker/src/date-picker.mjs +23 -0
- package/esm/components/date-picker/src/date-picker.mjs.map +1 -0
- package/esm/components/date-picker/src/date-picker.vue.mjs +146 -0
- package/esm/components/date-picker/src/date-picker.vue.mjs.map +1 -0
- package/esm/components/dialog/index.mjs +335 -0
- package/esm/components/dialog/index.mjs.map +1 -0
- package/esm/components/dialog/src/dialog.mjs +38 -0
- package/esm/components/dialog/src/dialog.mjs.map +1 -0
- package/esm/components/dialog/src/dialog.vue.mjs +334 -0
- package/esm/components/dialog/src/dialog.vue.mjs.map +1 -0
- package/esm/components/index.mjs +9386 -0
- package/esm/components/index.mjs.map +1 -0
- package/esm/components/input/index.mjs +166 -0
- package/esm/components/input/index.mjs.map +1 -0
- package/esm/components/input/src/input.mjs +25 -0
- package/esm/components/input/src/input.mjs.map +1 -0
- package/esm/components/input/src/input.vue.mjs +157 -0
- package/esm/components/input/src/input.vue.mjs.map +1 -0
- package/esm/components/input-number/index.mjs +365 -0
- package/esm/components/input-number/index.mjs.map +1 -0
- package/esm/components/input-number/src/input-number.mjs +45 -0
- package/esm/components/input-number/src/input-number.mjs.map +1 -0
- package/esm/components/input-number/src/input-number.vue.mjs +356 -0
- package/esm/components/input-number/src/input-number.vue.mjs.map +1 -0
- package/esm/components/input-search/index.mjs +277 -0
- package/esm/components/input-search/index.mjs.map +1 -0
- package/esm/components/input-search/src/input-search.mjs +53 -0
- package/esm/components/input-search/src/input-search.mjs.map +1 -0
- package/esm/components/input-search/src/input-search.vue.mjs +268 -0
- package/esm/components/input-search/src/input-search.vue.mjs.map +1 -0
- package/esm/components/qr-code/index.mjs +1967 -0
- package/esm/components/qr-code/index.mjs.map +1 -0
- package/esm/components/qr-code/src/qr-code.mjs +59 -0
- package/esm/components/qr-code/src/qr-code.mjs.map +1 -0
- package/esm/components/qr-code/src/qr-code.vue.mjs +1958 -0
- package/esm/components/qr-code/src/qr-code.vue.mjs.map +1 -0
- package/esm/components/radial-menu/index.mjs +974 -0
- package/esm/components/radial-menu/index.mjs.map +1 -0
- package/esm/components/radial-menu/src/radial-menu.mjs +94 -0
- package/esm/components/radial-menu/src/radial-menu.mjs.map +1 -0
- package/esm/components/radial-menu/src/radial-menu.vue.mjs +916 -0
- package/esm/components/radial-menu/src/radial-menu.vue.mjs.map +1 -0
- package/esm/components/select/index.mjs +154 -0
- package/esm/components/select/index.mjs.map +1 -0
- package/esm/components/select/src/select.mjs +14 -0
- package/esm/components/select/src/select.mjs.map +1 -0
- package/esm/components/select/src/select.vue.mjs +145 -0
- package/esm/components/select/src/select.vue.mjs.map +1 -0
- package/esm/components/table/index.mjs +3342 -0
- package/esm/components/table/index.mjs.map +1 -0
- package/esm/components/table/src/table.mjs +60 -0
- package/esm/components/table/src/table.mjs.map +1 -0
- package/esm/components/table/src/table.vue.mjs +3080 -0
- package/esm/components/table/src/table.vue.mjs.map +1 -0
- package/esm/dialog-Cm3Px-Bu.js +537 -0
- package/esm/dialog-Cm3Px-Bu.js.map +1 -0
- package/esm/dialog-CzZm50XM.js +2 -0
- package/esm/hooks/dialog-d4SMZWbw.js +261 -0
- package/esm/hooks/dialog-d4SMZWbw.js.map +1 -0
- package/esm/hooks/hooks-DdjieG2I.js +281 -0
- package/esm/hooks/hooks-DdjieG2I.js.map +1 -0
- package/esm/hooks/index.mjs +2 -0
- package/esm/icons/index.mjs +79 -0
- package/esm/icons/index.mjs.map +1 -0
- package/esm/index.mjs +9065 -0
- package/esm/index.mjs.map +1 -0
- package/esm/utils/index.mjs +65 -0
- package/esm/utils/index.mjs.map +1 -0
- package/global.d.ts +39 -0
- package/package.json +131 -0
- package/theme/index.css +1 -0
- package/theme/index.scss +16 -0
- package/theme/src/barcode.scss +14 -0
- package/theme/src/button.scss +65 -0
- package/theme/src/date-picker.scss +87 -0
- package/theme/src/dialog.scss +146 -0
- package/theme/src/ep-vars.scss +11 -0
- package/theme/src/input-number.scss +66 -0
- package/theme/src/input-search.scss +78 -0
- package/theme/src/input.scss +66 -0
- package/theme/src/mixins/bem.scss +35 -0
- package/theme/src/mixins/color.scss +8 -0
- package/theme/src/qr-code.scss +23 -0
- package/theme/src/radial-menu.scss +346 -0
- package/theme/src/select.scss +44 -0
- package/theme/src/table.scss +143 -0
- package/theme/src/tokens.scss +26 -0
- package/theme/src/tree-select.scss +45 -0
- package/theme/src/tree.scss +369 -0
- package/types/components/barcode/index.d.ts +183 -0
- package/types/components/barcode/src/barcode.d.ts +147 -0
- package/types/components/barcode/src/barcode.vue.d.ts +184 -0
- package/types/components/button/index.d.ts +135 -0
- package/types/components/button/src/button.d.ts +33 -0
- package/types/components/button/src/button.vue.d.ts +138 -0
- package/types/components/date-picker/index.d.ts +508 -0
- package/types/components/date-picker/src/date-picker.d.ts +35 -0
- package/types/components/date-picker/src/date-picker.vue.d.ts +509 -0
- package/types/components/dialog/index.d.ts +630 -0
- package/types/components/dialog/src/dialog.d.ts +70 -0
- package/types/components/dialog/src/dialog.vue.d.ts +257 -0
- package/types/components/index.d.ts +27 -0
- package/types/components/input/index.d.ts +233 -0
- package/types/components/input/src/input.d.ts +65 -0
- package/types/components/input/src/input.vue.d.ts +239 -0
- package/types/components/input-number/index.d.ts +713 -0
- package/types/components/input-number/src/input-number.d.ts +101 -0
- package/types/components/input-number/src/input-number.vue.d.ts +283 -0
- package/types/components/input-search/index.d.ts +113 -0
- package/types/components/input-search/src/input-search.d.ts +128 -0
- package/types/components/input-search/src/input-search.vue.d.ts +114 -0
- package/types/components/qr-code/index.d.ts +109 -0
- package/types/components/qr-code/src/qr-code.d.ts +93 -0
- package/types/components/qr-code/src/qr-code.vue.d.ts +109 -0
- package/types/components/radial-menu/index.d.ts +499 -0
- package/types/components/radial-menu/src/radial-menu-item.d.ts +40 -0
- package/types/components/radial-menu/src/radial-menu-item.vue.d.ts +95 -0
- package/types/components/radial-menu/src/radial-menu.d.ts +92 -0
- package/types/components/radial-menu/src/radial-menu.vue.d.ts +200 -0
- package/types/components/radial-menu/src/types.d.ts +48 -0
- package/types/components/radial-menu/src/use-radial-menu-items.d.ts +19 -0
- package/types/components/radial-menu/src/use-radial-menu-keyboard.d.ts +17 -0
- package/types/components/radial-menu/src/use-radial-menu-position.d.ts +45 -0
- package/types/components/radial-menu/src/use-radial-menu-shortcut.d.ts +8 -0
- package/types/components/radial-menu/src/use-radial-menu-state.d.ts +15 -0
- package/types/components/select/index.d.ts +5 -0
- package/types/components/select/src/select.d.ts +30 -0
- package/types/components/select/src/select.vue.d.ts +25 -0
- package/types/components/table/index.d.ts +8 -0
- package/types/components/table/src/editor-registry.d.ts +24 -0
- package/types/components/table/src/proxy-data.d.ts +10 -0
- package/types/components/table/src/table-editor.d.ts +18 -0
- package/types/components/table/src/table-editor.vue.d.ts +43 -0
- package/types/components/table/src/table.d.ts +179 -0
- package/types/components/table/src/table.vue.d.ts +121 -0
- package/types/components/tree/index.d.ts +5 -0
- package/types/components/tree/src/tree-node.vue.d.ts +88 -0
- package/types/components/tree/src/tree-types.d.ts +90 -0
- package/types/components/tree/src/tree.d.ts +448 -0
- package/types/components/tree/src/tree.vue.d.ts +301 -0
- package/types/components/tree/src/use-tree-check-conduct.d.ts +43 -0
- package/types/components/tree/src/use-tree-checked-state.d.ts +34 -0
- package/types/components/tree/src/use-tree-drag.d.ts +45 -0
- package/types/components/tree/src/use-tree-expanded-state.d.ts +41 -0
- package/types/components/tree/src/use-tree-keyboard.d.ts +21 -0
- package/types/components/tree/src/use-tree-load.d.ts +25 -0
- package/types/components/tree/src/use-tree-scroll.d.ts +17 -0
- package/types/components/tree/src/use-tree-selected-state.d.ts +29 -0
- package/types/components/tree-select/index.d.ts +5 -0
- package/types/components/tree-select/src/tree-select.d.ts +26 -0
- package/types/components/tree-select/src/tree-select.vue.d.ts +25 -0
- package/types/falcon-ui/index.d.ts +8 -0
- package/types/hooks/index.d.ts +3 -0
- package/types/hooks/src/use-clearable-state.d.ts +10 -0
- package/types/hooks/src/use-component.d.ts +15 -0
- package/types/hooks/src/use-dialog.d.ts +49 -0
- package/types/icons/index.d.ts +1 -0
- package/types/icons/src/components/holder-outlined.vue.d.ts +3 -0
- package/types/icons/src/components/index.d.ts +3 -0
- package/types/icons/src/components/minus-square-outlined.vue.d.ts +3 -0
- package/types/icons/src/components/plus-square-outlined.vue.d.ts +3 -0
- package/types/utils/index.d.ts +3 -0
- package/types/utils/src/bem.d.ts +11 -0
- package/types/utils/src/component.d.ts +6 -0
- package/types/utils/src/install.d.ts +5 -0
- package/umd/falcon-ui.umd.js +13297 -0
- package/umd/falcon-ui.umd.js.map +1 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import type { ExtractPublicPropTypes, PropType } from 'vue';
|
|
2
|
+
export type RowData = Record<string, unknown>;
|
|
3
|
+
export type EmitTrigger = 'row-click' | 'selection-change' | 'proxy-set';
|
|
4
|
+
export interface SelectionRowToggleEvent {
|
|
5
|
+
row: RowData;
|
|
6
|
+
rowIndex: number;
|
|
7
|
+
selected: boolean;
|
|
8
|
+
selectionBefore: RowData[];
|
|
9
|
+
selectionAfter: RowData[];
|
|
10
|
+
trigger: Exclude<EmitTrigger, 'proxy-set'>;
|
|
11
|
+
}
|
|
12
|
+
export interface SelectionSingleConflictEvent {
|
|
13
|
+
reason: 'multiple-selected' | 'select-all-disabled';
|
|
14
|
+
selection: RowData[];
|
|
15
|
+
}
|
|
16
|
+
export interface CellChangeEvent {
|
|
17
|
+
rowIndex: number;
|
|
18
|
+
rowKey: string | number;
|
|
19
|
+
columnKey: string;
|
|
20
|
+
path: string;
|
|
21
|
+
prevValue: unknown;
|
|
22
|
+
nextValue: unknown;
|
|
23
|
+
trigger: 'proxy-set';
|
|
24
|
+
}
|
|
25
|
+
export interface RowDragEvent {
|
|
26
|
+
oldIndex: number | null;
|
|
27
|
+
newIndex: number | null;
|
|
28
|
+
row: RowData | null;
|
|
29
|
+
}
|
|
30
|
+
export interface RowOrderChangeEvent {
|
|
31
|
+
oldIndex: number;
|
|
32
|
+
newIndex: number;
|
|
33
|
+
row: RowData;
|
|
34
|
+
data: RowData[];
|
|
35
|
+
}
|
|
36
|
+
export interface ColumnDragEvent {
|
|
37
|
+
oldIndex: number | null;
|
|
38
|
+
newIndex: number | null;
|
|
39
|
+
columnIndex: number | null;
|
|
40
|
+
}
|
|
41
|
+
export interface ColumnOrderChangeEvent {
|
|
42
|
+
oldIndex: number;
|
|
43
|
+
newIndex: number;
|
|
44
|
+
columnIndex: number;
|
|
45
|
+
order: number[];
|
|
46
|
+
}
|
|
47
|
+
export interface FlTableExpose {
|
|
48
|
+
clearSelection: () => void;
|
|
49
|
+
getSelectionRows: () => RowData[];
|
|
50
|
+
toggleRowSelection: (row: RowData, selected?: boolean, ignoreSelectable?: boolean) => void;
|
|
51
|
+
toggleAllSelection: () => void;
|
|
52
|
+
toggleRowExpansion: (row: RowData, expanded?: boolean) => void;
|
|
53
|
+
setCurrentRow: (row?: RowData) => void;
|
|
54
|
+
clearSort: () => void;
|
|
55
|
+
clearFilter: (columnKeys?: string | string[]) => void;
|
|
56
|
+
doLayout: () => void;
|
|
57
|
+
sort: (prop: string, order: 'ascending' | 'descending' | null) => void;
|
|
58
|
+
scrollTo: {
|
|
59
|
+
(options: ScrollToOptions): void;
|
|
60
|
+
(xCoord: number, yCoord?: number): void;
|
|
61
|
+
};
|
|
62
|
+
setScrollTop: (top: number) => void;
|
|
63
|
+
setScrollLeft: (left: number) => void;
|
|
64
|
+
}
|
|
65
|
+
export declare const tableProps: {
|
|
66
|
+
/**
|
|
67
|
+
* Enable row click to toggle selection when selection column exists.
|
|
68
|
+
*/
|
|
69
|
+
readonly selectionRowClick: {
|
|
70
|
+
readonly type: BooleanConstructor;
|
|
71
|
+
readonly default: true;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Restrict selection to one row in selection-table mode.
|
|
75
|
+
*/
|
|
76
|
+
readonly selectionSingle: {
|
|
77
|
+
readonly type: BooleanConstructor;
|
|
78
|
+
readonly default: false;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Enable editable cell mode with proxy intercept for row field assignments.
|
|
82
|
+
*/
|
|
83
|
+
readonly isEdit: {
|
|
84
|
+
readonly type: BooleanConstructor;
|
|
85
|
+
readonly default: true;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Maximum proxy depth for nested row fields.
|
|
89
|
+
*/
|
|
90
|
+
readonly cellProxyMaxDepth: {
|
|
91
|
+
readonly type: NumberConstructor;
|
|
92
|
+
readonly default: 4;
|
|
93
|
+
readonly validator: (value: number) => boolean;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Extend clicked data cells with row and column cross highlight.
|
|
97
|
+
*/
|
|
98
|
+
readonly crossHighlight: {
|
|
99
|
+
readonly type: BooleanConstructor;
|
|
100
|
+
readonly default: false;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Enable row drag sorting.
|
|
104
|
+
*/
|
|
105
|
+
readonly rowDraggable: {
|
|
106
|
+
readonly type: BooleanConstructor;
|
|
107
|
+
readonly default: true;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Enable column drag sorting.
|
|
111
|
+
*/
|
|
112
|
+
readonly columnDraggable: {
|
|
113
|
+
readonly type: BooleanConstructor;
|
|
114
|
+
readonly default: true;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Which column index should act as row drag handle.
|
|
118
|
+
*/
|
|
119
|
+
readonly rowDragHandleColumnIndex: {
|
|
120
|
+
readonly type: NumberConstructor;
|
|
121
|
+
readonly default: 0;
|
|
122
|
+
readonly validator: (value: number) => boolean;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Field name used as row key in emitted payload.
|
|
126
|
+
*/
|
|
127
|
+
readonly rowKeyField: {
|
|
128
|
+
readonly type: StringConstructor;
|
|
129
|
+
readonly default: "id";
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Bound data source. Falls through to ElTable `data`.
|
|
133
|
+
*/
|
|
134
|
+
readonly data: {
|
|
135
|
+
readonly type: PropType<RowData[]>;
|
|
136
|
+
readonly default: () => never[];
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
export declare const tableEmits: {
|
|
140
|
+
/**
|
|
141
|
+
* Emit when row click triggers selection toggle.
|
|
142
|
+
*/
|
|
143
|
+
readonly 'selection-row-toggle': (payload: SelectionRowToggleEvent) => boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Emit when single-selection rule conflicts with native selection behavior.
|
|
146
|
+
*/
|
|
147
|
+
readonly 'selection-single-conflict': (payload: SelectionSingleConflictEvent) => boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Emit when proxy-tracked row field value is changed.
|
|
150
|
+
*/
|
|
151
|
+
readonly 'cell-change': (payload: CellChangeEvent) => boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Emit when row drag starts.
|
|
154
|
+
*/
|
|
155
|
+
readonly 'row-drag-start': (payload: RowDragEvent) => boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Emit when row drag ends.
|
|
158
|
+
*/
|
|
159
|
+
readonly 'row-drag-end': (payload: RowDragEvent) => boolean;
|
|
160
|
+
/**
|
|
161
|
+
* Emit when row order has changed.
|
|
162
|
+
*/
|
|
163
|
+
readonly 'row-order-change': (payload: RowOrderChangeEvent) => boolean;
|
|
164
|
+
/**
|
|
165
|
+
* Emit when column drag starts.
|
|
166
|
+
*/
|
|
167
|
+
readonly 'column-drag-start': (payload: ColumnDragEvent) => boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Emit when column drag ends.
|
|
170
|
+
*/
|
|
171
|
+
readonly 'column-drag-end': (payload: ColumnDragEvent) => boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Emit when column order has changed.
|
|
174
|
+
*/
|
|
175
|
+
readonly 'column-order-change': (payload: ColumnOrderChangeEvent) => boolean;
|
|
176
|
+
};
|
|
177
|
+
export type TableProps = ExtractPublicPropTypes<typeof tableProps>;
|
|
178
|
+
export type TableEmits = typeof tableEmits;
|
|
179
|
+
export type TableExpose = FlTableExpose;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { CellChangeEvent, ColumnDragEvent, ColumnOrderChangeEvent, FlTableExpose, RowData, RowDragEvent, RowOrderChangeEvent, SelectionRowToggleEvent } from './table';
|
|
2
|
+
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
3
|
+
readonly selectionRowClick: {
|
|
4
|
+
readonly type: BooleanConstructor;
|
|
5
|
+
readonly default: true;
|
|
6
|
+
};
|
|
7
|
+
readonly selectionSingle: {
|
|
8
|
+
readonly type: BooleanConstructor;
|
|
9
|
+
readonly default: false;
|
|
10
|
+
};
|
|
11
|
+
readonly isEdit: {
|
|
12
|
+
readonly type: BooleanConstructor;
|
|
13
|
+
readonly default: true;
|
|
14
|
+
};
|
|
15
|
+
readonly cellProxyMaxDepth: {
|
|
16
|
+
readonly type: NumberConstructor;
|
|
17
|
+
readonly default: 4;
|
|
18
|
+
readonly validator: (value: number) => boolean;
|
|
19
|
+
};
|
|
20
|
+
readonly crossHighlight: {
|
|
21
|
+
readonly type: BooleanConstructor;
|
|
22
|
+
readonly default: false;
|
|
23
|
+
};
|
|
24
|
+
readonly rowDraggable: {
|
|
25
|
+
readonly type: BooleanConstructor;
|
|
26
|
+
readonly default: true;
|
|
27
|
+
};
|
|
28
|
+
readonly columnDraggable: {
|
|
29
|
+
readonly type: BooleanConstructor;
|
|
30
|
+
readonly default: true;
|
|
31
|
+
};
|
|
32
|
+
readonly rowDragHandleColumnIndex: {
|
|
33
|
+
readonly type: NumberConstructor;
|
|
34
|
+
readonly default: 0;
|
|
35
|
+
readonly validator: (value: number) => boolean;
|
|
36
|
+
};
|
|
37
|
+
readonly rowKeyField: {
|
|
38
|
+
readonly type: StringConstructor;
|
|
39
|
+
readonly default: "id";
|
|
40
|
+
};
|
|
41
|
+
readonly data: {
|
|
42
|
+
readonly type: import("vue").PropType<RowData[]>;
|
|
43
|
+
readonly default: () => never[];
|
|
44
|
+
};
|
|
45
|
+
}>, FlTableExpose, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
46
|
+
"selection-row-toggle": (payload: SelectionRowToggleEvent) => void;
|
|
47
|
+
"selection-single-conflict": (payload: import("@falcon-ui/falcon-ui").SelectionSingleConflictEvent) => void;
|
|
48
|
+
"cell-change": (payload: CellChangeEvent) => void;
|
|
49
|
+
"row-drag-start": (payload: RowDragEvent) => void;
|
|
50
|
+
"row-drag-end": (payload: RowDragEvent) => void;
|
|
51
|
+
"row-order-change": (payload: RowOrderChangeEvent) => void;
|
|
52
|
+
"column-drag-start": (payload: ColumnDragEvent) => void;
|
|
53
|
+
"column-drag-end": (payload: ColumnDragEvent) => void;
|
|
54
|
+
"column-order-change": (payload: ColumnOrderChangeEvent) => void;
|
|
55
|
+
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
56
|
+
readonly selectionRowClick: {
|
|
57
|
+
readonly type: BooleanConstructor;
|
|
58
|
+
readonly default: true;
|
|
59
|
+
};
|
|
60
|
+
readonly selectionSingle: {
|
|
61
|
+
readonly type: BooleanConstructor;
|
|
62
|
+
readonly default: false;
|
|
63
|
+
};
|
|
64
|
+
readonly isEdit: {
|
|
65
|
+
readonly type: BooleanConstructor;
|
|
66
|
+
readonly default: true;
|
|
67
|
+
};
|
|
68
|
+
readonly cellProxyMaxDepth: {
|
|
69
|
+
readonly type: NumberConstructor;
|
|
70
|
+
readonly default: 4;
|
|
71
|
+
readonly validator: (value: number) => boolean;
|
|
72
|
+
};
|
|
73
|
+
readonly crossHighlight: {
|
|
74
|
+
readonly type: BooleanConstructor;
|
|
75
|
+
readonly default: false;
|
|
76
|
+
};
|
|
77
|
+
readonly rowDraggable: {
|
|
78
|
+
readonly type: BooleanConstructor;
|
|
79
|
+
readonly default: true;
|
|
80
|
+
};
|
|
81
|
+
readonly columnDraggable: {
|
|
82
|
+
readonly type: BooleanConstructor;
|
|
83
|
+
readonly default: true;
|
|
84
|
+
};
|
|
85
|
+
readonly rowDragHandleColumnIndex: {
|
|
86
|
+
readonly type: NumberConstructor;
|
|
87
|
+
readonly default: 0;
|
|
88
|
+
readonly validator: (value: number) => boolean;
|
|
89
|
+
};
|
|
90
|
+
readonly rowKeyField: {
|
|
91
|
+
readonly type: StringConstructor;
|
|
92
|
+
readonly default: "id";
|
|
93
|
+
};
|
|
94
|
+
readonly data: {
|
|
95
|
+
readonly type: import("vue").PropType<RowData[]>;
|
|
96
|
+
readonly default: () => never[];
|
|
97
|
+
};
|
|
98
|
+
}>> & Readonly<{
|
|
99
|
+
"onSelection-row-toggle"?: ((payload: SelectionRowToggleEvent) => any) | undefined;
|
|
100
|
+
"onSelection-single-conflict"?: ((payload: import("@falcon-ui/falcon-ui").SelectionSingleConflictEvent) => any) | undefined;
|
|
101
|
+
"onCell-change"?: ((payload: CellChangeEvent) => any) | undefined;
|
|
102
|
+
"onRow-drag-start"?: ((payload: RowDragEvent) => any) | undefined;
|
|
103
|
+
"onRow-drag-end"?: ((payload: RowDragEvent) => any) | undefined;
|
|
104
|
+
"onRow-order-change"?: ((payload: RowOrderChangeEvent) => any) | undefined;
|
|
105
|
+
"onColumn-drag-start"?: ((payload: ColumnDragEvent) => any) | undefined;
|
|
106
|
+
"onColumn-drag-end"?: ((payload: ColumnDragEvent) => any) | undefined;
|
|
107
|
+
"onColumn-order-change"?: ((payload: ColumnOrderChangeEvent) => any) | undefined;
|
|
108
|
+
}>, {
|
|
109
|
+
readonly data: RowData[];
|
|
110
|
+
readonly selectionRowClick: boolean;
|
|
111
|
+
readonly selectionSingle: boolean;
|
|
112
|
+
readonly isEdit: boolean;
|
|
113
|
+
readonly cellProxyMaxDepth: number;
|
|
114
|
+
readonly crossHighlight: boolean;
|
|
115
|
+
readonly rowDraggable: boolean;
|
|
116
|
+
readonly columnDraggable: boolean;
|
|
117
|
+
readonly rowDragHandleColumnIndex: number;
|
|
118
|
+
readonly rowKeyField: string;
|
|
119
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
120
|
+
declare const _default: typeof __VLS_export;
|
|
121
|
+
export default _default;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SFCWithInstall } from '@falcon-ui/falcon-ui/utils';
|
|
2
|
+
import Tree from './src/tree.vue';
|
|
3
|
+
export declare const FlTree: SFCWithInstall<typeof Tree>;
|
|
4
|
+
export default FlTree;
|
|
5
|
+
export type { TreeClassNames, TreeClassValue, TreeCheckArgs, TreeCheckEvent, TreeCheckedKeys, TreeCheckedKeysObject, TreeData, TreeFilterTreeNode, TreeAllowDrag, TreeAllowDrop, TreeAllowDropType, TreeEmits, TreeExpandEvent, TreeExpose, TreeIndex, TreeInteractionEvent, TreeKey, TreeLoadArgs, TreeLoadData, TreeLoadEvent, TreeNode, TreeNodeClickArgs, TreeNodeClassName, TreeNodeClassNameInfo, TreeNodeDblclickArgs, TreeNodeDragEndArgs, TreeNodeDragStartArgs, TreeNodeDragTargetArgs, TreeNodeDropArgs, TreeNodeDropType, TreeExpandedNode, TreeNodeRightClickArgs, TreeNodeInstance, TreeNodeModel, TreeNodeProps, TreeSelectArgs, TreeSelectEvent, TreeSwitcherLoadingIcon, TreeSwitcherIconMode, TreeNodeToggleArgs, TreeProps, TreeScrollAlign, TreeScrollToOptions, TreeSemanticDOM, TreeSemanticRecord, TreeShowLine, TreeShowLineOptions, TreeStyles } from './src/tree';
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { type CSSProperties } from 'vue';
|
|
2
|
+
import { type TreeData, type TreeClassValue, type TreeInteractionEvent, type TreeKey, type TreeNode, type TreeNodeClassName, type TreeNodeDropType, type TreeNodeInstance, type TreeNodeModel, type TreeSemanticRecord, type TreeSwitcherLoadingIcon, type TreeSwitcherIconMode } from './tree';
|
|
3
|
+
interface TreeNodeDragTargetHandlerOptions {
|
|
4
|
+
node: TreeNodeModel;
|
|
5
|
+
event: DragEvent;
|
|
6
|
+
element: HTMLElement;
|
|
7
|
+
}
|
|
8
|
+
interface TreeNodeDragHandlerOptions {
|
|
9
|
+
node: TreeNodeModel;
|
|
10
|
+
event: DragEvent;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 内部节点组件只接收标准化节点和主入口下发的树状态能力。
|
|
14
|
+
*/
|
|
15
|
+
interface TreeNodeComponentProps {
|
|
16
|
+
node: TreeNodeModel;
|
|
17
|
+
getNodeId: (nodeKey: TreeKey) => string;
|
|
18
|
+
registerNodeElement: (nodeKey: TreeKey, element: HTMLElement | null) => void;
|
|
19
|
+
unregisterNodeElement: (nodeKey: TreeKey, element: HTMLElement | null) => void;
|
|
20
|
+
onNodeContentClick: (options: {
|
|
21
|
+
node: TreeNodeModel;
|
|
22
|
+
component: TreeNodeInstance;
|
|
23
|
+
event: TreeInteractionEvent;
|
|
24
|
+
}) => void;
|
|
25
|
+
onNodeContentDblclick: (options: {
|
|
26
|
+
node: TreeNodeModel;
|
|
27
|
+
component: TreeNodeInstance;
|
|
28
|
+
event: MouseEvent;
|
|
29
|
+
}) => void;
|
|
30
|
+
onNodeContentContextmenu: (options: {
|
|
31
|
+
node: TreeNodeModel;
|
|
32
|
+
component: TreeNodeInstance;
|
|
33
|
+
event: MouseEvent;
|
|
34
|
+
}) => void;
|
|
35
|
+
isNodeExpanded: (nodeKey: TreeKey) => boolean;
|
|
36
|
+
isNodeChecked: (nodeKey: TreeKey) => boolean;
|
|
37
|
+
isNodeHalfChecked: (nodeKey: TreeKey) => boolean;
|
|
38
|
+
isNodeSelected: (nodeKey: TreeKey) => boolean;
|
|
39
|
+
isNodeFocused: (nodeKey: TreeKey) => boolean;
|
|
40
|
+
isNodeFiltered: (node: TreeNodeModel) => boolean;
|
|
41
|
+
isNodeLoading: (nodeKey: TreeKey) => boolean;
|
|
42
|
+
isNodeExpandable: (node: TreeNodeModel) => boolean;
|
|
43
|
+
isNodeDraggable: (node: TreeNodeModel) => boolean;
|
|
44
|
+
isNodeDragging: (nodeKey: TreeKey) => boolean;
|
|
45
|
+
isNodeDropTarget: (nodeKey: TreeKey) => boolean;
|
|
46
|
+
isNodeDropAllowed: (nodeKey: TreeKey) => boolean;
|
|
47
|
+
getNodeDropType: (nodeKey: TreeKey) => TreeNodeDropType | undefined;
|
|
48
|
+
treeCheckable: boolean;
|
|
49
|
+
treeSelectable: boolean;
|
|
50
|
+
showLine: boolean;
|
|
51
|
+
showLeafIcon: boolean;
|
|
52
|
+
switcherIcon: TreeSwitcherIconMode;
|
|
53
|
+
switcherLoadingIcon: TreeSwitcherLoadingIcon;
|
|
54
|
+
isCheckboxDisabled: (node: TreeNodeModel) => boolean;
|
|
55
|
+
shouldRenderCheckbox: (node: TreeNodeModel) => boolean;
|
|
56
|
+
toggleNodeChecked: (options: {
|
|
57
|
+
node: TreeNodeModel;
|
|
58
|
+
event: TreeInteractionEvent;
|
|
59
|
+
}) => void;
|
|
60
|
+
toggleNodeExpansion: (options: {
|
|
61
|
+
node: TreeNodeModel;
|
|
62
|
+
instance: TreeNodeInstance;
|
|
63
|
+
}) => void;
|
|
64
|
+
handleNodeDragStart: (options: TreeNodeDragHandlerOptions) => void;
|
|
65
|
+
handleNodeDragEnter: (options: TreeNodeDragTargetHandlerOptions) => void;
|
|
66
|
+
handleNodeDragOver: (options: TreeNodeDragTargetHandlerOptions) => void;
|
|
67
|
+
handleNodeDragLeave: (options: TreeNodeDragTargetHandlerOptions) => void;
|
|
68
|
+
handleNodeDrop: (options: TreeNodeDragTargetHandlerOptions) => void;
|
|
69
|
+
handleNodeDragEnd: (options: TreeNodeDragHandlerOptions) => void;
|
|
70
|
+
resolvedClassNames: TreeSemanticRecord<TreeClassValue>;
|
|
71
|
+
nodeClassName?: TreeNodeClassName;
|
|
72
|
+
resolvedStyles: TreeSemanticRecord<CSSProperties>;
|
|
73
|
+
}
|
|
74
|
+
type __VLS_Slots = {
|
|
75
|
+
default?: (props: {
|
|
76
|
+
node: TreeNode;
|
|
77
|
+
data: TreeData;
|
|
78
|
+
}) => unknown;
|
|
79
|
+
};
|
|
80
|
+
declare const __VLS_base: import("vue").DefineComponent<TreeNodeComponentProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<TreeNodeComponentProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
81
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
82
|
+
declare const _default: typeof __VLS_export;
|
|
83
|
+
export default _default;
|
|
84
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
85
|
+
new (): {
|
|
86
|
+
$slots: S;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 树节点主键仅允许字符串或数字,避免首版引入额外的键值归一成本。
|
|
3
|
+
*/
|
|
4
|
+
export type TreeKey = string | number;
|
|
5
|
+
/**
|
|
6
|
+
* 展开器视觉模式在阶段 11 固定为三档枚举,后续异步加载阶段可复用同一模式定义。
|
|
7
|
+
*/
|
|
8
|
+
export type TreeSwitcherIconMode = 'arrow' | 'plus-minus' | 'folder';
|
|
9
|
+
export interface TreeShowLineOptions {
|
|
10
|
+
showLeafIcon?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export type TreeShowLine = boolean | TreeShowLineOptions;
|
|
13
|
+
/**
|
|
14
|
+
* 原始树节点允许保留业务字段,但 `key` 始终是必填字段。
|
|
15
|
+
*/
|
|
16
|
+
export interface TreeData {
|
|
17
|
+
key: TreeKey;
|
|
18
|
+
children?: TreeData[];
|
|
19
|
+
isLeaf?: boolean;
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 字段映射只负责把业务数据结构转换为树节点结构。
|
|
24
|
+
*/
|
|
25
|
+
export interface TreeNodeProps {
|
|
26
|
+
label?: string;
|
|
27
|
+
children?: string;
|
|
28
|
+
isLeaf?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 语义化 DOM 名称仅覆盖 Tree 自身长期稳定持有的外壳结构。
|
|
32
|
+
*/
|
|
33
|
+
export type TreeSemanticDOM = 'root' | 'item';
|
|
34
|
+
/**
|
|
35
|
+
* 语义化记录同时服务于 `classNames` 与 `styles`。
|
|
36
|
+
*/
|
|
37
|
+
export type TreeSemanticRecord<T> = Partial<Record<TreeSemanticDOM, T>>;
|
|
38
|
+
/**
|
|
39
|
+
* 支持字符串、数组和对象三种 Vue class 绑定形式。
|
|
40
|
+
*/
|
|
41
|
+
export type TreeClassValue = string | string[] | Record<string, boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* 标准化节点是内部递归渲染骨架使用的统一结构。
|
|
44
|
+
*/
|
|
45
|
+
export interface TreeNodeModel {
|
|
46
|
+
key: TreeKey;
|
|
47
|
+
level: number;
|
|
48
|
+
data: TreeData;
|
|
49
|
+
label: string;
|
|
50
|
+
disabled: boolean;
|
|
51
|
+
selectable: boolean;
|
|
52
|
+
checkboxDisabled: boolean;
|
|
53
|
+
checkboxVisible: boolean;
|
|
54
|
+
isLeaf: boolean;
|
|
55
|
+
isLastSibling: boolean;
|
|
56
|
+
lineTrackEnds: boolean[];
|
|
57
|
+
parent: TreeNodeModel | null;
|
|
58
|
+
childNodes: TreeNodeModel[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 对外事件中的节点对象按字段级兼容 Element Plus Node。
|
|
62
|
+
*/
|
|
63
|
+
export interface TreeNode {
|
|
64
|
+
key: TreeKey;
|
|
65
|
+
level: number;
|
|
66
|
+
data: TreeData;
|
|
67
|
+
label: string;
|
|
68
|
+
disabled: boolean;
|
|
69
|
+
selectable: boolean;
|
|
70
|
+
checkboxDisabled: boolean;
|
|
71
|
+
checkboxVisible: boolean;
|
|
72
|
+
isLeaf: boolean;
|
|
73
|
+
parent: TreeNode | null;
|
|
74
|
+
childNodes: TreeNode[];
|
|
75
|
+
}
|
|
76
|
+
export interface TreeNodeClassNameInfo {
|
|
77
|
+
node: TreeNode;
|
|
78
|
+
data: TreeData;
|
|
79
|
+
}
|
|
80
|
+
export type TreeNodeClassName = (info: TreeNodeClassNameInfo) => TreeClassValue | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* 树索引为后续展开、选择、勾选等交互能力提供基础结构。
|
|
83
|
+
*/
|
|
84
|
+
export interface TreeIndex {
|
|
85
|
+
nodes: TreeNodeModel[];
|
|
86
|
+
keyNodeMap: Map<TreeKey, TreeNodeModel>;
|
|
87
|
+
parentKeyMap: Map<TreeKey, TreeKey | null>;
|
|
88
|
+
childrenKeyMap: Map<TreeKey, TreeKey[]>;
|
|
89
|
+
visibleNodeKeys: TreeKey[];
|
|
90
|
+
}
|