ywana-core8 0.1.16 → 0.1.17

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);
@@ -1385,6 +1388,20 @@ var TextField = function TextField(props) {
1385
1388
  function clear() {
1386
1389
  if (onChange) onChange(id, "");
1387
1390
  }
1391
+ function toggle() {
1392
+ var input = document.getElementById(id);
1393
+ var icon = document.getElementById(id + "-visibility");
1394
+ if (input) {
1395
+ var _type = input.getAttribute("type");
1396
+ if (_type === "password") {
1397
+ input.setAttribute("type", "text");
1398
+ icon.setHTMLUnsafe("visibility");
1399
+ } else {
1400
+ input.setAttribute("type", "password");
1401
+ icon.setHTMLUnsafe("visibility_off");
1402
+ }
1403
+ }
1404
+ }
1388
1405
  var borderStyle = outlined ? "textfield-outlined" : "textfield";
1389
1406
  var labelStyle = label ? "" : "no-label";
1390
1407
  var labelPositionStyle = labelPosition == 'left' ? "label-left" : "label-top";
@@ -1411,6 +1428,12 @@ var TextField = function TextField(props) {
1411
1428
  clickable: true,
1412
1429
  size: "small",
1413
1430
  action: clear
1431
+ }) : null, type === "password" ? /*#__PURE__*/React__default["default"].createElement(Icon, {
1432
+ id: id + "-visibility",
1433
+ icon: "visibility_off",
1434
+ clickable: true,
1435
+ size: "small",
1436
+ action: toggle
1414
1437
  }) : null, /*#__PURE__*/React__default["default"].createElement("span", {
1415
1438
  className: "bar"
1416
1439
  }), label ? /*#__PURE__*/React__default["default"].createElement("label", null, labelTxt) : null);
@@ -1813,47 +1836,100 @@ function validatePassword(contraseña) {
1813
1836
  * Reset Password
1814
1837
  */
1815
1838
  var ResetPasswordBox = function ResetPasswordBox(_ref) {
1816
- var logo = _ref.logo,
1817
- title = _ref.title,
1839
+ var title = _ref.title,
1818
1840
  _ref$userRequired = _ref.userRequired,
1819
1841
  userRequired = _ref$userRequired === void 0 ? true : _ref$userRequired,
1820
1842
  _ref$oldPwdRequired = _ref.oldPwdRequired,
1821
1843
  oldPwdRequired = _ref$oldPwdRequired === void 0 ? false : _ref$oldPwdRequired,
1822
- _ref$lang = _ref.lang,
1823
- lang = _ref$lang === void 0 ? "EN" : _ref$lang,
1844
+ validator = _ref.validator,
1824
1845
  children = _ref.children,
1825
- onOK = _ref.onOK,
1826
- onClose = _ref.onClose;
1827
- var _useState = React.useState({}),
1846
+ onOK = _ref.onOK;
1847
+ var _useState = React.useState({
1848
+ user: "",
1849
+ oldPassword: "",
1850
+ password1: "",
1851
+ password2: ""
1852
+ }),
1828
1853
  form = _useState[0],
1829
1854
  setForm = _useState[1];
1830
1855
  var _useState2 = React.useState(false),
1831
1856
  isValid = _useState2[0],
1832
1857
  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."],
1858
+ var _useState3 = React.useState({}),
1859
+ errors = _useState3[0],
1860
+ setErrors = _useState3[1];
1861
+ function validateUser(user) {
1862
+ var error = "";
1863
+ var isValid = user && user.length > 0;
1864
+ error = /*#__PURE__*/React__default["default"].createElement(Text, null, "User is required.");
1865
+ return [isValid, error];
1866
+ }
1867
+ function validateOldPassword(oldPassword) {
1868
+ var error = "";
1869
+ var isValid = oldPassword && oldPassword.length > 0;
1870
+ error = /*#__PURE__*/React__default["default"].createElement(Text, null, "Old password is required.");
1871
+ return [isValid, error];
1872
+ }
1873
+ function validateNewPassword(password) {
1874
+ var hasPassword = password && password.length > 0;
1875
+ if (!hasPassword) {
1876
+ var _error = /*#__PURE__*/React__default["default"].createElement(Text, null, "Password is required");
1877
+ return [false, _error];
1878
+ }
1879
+ var _ref2 = validator && typeof validator === 'function' ? validator(password) : validatePassword(password),
1848
1880
  isValid = _ref2[0],
1849
1881
  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];
1882
+ if (!isValid) {
1883
+ return [false, error];
1884
+ }
1885
+ return [true, ""];
1886
+ }
1887
+ function validatePasswordsMatch(password1, password2) {
1888
+ var error = "";
1889
+ var isValid = password1 === password2;
1890
+ error = /*#__PURE__*/React__default["default"].createElement(Text, null, "Passwords do not match.");
1891
+ return [isValid, error];
1892
+ }
1893
+ function validate(form) {
1894
+ var isValid = true;
1895
+ var nextErrors = Object.assign({}, errors);
1896
+ if (userRequired) {
1897
+ var _validateUser = validateUser(form.user),
1898
+ validation = _validateUser[0],
1899
+ error = _validateUser[1];
1900
+ if (isValid) isValid = validation;
1901
+ nextErrors.user = error;
1902
+ }
1903
+ if (oldPwdRequired) {
1904
+ var _validateOldPassword = validateOldPassword(form.oldPassword),
1905
+ _validation = _validateOldPassword[0],
1906
+ _error2 = _validateOldPassword[1];
1907
+ if (isValid) isValid = _validation;
1908
+ nextErrors.oldPassword = _error2;
1909
+ }
1910
+ var _validateNewPassword = validateNewPassword(form.password1),
1911
+ pwdValidation = _validateNewPassword[0],
1912
+ pwdError = _validateNewPassword[1];
1913
+ if (isValid) isValid = pwdValidation;
1914
+ nextErrors.password1 = pwdError;
1915
+ var _validateNewPassword2 = validateNewPassword(form.password2),
1916
+ pwd2Validation = _validateNewPassword2[0],
1917
+ pwd2Error = _validateNewPassword2[1];
1918
+ var _validatePasswordsMat = validatePasswordsMatch(form.password1, form.password2),
1919
+ matchValidation = _validatePasswordsMat[0],
1920
+ matchError = _validatePasswordsMat[1];
1921
+ if (isValid) isValid = matchValidation && pwd2Validation;
1922
+ nextErrors.password2 = matchError || pwd2Error;
1923
+ return [isValid, nextErrors];
1853
1924
  }
1854
1925
  function changeField(id, value) {
1855
1926
  var _Object$assign;
1856
1927
  var next = Object.assign({}, form, (_Object$assign = {}, _Object$assign[id] = value, _Object$assign));
1928
+ var _validate = validate(next),
1929
+ isValid = _validate[0],
1930
+ errors = _validate[1];
1931
+ setIsValid(isValid);
1932
+ setErrors(errors);
1857
1933
  setForm(next);
1858
1934
  }
1859
1935
  function ok() {
@@ -1861,30 +1937,34 @@ var ResetPasswordBox = function ResetPasswordBox(_ref) {
1861
1937
  onOK(form);
1862
1938
  }
1863
1939
  }
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";
1940
+ var userLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "User");
1941
+ var passwordLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "New Password");
1942
+ var password2Label = /*#__PURE__*/React__default["default"].createElement(Text, null, "Confirm New Password");
1943
+ var okLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "OK");
1944
+ var userStyle = errors.user ? "error" : "";
1945
+ var oldPasswordStyle = errors.oldPassword ? "error" : "";
1946
+ var password1Style = errors.password1 ? "error" : "";
1947
+ var password2Style = errors.password2 ? "error" : "";
1872
1948
  return /*#__PURE__*/React__default["default"].createElement("div", {
1873
1949
  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", {
1950
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, title ? /*#__PURE__*/React__default["default"].createElement("div", {
1877
1951
  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, {
1952
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, title)) : null), /*#__PURE__*/React__default["default"].createElement("main", {
1953
+ className: "reset-password-form"
1954
+ }, userRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
1879
1955
  id: "user",
1956
+ className: userStyle,
1880
1957
  outlined: true,
1881
1958
  icon: "person",
1882
1959
  label: userLabel,
1883
1960
  lapse: 100,
1884
1961
  onChange: changeField,
1885
1962
  onEnter: ok
1886
- }) : null, oldPwdRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
1963
+ }) : null, userRequired ? errors.user ? /*#__PURE__*/React__default["default"].createElement("div", {
1964
+ className: "error-message"
1965
+ }, errors.user) : null : null, oldPwdRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
1887
1966
  id: "oldPassword",
1967
+ className: oldPasswordStyle,
1888
1968
  outlined: true,
1889
1969
  icon: "lock",
1890
1970
  type: "password",
@@ -1892,8 +1972,11 @@ var ResetPasswordBox = function ResetPasswordBox(_ref) {
1892
1972
  lapse: 100,
1893
1973
  onChange: changeField,
1894
1974
  onEnter: ok
1895
- }) : null, /*#__PURE__*/React__default["default"].createElement(TextField, {
1975
+ }) : null, oldPwdRequired ? errors.oldPassword ? /*#__PURE__*/React__default["default"].createElement("div", {
1976
+ className: "error-message"
1977
+ }, errors.oldPassword) : null : null, /*#__PURE__*/React__default["default"].createElement(TextField, {
1896
1978
  id: "password1",
1979
+ className: password1Style,
1897
1980
  outlined: true,
1898
1981
  icon: "lock",
1899
1982
  type: "password",
@@ -1901,8 +1984,11 @@ var ResetPasswordBox = function ResetPasswordBox(_ref) {
1901
1984
  lapse: 100,
1902
1985
  onChange: changeField,
1903
1986
  onEnter: ok
1904
- }), /*#__PURE__*/React__default["default"].createElement(TextField, {
1987
+ }), errors.password1 ? /*#__PURE__*/React__default["default"].createElement("div", {
1988
+ className: "error-message"
1989
+ }, errors.password1) : null, children, /*#__PURE__*/React__default["default"].createElement(TextField, {
1905
1990
  id: "password2",
1991
+ className: password2Style,
1906
1992
  outlined: true,
1907
1993
  icon: "lock",
1908
1994
  type: "password",
@@ -1910,12 +1996,9 @@ var ResetPasswordBox = function ResetPasswordBox(_ref) {
1910
1996
  lapse: 100,
1911
1997
  onChange: changeField,
1912
1998
  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, {
1999
+ }), errors.password2 ? /*#__PURE__*/React__default["default"].createElement("div", {
2000
+ className: "error-message"
2001
+ }, errors.password2) : null), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Button, {
1919
2002
  label: okLabel,
1920
2003
  raised: true,
1921
2004
  disabled: !isValid,