ywana-core8 0.1.15 → 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,44 +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
- setIsValid(validate());
1838
- }, [form.password1, form.password2, form.oldPassword]);
1839
- function validate() {
1840
- var hasRequiredUser = userRequired ? form.user && form.user.length > 0 : true;
1841
- var hasRequiredOldPwd = oldPwdRequired ? form.oldPassword && form.oldPassword.length > 0 : true;
1842
- var hasPassword1 = form.password1 && form.password1.length > 0;
1843
- 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),
1844
1880
  isValid = _ref2[0],
1845
1881
  error = _ref2[1];
1846
- setError(error);
1847
- var areEqual = form.password1 === form.password2;
1848
- if (isValid && !areEqual) setError("Las contraseñas no coinciden.");
1849
- return hasRequiredUser && hasRequiredOldPwd && areEqual && isValid;
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];
1850
1924
  }
1851
1925
  function changeField(id, value) {
1852
1926
  var _Object$assign;
1853
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);
1854
1933
  setForm(next);
1855
1934
  }
1856
1935
  function ok() {
@@ -1858,30 +1937,34 @@ var ResetPasswordBox = function ResetPasswordBox(_ref) {
1858
1937
  onOK(form);
1859
1938
  }
1860
1939
  }
1861
- function close() {
1862
- if (onClose) onClose();
1863
- }
1864
- var userLabel = lang === "EN" ? "User" : "Usuario";
1865
- var passwordLabel = lang === "EN" ? "New Password" : "Nueva Clave";
1866
- var password2Label = lang === "EN" ? "Confirm New Password" : "Confirmar Nueva Clave";
1867
- var okLabel = lang === "EN" ? "OK" : "Aceptar";
1868
- 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" : "";
1869
1948
  return /*#__PURE__*/React__default["default"].createElement("div", {
1870
1949
  className: "reset-password-box"
1871
- }, /*#__PURE__*/React__default["default"].createElement("header", null, logo ? /*#__PURE__*/React__default["default"].createElement("img", {
1872
- src: logo
1873
- }) : null, title ? /*#__PURE__*/React__default["default"].createElement("div", {
1950
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, title ? /*#__PURE__*/React__default["default"].createElement("div", {
1874
1951
  className: "title"
1875
- }, /*#__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, {
1876
1955
  id: "user",
1956
+ className: userStyle,
1877
1957
  outlined: true,
1878
1958
  icon: "person",
1879
1959
  label: userLabel,
1880
1960
  lapse: 100,
1881
1961
  onChange: changeField,
1882
1962
  onEnter: ok
1883
- }) : 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, {
1884
1966
  id: "oldPassword",
1967
+ className: oldPasswordStyle,
1885
1968
  outlined: true,
1886
1969
  icon: "lock",
1887
1970
  type: "password",
@@ -1889,8 +1972,11 @@ var ResetPasswordBox = function ResetPasswordBox(_ref) {
1889
1972
  lapse: 100,
1890
1973
  onChange: changeField,
1891
1974
  onEnter: ok
1892
- }) : 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, {
1893
1978
  id: "password1",
1979
+ className: password1Style,
1894
1980
  outlined: true,
1895
1981
  icon: "lock",
1896
1982
  type: "password",
@@ -1898,8 +1984,11 @@ var ResetPasswordBox = function ResetPasswordBox(_ref) {
1898
1984
  lapse: 100,
1899
1985
  onChange: changeField,
1900
1986
  onEnter: ok
1901
- }), /*#__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, {
1902
1990
  id: "password2",
1991
+ className: password2Style,
1903
1992
  outlined: true,
1904
1993
  icon: "lock",
1905
1994
  type: "password",
@@ -1907,12 +1996,9 @@ var ResetPasswordBox = function ResetPasswordBox(_ref) {
1907
1996
  lapse: 100,
1908
1997
  onChange: changeField,
1909
1998
  onEnter: ok
1910
- }), error ? /*#__PURE__*/React__default["default"].createElement("div", {
1911
- className: "error"
1912
- }, error) : null), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Button, {
1913
- label: cancelLabel,
1914
- action: close
1915
- }), /*#__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, {
1916
2002
  label: okLabel,
1917
2003
  raised: true,
1918
2004
  disabled: !isValid,