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