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.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,47 +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
- 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."],
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),
1841
1873
  isValid = _ref2[0],
1842
1874
  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];
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];
1846
1917
  }
1847
1918
  function changeField(id, value) {
1848
1919
  var _Object$assign;
1849
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);
1850
1926
  setForm(next);
1851
1927
  }
1852
1928
  function ok() {
@@ -1854,30 +1930,34 @@
1854
1930
  onOK(form);
1855
1931
  }
1856
1932
  }
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";
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" : "";
1865
1941
  return /*#__PURE__*/React__default["default"].createElement("div", {
1866
1942
  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", {
1943
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, title ? /*#__PURE__*/React__default["default"].createElement("div", {
1870
1944
  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, {
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, {
1872
1948
  id: "user",
1949
+ className: userStyle,
1873
1950
  outlined: true,
1874
1951
  icon: "person",
1875
1952
  label: userLabel,
1876
1953
  lapse: 100,
1877
1954
  onChange: changeField,
1878
1955
  onEnter: ok
1879
- }) : 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, {
1880
1959
  id: "oldPassword",
1960
+ className: oldPasswordStyle,
1881
1961
  outlined: true,
1882
1962
  icon: "lock",
1883
1963
  type: "password",
@@ -1885,8 +1965,11 @@
1885
1965
  lapse: 100,
1886
1966
  onChange: changeField,
1887
1967
  onEnter: ok
1888
- }) : 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, {
1889
1971
  id: "password1",
1972
+ className: password1Style,
1890
1973
  outlined: true,
1891
1974
  icon: "lock",
1892
1975
  type: "password",
@@ -1894,8 +1977,11 @@
1894
1977
  lapse: 100,
1895
1978
  onChange: changeField,
1896
1979
  onEnter: ok
1897
- }), /*#__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, {
1898
1983
  id: "password2",
1984
+ className: password2Style,
1899
1985
  outlined: true,
1900
1986
  icon: "lock",
1901
1987
  type: "password",
@@ -1903,12 +1989,9 @@
1903
1989
  lapse: 100,
1904
1990
  onChange: changeField,
1905
1991
  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, {
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, {
1912
1995
  label: okLabel,
1913
1996
  raised: true,
1914
1997
  disabled: !isValid,