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 CHANGED
@@ -276,7 +276,8 @@ var Tooltip = function Tooltip(props) {
276
276
  * Icon
277
277
  */
278
278
  var Icon = function Icon(_ref) {
279
- var icon = _ref.icon,
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 = 'La contraseña debe tener entre 15 y 50 caracteres.';
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 = 'La contraseña debe contener al menos una letra (A-Z o a-z).';
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 = 'La contraseña debe contener al menos un número (0-9).';
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 = 'La contraseña debe contener al menos una letra en minúscula (a-z).';
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 = 'La contraseña debe contener al menos una letra en mayúscula (A-Z).';
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 = 'La contraseña debe contener al menos un carácter especial (< > + & ! ? * - _ % . : =).';
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 logo = _ref.logo,
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
- _ref$lang = _ref.lang,
1823
- lang = _ref$lang === void 0 ? "EN" : _ref$lang,
1848
+ validator = _ref.validator,
1824
1849
  children = _ref.children,
1825
- onOK = _ref.onOK,
1826
- onClose = _ref.onClose;
1827
- var _useState = React.useState({}),
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
- error = _useState3[0],
1835
- setError = _useState3[1];
1836
- React.useEffect(function () {
1837
- var _validate = validate(),
1838
- valid = _validate[0],
1839
- error = _validate[1];
1840
- setIsValid(valid);
1841
- setError(error);
1842
- }, [form.password1, form.password2, form.oldPassword]);
1843
- function validate() {
1844
- var hasRequiredUser = userRequired ? form.user && form.user.length > 0 : true;
1845
- var hasRequiredOldPwd = oldPwdRequired ? form.oldPassword && form.oldPassword.length > 0 : true;
1846
- var hasPassword1 = form.password1 && form.password1.length > 0;
1847
- var _ref2 = hasPassword1 ? validatePassword(form.password1) : [false, "La contraseña es requerida."],
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
- var areEqual = form.password1 === form.password2;
1851
- if (isValid && !areEqual) error = "Las contraseñas no coinciden.";
1852
- return [hasRequiredUser && hasRequiredOldPwd && areEqual && isValid, error];
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
- function close() {
1865
- if (onClose) onClose();
1866
- }
1867
- var userLabel = lang === "EN" ? "User" : "Usuario";
1868
- var passwordLabel = lang === "EN" ? "New Password" : "Nueva Clave";
1869
- var password2Label = lang === "EN" ? "Confirm New Password" : "Confirmar Nueva Clave";
1870
- var okLabel = lang === "EN" ? "OK" : "Aceptar";
1871
- var cancelLabel = lang === "EN" ? "Cancel" : "Cancelar";
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, logo ? /*#__PURE__*/React__default["default"].createElement("img", {
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, children), /*#__PURE__*/React__default["default"].createElement("main", null, userRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
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, oldPwdRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
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(TextField, {
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(TextField, {
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
- }), error ? /*#__PURE__*/React__default["default"].createElement("div", {
1914
- className: "error"
1915
- }, error) : null), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Button, {
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,