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