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.umd.js CHANGED
@@ -269,7 +269,8 @@
269
269
  * Icon
270
270
  */
271
271
  var Icon = function Icon(_ref) {
272
- var icon = _ref.icon,
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 = 'La contraseña debe tener entre 15 y 50 caracteres.';
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 = 'La contraseña debe contener al menos una letra (A-Z o a-z).';
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 = 'La contraseña debe contener al menos un número (0-9).';
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 = 'La contraseña debe contener al menos una letra en minúscula (a-z).';
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 = 'La contraseña debe contener al menos una letra en mayúscula (A-Z).';
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 = 'La contraseña debe contener al menos un carácter especial (< > + & ! ? * - _ % . : =).';
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 logo = _ref.logo,
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
- _ref$lang = _ref.lang,
1816
- lang = _ref$lang === void 0 ? "EN" : _ref$lang,
1841
+ validator = _ref.validator,
1817
1842
  children = _ref.children,
1818
- onOK = _ref.onOK,
1819
- onClose = _ref.onClose;
1820
- var _useState = React.useState({}),
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
- error = _useState3[0],
1828
- setError = _useState3[1];
1829
- React.useEffect(function () {
1830
- var _validate = validate(),
1831
- valid = _validate[0],
1832
- error = _validate[1];
1833
- setIsValid(valid);
1834
- setError(error);
1835
- }, [form.password1, form.password2, form.oldPassword]);
1836
- function validate() {
1837
- var hasRequiredUser = userRequired ? form.user && form.user.length > 0 : true;
1838
- var hasRequiredOldPwd = oldPwdRequired ? form.oldPassword && form.oldPassword.length > 0 : true;
1839
- var hasPassword1 = form.password1 && form.password1.length > 0;
1840
- var _ref2 = hasPassword1 ? validatePassword(form.password1) : [false, "La contraseña es requerida."],
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
- var areEqual = form.password1 === form.password2;
1844
- if (isValid && !areEqual) error = "Las contraseñas no coinciden.";
1845
- return [hasRequiredUser && hasRequiredOldPwd && areEqual && isValid, error];
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
- function close() {
1858
- if (onClose) onClose();
1859
- }
1860
- var userLabel = lang === "EN" ? "User" : "Usuario";
1861
- var passwordLabel = lang === "EN" ? "New Password" : "Nueva Clave";
1862
- var password2Label = lang === "EN" ? "Confirm New Password" : "Confirmar Nueva Clave";
1863
- var okLabel = lang === "EN" ? "OK" : "Aceptar";
1864
- var cancelLabel = lang === "EN" ? "Cancel" : "Cancelar";
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, logo ? /*#__PURE__*/React__default["default"].createElement("img", {
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, children), /*#__PURE__*/React__default["default"].createElement("main", null, userRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
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, oldPwdRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
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(TextField, {
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(TextField, {
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
- }), error ? /*#__PURE__*/React__default["default"].createElement("div", {
1907
- className: "error"
1908
- }, error) : null), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Button, {
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,