@rolster/react-components 19.6.10 → 19.6.11
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/dist/cjs/index.cjs +84 -94
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/es/index.mjs +82 -95
- package/dist/es/index.mjs.map +1 -1
- package/dist/esm/components/organisms/FieldClock/FieldClock.js +5 -7
- package/dist/esm/components/organisms/FieldClock/FieldClock.js.map +1 -1
- package/dist/esm/components/organisms/FieldDate/FieldDate.js +6 -7
- package/dist/esm/components/organisms/FieldDate/FieldDate.js.map +1 -1
- package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js +5 -7
- package/dist/esm/components/organisms/FieldDateRange/FieldDateRange.js.map +1 -1
- package/dist/esm/components/organisms/FieldList/FieldListController.js +7 -8
- package/dist/esm/components/organisms/FieldList/FieldListController.js.map +1 -1
- package/dist/esm/components/organisms/ModalClock/ModalClock.d.ts +14 -0
- package/dist/esm/components/organisms/ModalClock/ModalClock.js +13 -0
- package/dist/esm/components/organisms/ModalClock/ModalClock.js.map +1 -0
- package/dist/esm/components/organisms/ModalDate/ModalDate.d.ts +16 -0
- package/dist/esm/components/organisms/ModalDate/ModalDate.js +13 -0
- package/dist/esm/components/organisms/ModalDate/ModalDate.js.map +1 -0
- package/dist/esm/components/organisms/ModalDateRange/ModalDateRange.d.ts +17 -0
- package/dist/esm/components/organisms/ModalDateRange/ModalDateRange.js +13 -0
- package/dist/esm/components/organisms/ModalDateRange/ModalDateRange.js.map +1 -0
- package/dist/esm/helpers/color.js +38 -74
- package/dist/esm/helpers/color.js.map +1 -1
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
package/dist/es/index.mjs
CHANGED
|
@@ -1139,69 +1139,12 @@ function generateThemeCSS(colors, theme) {
|
|
|
1139
1139
|
...shadowProps
|
|
1140
1140
|
];
|
|
1141
1141
|
}
|
|
1142
|
-
|
|
1143
|
-
const x = channel / 255;
|
|
1144
|
-
return x <= 0.04045 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;
|
|
1145
|
-
};
|
|
1146
|
-
const linearToSrgb = (channel) => {
|
|
1147
|
-
const v = channel <= 0.0031308
|
|
1148
|
-
? 12.92 * channel
|
|
1149
|
-
: 1.055 * channel ** (1 / 2.4) - 0.055;
|
|
1150
|
-
return clamp(Math.round(v * 255), 0, 255);
|
|
1151
|
-
};
|
|
1152
|
-
function rgbToOklch({ r, g, b }) {
|
|
1153
|
-
const lr = srgbToLinear(r);
|
|
1154
|
-
const lg = srgbToLinear(g);
|
|
1155
|
-
const lb = srgbToLinear(b);
|
|
1156
|
-
const l = Math.cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);
|
|
1157
|
-
const m = Math.cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);
|
|
1158
|
-
const s = Math.cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);
|
|
1159
|
-
const okL = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;
|
|
1160
|
-
const okA = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s;
|
|
1161
|
-
const okB = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;
|
|
1162
|
-
return { l: okL, c: Math.hypot(okA, okB), h: Math.atan2(okB, okA) };
|
|
1163
|
-
}
|
|
1164
|
-
function oklabToLinearRgb(l, a, b) {
|
|
1165
|
-
const l_ = (l + 0.3963377774 * a + 0.2158037573 * b) ** 3;
|
|
1166
|
-
const m_ = (l - 0.1055613458 * a - 0.0638541728 * b) ** 3;
|
|
1167
|
-
const s_ = (l - 0.0894841775 * a - 1.291485548 * b) ** 3;
|
|
1168
|
-
return [
|
|
1169
|
-
4.0767416621 * l_ - 3.3077115913 * m_ + 0.2309699292 * s_,
|
|
1170
|
-
-1.2684380046 * l_ + 2.6097574011 * m_ - 0.3413193965 * s_,
|
|
1171
|
-
-0.0041960863 * l_ - 0.7034186147 * m_ + 1.707614701 * s_
|
|
1172
|
-
];
|
|
1173
|
-
}
|
|
1174
|
-
const inGamut = ([r, g, b]) => {
|
|
1175
|
-
const e = 1e-4;
|
|
1176
|
-
return (r >= -e && r <= 1 + e && g >= -e && g <= 1 + e && b >= -e && b <= 1 + e);
|
|
1177
|
-
};
|
|
1178
|
-
function oklchToRgb({ l, c, h }) {
|
|
1179
|
-
const a = Math.cos(h);
|
|
1180
|
-
const b = Math.sin(h);
|
|
1181
|
-
const linearAt = (chroma) => oklabToLinearRgb(l, a * chroma, b * chroma);
|
|
1182
|
-
if (!inGamut(linearAt(c))) {
|
|
1183
|
-
let lo = 0;
|
|
1184
|
-
let hi = c;
|
|
1185
|
-
for (let i = 0; i < 20; i++) {
|
|
1186
|
-
const mid = (lo + hi) / 2;
|
|
1187
|
-
if (inGamut(linearAt(mid))) {
|
|
1188
|
-
lo = mid;
|
|
1189
|
-
}
|
|
1190
|
-
else {
|
|
1191
|
-
hi = mid;
|
|
1192
|
-
}
|
|
1193
|
-
}
|
|
1194
|
-
c = lo;
|
|
1195
|
-
}
|
|
1196
|
-
const [lr, lg, lb] = linearAt(c);
|
|
1197
|
-
return { r: linearToSrgb(lr), g: linearToSrgb(lg), b: linearToSrgb(lb) };
|
|
1198
|
-
}
|
|
1199
|
-
const chromaFactor = (lightness) => 0.4 + 0.6 * (1 - Math.abs(lightness - 0.5) * 2);
|
|
1200
|
-
function detectShadeLevel(lightness) {
|
|
1142
|
+
function detectShadeLevel(hsl) {
|
|
1201
1143
|
let bestLevel = '500';
|
|
1202
1144
|
let minDiff = Infinity;
|
|
1203
|
-
|
|
1204
|
-
const
|
|
1145
|
+
Object.keys(STANDARD_LUMINANCE).forEach((level) => {
|
|
1146
|
+
const targetL = STANDARD_LUMINANCE[level];
|
|
1147
|
+
const diff = Math.abs(hsl.l - targetL);
|
|
1205
1148
|
if (diff < minDiff) {
|
|
1206
1149
|
minDiff = diff;
|
|
1207
1150
|
bestLevel = level;
|
|
@@ -1210,29 +1153,50 @@ function detectShadeLevel(lightness) {
|
|
|
1210
1153
|
return bestLevel;
|
|
1211
1154
|
}
|
|
1212
1155
|
function generateThemePalette(baseColor, theme = 'primary') {
|
|
1213
|
-
const
|
|
1214
|
-
if (!
|
|
1156
|
+
const hsl = hexToHsl(baseColor);
|
|
1157
|
+
if (!hsl) {
|
|
1215
1158
|
throw new Error(msgInvalidColor(baseColor));
|
|
1216
1159
|
}
|
|
1217
|
-
const
|
|
1218
|
-
const
|
|
1160
|
+
const matchedLevel = detectShadeLevel(hsl);
|
|
1161
|
+
const targetL = STANDARD_LUMINANCE[matchedLevel];
|
|
1162
|
+
const inputL = hsl.l;
|
|
1219
1163
|
const colors = {};
|
|
1164
|
+
const matchedIndex = SHADE_LABELS.indexOf(matchedLevel);
|
|
1220
1165
|
SHADE_LABELS.forEach((label) => {
|
|
1221
1166
|
if (label === matchedLevel) {
|
|
1222
|
-
colors[label] =
|
|
1167
|
+
colors[label] = baseColor.toUpperCase();
|
|
1223
1168
|
return;
|
|
1224
1169
|
}
|
|
1225
|
-
const
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1170
|
+
const shadeTargetL = STANDARD_LUMINANCE[label];
|
|
1171
|
+
const labelIndex = SHADE_LABELS.indexOf(label);
|
|
1172
|
+
let lightL;
|
|
1173
|
+
if (labelIndex < matchedIndex) {
|
|
1174
|
+
const ratio = inputL / targetL;
|
|
1175
|
+
lightL = shadeTargetL * ratio;
|
|
1176
|
+
}
|
|
1177
|
+
else {
|
|
1178
|
+
const remainingInput = 100 - inputL;
|
|
1179
|
+
const remainingTarget = 100 - targetL;
|
|
1180
|
+
const progress = (shadeTargetL - targetL) / remainingTarget;
|
|
1181
|
+
lightL = inputL + progress * remainingInput;
|
|
1182
|
+
}
|
|
1183
|
+
lightL = Math.min(100, Math.max(0, lightL));
|
|
1184
|
+
const satFactor = lightL > 60
|
|
1185
|
+
? Math.max(0.2, (100 - lightL) / 40)
|
|
1186
|
+
: lightL < 30
|
|
1187
|
+
? Math.max(0.2, lightL / 30)
|
|
1188
|
+
: 1;
|
|
1189
|
+
colors[label] = hslToHex({
|
|
1190
|
+
h: hsl.h,
|
|
1191
|
+
s: Math.round(Math.min(100, hsl.s * satFactor)),
|
|
1192
|
+
l: Math.round(lightL)
|
|
1193
|
+
});
|
|
1231
1194
|
});
|
|
1232
|
-
const
|
|
1195
|
+
const shades = colors;
|
|
1196
|
+
const properties = generateThemeCSS(shades, theme);
|
|
1233
1197
|
return {
|
|
1234
1198
|
theme,
|
|
1235
|
-
colors,
|
|
1199
|
+
colors: shades,
|
|
1236
1200
|
css: properties.map((p) => `${p.name}: ${p.value};`).join('\n'),
|
|
1237
1201
|
properties
|
|
1238
1202
|
};
|
|
@@ -3157,6 +3121,14 @@ function RlsPickerClock({ formControl, onListener, rlsTheme, time }) {
|
|
|
3157
3121
|
}) })] }) }), jsxRuntimeExports.jsxs("div", { className: "rls-picker-clock__footer", children: [jsxRuntimeExports.jsx("div", { className: "rls-picker-clock__footer--cancel", children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", onClick: onCancel, children: labels.timeActionCancel }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-clock__footer--today", children: jsxRuntimeExports.jsx(RlsButtonAction, { icon: "timer", onClick: onCurrentTime }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-clock__footer--ok", children: jsxRuntimeExports.jsx(RlsButton, { type: "gradient", onClick: onSelect, children: labels.timeActionSelect }) })] })] }));
|
|
3158
3122
|
}
|
|
3159
3123
|
|
|
3124
|
+
function RlsModalClock({ controller, disabled, formControl, onClose, rlsTheme, time, visible }) {
|
|
3125
|
+
const onListener = useCallback(({ event, value }) => {
|
|
3126
|
+
onClose?.(event !== PickerListenerEvent.Cancel ? value : undefined);
|
|
3127
|
+
controller?.close();
|
|
3128
|
+
}, [onClose, controller]);
|
|
3129
|
+
return (jsxRuntimeExports.jsx(RlsModal, { className: "rls-modal-clock", controller: controller, visible: visible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerClock, { formControl: formControl, time: time, disabled: disabled, onListener: onListener }) }));
|
|
3130
|
+
}
|
|
3131
|
+
|
|
3160
3132
|
function RlsFieldClock({ children, disabled: disabledProps, formControl, identifier, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, time, value: valueInitial }) {
|
|
3161
3133
|
const [value, setValue] = useState(formControl?.value ?? valueInitial);
|
|
3162
3134
|
const [modalIsVisible, setModalIsVisible] = useState(false);
|
|
@@ -3197,14 +3169,14 @@ function RlsFieldClock({ children, disabled: disabledProps, formControl, identif
|
|
|
3197
3169
|
setModalIsVisible(true);
|
|
3198
3170
|
}
|
|
3199
3171
|
}, [timeValue, formControl, valueInitial, onChange]);
|
|
3200
|
-
const
|
|
3201
|
-
if (
|
|
3202
|
-
onChange(
|
|
3172
|
+
const onCloseModal = useCallback((time) => {
|
|
3173
|
+
if (time) {
|
|
3174
|
+
onChange(time);
|
|
3203
3175
|
}
|
|
3204
3176
|
formControl?.touch();
|
|
3205
3177
|
setModalIsVisible(false);
|
|
3206
3178
|
}, [formControl, onChange]);
|
|
3207
|
-
return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-clock", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-clock__control", type: "text", value: status.valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(
|
|
3179
|
+
return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-clock", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-clock__control", type: "text", value: status.valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModalClock, { visible: modalIsVisible, time: time, disabled: disabled, onClose: onCloseModal, rlsTheme: rlsTheme })] }));
|
|
3208
3180
|
}
|
|
3209
3181
|
|
|
3210
3182
|
function RlsPickerColor({ color, formControl, onListener, rlsTheme }) {
|
|
@@ -3550,6 +3522,14 @@ function RlsPickerDate({ automatic, date, disabled, formControl, maxDate, minDat
|
|
|
3550
3522
|
return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-picker-date__header", children: [jsxRuntimeExports.jsx(RlsPickerSelectorTitle, { monthControl: monthControl, yearControl: yearControl, date: value, maxDate: maxDate, minDate: minDate, disabled: visibility === 'YEAR', type: 'month', onClick: onVisibilityTitle }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__title", children: jsxRuntimeExports.jsx("span", { onClick: onVisibilityDay, children: title }) })] }), jsxRuntimeExports.jsxs("div", { className: classNameComponent, children: [jsxRuntimeExports.jsx(RlsPickerDay, { formControl: dayControl, date: value, month: monthControl.value, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled }), jsxRuntimeExports.jsx(RlsPickerMonth, { formControl: monthControl, date: value, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay }), jsxRuntimeExports.jsx(RlsPickerYear, { formControl: yearControl, date: value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay })] }), !automatic && (jsxRuntimeExports.jsx("div", { className: "rls-picker-date__footer", children: jsxRuntimeExports.jsxs("div", { className: "rls-picker-date__actions", children: [jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--cancel", children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", onClick: onCancel, children: labels.dateActionCancel }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--today", children: jsxRuntimeExports.jsx(RlsButtonAction, { icon: "calendar", onClick: onToday, disabled: itIsDisabledToday }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date__actions--ok", children: jsxRuntimeExports.jsx(RlsButton, { type: "gradient", onClick: onSelect, children: labels.dateActionSelect }) })] }) }))] }));
|
|
3551
3523
|
}
|
|
3552
3524
|
|
|
3525
|
+
function RlsModalDate({ automatic, controller, date, disabled, formControl, maxDate, minDate, onClose, rlsTheme, visible }) {
|
|
3526
|
+
const onListener = useCallback(({ event, value }) => {
|
|
3527
|
+
onClose?.(event !== PickerListenerEvent.Cancel ? value : undefined);
|
|
3528
|
+
controller?.close();
|
|
3529
|
+
}, [onClose, controller]);
|
|
3530
|
+
return (jsxRuntimeExports.jsx(RlsModal, { className: "rls-modal-date", controller: controller, visible: visible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDate, { automatic: automatic, formControl: formControl, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: onListener }) }));
|
|
3531
|
+
}
|
|
3532
|
+
|
|
3553
3533
|
function RlsFieldDate({ children, date, disabled: disabledProps, formControl, format, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, value: valueInitial }) {
|
|
3554
3534
|
const today = useRef(new Date()); // Initial current date in component
|
|
3555
3535
|
const [value, setValue] = useState(formControl?.value ?? valueInitial);
|
|
@@ -3602,14 +3582,14 @@ function RlsFieldDate({ children, date, disabled: disabledProps, formControl, fo
|
|
|
3602
3582
|
setModalIsVisible(true);
|
|
3603
3583
|
}
|
|
3604
3584
|
}, [dateValue, formControl, valueInitial, onChange]);
|
|
3605
|
-
const
|
|
3606
|
-
if (
|
|
3607
|
-
onChange(
|
|
3585
|
+
const onCloseModal = useCallback((date) => {
|
|
3586
|
+
if (date) {
|
|
3587
|
+
onChange(date);
|
|
3608
3588
|
}
|
|
3609
3589
|
formControl?.touch();
|
|
3610
3590
|
setModalIsVisible(false);
|
|
3611
3591
|
}, [formControl, onChange]);
|
|
3612
|
-
return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date__control", type: "text", value: status.label, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(
|
|
3592
|
+
return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date__control", type: "text", value: status.label, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModalDate, { visible: modalIsVisible, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onClose: onCloseModal, rlsTheme: rlsTheme })] }));
|
|
3613
3593
|
}
|
|
3614
3594
|
|
|
3615
3595
|
function rangeFormatTemplate({ maxDate, minDate }) {
|
|
@@ -3685,6 +3665,14 @@ function RlsPickerDateRange({ automatic, date: datePicker, disabled, formControl
|
|
|
3685
3665
|
return (jsxRuntimeExports.jsxs("div", { className: "rls-picker-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: "rls-picker-date-range__header", children: [jsxRuntimeExports.jsx(RlsPickerSelectorTitle, { monthControl: monthControl, yearControl: yearControl, date: date, maxDate: maxDate, minDate: minDate, disabled: visibility === 'YEAR', type: visibility === 'MONTH' ? 'year' : 'month', onClick: onVisibilityTitle }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date-range__title", children: jsxRuntimeExports.jsx("span", { onClick: onVisibilityDay, children: title }) })] }), jsxRuntimeExports.jsxs("div", { className: classNameComponent, children: [jsxRuntimeExports.jsx(RlsPickerDayRange, { formControl: rangeControl, date: date, maxDate: maxDate, minDate: minDate, disabled: disabled }), jsxRuntimeExports.jsx(RlsPickerMonth, { formControl: monthControl, year: yearControl.value, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay }), jsxRuntimeExports.jsx(RlsPickerYear, { formControl: yearControl, maxDate: maxDate, minDate: minDate, disabled: disabled, onValue: onVisibilityDay })] }), jsxRuntimeExports.jsx("div", { className: classNameFooter, children: jsxRuntimeExports.jsxs("div", { className: "rls-picker-date-range__actions", children: [jsxRuntimeExports.jsx("div", { className: "rls-picker-date-range__actions--cancel", children: jsxRuntimeExports.jsx(RlsButton, { type: "flat", onClick: onCancel, children: labels.dateActionCancel }) }), jsxRuntimeExports.jsx("div", { className: "rls-picker-date-range__actions--ok", children: jsxRuntimeExports.jsx(RlsButton, { type: "gradient", onClick: onSelect, children: labels.dateActionSelect }) })] }) })] }));
|
|
3686
3666
|
}
|
|
3687
3667
|
|
|
3668
|
+
function RlsModalDateRange({ automatic, controller, date, disabled, formControl, maxDate, minDate, onClose, rlsTheme, visible }) {
|
|
3669
|
+
const onListener = useCallback(({ event, value }) => {
|
|
3670
|
+
onClose?.(event !== PickerListenerEvent.Cancel ? value : undefined);
|
|
3671
|
+
controller?.close();
|
|
3672
|
+
}, [onClose, controller]);
|
|
3673
|
+
return (jsxRuntimeExports.jsx(RlsModal, { className: "rls-modal-date-range", controller: controller, visible: visible, rlsTheme: rlsTheme, children: jsxRuntimeExports.jsx(RlsPickerDateRange, { automatic: automatic, formControl: formControl, date: date, disabled: disabled, maxDate: maxDate, minDate: minDate, onListener: onListener }) }));
|
|
3674
|
+
}
|
|
3675
|
+
|
|
3688
3676
|
function RlsFieldDateRange({ children, date, disabled: disabledProps, formControl, identifier, maxDate, minDate, msgErrorDisabled, onValue, placeholder, readOnly, rlsTheme, value: valueInitial }) {
|
|
3689
3677
|
const currentDate = useMemo(() => date ?? new Date(), [date]);
|
|
3690
3678
|
const [value, setValue] = useState(formControl?.value || valueInitial);
|
|
@@ -3726,14 +3714,14 @@ function RlsFieldDateRange({ children, date, disabled: disabledProps, formContro
|
|
|
3726
3714
|
setModalIsVisible(true);
|
|
3727
3715
|
}
|
|
3728
3716
|
}, [dateRangeValue, formControl, valueInitial, onChange]);
|
|
3729
|
-
const
|
|
3730
|
-
if (
|
|
3731
|
-
onChange(
|
|
3717
|
+
const onCloseModal = useCallback((dateRange) => {
|
|
3718
|
+
if (dateRange) {
|
|
3719
|
+
onChange(dateRange);
|
|
3732
3720
|
}
|
|
3733
3721
|
formControl?.touch();
|
|
3734
3722
|
setModalIsVisible(false);
|
|
3735
3723
|
}, [formControl, onChange]);
|
|
3736
|
-
return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date-range__control", type: "text", value: status.valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(
|
|
3724
|
+
return (jsxRuntimeExports.jsxs("div", { id: identifier, className: "rls-field-date-range", "rls-theme": rlsTheme, children: [jsxRuntimeExports.jsxs("div", { className: className, children: [children && jsxRuntimeExports.jsx("span", { className: "rls-field-box__label", children: children }), jsxRuntimeExports.jsx("div", { className: "rls-field-box__component", children: jsxRuntimeExports.jsxs("div", { className: "rls-field-box__body", children: [jsxRuntimeExports.jsx("input", { className: "rls-field-date-range__control", type: "text", value: status.valueInput, readOnly: true, placeholder: placeholder, onClick: onClickInput, disabled: disabled }), !readOnly && (jsxRuntimeExports.jsx(RlsButtonIcon, { icon: status.icon, onClick: onClickAction, disabled: disabled }))] }) }), !msgErrorDisabled && (jsxRuntimeExports.jsx(RlsMessageFormError, { className: "rls-field-box__error", formControl: formControl }))] }), jsxRuntimeExports.jsx(RlsModalDateRange, { visible: modalIsVisible, date: currentDate, disabled: disabled, maxDate: maxDate, minDate: minDate, onClose: onCloseModal, rlsTheme: rlsTheme })] }));
|
|
3737
3725
|
}
|
|
3738
3726
|
|
|
3739
3727
|
const MAX_LIST_HEIGHT_REM = 90;
|
|
@@ -3786,26 +3774,25 @@ function useFieldList(props) {
|
|
|
3786
3774
|
useEffect(() => {
|
|
3787
3775
|
const formValue = formControl?.value;
|
|
3788
3776
|
if (formValue !== undefined && formValue !== null && formValue.length) {
|
|
3789
|
-
|
|
3790
|
-
setSelected(selectedElements);
|
|
3777
|
+
setSelected(suggestions.filter((state) => formValue.some((value) => state.compareTo(value))));
|
|
3791
3778
|
}
|
|
3792
3779
|
else {
|
|
3793
3780
|
setSelected([]);
|
|
3794
3781
|
}
|
|
3795
3782
|
}, [formControl?.value, suggestions]);
|
|
3796
|
-
const setListState = useCallback((
|
|
3783
|
+
const setListState = useCallback((controllerState) => {
|
|
3797
3784
|
setState((state) => {
|
|
3798
|
-
const
|
|
3785
|
+
const newState = controllerState.listIsVisible !== undefined
|
|
3799
3786
|
? {
|
|
3800
|
-
...
|
|
3801
|
-
...(
|
|
3787
|
+
...controllerState,
|
|
3788
|
+
...(controllerState.listIsVisible
|
|
3802
3789
|
? {
|
|
3803
3790
|
higher: shouldDisplayHigher(refContent.current, refList.current)
|
|
3804
3791
|
}
|
|
3805
3792
|
: {})
|
|
3806
3793
|
}
|
|
3807
|
-
:
|
|
3808
|
-
return { ...state, ...
|
|
3794
|
+
: controllerState;
|
|
3795
|
+
return { ...state, ...newState };
|
|
3809
3796
|
});
|
|
3810
3797
|
}, []);
|
|
3811
3798
|
const toggleElement = useCallback((element) => {
|
|
@@ -4771,5 +4758,5 @@ function usePortalController() {
|
|
|
4771
4758
|
return { close, open, visible };
|
|
4772
4759
|
}
|
|
4773
4760
|
|
|
4774
|
-
export { ConfirmationResult, DEFAULT_COLOR, RlsAccordion, RlsAlert, RlsAmount, RlsApplication, RlsAreaText, RlsAvatar, RlsBadge, RlsBallot, RlsBody, RlsBottomSheet, RlsBreadcrumb, RlsButton, RlsButtonAction, RlsButtonIcon, RlsButtonOption, RlsButtonProgress, RlsButtonStepper, RlsButtonToggle, RlsCard, RlsCheckBox, RlsCheckBoxControl, RlsConfirmation, RlsContent, RlsContext, RlsDatatable, RlsDatatableCell, RlsDatatableData, RlsDatatableFloating, RlsDatatableHeader, RlsDatatableRecord, RlsDatatableSubheader, RlsDatatableTitle, RlsDatatableTotals, RlsDropdown, RlsFieldArea, RlsFieldAutocomplete, RlsFieldAutocompleteTemplate, RlsFieldClock, RlsFieldColor, RlsFieldDate, RlsFieldDateRange, RlsFieldDecimal, RlsFieldFile, RlsFieldList, RlsFieldListSuggestions, RlsFieldListTemplate, RlsFieldMoney, RlsFieldNumber, RlsFieldPassword, RlsFieldPercentage, RlsFieldReadonly, RlsFieldSelect, RlsFieldSelectTemplate, RlsFieldText, RlsFormNavigation, RlsIcon, RlsImage, RlsImageChooser, RlsImageEditor, RlsInput, RlsInputCounter, RlsInputDecimal, RlsInputMoney, RlsInputNumber, RlsInputPassword, RlsInputPercentage, RlsInputSearch, RlsInputText, RlsLabel, RlsLabelCheckBox, RlsLabelRadioButton, RlsLabelSwitch, RlsLed, RlsMessageEmpty, RlsMessageFormError, RlsMessageIcon, RlsModal, RlsModalSheet, RlsNavbar, RlsNavbarMenu, RlsPagination, RlsPickerClock, RlsPickerColor, RlsPickerDate, RlsPickerDateRange, RlsPickerDay, RlsPickerDayRange, RlsPickerMonth, RlsPickerSelectorTitle, RlsPickerYear, RlsPoster, RlsProgressBar, RlsProgressCircular, RlsRadioButton, RlsSkeleton, RlsSkeletonText, RlsSlider, RlsSnackbar, RlsSpinner, RlsSwitch, RlsSwitchControl, RlsTabs, RlsTabularText, RlsToolbar, calculateImgDimension, generateThemePalette, hexIsValid, hexToHsl, hexToHsv, hexToRgb, hslToHex, hsvToHex, hsvToRgb, normalizeHex, rangeFormatTemplate, renderClassStatus, rgbToHex, rgbToHsl, rgbToHsv, setDesignSystem, setErrorsI18n, setThemeColor, useConfirmation, useDatatable, useDesingSystemController, useDropdownController, useFieldAutocomplete, useFieldList, useFieldSelect, useFormSingleSelectionController, useFormToggleController, useImageEditorController, useListController, useNotifications, usePortalController, useRelocationOnComponent, useResize, useRlsContext, useSnackbar };
|
|
4761
|
+
export { ConfirmationResult, DEFAULT_COLOR, RlsAccordion, RlsAlert, RlsAmount, RlsApplication, RlsAreaText, RlsAvatar, RlsBadge, RlsBallot, RlsBody, RlsBottomSheet, RlsBreadcrumb, RlsButton, RlsButtonAction, RlsButtonIcon, RlsButtonOption, RlsButtonProgress, RlsButtonStepper, RlsButtonToggle, RlsCard, RlsCheckBox, RlsCheckBoxControl, RlsConfirmation, RlsContent, RlsContext, RlsDatatable, RlsDatatableCell, RlsDatatableData, RlsDatatableFloating, RlsDatatableHeader, RlsDatatableRecord, RlsDatatableSubheader, RlsDatatableTitle, RlsDatatableTotals, RlsDropdown, RlsFieldArea, RlsFieldAutocomplete, RlsFieldAutocompleteTemplate, RlsFieldClock, RlsFieldColor, RlsFieldDate, RlsFieldDateRange, RlsFieldDecimal, RlsFieldFile, RlsFieldList, RlsFieldListSuggestions, RlsFieldListTemplate, RlsFieldMoney, RlsFieldNumber, RlsFieldPassword, RlsFieldPercentage, RlsFieldReadonly, RlsFieldSelect, RlsFieldSelectTemplate, RlsFieldText, RlsFormNavigation, RlsIcon, RlsImage, RlsImageChooser, RlsImageEditor, RlsInput, RlsInputCounter, RlsInputDecimal, RlsInputMoney, RlsInputNumber, RlsInputPassword, RlsInputPercentage, RlsInputSearch, RlsInputText, RlsLabel, RlsLabelCheckBox, RlsLabelRadioButton, RlsLabelSwitch, RlsLed, RlsMessageEmpty, RlsMessageFormError, RlsMessageIcon, RlsModal, RlsModalClock, RlsModalDate, RlsModalDateRange, RlsModalSheet, RlsNavbar, RlsNavbarMenu, RlsPagination, RlsPickerClock, RlsPickerColor, RlsPickerDate, RlsPickerDateRange, RlsPickerDay, RlsPickerDayRange, RlsPickerMonth, RlsPickerSelectorTitle, RlsPickerYear, RlsPoster, RlsProgressBar, RlsProgressCircular, RlsRadioButton, RlsSkeleton, RlsSkeletonText, RlsSlider, RlsSnackbar, RlsSpinner, RlsSwitch, RlsSwitchControl, RlsTabs, RlsTabularText, RlsToolbar, calculateImgDimension, generateThemePalette, hexIsValid, hexToHsl, hexToHsv, hexToRgb, hslToHex, hsvToHex, hsvToRgb, normalizeHex, rangeFormatTemplate, renderClassStatus, rgbToHex, rgbToHsl, rgbToHsv, setDesignSystem, setErrorsI18n, setThemeColor, useConfirmation, useDatatable, useDesingSystemController, useDropdownController, useFieldAutocomplete, useFieldList, useFieldSelect, useFormSingleSelectionController, useFormToggleController, useImageEditorController, useListController, useNotifications, usePortalController, useRelocationOnComponent, useResize, useRlsContext, useSnackbar };
|
|
4775
4762
|
//# sourceMappingURL=index.mjs.map
|