ywana-core8 0.1.16 → 0.1.18
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/index.cjs +142 -55
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +15 -7
- package/dist/index.css.map +1 -1
- package/dist/index.modern.js +142 -55
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +142 -55
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/html/icon.js +3 -3
- package/src/html/textfield.js +18 -2
- package/src/widgets/login/HelloTest.js +7 -0
- package/src/widgets/login/LoginBox.js +1 -1
- package/src/widgets/login/ResetPasswordBox.css +15 -7
- package/src/widgets/login/ResetPasswordBox.js +101 -37
- package/src/widgets/login/ResetPasswordBoxTest.js +14 -4
- package/src/widgets/login/login_commons.js +6 -6
- package/preview.config.cjs +0 -35
package/dist/index.umd.js
CHANGED
@@ -269,7 +269,8 @@
|
|
269
269
|
* Icon
|
270
270
|
*/
|
271
271
|
var Icon = function Icon(_ref) {
|
272
|
-
var
|
272
|
+
var id = _ref.id,
|
273
|
+
icon = _ref.icon,
|
273
274
|
_ref$size = _ref.size,
|
274
275
|
size = _ref$size === void 0 ? "normal" : _ref$size,
|
275
276
|
tooltip = _ref.tooltip,
|
@@ -290,9 +291,11 @@
|
|
290
291
|
}
|
291
292
|
var style = disabled ? "disabled" : clickable ? "clickable" : "";
|
292
293
|
return tooltip ? /*#__PURE__*/React__default["default"].createElement(Tooltip, tooltip, /*#__PURE__*/React__default["default"].createElement("i", {
|
294
|
+
id: id,
|
293
295
|
className: "icon " + size + " " + style + " " + className + " material-icons",
|
294
296
|
onClick: click
|
295
297
|
}, icon)) : /*#__PURE__*/React__default["default"].createElement("i", {
|
298
|
+
id: id,
|
296
299
|
className: "icon " + size + " " + style + " " + className + " material-icons",
|
297
300
|
onClick: click
|
298
301
|
}, icon);
|
@@ -1356,7 +1359,9 @@
|
|
1356
1359
|
onEnter = props.onEnter,
|
1357
1360
|
onClick = props.onClick,
|
1358
1361
|
onFocus = props.onFocus,
|
1359
|
-
onBlur = props.onBlur
|
1362
|
+
onBlur = props.onBlur,
|
1363
|
+
_props$autoComplete = props.autoComplete,
|
1364
|
+
autoComplete = _props$autoComplete === void 0 ? false : _props$autoComplete;
|
1360
1365
|
function onKeyPress(event) {
|
1361
1366
|
var key = event.charCode ? event.charCode : event.keyCode ? event.keyCode : 0;
|
1362
1367
|
if (key == 13) {
|
@@ -1378,6 +1383,20 @@
|
|
1378
1383
|
function clear() {
|
1379
1384
|
if (onChange) onChange(id, "");
|
1380
1385
|
}
|
1386
|
+
function toggle() {
|
1387
|
+
var input = document.getElementById(id);
|
1388
|
+
var icon = document.getElementById(id + "-visibility");
|
1389
|
+
if (input) {
|
1390
|
+
var _type = input.getAttribute("type");
|
1391
|
+
if (_type === "password") {
|
1392
|
+
input.setAttribute("type", "text");
|
1393
|
+
icon.setHTMLUnsafe("visibility");
|
1394
|
+
} else {
|
1395
|
+
input.setAttribute("type", "password");
|
1396
|
+
icon.setHTMLUnsafe("visibility_off");
|
1397
|
+
}
|
1398
|
+
}
|
1399
|
+
}
|
1381
1400
|
var borderStyle = outlined ? "textfield-outlined" : "textfield";
|
1382
1401
|
var labelStyle = label ? "" : "no-label";
|
1383
1402
|
var labelPositionStyle = labelPosition == 'left' ? "label-left" : "label-top";
|
@@ -1398,12 +1417,19 @@
|
|
1398
1417
|
onFocus: focus,
|
1399
1418
|
onBlur: blur,
|
1400
1419
|
readOnly: readOnly,
|
1401
|
-
step: "any"
|
1420
|
+
step: "any",
|
1421
|
+
autoComplete: autoComplete
|
1402
1422
|
}), readOnly === false && canClear && value && value.length > 0 ? /*#__PURE__*/React__default["default"].createElement(Icon, {
|
1403
1423
|
icon: "close",
|
1404
1424
|
clickable: true,
|
1405
1425
|
size: "small",
|
1406
1426
|
action: clear
|
1427
|
+
}) : null, type === "password" ? /*#__PURE__*/React__default["default"].createElement(Icon, {
|
1428
|
+
id: id + "-visibility",
|
1429
|
+
icon: "visibility_off",
|
1430
|
+
clickable: true,
|
1431
|
+
size: "small",
|
1432
|
+
action: toggle
|
1407
1433
|
}) : null, /*#__PURE__*/React__default["default"].createElement("span", {
|
1408
1434
|
className: "bar"
|
1409
1435
|
}), label ? /*#__PURE__*/React__default["default"].createElement("label", null, labelTxt) : null);
|
@@ -1731,6 +1757,7 @@
|
|
1731
1757
|
onEnter: ok,
|
1732
1758
|
outlined: true
|
1733
1759
|
}), /*#__PURE__*/React__default["default"].createElement(TextField, {
|
1760
|
+
id: "loginbox-password",
|
1734
1761
|
label: tx(passwordLabel),
|
1735
1762
|
value: password,
|
1736
1763
|
onChange: changePassword,
|
@@ -1762,37 +1789,37 @@
|
|
1762
1789
|
|
1763
1790
|
// Verificar longitud mínima y máxima
|
1764
1791
|
if (contraseña.length < 15 || contraseña.length > 50) {
|
1765
|
-
error = '
|
1792
|
+
error = 'The password must be between 15 and 50 characters.';
|
1766
1793
|
return [false, error];
|
1767
1794
|
}
|
1768
1795
|
|
1769
1796
|
// Verificar al menos una letra (mayúscula o minúscula)
|
1770
1797
|
if (!/[A-Za-z]/.test(contraseña)) {
|
1771
|
-
error = '
|
1798
|
+
error = 'The password must contain at least one letter (A-Z or a-z).';
|
1772
1799
|
return [false, error];
|
1773
1800
|
}
|
1774
1801
|
|
1775
1802
|
// Verificar al menos un número
|
1776
1803
|
if (!/[0-9]/.test(contraseña)) {
|
1777
|
-
error = '
|
1804
|
+
error = 'The password must contain at least one number (0-9).';
|
1778
1805
|
return [false, error];
|
1779
1806
|
}
|
1780
1807
|
|
1781
1808
|
// Verificar al menos una minúscula
|
1782
1809
|
if (!/[a-z]/.test(contraseña)) {
|
1783
|
-
error = '
|
1810
|
+
error = 'The password must contain at least one lowercase letter (a-z).';
|
1784
1811
|
return [false, error];
|
1785
1812
|
}
|
1786
1813
|
|
1787
1814
|
// Verificar al menos una mayúscula
|
1788
1815
|
if (!/[A-Z]/.test(contraseña)) {
|
1789
|
-
error = '
|
1816
|
+
error = 'The password must contain at least one uppercase letter (A-Z).';
|
1790
1817
|
return [false, error];
|
1791
1818
|
}
|
1792
1819
|
|
1793
1820
|
// Verificar al menos un carácter especial
|
1794
1821
|
if (!/[<>+&!?*\-_%\.:=]/.test(contraseña)) {
|
1795
|
-
error = '
|
1822
|
+
error = 'The password must contain at least one special character (< > + & ! ? * - _ % . : =).';
|
1796
1823
|
return [false, error];
|
1797
1824
|
}
|
1798
1825
|
|
@@ -1806,47 +1833,100 @@
|
|
1806
1833
|
* Reset Password
|
1807
1834
|
*/
|
1808
1835
|
var ResetPasswordBox = function ResetPasswordBox(_ref) {
|
1809
|
-
var
|
1810
|
-
title = _ref.title,
|
1836
|
+
var title = _ref.title,
|
1811
1837
|
_ref$userRequired = _ref.userRequired,
|
1812
1838
|
userRequired = _ref$userRequired === void 0 ? true : _ref$userRequired,
|
1813
1839
|
_ref$oldPwdRequired = _ref.oldPwdRequired,
|
1814
1840
|
oldPwdRequired = _ref$oldPwdRequired === void 0 ? false : _ref$oldPwdRequired,
|
1815
|
-
|
1816
|
-
lang = _ref$lang === void 0 ? "EN" : _ref$lang,
|
1841
|
+
validator = _ref.validator,
|
1817
1842
|
children = _ref.children,
|
1818
|
-
onOK = _ref.onOK
|
1819
|
-
|
1820
|
-
|
1843
|
+
onOK = _ref.onOK;
|
1844
|
+
var _useState = React.useState({
|
1845
|
+
user: "",
|
1846
|
+
oldPassword: "",
|
1847
|
+
password1: "",
|
1848
|
+
password2: ""
|
1849
|
+
}),
|
1821
1850
|
form = _useState[0],
|
1822
1851
|
setForm = _useState[1];
|
1823
1852
|
var _useState2 = React.useState(false),
|
1824
1853
|
isValid = _useState2[0],
|
1825
1854
|
setIsValid = _useState2[1];
|
1826
|
-
var _useState3 = React.useState(),
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1830
|
-
var
|
1831
|
-
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
|
1837
|
-
var
|
1838
|
-
|
1839
|
-
|
1840
|
-
|
1855
|
+
var _useState3 = React.useState({}),
|
1856
|
+
errors = _useState3[0],
|
1857
|
+
setErrors = _useState3[1];
|
1858
|
+
function validateUser(user) {
|
1859
|
+
var error = "";
|
1860
|
+
var isValid = user && user.length > 0;
|
1861
|
+
error = /*#__PURE__*/React__default["default"].createElement(Text, null, "User is required.");
|
1862
|
+
return [isValid, error];
|
1863
|
+
}
|
1864
|
+
function validateOldPassword(oldPassword) {
|
1865
|
+
var error = "";
|
1866
|
+
var isValid = oldPassword && oldPassword.length > 0;
|
1867
|
+
error = /*#__PURE__*/React__default["default"].createElement(Text, null, "Old password is required.");
|
1868
|
+
return [isValid, error];
|
1869
|
+
}
|
1870
|
+
function validateNewPassword(password) {
|
1871
|
+
var hasPassword = password && password.length > 0;
|
1872
|
+
if (!hasPassword) {
|
1873
|
+
var _error = /*#__PURE__*/React__default["default"].createElement(Text, null, "Password is required");
|
1874
|
+
return [false, _error];
|
1875
|
+
}
|
1876
|
+
var _ref2 = validator && typeof validator === 'function' ? validator(password) : validatePassword(password),
|
1841
1877
|
isValid = _ref2[0],
|
1842
1878
|
error = _ref2[1];
|
1843
|
-
|
1844
|
-
|
1845
|
-
|
1879
|
+
if (!isValid) {
|
1880
|
+
return [false, error];
|
1881
|
+
}
|
1882
|
+
return [true, ""];
|
1883
|
+
}
|
1884
|
+
function validatePasswordsMatch(password1, password2) {
|
1885
|
+
var error = "";
|
1886
|
+
var isValid = password1 === password2;
|
1887
|
+
error = /*#__PURE__*/React__default["default"].createElement(Text, null, "Passwords do not match.");
|
1888
|
+
return [isValid, error];
|
1889
|
+
}
|
1890
|
+
function validate(form) {
|
1891
|
+
var isValid = true;
|
1892
|
+
var nextErrors = Object.assign({}, errors);
|
1893
|
+
if (userRequired) {
|
1894
|
+
var _validateUser = validateUser(form.user),
|
1895
|
+
validation = _validateUser[0],
|
1896
|
+
error = _validateUser[1];
|
1897
|
+
if (isValid) isValid = validation;
|
1898
|
+
nextErrors.user = error;
|
1899
|
+
}
|
1900
|
+
if (oldPwdRequired) {
|
1901
|
+
var _validateOldPassword = validateOldPassword(form.oldPassword),
|
1902
|
+
_validation = _validateOldPassword[0],
|
1903
|
+
_error2 = _validateOldPassword[1];
|
1904
|
+
if (isValid) isValid = _validation;
|
1905
|
+
nextErrors.oldPassword = _error2;
|
1906
|
+
}
|
1907
|
+
var _validateNewPassword = validateNewPassword(form.password1),
|
1908
|
+
pwdValidation = _validateNewPassword[0],
|
1909
|
+
pwdError = _validateNewPassword[1];
|
1910
|
+
if (isValid) isValid = pwdValidation;
|
1911
|
+
nextErrors.password1 = pwdError;
|
1912
|
+
var _validateNewPassword2 = validateNewPassword(form.password2),
|
1913
|
+
pwd2Validation = _validateNewPassword2[0],
|
1914
|
+
pwd2Error = _validateNewPassword2[1];
|
1915
|
+
var _validatePasswordsMat = validatePasswordsMatch(form.password1, form.password2),
|
1916
|
+
matchValidation = _validatePasswordsMat[0],
|
1917
|
+
matchError = _validatePasswordsMat[1];
|
1918
|
+
if (isValid) isValid = matchValidation && pwd2Validation;
|
1919
|
+
nextErrors.password2 = matchError || pwd2Error;
|
1920
|
+
return [isValid, nextErrors];
|
1846
1921
|
}
|
1847
1922
|
function changeField(id, value) {
|
1848
1923
|
var _Object$assign;
|
1849
1924
|
var next = Object.assign({}, form, (_Object$assign = {}, _Object$assign[id] = value, _Object$assign));
|
1925
|
+
var _validate = validate(next),
|
1926
|
+
isValid = _validate[0],
|
1927
|
+
errors = _validate[1];
|
1928
|
+
setIsValid(isValid);
|
1929
|
+
setErrors(errors);
|
1850
1930
|
setForm(next);
|
1851
1931
|
}
|
1852
1932
|
function ok() {
|
@@ -1854,30 +1934,34 @@
|
|
1854
1934
|
onOK(form);
|
1855
1935
|
}
|
1856
1936
|
}
|
1857
|
-
|
1858
|
-
|
1859
|
-
|
1860
|
-
var
|
1861
|
-
var
|
1862
|
-
var
|
1863
|
-
var
|
1864
|
-
var
|
1937
|
+
var userLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "User");
|
1938
|
+
var passwordLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "New Password");
|
1939
|
+
var password2Label = /*#__PURE__*/React__default["default"].createElement(Text, null, "Confirm New Password");
|
1940
|
+
var okLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "OK");
|
1941
|
+
var userStyle = errors.user ? "error" : "";
|
1942
|
+
var oldPasswordStyle = errors.oldPassword ? "error" : "";
|
1943
|
+
var password1Style = errors.password1 ? "error" : "";
|
1944
|
+
var password2Style = errors.password2 ? "error" : "";
|
1865
1945
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
1866
1946
|
className: "reset-password-box"
|
1867
|
-
}, /*#__PURE__*/React__default["default"].createElement("header", null,
|
1868
|
-
src: logo
|
1869
|
-
}) : null, title ? /*#__PURE__*/React__default["default"].createElement("div", {
|
1947
|
+
}, /*#__PURE__*/React__default["default"].createElement("header", null, title ? /*#__PURE__*/React__default["default"].createElement("div", {
|
1870
1948
|
className: "title"
|
1871
|
-
}, /*#__PURE__*/React__default["default"].createElement(Text, null, title)) : null
|
1949
|
+
}, /*#__PURE__*/React__default["default"].createElement(Text, null, title)) : null), /*#__PURE__*/React__default["default"].createElement("main", {
|
1950
|
+
className: "reset-password-form"
|
1951
|
+
}, userRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
|
1872
1952
|
id: "user",
|
1953
|
+
className: userStyle,
|
1873
1954
|
outlined: true,
|
1874
1955
|
icon: "person",
|
1875
1956
|
label: userLabel,
|
1876
1957
|
lapse: 100,
|
1877
1958
|
onChange: changeField,
|
1878
1959
|
onEnter: ok
|
1879
|
-
}) : null,
|
1960
|
+
}) : null, userRequired ? errors.user ? /*#__PURE__*/React__default["default"].createElement("div", {
|
1961
|
+
className: "error-message"
|
1962
|
+
}, errors.user) : null : null, oldPwdRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
|
1880
1963
|
id: "oldPassword",
|
1964
|
+
className: oldPasswordStyle,
|
1881
1965
|
outlined: true,
|
1882
1966
|
icon: "lock",
|
1883
1967
|
type: "password",
|
@@ -1885,8 +1969,11 @@
|
|
1885
1969
|
lapse: 100,
|
1886
1970
|
onChange: changeField,
|
1887
1971
|
onEnter: ok
|
1888
|
-
}) : null, /*#__PURE__*/React__default["default"].createElement(
|
1972
|
+
}) : null, oldPwdRequired ? errors.oldPassword ? /*#__PURE__*/React__default["default"].createElement("div", {
|
1973
|
+
className: "error-message"
|
1974
|
+
}, errors.oldPassword) : null : null, /*#__PURE__*/React__default["default"].createElement(TextField, {
|
1889
1975
|
id: "password1",
|
1976
|
+
className: password1Style,
|
1890
1977
|
outlined: true,
|
1891
1978
|
icon: "lock",
|
1892
1979
|
type: "password",
|
@@ -1894,8 +1981,11 @@
|
|
1894
1981
|
lapse: 100,
|
1895
1982
|
onChange: changeField,
|
1896
1983
|
onEnter: ok
|
1897
|
-
}), /*#__PURE__*/React__default["default"].createElement(
|
1984
|
+
}), errors.password1 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
1985
|
+
className: "error-message"
|
1986
|
+
}, errors.password1) : null, children, /*#__PURE__*/React__default["default"].createElement(TextField, {
|
1898
1987
|
id: "password2",
|
1988
|
+
className: password2Style,
|
1899
1989
|
outlined: true,
|
1900
1990
|
icon: "lock",
|
1901
1991
|
type: "password",
|
@@ -1903,12 +1993,9 @@
|
|
1903
1993
|
lapse: 100,
|
1904
1994
|
onChange: changeField,
|
1905
1995
|
onEnter: ok
|
1906
|
-
}),
|
1907
|
-
className: "error"
|
1908
|
-
},
|
1909
|
-
label: cancelLabel,
|
1910
|
-
action: close
|
1911
|
-
}), /*#__PURE__*/React__default["default"].createElement(Button, {
|
1996
|
+
}), errors.password2 ? /*#__PURE__*/React__default["default"].createElement("div", {
|
1997
|
+
className: "error-message"
|
1998
|
+
}, errors.password2) : null), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Button, {
|
1912
1999
|
label: okLabel,
|
1913
2000
|
raised: true,
|
1914
2001
|
disabled: !isValid,
|