@colisweb/rescript-toolkit 5.42.2 → 5.42.4
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/package.json
CHANGED
|
@@ -696,9 +696,9 @@ module Make = (StateLenses: Config) => {
|
|
|
696
696
|
?dropdownClassName
|
|
697
697
|
?itemClassName
|
|
698
698
|
options
|
|
699
|
-
defaultValue={value}
|
|
699
|
+
defaultValue={options->Array.keep(item => value->Array.some(v => v === item.value))}
|
|
700
700
|
?disabled
|
|
701
|
-
onChange={items => handleChange(items)}
|
|
701
|
+
onChange={items => handleChange(items->Array.map(item => item.value))}
|
|
702
702
|
onClose
|
|
703
703
|
placeholder
|
|
704
704
|
/>
|
|
@@ -58,14 +58,14 @@ let make = (
|
|
|
58
58
|
dropdownClassName
|
|
59
59
|
label={switch selectedOptions {
|
|
60
60
|
| [] =>
|
|
61
|
-
<
|
|
61
|
+
<div className="flex flex-row gap-2 w-full items-center relative">
|
|
62
62
|
{placeholder->Option.mapWithDefault(React.null, placeholder => {
|
|
63
63
|
<span className={cx(["ml-1", placeholderClassName])}> {placeholder} </span>
|
|
64
64
|
})}
|
|
65
65
|
<span className="absolute inset-y-0 right-0 flex items-center">
|
|
66
66
|
<ReactIcons.FaAngleDown />
|
|
67
67
|
</span>
|
|
68
|
-
</
|
|
68
|
+
</div>
|
|
69
69
|
| options =>
|
|
70
70
|
<>
|
|
71
71
|
<div
|
|
@@ -75,7 +75,7 @@ let make = (
|
|
|
75
75
|
{options->Array.map(({label}) => label)->Js.Array2.joinWith(", ")->React.string}
|
|
76
76
|
</span>
|
|
77
77
|
</div>
|
|
78
|
-
<
|
|
78
|
+
<div
|
|
79
79
|
className={"absolute right-1 bg-info-100 text-info-600 text-sm rounded px-1.5 py-0.5 inline-flex items-center gap-2"}
|
|
80
80
|
onClick={event => {
|
|
81
81
|
event->JsxEventC.Mouse.stopPropagation
|
|
@@ -86,7 +86,7 @@ let make = (
|
|
|
86
86
|
<span className={"rounded-full bg-info-600 text-info-100 p-0.5"}>
|
|
87
87
|
<ReactIcons.MdClose size={14} />
|
|
88
88
|
</span>
|
|
89
|
-
</
|
|
89
|
+
</div>
|
|
90
90
|
</>
|
|
91
91
|
}}>
|
|
92
92
|
{_ =>
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
type coreRowModel
|
|
2
|
+
type sortedRowModel
|
|
2
3
|
type filteredRowModel
|
|
3
4
|
type paginationRowModel
|
|
4
5
|
|
|
5
6
|
@module("@tanstack/react-table")
|
|
6
7
|
external getCoreRowModel: unit => coreRowModel = "getCoreRowModel"
|
|
7
8
|
@module("@tanstack/react-table")
|
|
9
|
+
external getSortedRowModel: unit => sortedRowModel = "getSortedRowModel"
|
|
10
|
+
@module("@tanstack/react-table")
|
|
8
11
|
external getFilteredRowModel: unit => filteredRowModel = "getFilteredRowModel"
|
|
9
12
|
@module("@tanstack/react-table")
|
|
10
13
|
external getPaginationRowModel: unit => paginationRowModel = "getPaginationRowModel"
|
|
@@ -18,6 +21,8 @@ type rowSelectionState = Js.Dict.t<bool>
|
|
|
18
21
|
type filterState = {id: string, value: unknown}
|
|
19
22
|
type sortingState = {id: string, desc: bool}
|
|
20
23
|
|
|
24
|
+
@unboxed type sortState = Bool(bool) | SortOrder(string)
|
|
25
|
+
|
|
21
26
|
type tableState = {
|
|
22
27
|
pagination: paginationState,
|
|
23
28
|
rowSelection: rowSelectionState,
|
|
@@ -108,6 +113,9 @@ and parentColumn<'filterValue, 'filterVariant> = {
|
|
|
108
113
|
columnDef: parentColumnDef<'filterVariant>,
|
|
109
114
|
getFilterValue: unit => 'filterValue,
|
|
110
115
|
setFilterValue: 'filterValue => unit,
|
|
116
|
+
getCanSort: unit => bool,
|
|
117
|
+
getIsSorted: unit => sortState,
|
|
118
|
+
getToggleSortingHandler: 'a. (. unit) => 'a => unit,
|
|
111
119
|
}
|
|
112
120
|
and parentColumnDef<'filterVariant> = {
|
|
113
121
|
header: Header.t,
|
|
@@ -122,13 +130,11 @@ and header<'filterVariant> = {
|
|
|
122
130
|
colSpan: int,
|
|
123
131
|
getSize: unit => int,
|
|
124
132
|
getContext: unit => Header.context,
|
|
125
|
-
getIsSorted: unit => bool,
|
|
126
|
-
getCanFilter: unit => bool,
|
|
127
|
-
getCanSort: unit => bool,
|
|
128
|
-
getToggleSortingHandler: unit => unit,
|
|
129
133
|
id: string,
|
|
130
134
|
}
|
|
131
135
|
|
|
136
|
+
type columnInstance = {setFilterValue: 'a. 'a => unit}
|
|
137
|
+
|
|
132
138
|
type rec tableInstance<'tableData, 'filterVariant> = {
|
|
133
139
|
getHeaderGroups: unit => array<headerGroup<'filterVariant>>,
|
|
134
140
|
getRowModel: unit => rowModel<'filterVariant>,
|
|
@@ -148,17 +154,21 @@ type rec tableInstance<'tableData, 'filterVariant> = {
|
|
|
148
154
|
tableOptions<'tableData, 'filterVariant> => tableOptions<'tableData, 'filterVariant>
|
|
149
155
|
) => unit,
|
|
150
156
|
setColumnFilters: (array<filterState> => array<filterState>) => unit,
|
|
157
|
+
getColumn: string => option<columnInstance>,
|
|
151
158
|
}
|
|
152
159
|
and tableOptions<'tableData, 'filterVariant> = {
|
|
153
160
|
data: array<'tableData>,
|
|
154
161
|
columns: array<ColumnDef.t<'tableData, 'filterVariant>>,
|
|
155
162
|
getCoreRowModel: coreRowModel,
|
|
163
|
+
getSortedRowModel?: sortedRowModel,
|
|
164
|
+
onSortingChange?: (array<sortingState> => array<sortingState>) => unit,
|
|
156
165
|
getFilteredRowModel?: filteredRowModel,
|
|
157
166
|
getPaginationRowModel?: paginationRowModel,
|
|
158
167
|
onPaginationChange?: (paginationState => paginationState) => paginationState,
|
|
159
168
|
onRowSelectionChange?: (rowSelectionState => rowSelectionState) => unit,
|
|
160
169
|
pageCount?: int,
|
|
161
170
|
initialState?: tableInitialState,
|
|
171
|
+
state?: tableInitialState,
|
|
162
172
|
manualPagination?: bool,
|
|
163
173
|
manualSorting?: bool,
|
|
164
174
|
manualFiltering?: bool,
|