@colisweb/rescript-toolkit 3.7.1 → 3.7.3
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/.gitlab-ci.yml +1 -1
- package/.secure_files/ci-functions-v16.5.0 +2384 -0
- package/.secure_files/ci-functions-v16.6.0 +2384 -0
- package/.secure_files/ci-functions-v16.7.0 +2422 -0
- package/.secure_files/ci-functions-v17.0.0 +2422 -0
- package/.secure_files/ci-functions-v17.0.1 +2422 -0
- package/.secure_files/ci-functions-v17.0.10 +2525 -0
- package/.secure_files/ci-functions-v17.0.2 +2422 -0
- package/.secure_files/ci-functions-v17.0.3 +2422 -0
- package/.secure_files/ci-functions-v17.0.4 +2422 -0
- package/.secure_files/ci-functions-v17.0.5 +2422 -0
- package/.secure_files/ci-functions-v17.0.6 +2422 -0
- package/.secure_files/ci-functions-v17.0.7 +2422 -0
- package/.secure_files/ci-functions-v17.0.8 +2422 -0
- package/.secure_files/ci-functions-v17.0.9 +2527 -0
- package/.secure_files/ci-functions-v17.1.0 +2525 -0
- package/.secure_files/ci-functions-v17.1.1 +2547 -0
- package/.secure_files/ci-functions-vTest +2384 -0
- package/.yarn/install-state.gz +0 -0
- package/locale/fr.json +5 -0
- package/package.json +1 -1
- package/playground/components/Playground_Checkbox.res +6 -1
- package/playground/components/Playground_MultiSelect.res +21 -0
- package/src/form/Toolkit__FormValidationFunctions.res +12 -0
- package/src/ui/Toolkit__Ui_Checkbox.res +20 -9
- package/src/ui/Toolkit__Ui_Checkbox.resi +1 -0
- package/src/ui/Toolkit__Ui_MultiSelect.res +26 -4
- package/src/ui/Toolkit__Ui_MultiSelect.resi +1 -0
- package/src/utils/Toolkit__Utils_UnitMeasure.res +3 -3
- package/src/vendors/ReactIcons.res +30 -0
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/locale/fr.json
CHANGED
package/package.json
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
open Toolkit__Ui
|
|
3
2
|
|
|
4
3
|
@module("@root/src/ui/Toolkit__Ui_Checkbox.resi?raw")
|
|
@@ -42,6 +41,12 @@ let make = () => {
|
|
|
42
41
|
<h2> {"Checked"->React.string} </h2>
|
|
43
42
|
<Checkbox checked=true name="test" value="test"> {"children"->React.string} </Checkbox>
|
|
44
43
|
</div>
|
|
44
|
+
<div>
|
|
45
|
+
<h2> {"IntermediaryChecked"->React.string} </h2>
|
|
46
|
+
<Checkbox checked=true intermediaryChecked=true name="test" value="test">
|
|
47
|
+
{"children"->React.string}
|
|
48
|
+
</Checkbox>
|
|
49
|
+
</div>
|
|
45
50
|
<div>
|
|
46
51
|
<Checkbox checked=true name="test" value="test" size=#xs className="mb-4">
|
|
47
52
|
{"xs"->React.string}
|
|
@@ -87,5 +87,26 @@ let make = () => {
|
|
|
87
87
|
onChange={Js.log}
|
|
88
88
|
/>
|
|
89
89
|
</div>
|
|
90
|
+
<div>
|
|
91
|
+
<h3 className="mb-2"> {"Select only button"->React.string} </h3>
|
|
92
|
+
<p className="mb-1">
|
|
93
|
+
{"Select only button is displayed when the displaySelectOnlyOption prop is at true"->React.string}
|
|
94
|
+
</p>
|
|
95
|
+
<Toolkit__Ui_MultiSelect
|
|
96
|
+
searchPlaceholder="Filter"
|
|
97
|
+
buttonClassName={"w-80"}
|
|
98
|
+
dropdownClassName="max-h-[300px] w-80 overflow-auto"
|
|
99
|
+
displaySelectOnlyOption=true
|
|
100
|
+
options={Array.makeBy(10, (i): Toolkit__Ui.MultiSelect.item => {
|
|
101
|
+
{
|
|
102
|
+
itemLabel: <p> {`label ${i->Int.toString}`->React.string} </p>,
|
|
103
|
+
label: `label ${i->Int.toString}`,
|
|
104
|
+
value: `label ${i->Int.toString}`,
|
|
105
|
+
}
|
|
106
|
+
})}
|
|
107
|
+
placeholder={<span> {"Select me"->React.string} </span>}
|
|
108
|
+
onChange={Js.log}
|
|
109
|
+
/>
|
|
110
|
+
</div>
|
|
90
111
|
</div>
|
|
91
112
|
}
|
|
@@ -323,6 +323,18 @@ let optionalPosFloatEnergyCapacityKWh = (intl, value) => {
|
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
|
|
326
|
+
let optionalPosFloatSpeedKm_h = (intl, value) => {
|
|
327
|
+
switch value {
|
|
328
|
+
| "" => None
|
|
329
|
+
| v =>
|
|
330
|
+
switch v->Toolkit__Decoders.UnitMeasure.Speed.WithUnit.decodeFromString {
|
|
331
|
+
| Ok(#km_h(_)) => None
|
|
332
|
+
| _ =>
|
|
333
|
+
Some(Intl.formatMessageWithValues(intl, Msg.wrongFormat, {"exemple": "'10 km/h' '0.5 km/h'"}))
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
326
338
|
let requiredPosFloatWeightG = (intl, value) => {
|
|
327
339
|
switch value {
|
|
328
340
|
| "" => Some(Intl.formatMessage(intl, Msg.requiredValue))
|
|
@@ -9,6 +9,7 @@ let make = (
|
|
|
9
9
|
~name=?,
|
|
10
10
|
~checked=?,
|
|
11
11
|
~defaultChecked=?,
|
|
12
|
+
~intermediaryChecked=false,
|
|
12
13
|
~className="",
|
|
13
14
|
~size: size=#sm,
|
|
14
15
|
~checkboxClassName="",
|
|
@@ -70,15 +71,25 @@ let make = (
|
|
|
70
71
|
checkboxClassName,
|
|
71
72
|
isChecked ? checkedCheckboxClassName : "",
|
|
72
73
|
])}>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
{intermediaryChecked
|
|
75
|
+
? <ReactIcons.FaMinus
|
|
76
|
+
className="transform transition-all ease-in-out"
|
|
77
|
+
size={switch size {
|
|
78
|
+
| #xs => 14
|
|
79
|
+
| #sm => 16
|
|
80
|
+
| #md => 18
|
|
81
|
+
| #lg => 24
|
|
82
|
+
}}
|
|
83
|
+
/>
|
|
84
|
+
: <ReactIcons.FaCheck
|
|
85
|
+
className="transform transition-all ease-in-out"
|
|
86
|
+
size={switch size {
|
|
87
|
+
| #xs => 14
|
|
88
|
+
| #sm => 16
|
|
89
|
+
| #md => 18
|
|
90
|
+
| #lg => 24
|
|
91
|
+
}}
|
|
92
|
+
/>}
|
|
82
93
|
</span>
|
|
83
94
|
{children->Option.mapWithDefault(React.null, children => hideLabel ? React.null : children)}
|
|
84
95
|
</label>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
open ReactIntl
|
|
2
|
+
|
|
1
3
|
type item = {
|
|
2
4
|
itemLabel?: React.element,
|
|
3
5
|
label: string,
|
|
@@ -19,6 +21,7 @@ let make = (
|
|
|
19
21
|
~onChange: array<item> => unit,
|
|
20
22
|
~disabled: bool=?,
|
|
21
23
|
~onClose: unit => unit=?,
|
|
24
|
+
~displaySelectOnlyOption=false,
|
|
22
25
|
) => {
|
|
23
26
|
let (selectedOptions, setSelectedOptions) = React.useState(() => defaultValue)
|
|
24
27
|
let previousDefaultValue = Toolkit__Hooks.usePrevious(defaultValue)
|
|
@@ -60,9 +63,9 @@ let make = (
|
|
|
60
63
|
position=#bottom
|
|
61
64
|
label={switch selectedOptions {
|
|
62
65
|
| [] =>
|
|
63
|
-
<p className="flex flex-row gap-2 w-full items-center">
|
|
66
|
+
<p className="flex flex-row gap-2 w-full items-center relative">
|
|
64
67
|
<span className="ml-1"> {placeholder} </span>
|
|
65
|
-
<span className="absolute inset-y-0 right-0 flex items-center
|
|
68
|
+
<span className="absolute inset-y-0 right-0 flex items-center">
|
|
66
69
|
<ReactIcons.FaAngleDown />
|
|
67
70
|
</span>
|
|
68
71
|
</p>
|
|
@@ -91,6 +94,7 @@ let make = (
|
|
|
91
94
|
})
|
|
92
95
|
}
|
|
93
96
|
}}
|
|
97
|
+
value={search}
|
|
94
98
|
onChange={event => {
|
|
95
99
|
let target = event->ReactEvent.Form.currentTarget
|
|
96
100
|
// normalize nfd -> replace by re remove split by commponents the accent letters and deletes the accent component only, leaving the un-accented letter
|
|
@@ -120,13 +124,13 @@ let make = (
|
|
|
120
124
|
<div
|
|
121
125
|
key={`multiselectoption-${label}-${value}`}
|
|
122
126
|
className={cx([
|
|
123
|
-
"flex flex-row items-center gap-2 pt-3 text-left",
|
|
127
|
+
"group flex flex-row items-center gap-2 pt-3 text-left relative",
|
|
124
128
|
i > 0 ? "mt-3" : "",
|
|
125
129
|
itemClassName,
|
|
126
130
|
])}>
|
|
127
131
|
<Toolkit__Ui_Checkbox
|
|
128
132
|
value
|
|
129
|
-
className="w-full flex-shrink-0"
|
|
133
|
+
className="w-full flex-shrink-0 relative"
|
|
130
134
|
checked={selectedOptions->Array.some(item =>
|
|
131
135
|
item.label == label && item.value == value
|
|
132
136
|
)}
|
|
@@ -152,6 +156,24 @@ let make = (
|
|
|
152
156
|
}}>
|
|
153
157
|
{item.itemLabel->Option.getWithDefault(label->React.string)}
|
|
154
158
|
</Toolkit__Ui_Checkbox>
|
|
159
|
+
{displaySelectOnlyOption
|
|
160
|
+
? <div className="group-hover:block hidden absolute right-0">
|
|
161
|
+
<Toolkit__Ui_Button
|
|
162
|
+
onClick={_ => {
|
|
163
|
+
setSelectedOptions(_ => {
|
|
164
|
+
let value = [item]
|
|
165
|
+
|
|
166
|
+
onChange(value)
|
|
167
|
+
value
|
|
168
|
+
})
|
|
169
|
+
}}
|
|
170
|
+
color=#neutralLight
|
|
171
|
+
size=#sm
|
|
172
|
+
className="hover:underline hover:!bg-neutral-200 hover:!border-neutral-200 hover:!text-primary-700">
|
|
173
|
+
<FormattedMessage defaultMessage="Seulement" />
|
|
174
|
+
</Toolkit__Ui_Button>
|
|
175
|
+
</div>
|
|
176
|
+
: React.null}
|
|
155
177
|
</div>
|
|
156
178
|
})
|
|
157
179
|
->React.array}
|
|
@@ -199,19 +199,19 @@ module Speed = {
|
|
|
199
199
|
|
|
200
200
|
let toValue = value =>
|
|
201
201
|
switch value {
|
|
202
|
-
| #km_h(
|
|
202
|
+
| #km_h(v) => v
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
let display = (value, ~digits=2, ()) => {
|
|
206
206
|
open Js.Float
|
|
207
207
|
switch value {
|
|
208
|
-
| #km_h(
|
|
208
|
+
| #km_h(v) => v->toFixedWithPrecision(~digits) ++ " km/h"
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
let toString = value => {
|
|
213
213
|
switch value {
|
|
214
|
-
| #km_h(
|
|
214
|
+
| #km_h(v) => v->Float.toString ++ " km/h"
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
217
|
}
|
|
@@ -6045,3 +6045,33 @@ module FaRegTrashAlt = {
|
|
|
6045
6045
|
external make: (~size: int=?, ~color: string=?, ~className: string=?) => React.element =
|
|
6046
6046
|
"FaRegTrashAlt"
|
|
6047
6047
|
}
|
|
6048
|
+
|
|
6049
|
+
module FaMinus = {
|
|
6050
|
+
@module("react-icons/fa") @react.component
|
|
6051
|
+
external make: (~size: int=?, ~color: string=?, ~className: string=?) => React.element = "FaMinus"
|
|
6052
|
+
}
|
|
6053
|
+
|
|
6054
|
+
module FaBolt = {
|
|
6055
|
+
@module("react-icons/fa") @react.component
|
|
6056
|
+
external make: (~size: int=?, ~color: string=?, ~className: string=?) => React.element = "FaBolt"
|
|
6057
|
+
}
|
|
6058
|
+
|
|
6059
|
+
module FaLeaf = {
|
|
6060
|
+
@module("react-icons/fa") @react.component
|
|
6061
|
+
external make: (~size: int=?, ~color: string=?, ~className: string=?) => React.element = "FaLeaf"
|
|
6062
|
+
}
|
|
6063
|
+
module FaBicycle = {
|
|
6064
|
+
@module("react-icons/fa") @react.component
|
|
6065
|
+
external make: (~size: int=?, ~color: string=?, ~className: string=?) => React.element =
|
|
6066
|
+
"FaBicycle"
|
|
6067
|
+
}
|
|
6068
|
+
|
|
6069
|
+
module FaBoxes = {
|
|
6070
|
+
@module("react-icons/fa") @react.component
|
|
6071
|
+
external make: (~size: int=?, ~color: string=?, ~className: string=?) => React.element = "FaBoxes"
|
|
6072
|
+
}
|
|
6073
|
+
module FaListAlt = {
|
|
6074
|
+
@module("react-icons/fa") @react.component
|
|
6075
|
+
external make: (~size: int=?, ~color: string=?, ~className: string=?) => React.element =
|
|
6076
|
+
"FaListAlt"
|
|
6077
|
+
}
|