@tcn/ui-transfer 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/AI_USAGE.md +16 -0
- package/README.md +3 -0
- package/dist/components/available_list/available_list.d.ts +11 -0
- package/dist/components/available_list/available_list.d.ts.map +1 -0
- package/dist/components/available_list/available_list.js +22 -0
- package/dist/components/available_list/available_list.js.map +1 -0
- package/dist/components/available_list/index.d.ts +2 -0
- package/dist/components/available_list/index.d.ts.map +1 -0
- package/dist/components/available_list/index.js +5 -0
- package/dist/components/available_list/index.js.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +13 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/manage_list_item/addable_item.d.ts +5 -0
- package/dist/components/manage_list_item/addable_item.d.ts.map +1 -0
- package/dist/components/manage_list_item/addable_item.js +19 -0
- package/dist/components/manage_list_item/addable_item.js.map +1 -0
- package/dist/components/manage_list_item/index.d.ts +4 -0
- package/dist/components/manage_list_item/index.d.ts.map +1 -0
- package/dist/components/manage_list_item/index.js +9 -0
- package/dist/components/manage_list_item/index.js.map +1 -0
- package/dist/components/manage_list_item/manage_list_item.d.ts +11 -0
- package/dist/components/manage_list_item/manage_list_item.d.ts.map +1 -0
- package/dist/components/manage_list_item/manage_list_item.js +33 -0
- package/dist/components/manage_list_item/manage_list_item.js.map +1 -0
- package/dist/components/manage_list_item/removable_item.d.ts +5 -0
- package/dist/components/manage_list_item/removable_item.d.ts.map +1 -0
- package/dist/components/manage_list_item/removable_item.js +22 -0
- package/dist/components/manage_list_item/removable_item.js.map +1 -0
- package/dist/components/selected_list/index.d.ts +2 -0
- package/dist/components/selected_list/index.d.ts.map +1 -0
- package/dist/components/selected_list/index.js +5 -0
- package/dist/components/selected_list/index.js.map +1 -0
- package/dist/components/selected_list/selected_list.d.ts +13 -0
- package/dist/components/selected_list/selected_list.d.ts.map +1 -0
- package/dist/components/selected_list/selected_list.js +28 -0
- package/dist/components/selected_list/selected_list.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/removable_item.css +1 -0
- package/dist/transfer_list/index.d.ts +2 -0
- package/dist/transfer_list/index.d.ts.map +1 -0
- package/dist/transfer_list/index.js +5 -0
- package/dist/transfer_list/index.js.map +1 -0
- package/dist/transfer_list/transfer_list.d.ts +6 -0
- package/dist/transfer_list/transfer_list.d.ts.map +1 -0
- package/dist/transfer_list/transfer_list.js +12 -0
- package/dist/transfer_list/transfer_list.js.map +1 -0
- package/dist/transfer_table/components/available_table.d.ts +17 -0
- package/dist/transfer_table/components/available_table.d.ts.map +1 -0
- package/dist/transfer_table/components/available_table.js +68 -0
- package/dist/transfer_table/components/available_table.js.map +1 -0
- package/dist/transfer_table/components/available_table_filter_panel.d.ts +13 -0
- package/dist/transfer_table/components/available_table_filter_panel.d.ts.map +1 -0
- package/dist/transfer_table/components/available_table_filter_panel.js +39 -0
- package/dist/transfer_table/components/available_table_filter_panel.js.map +1 -0
- package/dist/transfer_table/components/available_table_header.d.ts +13 -0
- package/dist/transfer_table/components/available_table_header.d.ts.map +1 -0
- package/dist/transfer_table/components/available_table_header.js +43 -0
- package/dist/transfer_table/components/available_table_header.js.map +1 -0
- package/dist/transfer_table/components/selected_column.d.ts +15 -0
- package/dist/transfer_table/components/selected_column.d.ts.map +1 -0
- package/dist/transfer_table/components/selected_column.js +93 -0
- package/dist/transfer_table/components/selected_column.js.map +1 -0
- package/dist/transfer_table/components/selected_item.d.ts +8 -0
- package/dist/transfer_table/components/selected_item.d.ts.map +1 -0
- package/dist/transfer_table/components/selected_item.js +39 -0
- package/dist/transfer_table/components/selected_item.js.map +1 -0
- package/dist/transfer_table/index.d.ts +4 -0
- package/dist/transfer_table/index.d.ts.map +1 -0
- package/dist/transfer_table/index.js +7 -0
- package/dist/transfer_table/index.js.map +1 -0
- package/dist/transfer_table/transfer_table.d.ts +4 -0
- package/dist/transfer_table/transfer_table.d.ts.map +1 -0
- package/dist/transfer_table/transfer_table.js +82 -0
- package/dist/transfer_table/transfer_table.js.map +1 -0
- package/dist/transfer_table/transfer_table_presenter.d.ts +46 -0
- package/dist/transfer_table/transfer_table_presenter.d.ts.map +1 -0
- package/dist/transfer_table/transfer_table_presenter.js +98 -0
- package/dist/transfer_table/transfer_table_presenter.js.map +1 -0
- package/dist/transfer_table/types.d.ts +30 -0
- package/dist/transfer_table/types.d.ts.map +1 -0
- package/dist/transfer_table/types.js +2 -0
- package/dist/transfer_table/types.js.map +1 -0
- package/dist/transfer_table.css +1 -0
- package/dist/transfer_table.module-CI4PvlY3.js +5 -0
- package/dist/transfer_table.module-CI4PvlY3.js.map +1 -0
- package/package.json +81 -0
- package/src/__stories__/available_list.stories.tsx +41 -0
- package/src/__stories__/sample_data.ts +101 -0
- package/src/__stories__/selected_list.stories.tsx +41 -0
- package/src/__stories__/transfer_list.stories.tsx +13 -0
- package/src/__stories__/transfer_table.stories.tsx +128 -0
- package/src/__tests__/sanity.test.ts +7 -0
- package/src/components/available_list/available_list.tsx +39 -0
- package/src/components/available_list/index.ts +5 -0
- package/src/components/index.ts +19 -0
- package/src/components/manage_list_item/addable_item.tsx +22 -0
- package/src/components/manage_list_item/index.ts +7 -0
- package/src/components/manage_list_item/manage_list_item.tsx +43 -0
- package/src/components/manage_list_item/removable_item.module.css +3 -0
- package/src/components/manage_list_item/removable_item.tsx +25 -0
- package/src/components/selected_list/index.ts +5 -0
- package/src/components/selected_list/selected_list.tsx +50 -0
- package/src/index.ts +22 -0
- package/src/transfer_list/index.ts +1 -0
- package/src/transfer_list/transfer_list.tsx +14 -0
- package/src/transfer_table/components/available_table.tsx +80 -0
- package/src/transfer_table/components/available_table_filter_panel.tsx +62 -0
- package/src/transfer_table/components/available_table_header.tsx +60 -0
- package/src/transfer_table/components/selected_column.tsx +120 -0
- package/src/transfer_table/components/selected_item.tsx +58 -0
- package/src/transfer_table/index.ts +6 -0
- package/src/transfer_table/transfer_table.module.css +41 -0
- package/src/transfer_table/transfer_table.tsx +77 -0
- package/src/transfer_table/transfer_table_presenter.ts +164 -0
- package/src/transfer_table/types.ts +35 -0
- package/tsconfig.json +7 -0
- package/types/file_types.d.ts +106 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { DataSource } from '@tcn/resource-store';
|
|
2
|
+
import { IBroadcast } from '@tcn/state';
|
|
3
|
+
import { FieldFilterProps, TableColumnProps } from '@tcn/ui-table';
|
|
4
|
+
import { ReactElement } from 'react';
|
|
5
|
+
|
|
6
|
+
export interface SelectedItemsUpdate<T> {
|
|
7
|
+
selectedItems: T[];
|
|
8
|
+
/** When true, newly appearing items will flash to indicate they were added. */
|
|
9
|
+
highlight: boolean;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface TransferTableProps<T> {
|
|
13
|
+
// available table props
|
|
14
|
+
dataSource: DataSource<T>;
|
|
15
|
+
columns: TableColumnProps<T>[];
|
|
16
|
+
onClickMoveAll: () => void;
|
|
17
|
+
onClickMove: (item: T) => void;
|
|
18
|
+
// selected list props
|
|
19
|
+
selectedItemsBroadcast: IBroadcast<SelectedItemsUpdate<T>>;
|
|
20
|
+
/**
|
|
21
|
+
* Derives a unique, stable identifier from the item (e.g. an id or name).
|
|
22
|
+
* Must be unique across all items and consistent on every call — do not use randomly generated values.
|
|
23
|
+
*/
|
|
24
|
+
getSelectedItemKey: (item: T) => string | number;
|
|
25
|
+
selectedItemRender: (item: T) => React.ReactNode;
|
|
26
|
+
onRemoveAll: (items: T[]) => void;
|
|
27
|
+
onRemove: (item: T) => void;
|
|
28
|
+
// filter panel props
|
|
29
|
+
filterPanelIsOpenBroadcast: IBroadcast<boolean>;
|
|
30
|
+
filterChildren?: ReactElement<FieldFilterProps> | ReactElement<FieldFilterProps>[];
|
|
31
|
+
// filter header props
|
|
32
|
+
onClickFilterPanelToggle: () => void;
|
|
33
|
+
onClickCancel: () => void;
|
|
34
|
+
onClickAdd: (items: T[]) => void;
|
|
35
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
declare module '*.css' {
|
|
2
|
+
const content: { [className: string]: string };
|
|
3
|
+
export default content;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
declare module '*.module.css' {
|
|
7
|
+
const classes: { [key: string]: string };
|
|
8
|
+
export default classes;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
declare module '*.css?url' {
|
|
12
|
+
const url: string;
|
|
13
|
+
export default url;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare module '*.css?raw' {
|
|
17
|
+
const url: string;
|
|
18
|
+
export default url;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare module '*.svg' {
|
|
22
|
+
const content: any;
|
|
23
|
+
export default content;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
declare module '*.jpg' {
|
|
27
|
+
const content: any;
|
|
28
|
+
export default content;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
declare module '*.png' {
|
|
32
|
+
const content: any;
|
|
33
|
+
export default content;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
declare module '*.pdf' {
|
|
37
|
+
const content: any;
|
|
38
|
+
export default content;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
declare module '*.wasm' {
|
|
42
|
+
const content: any;
|
|
43
|
+
export default content;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare module '*.prql' {
|
|
47
|
+
const content: string;
|
|
48
|
+
export default content;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
declare module '*.wav' {
|
|
52
|
+
const content: string;
|
|
53
|
+
export default content;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Stub declarations for react-color.
|
|
58
|
+
* @tcn/ui's color_input imports from react-color but the package ships no types.
|
|
59
|
+
* @types/react-color exists but doesn't include ColorState which @tcn/ui uses.
|
|
60
|
+
*
|
|
61
|
+
* TODO: fix @tcn/ui to use ColorResult instead of ColorState, then add
|
|
62
|
+
* @types/react-color as a dependency of @tcn/ui and remove this stub.
|
|
63
|
+
*/
|
|
64
|
+
declare module 'react-color' {
|
|
65
|
+
import type { ComponentType, ChangeEvent } from 'react';
|
|
66
|
+
|
|
67
|
+
export interface HSLColor {
|
|
68
|
+
a?: number;
|
|
69
|
+
h: number;
|
|
70
|
+
l: number;
|
|
71
|
+
s: number;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface RGBColor {
|
|
75
|
+
a?: number;
|
|
76
|
+
b: number;
|
|
77
|
+
g: number;
|
|
78
|
+
r: number;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export type Color = string | HSLColor | RGBColor;
|
|
82
|
+
|
|
83
|
+
export interface ColorResult {
|
|
84
|
+
hex: string;
|
|
85
|
+
hsl: HSLColor;
|
|
86
|
+
rgb: RGBColor;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** @deprecated @tcn/ui uses this but it should be ColorResult */
|
|
90
|
+
export type ColorState = ColorResult;
|
|
91
|
+
|
|
92
|
+
export type ColorChangeHandler = (
|
|
93
|
+
color: ColorResult,
|
|
94
|
+
event: ChangeEvent<HTMLInputElement>
|
|
95
|
+
) => void;
|
|
96
|
+
|
|
97
|
+
interface CommonPickerProps {
|
|
98
|
+
color?: Color;
|
|
99
|
+
onChange?: ColorChangeHandler;
|
|
100
|
+
onChangeComplete?: ColorChangeHandler;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export const ChromePicker: ComponentType<
|
|
104
|
+
CommonPickerProps & { disableAlpha?: boolean; className?: string }
|
|
105
|
+
>;
|
|
106
|
+
}
|