ywana-core8 0.1.28 → 0.1.30

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
@@ -42,7 +42,7 @@
42
42
  return false;
43
43
  }
44
44
 
45
- function _catch$6(body, recover) {
45
+ function _catch$8(body, recover) {
46
46
  try {
47
47
  var result = body();
48
48
  } catch (e) {
@@ -70,7 +70,7 @@
70
70
  body: body
71
71
  };
72
72
  if (headers) request.headers = request.headers;
73
- return Promise.resolve(_catch$6(function () {
73
+ return Promise.resolve(_catch$8(function () {
74
74
  return Promise.resolve(fetch(URL, request)).then(function (response) {
75
75
  var _exit;
76
76
  function _temp2(_result) {
@@ -142,8 +142,7 @@
142
142
  * Session store
143
143
  * implements securityCtx methods
144
144
  */
145
-
146
- var SESSION_NAME = process.env.REACT_APP_SESSION || window && window.SESSION ? window.SESSION : 'YWANA-CORE6-SESSION';
145
+ var SESSION_NAME = typeof process !== 'undefined' ? process.env.REACT_APP_SESSION : window && window.SESSION ? window.SESSION : 'YWANA-CORE8-SESSION';
147
146
  var Session = {
148
147
  token: function token() {
149
148
  var item = sessionStorage.getItem(SESSION_NAME);
@@ -205,7 +204,7 @@
205
204
  /**
206
205
  * Text
207
206
  */
208
- var Text = function Text(_ref) {
207
+ var Text$1 = function Text(_ref) {
209
208
  var _ref$format = _ref.format,
210
209
  format = _ref$format === void 0 ? TEXTFORMATS.HTML : _ref$format,
211
210
  children = _ref.children,
@@ -264,7 +263,7 @@
264
263
  }, /*#__PURE__*/React__default["default"].createElement("span", {
265
264
  className: "tooltip-text",
266
265
  style: style
267
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, text)), props.children);
266
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, text)), props.children);
268
267
  };
269
268
 
270
269
  /**
@@ -433,7 +432,7 @@
433
432
  size: "small",
434
433
  clickable: true,
435
434
  action: click
436
- }), /*#__PURE__*/React__default["default"].createElement(Text, null, label));
435
+ }), /*#__PURE__*/React__default["default"].createElement(Text$1, null, label));
437
436
  };
438
437
 
439
438
  /**
@@ -493,8 +492,8 @@
493
492
  var value = event.target.checked;
494
493
  if (onChange) onChange(id, value);
495
494
  }
496
- var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text, null, label);
497
- var placeholderTxt = /*#__PURE__*/React__default["default"].createElement(Text, null, placeholder);
495
+ var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text$1, null, label);
496
+ var placeholderTxt = /*#__PURE__*/React__default["default"].createElement(Text$1, null, placeholder);
498
497
  return value === true ? /*#__PURE__*/React__default["default"].createElement("div", {
499
498
  className: "checkbox",
500
499
  key: id + "1"
@@ -551,7 +550,7 @@
551
550
  }, icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
552
551
  icon: icon,
553
552
  size: "small"
554
- }) : null, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(Text, null, label)), action ? /*#__PURE__*/React__default["default"].createElement("span", {
553
+ }) : null, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(Text$1, null, label)), action ? /*#__PURE__*/React__default["default"].createElement("span", {
555
554
  className: "meta"
556
555
  }, action) : null)) : /*#__PURE__*/React__default["default"].createElement("div", {
557
556
  className: "chip " + className + " " + style,
@@ -559,7 +558,7 @@
559
558
  }, icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
560
559
  icon: icon,
561
560
  size: "small"
562
- }) : null, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(Text, null, label)), action ? /*#__PURE__*/React__default["default"].createElement("span", {
561
+ }) : null, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(Text$1, null, label)), action ? /*#__PURE__*/React__default["default"].createElement("span", {
563
562
  className: "meta"
564
563
  }, action) : null);
565
564
  };
@@ -662,7 +661,7 @@
662
661
  };
663
662
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, title ? /*#__PURE__*/React__default["default"].createElement("header", {
664
663
  className: "form-header"
665
- }, /*#__PURE__*/React__default["default"].createElement(Text, {
664
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
666
665
  use: "headline6"
667
666
  }, title)) : '', /*#__PURE__*/React__default["default"].createElement("form", {
668
667
  className: "form-grid",
@@ -703,7 +702,7 @@
703
702
  var style = props.img ? {
704
703
  backgroundImage: "url(" + props.img + ")"
705
704
  } : {};
706
- var title = /*#__PURE__*/React__default["default"].createElement(Text, null, props.title);
705
+ var title = /*#__PURE__*/React__default["default"].createElement(Text$1, null, props.title);
707
706
  return /*#__PURE__*/React__default["default"].createElement("header", {
708
707
  className: "header " + caption + " " + prominent + " " + dense + " " + theme + " " + props.className,
709
708
  style: style
@@ -767,7 +766,7 @@
767
766
  return /*#__PURE__*/React__default["default"].createElement("div", {
768
767
  className: "list grouped"
769
768
  }, groups.map(function (group) {
770
- var groupTitle = groupRenderer ? groupRenderer(group) : /*#__PURE__*/React__default["default"].createElement(Text, null, group.name);
769
+ var groupTitle = groupRenderer ? groupRenderer(group) : /*#__PURE__*/React__default["default"].createElement(Text$1, null, group.name);
771
770
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
772
771
  key: group.name
773
772
  }, /*#__PURE__*/React__default["default"].createElement("header", {
@@ -812,9 +811,9 @@
812
811
  tooltip: iconTooltip
813
812
  }) : null, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement("div", {
814
813
  className: "primary-line"
815
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, line1)), line2 ? /*#__PURE__*/React__default["default"].createElement("div", {
814
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, line1)), line2 ? /*#__PURE__*/React__default["default"].createElement("div", {
816
815
  className: "secondary-line"
817
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, line2)) : null), meta ? /*#__PURE__*/React__default["default"].createElement("div", {
816
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, line2)) : null), meta ? /*#__PURE__*/React__default["default"].createElement("div", {
818
817
  className: "meta"
819
818
  }, meta) : null);
820
819
  };
@@ -886,7 +885,7 @@
886
885
  }
887
886
  }
888
887
  var style = disabled ? "disabled" : "";
889
- var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text, {
888
+ var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text$1, {
890
889
  format: TEXTFORMATS.STRING
891
890
  }, label) : null;
892
891
  return /*#__PURE__*/React__default["default"].createElement("li", {
@@ -971,7 +970,7 @@
971
970
  className: "property property-" + id + " " + className
972
971
  }, /*#__PURE__*/React__default["default"].createElement("div", {
973
972
  className: "property-name"
974
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, name || label)), /*#__PURE__*/React__default["default"].createElement("div", {
973
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, name || label)), /*#__PURE__*/React__default["default"].createElement("div", {
975
974
  className: "property-value"
976
975
  }, editable ? /*#__PURE__*/React__default["default"].createElement("input", {
977
976
  type: "text",
@@ -999,7 +998,7 @@
999
998
  var value = event.target.value;
1000
999
  if (onChange) onChange(id, value);
1001
1000
  }
1002
- var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text, null, label);
1001
+ var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text$1, null, label);
1003
1002
  return /*#__PURE__*/React__default["default"].createElement("div", {
1004
1003
  className: "radio"
1005
1004
  }, /*#__PURE__*/React__default["default"].createElement("input", {
@@ -1098,7 +1097,7 @@
1098
1097
  if (onSelect) onSelect(id);
1099
1098
  }
1100
1099
  var style = selected ? "selected" : "";
1101
- var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text, {
1100
+ var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text$1, {
1102
1101
  format: TEXTFORMATS.STRING
1103
1102
  }, label) : null;
1104
1103
  return /*#__PURE__*/React__default["default"].createElement("div", {
@@ -1403,7 +1402,7 @@
1403
1402
  var labelStyle = label ? "" : "no-label";
1404
1403
  var labelPositionStyle = labelPosition == 'left' ? "label-left" : "label-top";
1405
1404
  var style = labelStyle + " " + labelPositionStyle + " " + borderStyle + " textfield-" + type;
1406
- var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text, null, label);
1405
+ var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text$1, null, label);
1407
1406
  var placeholderTxt = site.translate ? site.translate(placeholder) : placeholder;
1408
1407
  return /*#__PURE__*/React__default["default"].createElement("div", {
1409
1408
  className: style + " " + id + " " + className,
@@ -1481,7 +1480,7 @@
1481
1480
  }
1482
1481
  var labelStyle = label ? "" : "no-label";
1483
1482
  var style = "textarea " + labelStyle + " textarea-" + type;
1484
- var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text, null, label);
1483
+ var labelTxt = /*#__PURE__*/React__default["default"].createElement(Text$1, null, label);
1485
1484
  var placeholderTxt = site.translate ? site.translate(placeholder) : placeholder;
1486
1485
  return /*#__PURE__*/React__default["default"].createElement("div", {
1487
1486
  className: "" + style,
@@ -1598,7 +1597,7 @@
1598
1597
  }, option.icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
1599
1598
  icon: option.icon,
1600
1599
  size: "small"
1601
- }) : '', /*#__PURE__*/React__default["default"].createElement(Text, null, option.label));
1600
+ }) : '', /*#__PURE__*/React__default["default"].createElement(Text$1, null, option.label));
1602
1601
  });
1603
1602
  return /*#__PURE__*/React__default["default"].createElement("menu", {
1604
1603
  className: position
@@ -1652,7 +1651,7 @@
1652
1651
  var next = Object.assign({}, form, (_Object$assign = {}, _Object$assign[id] = value, _Object$assign));
1653
1652
  setForm(next);
1654
1653
  }
1655
- var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text, null, label) : null;
1654
+ var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text$1, null, label) : null;
1656
1655
  return /*#__PURE__*/React__default["default"].createElement("div", {
1657
1656
  className: "date-range"
1658
1657
  }, label ? /*#__PURE__*/React__default["default"].createElement("label", null, labelTxt) : null, /*#__PURE__*/React__default["default"].createElement(TextField, {
@@ -1680,7 +1679,7 @@
1680
1679
  function toggle() {
1681
1680
  setShow(!show);
1682
1681
  }
1683
- var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text, null, label) : null;
1682
+ var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text$1, null, label) : null;
1684
1683
  return /*#__PURE__*/React__default["default"].createElement("div", {
1685
1684
  className: "password-field"
1686
1685
  }, /*#__PURE__*/React__default["default"].createElement(TextField, {
@@ -1701,9 +1700,7 @@
1701
1700
  * Login Box
1702
1701
  */
1703
1702
  var LoginBox = function LoginBox(_ref) {
1704
- var logo = _ref.logo,
1705
- title = _ref.title,
1706
- _ref$userLabel = _ref.userLabel,
1703
+ var _ref$userLabel = _ref.userLabel,
1707
1704
  userLabel = _ref$userLabel === void 0 ? "User" : _ref$userLabel,
1708
1705
  _ref$userValue = _ref.userValue,
1709
1706
  userValue = _ref$userValue === void 0 ? "" : _ref$userValue,
@@ -1714,11 +1711,9 @@
1714
1711
  _ref$loginLabel = _ref.loginLabel,
1715
1712
  loginLabel = _ref$loginLabel === void 0 ? "Log In" : _ref$loginLabel,
1716
1713
  onOK = _ref.onOK,
1717
- _ref$forgotLabel = _ref.forgotLabel,
1718
- forgotLabel = _ref$forgotLabel === void 0 ? "Forgot Password?" : _ref$forgotLabel,
1719
- onForgot = _ref.onForgot,
1720
1714
  message = _ref.message,
1721
- loading = _ref.loading;
1715
+ loading = _ref.loading,
1716
+ children = _ref.children;
1722
1717
  var _useState = React.useState(userValue),
1723
1718
  user = _useState[0],
1724
1719
  setUser = _useState[1];
@@ -1731,14 +1726,8 @@
1731
1726
  function ok(forcedPwd) {
1732
1727
  if (onOK && canOK()) onOK(user, forcedPwd || password);
1733
1728
  }
1734
- function canForgot() {
1735
- return user && user.length > 0;
1736
- }
1737
- function forgot() {
1738
- if (onForgot) onForgot(user);
1739
- }
1740
1729
  function tx(txt) {
1741
- return /*#__PURE__*/React__default["default"].createElement(Text, null, txt);
1730
+ return /*#__PURE__*/React__default["default"].createElement(Text$1, null, txt);
1742
1731
  }
1743
1732
  function changeUser(id, value) {
1744
1733
  setUser(value);
@@ -1748,11 +1737,7 @@
1748
1737
  }
1749
1738
  return /*#__PURE__*/React__default["default"].createElement("div", {
1750
1739
  className: "login-box"
1751
- }, /*#__PURE__*/React__default["default"].createElement("header", null, logo ? /*#__PURE__*/React__default["default"].createElement("img", {
1752
- src: logo
1753
- }) : '', /*#__PURE__*/React__default["default"].createElement("div", {
1754
- className: "title"
1755
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, title))), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(TextField, {
1740
+ }, /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(TextField, {
1756
1741
  label: tx(userLabel),
1757
1742
  value: user,
1758
1743
  onChange: changeUser,
@@ -1772,20 +1757,15 @@
1772
1757
  className: "load-box"
1773
1758
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
1774
1759
  icon: "refresh"
1775
- })) : /*#__PURE__*/React__default["default"].createElement(Button, {
1760
+ })) : null, !loading ? /*#__PURE__*/React__default["default"].createElement(Button, {
1776
1761
  label: tx(loginLabel),
1777
1762
  action: ok,
1778
1763
  disabled: !canOK(),
1779
1764
  raised: true,
1780
1765
  className: "login-button"
1781
- }), onForgot ? /*#__PURE__*/React__default["default"].createElement(Button, {
1782
- label: tx(forgotLabel),
1783
- action: forgot,
1784
- disabled: !canForgot(),
1785
- className: "forgot-button"
1786
- }) : null, message ? /*#__PURE__*/React__default["default"].createElement("div", {
1766
+ }) : null, children, message ? /*#__PURE__*/React__default["default"].createElement("div", {
1787
1767
  className: "message"
1788
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, message)) : null));
1768
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, message)) : null));
1789
1769
  };
1790
1770
 
1791
1771
  function validatePassword(contraseña) {
@@ -1837,8 +1817,7 @@
1837
1817
  * Reset Password
1838
1818
  */
1839
1819
  var ResetPasswordBox = function ResetPasswordBox(_ref) {
1840
- var title = _ref.title,
1841
- _ref$userRequired = _ref.userRequired,
1820
+ var _ref$userRequired = _ref.userRequired,
1842
1821
  userRequired = _ref$userRequired === void 0 ? true : _ref$userRequired,
1843
1822
  _ref$oldPwdRequired = _ref.oldPwdRequired,
1844
1823
  oldPwdRequired = _ref$oldPwdRequired === void 0 ? false : _ref$oldPwdRequired,
@@ -1938,20 +1917,17 @@
1938
1917
  onOK(form);
1939
1918
  }
1940
1919
  }
1941
- var userLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "User");
1942
- var passwordLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "New Password");
1943
- var password2Label = /*#__PURE__*/React__default["default"].createElement(Text, null, "Confirm New Password");
1944
- var okLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "OK");
1920
+ var userLabel = /*#__PURE__*/React__default["default"].createElement(Text$1, null, "User");
1921
+ var passwordLabel = /*#__PURE__*/React__default["default"].createElement(Text$1, null, "New Password");
1922
+ var password2Label = /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Confirm New Password");
1923
+ var okLabel = /*#__PURE__*/React__default["default"].createElement(Text$1, null, "OK");
1945
1924
  var userStyle = errors.user ? "error" : "";
1946
1925
  var oldPasswordStyle = errors.oldPassword ? "error" : "";
1947
1926
  var password1Style = errors.password1 ? "error" : "";
1948
1927
  var password2Style = errors.password2 ? "error" : "";
1949
- console.log("ResetPasswordBox", errors);
1950
1928
  return /*#__PURE__*/React__default["default"].createElement("div", {
1951
1929
  className: "reset-password-box"
1952
- }, /*#__PURE__*/React__default["default"].createElement("header", null, title ? /*#__PURE__*/React__default["default"].createElement("div", {
1953
- className: "title"
1954
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, title)) : null), /*#__PURE__*/React__default["default"].createElement("main", {
1930
+ }, /*#__PURE__*/React__default["default"].createElement("main", {
1955
1931
  className: "reset-password-form"
1956
1932
  }, userRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
1957
1933
  id: "user",
@@ -1964,19 +1940,19 @@
1964
1940
  onEnter: ok
1965
1941
  }) : null, userRequired ? errors.user ? /*#__PURE__*/React__default["default"].createElement("div", {
1966
1942
  className: "error-message"
1967
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, errors.user)) : null : null, oldPwdRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
1943
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, errors.user)) : null : null, oldPwdRequired ? /*#__PURE__*/React__default["default"].createElement(TextField, {
1968
1944
  id: "oldPassword",
1969
1945
  className: oldPasswordStyle,
1970
1946
  outlined: true,
1971
1947
  icon: "lock",
1972
1948
  type: "password",
1973
- label: "Old Password",
1949
+ label: "Current Password",
1974
1950
  lapse: 100,
1975
1951
  onChange: changeField,
1976
1952
  onEnter: ok
1977
1953
  }) : null, oldPwdRequired ? errors.oldPassword ? /*#__PURE__*/React__default["default"].createElement("div", {
1978
1954
  className: "error-message"
1979
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, errors.oldPassword)) : null : null, /*#__PURE__*/React__default["default"].createElement(TextField, {
1955
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, errors.oldPassword)) : null : null, /*#__PURE__*/React__default["default"].createElement(TextField, {
1980
1956
  id: "password1",
1981
1957
  className: password1Style,
1982
1958
  outlined: true,
@@ -1988,7 +1964,7 @@
1988
1964
  onEnter: ok
1989
1965
  }), errors.password1 ? /*#__PURE__*/React__default["default"].createElement("div", {
1990
1966
  className: "error-message"
1991
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, errors.password1)) : null, children, /*#__PURE__*/React__default["default"].createElement(TextField, {
1967
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, errors.password1)) : null, children, /*#__PURE__*/React__default["default"].createElement(TextField, {
1992
1968
  id: "password2",
1993
1969
  className: password2Style,
1994
1970
  outlined: true,
@@ -2000,7 +1976,7 @@
2000
1976
  onEnter: ok
2001
1977
  }), errors.password2 ? /*#__PURE__*/React__default["default"].createElement("div", {
2002
1978
  className: "error-message"
2003
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, errors.password2)) : null), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Button, {
1979
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, errors.password2)) : null), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Button, {
2004
1980
  label: okLabel,
2005
1981
  raised: true,
2006
1982
  disabled: !isValid,
@@ -2008,1763 +1984,2303 @@
2008
1984
  })));
2009
1985
  };
2010
1986
 
2011
- var SCROLL_SENSITIVITY = 0.0005;
2012
- var MAX_ZOOM = 5;
2013
- var MIN_ZOOM = 0.1;
2014
- var ImageViewer = function ImageViewer(_ref) {
2015
- var image = _ref.image;
2016
- var _useState = React.useState({
2017
- x: 0,
2018
- y: 0
2019
- }),
2020
- offset = _useState[0],
2021
- setOffset = _useState[1];
2022
- var _useState2 = React.useState(1),
2023
- zoom = _useState2[0],
2024
- setZoom = _useState2[1];
2025
- var _useState3 = React.useState(false),
2026
- draggind = _useState3[0],
2027
- setDragging = _useState3[1];
2028
- var touch = React.useRef({
2029
- x: 0,
2030
- y: 0
2031
- });
2032
- var canvasRef = React.useRef(null);
2033
- var containerRef = React.useRef(null);
2034
- var observer = React.useRef(null);
2035
- var background = React.useMemo(function () {
2036
- return new Image();
2037
- }, [image]);
2038
- var clamp = function clamp(num, min, max) {
2039
- return Math.min(Math.max(num, min), max);
2040
- };
2041
- var handleWheel = function handleWheel(event) {
2042
- var deltaY = event.deltaY;
2043
- if (!draggind) {
2044
- setZoom(function (zoom) {
2045
- return clamp(zoom + deltaY * SCROLL_SENSITIVITY * -1, MIN_ZOOM, MAX_ZOOM);
2046
- });
2047
- }
2048
- };
2049
- var handleMouseMove = function handleMouseMove(event) {
2050
- if (draggind) {
2051
- var _touch$current = touch.current,
2052
- x = _touch$current.x,
2053
- y = _touch$current.y;
2054
- var clientX = event.clientX,
2055
- clientY = event.clientY;
2056
- setOffset({
2057
- x: offset.x + (x - clientX),
2058
- y: offset.y + (y - clientY)
2059
- });
2060
- touch.current = {
2061
- x: clientX,
2062
- y: clientY
2063
- };
2064
- }
2065
- };
2066
- var handleMouseDown = function handleMouseDown(event) {
2067
- var clientX = event.clientX,
2068
- clientY = event.clientY;
2069
- touch.current = {
2070
- x: clientX,
2071
- y: clientY
2072
- };
2073
- setDragging(true);
2074
- };
2075
- var handleMouseUp = function handleMouseUp() {
2076
- return setDragging(false);
2077
- };
2078
- var draw = function draw() {
2079
- if (canvasRef.current) {
2080
- var _canvasRef$current = canvasRef.current,
2081
- width = _canvasRef$current.width,
2082
- height = _canvasRef$current.height;
2083
- var context = canvasRef.current.getContext("2d");
2084
-
2085
- // Set canvas dimensions
2086
- canvasRef.current.width = width;
2087
- canvasRef.current.height = height;
2088
-
2089
- // Clear canvas and scale it
2090
- context.translate(-offset.x, -offset.y);
2091
- context.scale(zoom, zoom);
2092
- context.clearRect(0, 0, width, height);
2093
-
2094
- // Make sure we're zooming to the center
2095
- var x = (context.canvas.width / zoom - background.width) / 2;
2096
- var y = (context.canvas.height / zoom - background.height) / 2;
2097
-
2098
- // Draw image
2099
- context.drawImage(background, x, y);
2100
- }
2101
- };
2102
- React.useEffect(function () {
2103
- observer.current = new ResizeObserver(function (entries) {
2104
- entries.forEach(function (_ref2) {
2105
- var target = _ref2.target;
2106
- var width = background.width,
2107
- height = background.height;
2108
- // If width of the container is smaller than image, scale image down
2109
- if (target.clientWidth < width) {
2110
- // Calculate scale
2111
- var scale = target.clientWidth / width;
2112
-
2113
- // Redraw image
2114
- canvasRef.current.width = width * scale;
2115
- canvasRef.current.height = height * scale;
2116
- canvasRef.current.getContext("2d").drawImage(background, 0, 0, width * scale, height * scale);
2117
- }
2118
- });
2119
- });
2120
- observer.current.observe(containerRef.current);
2121
- return function () {
2122
- return observer.current.unobserve(containerRef.current);
2123
- };
2124
- }, []);
2125
- React.useEffect(function () {
2126
- background.src = image;
2127
- if (canvasRef.current) {
2128
- background.onload = function () {
2129
- // Get the image dimensions
2130
- var width = background.width,
2131
- height = background.height;
2132
- canvasRef.current.width = width;
2133
- canvasRef.current.height = height;
1987
+ /**
1988
+ * Page Context
1989
+ */
1990
+ var PageContext = React__default["default"].createContext({});
2134
1991
 
2135
- // Set image as background
2136
- canvasRef.current.getContext("2d").drawImage(background, 0, 0);
2137
- };
2138
- }
2139
- }, [background]);
2140
- React.useEffect(function () {
2141
- draw();
2142
- }, [zoom, offset]);
2143
- return /*#__PURE__*/React__default["default"].createElement("div", {
2144
- className: "image-viewer",
2145
- ref: containerRef
2146
- }, /*#__PURE__*/React__default["default"].createElement("canvas", {
2147
- onMouseDown: handleMouseDown,
2148
- onMouseUp: handleMouseUp,
2149
- onWheel: handleWheel,
2150
- onMouseMove: handleMouseMove,
2151
- ref: canvasRef
2152
- }));
1992
+ /**
1993
+ * Page Provider
1994
+ */
1995
+ var PageProvider = function PageProvider(_ref) {
1996
+ var _ref$context = _ref.context,
1997
+ context = _ref$context === void 0 ? {} : _ref$context,
1998
+ children = _ref.children;
1999
+ var _useState = React.useState(context),
2000
+ pageCtx = _useState[0],
2001
+ setPageCtx = _useState[1];
2002
+ return /*#__PURE__*/React__default["default"].createElement(PageContext.Provider, {
2003
+ value: [pageCtx, setPageCtx]
2004
+ }, children);
2153
2005
  };
2154
2006
 
2155
2007
  /**
2156
- * Viewer
2008
+ * Page
2157
2009
  */
2158
- var Viewer = function Viewer(_ref) {
2159
- var title = _ref.title,
2160
- src = _ref.src,
2161
- info = _ref.info,
2162
- _ref$actions = _ref.actions,
2163
- actions = _ref$actions === void 0 ? [] : _ref$actions,
2164
- _ref$tools = _ref.tools,
2165
- tools = _ref$tools === void 0 ? false : _ref$tools,
2166
- onClose = _ref.onClose;
2167
- var _useState = React.useState(false),
2168
- showDetails = _useState[0],
2169
- setShowDetails = _useState[1];
2170
- function toggleDetails() {
2171
- setShowDetails(!showDetails);
2172
- }
2173
- var headerTitle = /*#__PURE__*/React__default["default"].createElement(Text, {
2174
- use: "headline6"
2175
- }, title);
2176
- return /*#__PURE__*/React__default["default"].createElement("div", {
2177
- className: "viewer"
2178
- }, /*#__PURE__*/React__default["default"].createElement(Header, {
2179
- icon: "view",
2180
- title: headerTitle
2181
- }, onClose ? /*#__PURE__*/React__default["default"].createElement(Icon, {
2182
- icon: "close",
2183
- clickable: true,
2184
- action: onClose
2185
- }) : null, showDetails ? '' : /*#__PURE__*/React__default["default"].createElement(Icon, {
2186
- icon: "info",
2187
- clickable: true,
2188
- action: toggleDetails
2189
- }), actions), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement("div", {
2190
- className: "resizer"
2191
- }, /*#__PURE__*/React__default["default"].createElement("picture", null, /*#__PURE__*/React__default["default"].createElement(ImageViewer, {
2192
- image: src
2193
- })))), /*#__PURE__*/React__default["default"].createElement("aside", {
2194
- className: "" + (showDetails ? 'open' : '')
2195
- }, /*#__PURE__*/React__default["default"].createElement(Header, {
2196
- title: "Detalles"
2197
- }, /*#__PURE__*/React__default["default"].createElement(Icon, {
2198
- icon: "close",
2199
- clickable: true,
2200
- action: toggleDetails
2201
- })), /*#__PURE__*/React__default["default"].createElement("main", null, info)), tools ? /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
2202
- clickable: true,
2203
- icon: "zoom_out"
2204
- }), /*#__PURE__*/React__default["default"].createElement(Icon, {
2205
- clickable: true,
2206
- icon: "zoom_out_map"
2207
- }), /*#__PURE__*/React__default["default"].createElement(Icon, {
2208
- clickable: true,
2209
- icon: "zoom_in"
2210
- })) : null);
2010
+ var Page = function Page(props) {
2011
+ var children = props.children,
2012
+ _props$layout = props.layout,
2013
+ layout = _props$layout === void 0 ? "simple" : _props$layout,
2014
+ _props$context = props.context,
2015
+ context = _props$context === void 0 ? {} : _props$context,
2016
+ className = props.className;
2017
+ return /*#__PURE__*/React__default["default"].createElement(PageProvider, {
2018
+ context: context
2019
+ }, /*#__PURE__*/React__default["default"].createElement("article", {
2020
+ className: "page6 " + layout + " " + className
2021
+ }, children));
2211
2022
  };
2212
2023
 
2213
2024
  /**
2214
- * Kanban
2025
+ * Site Provider
2215
2026
  */
2216
- var Kanban = function Kanban(_ref) {
2217
- var children = _ref.children;
2218
- var hasSwimlanes = React.useMemo(function () {
2219
- var found = React__default["default"].Children.map(children, function (child) {
2220
- if (child.type.name === KanbanSwimlane.name) {
2221
- return child;
2222
- }
2223
- });
2224
- return found.length > 0;
2225
- });
2226
- var style = hasSwimlanes ? "with-swimlanes" : "";
2227
- return /*#__PURE__*/React__default["default"].createElement("div", {
2228
- className: "kanban " + style
2229
- }, children);
2230
- };
2231
- var KanbanHeader = function KanbanHeader(props) {
2232
- var columns = props.columns;
2233
- return /*#__PURE__*/React__default["default"].createElement("div", {
2234
- className: "kanban-header"
2235
- }, columns.map(function (column, index) {
2236
- var icon = column.icon,
2237
- title = column.title,
2238
- subtitle = column.subtitle,
2239
- badge = column.badge;
2240
- return /*#__PURE__*/React__default["default"].createElement("div", {
2241
- className: "kanban-column",
2242
- key: index
2243
- }, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
2244
- icon: icon
2245
- }), /*#__PURE__*/React__default["default"].createElement("div", {
2246
- className: "title"
2247
- }, /*#__PURE__*/React__default["default"].createElement(Text, {
2248
- use: "headline6"
2249
- }, title), /*#__PURE__*/React__default["default"].createElement(Text, {
2250
- className: "secondary-text",
2251
- use: "body2"
2252
- }, subtitle)), /*#__PURE__*/React__default["default"].createElement("div", {
2253
- className: "badge"
2254
- }, badge)));
2255
- }));
2256
- };
2257
- var KanbanSwimlane = function KanbanSwimlane(_ref2) {
2258
- var icon = _ref2.icon,
2259
- title = _ref2.title,
2260
- subtitle = _ref2.subtitle,
2261
- badge = _ref2.badge,
2262
- children = _ref2.children;
2263
- var _useState = React.useState(true),
2264
- unfold = _useState[0],
2265
- setUnfold = _useState[1];
2266
-
2267
- // cahnge all children headless prop to true
2268
- // if there is only one child
2269
- if (children.length === 1) {
2270
- children = React__default["default"].cloneElement(children, {
2271
- headless: true
2272
- });
2273
- } else {
2274
- children = React__default["default"].Children.map(children, function (child) {
2275
- return React__default["default"].cloneElement(child, {
2276
- headless: true
2027
+ var SiteProvider = function SiteProvider(_ref) {
2028
+ var children = _ref.children,
2029
+ siteLang = _ref.siteLang,
2030
+ siteDictionary = _ref.siteDictionary;
2031
+ var _useState = React.useState(siteLang),
2032
+ lang = _useState[0],
2033
+ setLang = _useState[1];
2034
+ var _useState2 = React.useState(siteDictionary),
2035
+ dictionary = _useState2[0],
2036
+ setDictionary = _useState2[1];
2037
+ var _useState3 = React.useState('max'),
2038
+ sideNav = _useState3[0],
2039
+ setSideNav = _useState3[1];
2040
+ var _useState4 = React.useState(false),
2041
+ showNav = _useState4[0],
2042
+ setShowNav = _useState4[1];
2043
+ var _useState5 = React.useState(null),
2044
+ info = _useState5[0],
2045
+ setInfo = _useState5[1];
2046
+ var _useState6 = React.useState(false),
2047
+ showConsole = _useState6[0],
2048
+ setShowConsole = _useState6[1];
2049
+ var _useState7 = React.useState([]),
2050
+ consoleLines = _useState7[0],
2051
+ setConsoleLines = _useState7[1];
2052
+ var _useState8 = React.useState(),
2053
+ page = _useState8[0],
2054
+ setPage = _useState8[1];
2055
+ var _useState9 = React.useState(),
2056
+ dialog = _useState9[0],
2057
+ setDialog = _useState9[1];
2058
+ var _useState10 = React.useState(),
2059
+ promptDialog = _useState10[0],
2060
+ setPromptDialog = _useState10[1];
2061
+ var _useState11 = React.useState(),
2062
+ preview = _useState11[0],
2063
+ setPreview = _useState11[1];
2064
+ var _useState12 = React.useState(),
2065
+ breadcrumb = _useState12[0],
2066
+ setBreadcrumb = _useState12[1];
2067
+ var value = {
2068
+ lang: lang,
2069
+ setLang: setLang,
2070
+ dictionary: dictionary,
2071
+ setDictionary: setDictionary,
2072
+ translate: function translate(key) {
2073
+ if (!key) return key;
2074
+ if (dictionary === undefined) return key;
2075
+ var term = dictionary[key];
2076
+ return term ? term[lang] : key;
2077
+ },
2078
+ sideNav: sideNav,
2079
+ setSideNav: setSideNav,
2080
+ showNav: showNav,
2081
+ setShowNav: setShowNav,
2082
+ info: info,
2083
+ openInfo: function openInfo(info) {
2084
+ setInfo(info);
2085
+ },
2086
+ closeInfo: function closeInfo() {
2087
+ setInfo(null);
2088
+ },
2089
+ consoleLines: consoleLines,
2090
+ showConsole: showConsole,
2091
+ toggleConsole: function toggleConsole() {
2092
+ setShowConsole(!showConsole);
2093
+ },
2094
+ writeLog: function writeLog(line) {
2095
+ var next = consoleLines.concat(line);
2096
+ setConsoleLines(next);
2097
+ },
2098
+ clearLog: function clearLog() {
2099
+ setConsoleLines([]);
2100
+ },
2101
+ breadcrumb: breadcrumb,
2102
+ setBreadcrumb: setBreadcrumb,
2103
+ page: page,
2104
+ "goto": function goto(id) {
2105
+ setPage(id);
2106
+ },
2107
+ dialog: dialog,
2108
+ openDialog: function openDialog(dialog) {
2109
+ setDialog(dialog);
2110
+ },
2111
+ closeDialog: function closeDialog() {
2112
+ setDialog(null);
2113
+ },
2114
+ preview: preview,
2115
+ openPreview: function openPreview(preview) {
2116
+ setPreview(preview);
2117
+ },
2118
+ closePreview: function closePreview() {
2119
+ setPreview(null);
2120
+ },
2121
+ confirm: function confirm(message) {
2122
+ return window.confirm(message);
2123
+ },
2124
+ prompt: function prompt(message) {
2125
+ return window.prompt(message);
2126
+ },
2127
+ promptDialog: promptDialog,
2128
+ openPromptDialog: function openPromptDialog(dialog) {
2129
+ setPromptDialog(dialog);
2130
+ },
2131
+ closePromptDialog: function closePromptDialog() {
2132
+ setPromptDialog(null);
2133
+ },
2134
+ notify: function notify(_ref2) {
2135
+ var title = _ref2.title,
2136
+ body = _ref2.body,
2137
+ _ref2$type = _ref2.type,
2138
+ type = _ref2$type === void 0 ? "success" : _ref2$type,
2139
+ _ref2$duration = _ref2.duration,
2140
+ duration = _ref2$duration === void 0 ? 3000 : _ref2$duration,
2141
+ onRemoval = _ref2.onRemoval;
2142
+ reactNotificationsComponent.Store.addNotification({
2143
+ title: title,
2144
+ message: body,
2145
+ type: type,
2146
+ insert: "top",
2147
+ container: "top-right",
2148
+ animationIn: ["animate__animated", "animate__fadeIn"],
2149
+ animationOut: ["animate__animated", "animate__fadeOut"],
2150
+ dismiss: {
2151
+ duration: duration,
2152
+ onScreen: true
2153
+ },
2154
+ onRemoval: onRemoval
2277
2155
  });
2278
- });
2279
- }
2280
-
2281
- // log al children headless prop
2282
- children.forEach(function (child) {
2283
- console.log(child.props.headless);
2284
- });
2285
- function toggle() {
2286
- setUnfold(!unfold);
2287
- }
2288
- var toggleIcon = unfold ? "unfold_less" : "unfold_more";
2289
- var toggleStyle = unfold ? "unfold" : "fold";
2290
- return /*#__PURE__*/React__default["default"].createElement("div", {
2291
- className: "kanban-swimlane"
2292
- }, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
2293
- icon: icon,
2294
- size: "small"
2295
- }), /*#__PURE__*/React__default["default"].createElement("div", {
2296
- className: "title"
2297
- }, /*#__PURE__*/React__default["default"].createElement(Text, {
2298
- use: "headline6"
2299
- }, title, ":"), /*#__PURE__*/React__default["default"].createElement(Text, {
2300
- className: "secondary-text",
2301
- use: "body2"
2302
- }, subtitle)), /*#__PURE__*/React__default["default"].createElement("div", {
2303
- className: "badge"
2304
- }, badge), /*#__PURE__*/React__default["default"].createElement(Icon, {
2305
- icon: toggleIcon,
2306
- clickable: true,
2307
- action: toggle
2308
- })), /*#__PURE__*/React__default["default"].createElement("main", {
2309
- className: toggleStyle
2310
- }, children));
2156
+ }
2157
+ };
2158
+ return /*#__PURE__*/React__default["default"].createElement(SiteContext.Provider, {
2159
+ value: value
2160
+ }, children);
2311
2161
  };
2312
2162
 
2313
2163
  /**
2314
- * Kanban Column
2164
+ * Site
2315
2165
  */
2316
- var KanbanColumn = function KanbanColumn(_ref3) {
2317
- var id = _ref3.id,
2318
- actions = _ref3.actions,
2319
- _ref3$headless = _ref3.headless,
2320
- headless = _ref3$headless === void 0 ? false : _ref3$headless,
2321
- icon = _ref3.icon,
2166
+ var Site = function Site(_ref3) {
2167
+ var icon = _ref3.icon,
2168
+ iconSrc = _ref3.iconSrc,
2322
2169
  title = _ref3.title,
2323
- subtitle = _ref3.subtitle,
2324
- badge = _ref3.badge,
2170
+ toolbar = _ref3.toolbar,
2171
+ footer = _ref3.footer,
2325
2172
  children = _ref3.children,
2326
- _ref3$minified = _ref3.minified,
2327
- minified = _ref3$minified === void 0 ? false : _ref3$minified,
2328
- _ref3$disabled = _ref3.disabled,
2329
- disabled = _ref3$disabled === void 0 ? false : _ref3$disabled;
2330
- var _useState2 = React.useState(minified),
2331
- min = _useState2[0],
2332
- setMin = _useState2[1];
2333
- function toggle() {
2334
- setMin(!min);
2335
- }
2336
- return min ? /*#__PURE__*/React__default["default"].createElement("div", {
2337
- className: "kanban-column " + id + " min"
2338
- }, /*#__PURE__*/React__default["default"].createElement("main", null, title), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
2339
- icon: "toggle_off",
2340
- onIcon: "toggle_on",
2341
- clickable: true,
2342
- action: toggle
2343
- }))) : /*#__PURE__*/React__default["default"].createElement("div", {
2344
- className: "kanban-column " + id + " " + (disabled ? 'disabled' : '')
2345
- }, headless ? "" : /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
2346
- icon: icon
2347
- }), /*#__PURE__*/React__default["default"].createElement("div", {
2348
- className: "title"
2349
- }, /*#__PURE__*/React__default["default"].createElement(Text, {
2350
- use: "headline6"
2351
- }, title), /*#__PURE__*/React__default["default"].createElement(Text, {
2352
- className: "secondary-text",
2353
- use: "body2"
2354
- }, subtitle)), /*#__PURE__*/React__default["default"].createElement("div", {
2355
- className: "badge"
2356
- }, badge)), /*#__PURE__*/React__default["default"].createElement("main", null, children), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
2357
- icon: "toggle_off",
2358
- onIcon: "toggle_on",
2359
- clickable: true,
2360
- action: toggle
2361
- }), actions));
2173
+ init = _ref3.init,
2174
+ min = _ref3.min,
2175
+ lang = _ref3.lang,
2176
+ dictionary = _ref3.dictionary;
2177
+ return /*#__PURE__*/React__default["default"].createElement(SiteProvider, {
2178
+ siteLang: lang,
2179
+ siteDictionary: dictionary
2180
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2181
+ className: "site6"
2182
+ }, /*#__PURE__*/React__default["default"].createElement(SiteHeader, {
2183
+ icon: icon,
2184
+ iconSrc: iconSrc,
2185
+ title: title
2186
+ }), /*#__PURE__*/React__default["default"].createElement(SiteToolBar, null, toolbar), /*#__PURE__*/React__default["default"].createElement(SiteMenu, {
2187
+ iconSrc: iconSrc,
2188
+ title: title,
2189
+ min: min
2190
+ }, children), /*#__PURE__*/React__default["default"].createElement(SitePage, {
2191
+ init: init
2192
+ }, children, /*#__PURE__*/React__default["default"].createElement(Page, {
2193
+ id: "EMPTY"
2194
+ }, "EMPTY")), /*#__PURE__*/React__default["default"].createElement(SiteAside, null), /*#__PURE__*/React__default["default"].createElement(SiteConsole, null), /*#__PURE__*/React__default["default"].createElement(SiteDialog, null), /*#__PURE__*/React__default["default"].createElement(SitePromptDialog, null), /*#__PURE__*/React__default["default"].createElement(SitePreview, null), /*#__PURE__*/React__default["default"].createElement(SiteNotifications, null), /*#__PURE__*/React__default["default"].createElement(SiteFooter, null, footer)));
2195
+ };
2196
+ var SiteNotifications = function SiteNotifications() {
2197
+ return /*#__PURE__*/React__default["default"].createElement(reactNotificationsComponent.ReactNotifications, null);
2362
2198
  };
2363
2199
 
2364
2200
  /**
2365
- * Kanban Card
2201
+ * Site Header
2366
2202
  */
2367
- var KanbanCard = function KanbanCard(_ref4) {
2368
- var className = _ref4.className,
2369
- color = _ref4.color,
2370
- children = _ref4.children;
2371
- return /*#__PURE__*/React__default["default"].createElement("div", {
2372
- className: "kanban-card " + className + " " + color
2373
- }, children);
2203
+ var SiteHeader = function SiteHeader(props) {
2204
+ var _props$icon = props.icon,
2205
+ icon = _props$icon === void 0 ? "equalizer" : _props$icon,
2206
+ iconSrc = props.iconSrc,
2207
+ title = props.title;
2208
+ return /*#__PURE__*/React__default["default"].createElement(Header, {
2209
+ icon: icon,
2210
+ iconSrc: iconSrc,
2211
+ title: title
2212
+ });
2374
2213
  };
2375
2214
 
2376
2215
  /**
2377
- * Avatar
2216
+ * Site ToolBar
2378
2217
  */
2379
- var Avatar = function Avatar(props) {
2380
- var id = props.id,
2381
- name = props.name,
2382
- className = props.className,
2383
- src = props.src,
2384
- _props$size = props.size,
2385
- size = _props$size === void 0 ? "small" : _props$size,
2386
- _props$clickable = props.clickable,
2387
- clickable = _props$clickable === void 0 ? false : _props$clickable,
2388
- action = props.action;
2389
- function click() {
2390
- if (clickable) {
2391
- action(id);
2392
- }
2393
- }
2394
- var clickableStyle = clickable ? 'clickable' : '';
2395
- var style = "avatar " + size + " " + clickableStyle + " " + className;
2396
- return /*#__PURE__*/React__default["default"].createElement("div", {
2397
- className: style,
2398
- onClick: click
2399
- }, src ? /*#__PURE__*/React__default["default"].createElement("img", {
2400
- src: src
2401
- }) : /*#__PURE__*/React__default["default"].createElement("span", null, name));
2402
- };
2403
-
2404
- var WaitScreen = function WaitScreen() {
2405
- return /*#__PURE__*/React__default["default"].createElement("div", {
2406
- className: "wait-screen"
2407
- }, /*#__PURE__*/React__default["default"].createElement(CircularProgress, {
2408
- size: "large"
2409
- }));
2218
+ var SiteToolBar = function SiteToolBar(_ref4) {
2219
+ var children = _ref4.children;
2220
+ return /*#__PURE__*/React__default["default"].createElement("nav", null, children);
2410
2221
  };
2411
2222
 
2412
- moment__default["default"].locale('es');
2413
- var moment = momentRange.extendMoment(moment__default["default"]);
2414
-
2415
2223
  /**
2416
- * Calendar
2224
+ * Site Footer
2417
2225
  */
2418
- var Calendar = function Calendar(props) {
2419
- var _props$events = props.events,
2420
- events = _props$events === void 0 ? [] : _props$events,
2421
- children = props.children,
2422
- onChange = props.onChange,
2423
- onRange = props.onRange;
2424
- var _useState = React.useState(props.range || "year"),
2425
- range = _useState[0],
2426
- setRange = _useState[1];
2427
- function onChangeRange(range) {
2428
- setRange(range);
2429
- if (onRange) onRange(range);
2430
- }
2431
- return /*#__PURE__*/React__default["default"].createElement("div", {
2432
- className: "calendar"
2433
- }, /*#__PURE__*/React__default["default"].createElement(CalendarRangeControl, {
2434
- range: range,
2435
- onChange: onChangeRange
2436
- }), range === "year" && /*#__PURE__*/React__default["default"].createElement(YearCalendar, {
2437
- events: events,
2438
- onChange: onChange
2439
- }, children), range === "month" && /*#__PURE__*/React__default["default"].createElement(MonthCalendar, {
2440
- events: events,
2441
- onChange: onChange,
2442
- onRange: onChangeRange
2443
- }, children));
2226
+ var SiteFooter = function SiteFooter(_ref5) {
2227
+ var children = _ref5.children;
2228
+ return /*#__PURE__*/React__default["default"].createElement("footer", null, children);
2444
2229
  };
2445
2230
 
2446
2231
  /**
2447
- * CalendarRangeControl
2232
+ * Site Aside
2448
2233
  */
2449
- var CalendarRangeControl = function CalendarRangeControl(props) {
2450
- var range = props.range,
2451
- onChange = props.onChange;
2452
- return /*#__PURE__*/React__default["default"].createElement("div", {
2453
- className: "calendar-range-control"
2454
- }, /*#__PURE__*/React__default["default"].createElement(Button, {
2455
- label: "Year",
2456
- outlined: range == "year",
2457
- action: function action() {
2458
- return onChange("year");
2459
- }
2460
- }), /*#__PURE__*/React__default["default"].createElement(Button, {
2461
- label: "Month",
2462
- outlined: range == "month",
2463
- action: function action() {
2464
- return onChange("month");
2465
- }
2466
- }));
2234
+ var SiteAside = function SiteAside() {
2235
+ var context = React.useContext(SiteContext);
2236
+ return context.info ? /*#__PURE__*/React__default["default"].createElement("aside", null, context.info) : '';
2467
2237
  };
2468
2238
 
2469
2239
  /**
2470
- * MonthCalendar
2240
+ * SiteMenu
2471
2241
  */
2472
- var MonthCalendar = function MonthCalendar(props) {
2473
- var _props$events2 = props.events,
2474
- events = _props$events2 === void 0 ? [] : _props$events2,
2475
- children = props.children,
2476
- onChange = props.onChange;
2477
- var _useState2 = React.useState(),
2478
- position = _useState2[0],
2479
- setPosition = _useState2[1];
2242
+ var SiteMenu = function SiteMenu(_ref6) {
2243
+ var iconSrc = _ref6.iconSrc,
2244
+ title = _ref6.title,
2245
+ children = _ref6.children,
2246
+ min = _ref6.min;
2247
+ var context = React.useContext(SiteContext);
2248
+ var page = context.page,
2249
+ sideNav = context.sideNav,
2250
+ setSideNav = context.setSideNav,
2251
+ showNav = context.showNav;
2480
2252
  React.useEffect(function () {
2481
- var today = moment();
2482
- setPosition(today);
2253
+ if (min) context.setSideNav('min');
2483
2254
  }, []);
2484
- React.useEffect(function () {
2485
- if (position && onChange) {
2486
- var _firstDayOfMonth = position.clone().startOf('month');
2487
- var _firstDayOfRange = _firstDayOfMonth.clone().startOf('isoweek');
2488
- var _lastDayOfMonth = position.clone().endOf('month');
2489
- var _lastDayOfRange = _lastDayOfMonth.clone().endOf('isoweek');
2490
- var _range = moment.range(_firstDayOfRange, _lastDayOfRange);
2491
- onChange(position, _range);
2492
- }
2493
- }, [position]);
2494
- function next() {
2495
- var next = position.clone().add(1, 'month');
2496
- setPosition(next);
2497
- }
2498
- function prev() {
2499
- var prev = position.clone().subtract(1, 'month');
2500
- setPosition(prev);
2501
- }
2502
- function today() {
2503
- var today = moment();
2504
- setPosition(today);
2255
+ function toggle() {
2256
+ var next = sideNav === 'max' ? 'min' : 'max';
2257
+ setSideNav(next);
2505
2258
  }
2506
- if (!position) return "...";
2507
- var monthName = position.format("MMMM");
2508
- var year = position.format("YYYY");
2509
- var firstDayOfMonth = position.clone().startOf('month');
2510
- var firstDayOfRange = firstDayOfMonth.clone().startOf('isoweek');
2511
- var lastDayOfMonth = position.clone().endOf('month');
2512
- var lastDayOfRange = lastDayOfMonth.clone().endOf('isoweek');
2513
- var range = moment.range(firstDayOfRange, lastDayOfRange);
2514
- var days = Array.from(range.by('days'));
2515
- var cells = days.map(function (day) {
2516
- var eventsOfDay = events.filter(function (event) {
2517
- var eventDay = moment(event.date);
2518
- return eventDay.isSame(day, 'day');
2259
+ var _goto = function _goto(id) {
2260
+ context.setShowNav(false);
2261
+ context["goto"](id);
2262
+ };
2263
+ var sections = children ? React.Children.toArray(children).reduce(function (sections, page) {
2264
+ var section = page.props ? page.props.section : '...';
2265
+ if (!sections[section]) sections[section] = [];
2266
+ var _page$props = page.props,
2267
+ id = _page$props.id,
2268
+ icon = _page$props.icon,
2269
+ title = _page$props.title;
2270
+ if (title) sections[section].push({
2271
+ id: id,
2272
+ icon: icon,
2273
+ title: title
2519
2274
  });
2520
- var sameMonthStyle = day.isSame(moment(position), 'month') ? '' : 'other-month';
2521
- return {
2522
- day: day,
2523
- events: eventsOfDay,
2524
- sameMonthStyle: sameMonthStyle
2525
- };
2526
- });
2527
- return /*#__PURE__*/React__default["default"].createElement("div", {
2528
- className: "month-calendar"
2529
- }, /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement("label", null, " ", /*#__PURE__*/React__default["default"].createElement(Text, null, monthName), " ", year), /*#__PURE__*/React__default["default"].createElement(Button, {
2530
- icon: "chevron_left",
2531
- action: prev
2532
- }), /*#__PURE__*/React__default["default"].createElement(Button, {
2533
- label: "Today",
2534
- outlined: true,
2535
- action: today
2536
- }), /*#__PURE__*/React__default["default"].createElement(Button, {
2537
- icon: "chevron_right",
2538
- action: next
2539
- })), /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement("div", {
2540
- className: "week-day-cell"
2541
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Mon")), /*#__PURE__*/React__default["default"].createElement("div", {
2542
- className: "week-day-cell"
2543
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Tue")), /*#__PURE__*/React__default["default"].createElement("div", {
2544
- className: "week-day-cell"
2545
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Wed")), /*#__PURE__*/React__default["default"].createElement("div", {
2546
- className: "week-day-cell"
2547
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Thu")), /*#__PURE__*/React__default["default"].createElement("div", {
2548
- className: "week-day-cell"
2549
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Fri")), /*#__PURE__*/React__default["default"].createElement("div", {
2550
- className: "week-day-cell"
2551
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Sat")), /*#__PURE__*/React__default["default"].createElement("div", {
2552
- className: "week-day-cell"
2553
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Sun"))), /*#__PURE__*/React__default["default"].createElement("main", null, cells.map(function (cell) {
2554
- return /*#__PURE__*/React__default["default"].createElement(DayCell, {
2555
- key: cell.day,
2556
- cell: cell
2557
- }, children);
2275
+ return sections;
2276
+ }, {}) : {};
2277
+ var style = sideNav === 'max' ? 'max' : 'min';
2278
+ var toggleIcon = sideNav === 'max' ? 'chevron_left' : 'chevron_right';
2279
+ var menutTitle = sideNav === 'max' ? title : '';
2280
+ return /*#__PURE__*/React__default["default"].createElement("menu", {
2281
+ className: style + " " + (showNav ? 'show' : '')
2282
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
2283
+ title: menutTitle,
2284
+ iconSrc: iconSrc
2285
+ }), /*#__PURE__*/React__default["default"].createElement("main", null, Object.keys(sections).map(function (title) {
2286
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
2287
+ key: title
2288
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
2289
+ className: "section-title " + style
2290
+ }, sideNav === "max" ? title : ''), sections[title].map(function (_ref7) {
2291
+ var id = _ref7.id,
2292
+ _ref7$icon = _ref7.icon,
2293
+ icon = _ref7$icon === void 0 ? 'info' : _ref7$icon,
2294
+ title = _ref7.title;
2295
+ var styleItem = id === page ? 'selected' : '';
2296
+ var titleTxt = context.translate(title);
2297
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2298
+ className: "site-menu-item " + styleItem,
2299
+ key: id,
2300
+ onClick: function onClick() {
2301
+ return _goto(id);
2302
+ }
2303
+ }, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
2304
+ text: title,
2305
+ top: ".5rem",
2306
+ left: "4.5rem"
2307
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
2308
+ key: id,
2309
+ icon: icon,
2310
+ clickable: true,
2311
+ action: function action() {
2312
+ return _goto(id);
2313
+ }
2314
+ })), sideNav === 'max' ? /*#__PURE__*/React__default["default"].createElement("label", null, titleTxt) : null);
2315
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
2316
+ className: "section-divider"
2317
+ }));
2318
+ })), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
2319
+ icon: toggleIcon,
2320
+ clickable: true,
2321
+ action: toggle
2558
2322
  })));
2559
2323
  };
2560
- var DayCell = function DayCell(props) {
2561
- var _props$cell = props.cell,
2562
- cell = _props$cell === void 0 ? [] : _props$cell,
2563
- children = props.children;
2564
- var day = cell.day,
2565
- events = cell.events,
2566
- sameMonthStyle = cell.sameMonthStyle;
2567
- var todayStyle = day.isSame(moment(), 'day') ? 'today' : '';
2568
- return /*#__PURE__*/React__default["default"].createElement("div", {
2569
- className: "day-cell " + todayStyle + " " + sameMonthStyle
2570
- }, /*#__PURE__*/React__default["default"].createElement("header", null, day.format("DD")), /*#__PURE__*/React__default["default"].createElement("main", null, events.map(function (event) {
2571
- return /*#__PURE__*/React__default["default"].createElement(Event, {
2572
- key: event.id,
2573
- event: event
2574
- }, children);
2575
- })));
2324
+
2325
+ /**
2326
+ * SitePage
2327
+ */
2328
+ var SitePage = function SitePage(_ref8) {
2329
+ var children = _ref8.children,
2330
+ init = _ref8.init;
2331
+ var context = React.useContext(SiteContext);
2332
+ var page = context.page;
2333
+ React.useEffect(function () {
2334
+ if (init) {
2335
+ context["goto"](init);
2336
+ } else {
2337
+ context["goto"]("EMPTY");
2338
+ }
2339
+ }, []);
2340
+ return /*#__PURE__*/React__default["default"].createElement("main", null, React__default["default"].Children.toArray(children).filter(function (child) {
2341
+ return child.props ? child.props.id === page : false;
2342
+ }));
2576
2343
  };
2577
2344
 
2578
2345
  /**
2579
- * Event
2346
+ * Site Dialog
2580
2347
  */
2581
- var Event = function Event(props) {
2582
- var event = props.event,
2583
- children = props.children;
2584
- if (children) {
2585
- var element = React__default["default"].Children.toArray(children)[0];
2586
- return React__default["default"].cloneElement(element, {
2587
- event: event
2588
- });
2589
- } else {
2590
- return /*#__PURE__*/React__default["default"].createElement("div", {
2591
- className: "event"
2592
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2593
- className: "event-name"
2594
- }, event.title));
2348
+ var SiteDialog = function SiteDialog() {
2349
+ var context = React.useContext(SiteContext);
2350
+ return context.dialog ? context.dialog : '';
2351
+ };
2352
+
2353
+ /**
2354
+ * Site Promtp Dialog
2355
+ */
2356
+ var SitePromptDialog = function SitePromptDialog() {
2357
+ var context = React.useContext(SiteContext);
2358
+ return context.promptDialog ? context.promptDialog : '';
2359
+ };
2360
+
2361
+ /**
2362
+ * Site Preview
2363
+ */
2364
+ var SitePreview = function SitePreview() {
2365
+ var context = React.useContext(SiteContext);
2366
+ return context.preview ? /*#__PURE__*/React__default["default"].createElement("div", {
2367
+ className: "site-preview"
2368
+ }, context.preview) : '';
2369
+ };
2370
+
2371
+ /**
2372
+ * Site Console
2373
+ */
2374
+ var SiteConsole = function SiteConsole() {
2375
+ var context = React.useContext(SiteContext);
2376
+ function clear() {
2377
+ context.clearLog();
2595
2378
  }
2379
+ return context.showConsole ? /*#__PURE__*/React__default["default"].createElement("div", {
2380
+ className: "site-console"
2381
+ }, /*#__PURE__*/React__default["default"].createElement(Header, null, /*#__PURE__*/React__default["default"].createElement(Tabs, null, /*#__PURE__*/React__default["default"].createElement(Tab, {
2382
+ label: "Console"
2383
+ }))), /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
2384
+ icon: "clear_all",
2385
+ size: "small",
2386
+ clickable: true,
2387
+ action: clear
2388
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, context.consoleLines.map(function (line, index) {
2389
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2390
+ key: "log-" + index
2391
+ }, line);
2392
+ }))) : '';
2596
2393
  };
2597
2394
 
2598
2395
  /**
2599
- * YearCalendar
2396
+ * Dialog
2397
+ *
2398
+ * <Dialog title={title} open={true} actions={actions}>
2600
2399
  */
2601
- var YearCalendar = function YearCalendar(props) {
2602
- var _props$events3 = props.events,
2603
- events = _props$events3 === void 0 ? [] : _props$events3,
2400
+ var Dialog = function Dialog(props) {
2401
+ var site = React.useContext(SiteContext);
2402
+ var icon = props.icon,
2403
+ _props$title = props.title,
2404
+ title = _props$title === void 0 ? "Dialog" : _props$title,
2405
+ toolbar = props.toolbar,
2604
2406
  children = props.children,
2605
- onChange = props.onChange;
2606
- var _useState3 = React.useState(),
2607
- position = _useState3[0],
2608
- setPosition = _useState3[1];
2609
- React.useEffect(function () {
2610
- var today = moment();
2611
- setPosition(today);
2612
- }, []);
2613
- React.useEffect(function () {
2614
- if (position && onChange) {
2615
- var _firstDayOfYear = position.clone().startOf('year');
2616
- var firstDayOfRange = _firstDayOfYear.clone().startOf('isoweek');
2617
- var _lastDayOfYear = position.clone().endOf('year');
2618
- var lastDayOfRange = _lastDayOfYear.clone().endOf('isoweek');
2619
- var range = moment.range(firstDayOfRange, lastDayOfRange);
2620
- onChange(position, range);
2407
+ actions = props.actions,
2408
+ className = props.className,
2409
+ onClose = props.onClose,
2410
+ _props$overlayCanClos = props.overlayCanClose,
2411
+ overlayCanClose = _props$overlayCanClos === void 0 ? true : _props$overlayCanClos;
2412
+ function overlayClose() {
2413
+ if (overlayCanClose) {
2414
+ close();
2621
2415
  }
2622
- }, [position]);
2623
- function next() {
2624
- var next = position.clone().add(1, 'year');
2625
- setPosition(next);
2626
2416
  }
2627
- function prev() {
2628
- var prev = position.clone().subtract(1, 'year');
2629
- setPosition(prev);
2417
+ function close() {
2418
+ if (onClose) onClose();
2419
+ if (className === "prompt") {
2420
+ site.closePromptDialog();
2421
+ } else {
2422
+ site.closeDialog();
2423
+ }
2630
2424
  }
2631
- function today() {
2632
- var today = moment();
2633
- setPosition(today);
2425
+ return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
2426
+ className: "overlay " + className,
2427
+ onMouseDown: overlayClose
2428
+ }), /*#__PURE__*/React__default["default"].createElement("dialog", {
2429
+ className: "dialog-panel " + className
2430
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, icon ? /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
2431
+ icon: icon
2432
+ }) : null, /*#__PURE__*/React__default["default"].createElement(Text$1, null, title), toolbar), /*#__PURE__*/React__default["default"].createElement("main", null, children), /*#__PURE__*/React__default["default"].createElement("footer", null, actions)));
2433
+ };
2434
+
2435
+ /**
2436
+ * View
2437
+ */
2438
+ var View = function View(props) {
2439
+ var id = props.id,
2440
+ className = props.className,
2441
+ icon = props.icon,
2442
+ title = props.title,
2443
+ toolbar = props.toolbar,
2444
+ menu = props.menu,
2445
+ info = props.info,
2446
+ onClose = props.onClose,
2447
+ _props$canCollapse = props.canCollapse,
2448
+ canCollapse = _props$canCollapse === void 0 ? false : _props$canCollapse,
2449
+ children = props.children;
2450
+ var _useState = React.useState(true),
2451
+ open = _useState[0],
2452
+ setOpen = _useState[1];
2453
+ function toggle() {
2454
+ setOpen(!open);
2634
2455
  }
2635
- if (!position) return "...";
2636
- var year = position.format("YYYY");
2637
- var firstDayOfYear = moment(position).startOf('year');
2638
- var lastDayOfYear = moment(position).endOf('year');
2639
- var months = [];
2640
- for (var currentMonth = moment(firstDayOfYear); currentMonth.isBefore(lastDayOfYear); currentMonth.add(1, 'month')) {
2641
- months.push(moment(currentMonth));
2456
+ function close() {
2457
+ if (onClose) onClose();
2642
2458
  }
2643
- var cells = months.map(function (month) {
2644
- var firstDayOfMonth = month.clone().startOf('month');
2645
- var firstDayOfRange = firstDayOfMonth.clone().startOf('isoweek');
2646
- var lastDayOfMonth = month.clone().endOf('month');
2647
- var lastDayOfRange = lastDayOfMonth.clone().endOf('isoweek');
2648
- var range = moment.range(firstDayOfRange, lastDayOfRange);
2649
- var days = Array.from(range.by('days'));
2650
- var cells = days.map(function (day) {
2651
- var eventsOfDay = events.filter(function (event) {
2652
- var eventDay = moment(event.date);
2653
- return eventDay.isSame(day, 'day');
2654
- });
2655
- var sameMonthStyle = day.isSame(moment(month), 'month') ? '' : 'other-month';
2656
- return {
2657
- day: day,
2658
- events: eventsOfDay,
2659
- sameMonthStyle: sameMonthStyle
2660
- };
2661
- });
2662
- return {
2663
- month: month,
2664
- cells: cells
2665
- };
2459
+ return /*#__PURE__*/React__default["default"].createElement("section", {
2460
+ id: id,
2461
+ className: "view " + className
2462
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, canCollapse ? /*#__PURE__*/React__default["default"].createElement(Icon, {
2463
+ icon: "expand_more",
2464
+ size: "small",
2465
+ clickable: true,
2466
+ action: toggle
2467
+ }) : null, icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
2468
+ icon: icon,
2469
+ size: "small"
2470
+ }) : null, title ? /*#__PURE__*/React__default["default"].createElement("label", null, title) : null, menu ? /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
2471
+ align: "alignRight"
2472
+ }, menu) : null, onClose ? /*#__PURE__*/React__default["default"].createElement(Icon, {
2473
+ icon: "close",
2474
+ size: "small",
2475
+ clickable: true,
2476
+ action: close
2477
+ }) : null), toolbar ? /*#__PURE__*/React__default["default"].createElement("nav", null, toolbar) : null, open ? /*#__PURE__*/React__default["default"].createElement("main", null, children) : null, info ? /*#__PURE__*/React__default["default"].createElement("footer", null, info) : null);
2478
+ };
2479
+ var TabbedView = function TabbedView(props) {
2480
+ var title = props.title,
2481
+ className = props.className,
2482
+ selected = props.selected;
2483
+ var _useState2 = React.useState(0),
2484
+ tab = _useState2[0],
2485
+ setTab = _useState2[1];
2486
+ var children = React__default["default"].Children.toArray(props.children);
2487
+ var tabs = children.map(function (child) {
2488
+ return /*#__PURE__*/React__default["default"].createElement(Tab, {
2489
+ key: child.props.label,
2490
+ label: child.props.label
2491
+ });
2666
2492
  });
2667
- return /*#__PURE__*/React__default["default"].createElement("div", {
2668
- className: "year-calendar"
2669
- }, /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement("label", null, " ", /*#__PURE__*/React__default["default"].createElement(Text, null, year)), /*#__PURE__*/React__default["default"].createElement(Button, {
2670
- icon: "chevron_left",
2671
- action: prev
2672
- }), /*#__PURE__*/React__default["default"].createElement(Button, {
2673
- label: "Today",
2674
- outlined: true,
2675
- action: today
2676
- }), /*#__PURE__*/React__default["default"].createElement(Button, {
2677
- icon: "chevron_right",
2678
- action: next
2679
- })), /*#__PURE__*/React__default["default"].createElement("main", null, cells.map(function (cell) {
2680
- return /*#__PURE__*/React__default["default"].createElement(MonthCell, {
2681
- key: cell.month,
2682
- cell: cell
2683
- }, children);
2684
- })));
2493
+ React.useEffect(function () {
2494
+ if (selected && selected !== tab) setTab(selected);
2495
+ }, [selected]);
2496
+ var toolbar = /*#__PURE__*/React__default["default"].createElement(Tabs, {
2497
+ selected: tab,
2498
+ onChange: function onChange(tab) {
2499
+ return setTab(tab);
2500
+ }
2501
+ }, tabs);
2502
+ return /*#__PURE__*/React__default["default"].createElement(View, {
2503
+ title: title,
2504
+ toolbar: toolbar,
2505
+ className: className
2506
+ }, /*#__PURE__*/React__default["default"].createElement(Stack, {
2507
+ selected: tab
2508
+ }, children));
2685
2509
  };
2686
2510
 
2687
2511
  /**
2688
- * MonthCell
2512
+ * Admin Change User Password Dialog
2689
2513
  */
2690
- var MonthCell = function MonthCell(props) {
2691
- var _props$cell2 = props.cell,
2692
- cell = _props$cell2 === void 0 ? [] : _props$cell2,
2693
- children = props.children;
2694
- var month = cell.month,
2695
- cells = cell.cells;
2696
- var monthName = month.format("MMMM");
2697
- return /*#__PURE__*/React__default["default"].createElement("div", {
2698
- className: "month-cell"
2699
- }, /*#__PURE__*/React__default["default"].createElement("nav", null, monthName), /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement("div", {
2700
- className: "week-day-cell"
2701
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Mon")), /*#__PURE__*/React__default["default"].createElement("div", {
2702
- className: "week-day-cell"
2703
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Tue")), /*#__PURE__*/React__default["default"].createElement("div", {
2704
- className: "week-day-cell"
2705
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Wed")), /*#__PURE__*/React__default["default"].createElement("div", {
2706
- className: "week-day-cell"
2707
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Thu")), /*#__PURE__*/React__default["default"].createElement("div", {
2708
- className: "week-day-cell"
2709
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Fri")), /*#__PURE__*/React__default["default"].createElement("div", {
2710
- className: "week-day-cell"
2711
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Sat")), /*#__PURE__*/React__default["default"].createElement("div", {
2712
- className: "week-day-cell"
2713
- }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Sun"))), /*#__PURE__*/React__default["default"].createElement("main", null, cells.map(function (cell) {
2714
- return /*#__PURE__*/React__default["default"].createElement(DayCell, {
2715
- key: cell.day,
2716
- cell: cell
2717
- }, children);
2718
- })));
2514
+ var ChangeUserPasswordDialog = function ChangeUserPasswordDialog(props) {
2515
+ var site = React.useContext(SiteContext);
2516
+ var error = props.error;
2517
+ var config = {
2518
+ userRequired: props.userRequired || false,
2519
+ oldPwdRequired: props.oldPwdRequired || false,
2520
+ onOK: function onOK(form) {
2521
+ props.onOK ? props.onOK(form) : site.closeDialog();
2522
+ },
2523
+ onClose: function onClose() {
2524
+ site.closeDialog();
2525
+ }
2526
+ };
2527
+ var Toolbar = function Toolbar() {
2528
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2529
+ className: "dialog-toolbar"
2530
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
2531
+ icon: "close",
2532
+ size: "small",
2533
+ clickable: true,
2534
+ action: site.closeDialog
2535
+ }));
2536
+ };
2537
+ var title = /*#__PURE__*/React__default["default"].createElement("div", {
2538
+ className: "dialog-title"
2539
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, "Change Password"));
2540
+ return /*#__PURE__*/React__default["default"].createElement(Dialog, {
2541
+ title: title,
2542
+ className: "change-password-dialog",
2543
+ toolbar: /*#__PURE__*/React__default["default"].createElement(Toolbar, null)
2544
+ }, error && /*#__PURE__*/React__default["default"].createElement("div", {
2545
+ className: "dialog-error-message"
2546
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
2547
+ icon: "warning"
2548
+ }), error), /*#__PURE__*/React__default["default"].createElement(ResetPasswordBox, config, /*#__PURE__*/React__default["default"].createElement("br", null), /*#__PURE__*/React__default["default"].createElement("div", {
2549
+ className: "title"
2550
+ }, /*#__PURE__*/React__default["default"].createElement(Text, null, "The new password must contain:")), /*#__PURE__*/React__default["default"].createElement("ul", null, /*#__PURE__*/React__default["default"].createElement("li", null, /*#__PURE__*/React__default["default"].createElement(Text, null, "At least 15 characters")), /*#__PURE__*/React__default["default"].createElement("li", null, /*#__PURE__*/React__default["default"].createElement(Text, null, "At least one uppercase letter")), /*#__PURE__*/React__default["default"].createElement("li", null, /*#__PURE__*/React__default["default"].createElement(Text, null, "At least one lowercase letter")), /*#__PURE__*/React__default["default"].createElement("li", null, /*#__PURE__*/React__default["default"].createElement(Text, null, "At least one number")), /*#__PURE__*/React__default["default"].createElement("li", null, /*#__PURE__*/React__default["default"].createElement(Text, null, "At least one special character")))));
2719
2551
  };
2720
2552
 
2721
- var ranges = momentRange.extendMoment(moment__default["default"]);
2722
- var DATE_RANGE = [{
2723
- label: "Week",
2724
- value: "week"
2725
- }, {
2726
- label: "Month",
2727
- value: "month"
2728
- }, {
2729
- label: "Year",
2730
- value: "year"
2731
- }];
2553
+ /**
2554
+ * Forget User Password Action
2555
+ */
2556
+
2557
+ function _catch$7(body, recover) {
2558
+ try {
2559
+ var result = body();
2560
+ } catch (e) {
2561
+ return recover(e);
2562
+ }
2563
+ if (result && result.then) {
2564
+ return result.then(void 0, recover);
2565
+ }
2566
+ return result;
2567
+ } /**
2568
+ * Unlock User Action
2569
+ */
2570
+ var ForgetUserPasswordAction = function ForgetUserPasswordAction(props) {
2571
+ var execute = function execute() {
2572
+ try {
2573
+ var _temp = _catch$7(function () {
2574
+ return Promise.resolve(onOK(user.email)).then(function () {
2575
+ if (onSuccess) onSuccess();
2576
+ site.notify({
2577
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Forgot Password"),
2578
+ body: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Check your email to reset your password"),
2579
+ icon: "mail_lock"
2580
+ });
2581
+ });
2582
+ }, function (error) {
2583
+ site.notify({
2584
+ title: "Error",
2585
+ body: error.message,
2586
+ type: "danger",
2587
+ icon: "error"
2588
+ });
2589
+ });
2590
+ return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
2591
+ } catch (e) {
2592
+ return Promise.reject(e);
2593
+ }
2594
+ };
2595
+ var site = React.useContext(SiteContext);
2596
+ var user = props.user,
2597
+ _props$icon = props.icon,
2598
+ icon = _props$icon === void 0 ? false : _props$icon,
2599
+ onOK = props.onOK,
2600
+ onSuccess = props.onSuccess;
2601
+ var label = /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Forgot Password");
2602
+ return icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
2603
+ icon: "mail_lock",
2604
+ clickable: true,
2605
+ action: execute,
2606
+ size: "small",
2607
+ tooltip: {
2608
+ text: label,
2609
+ top: "-.5rem",
2610
+ left: "-14rem"
2611
+ }
2612
+ }) : /*#__PURE__*/React__default["default"].createElement(Button, {
2613
+ label: label,
2614
+ action: execute,
2615
+ className: ""
2616
+ });
2617
+ };
2618
+ var UnlockUserAction = function UnlockUserAction(props) {
2619
+ var execute = function execute() {
2620
+ try {
2621
+ var _temp2 = _catch$7(function () {
2622
+ return Promise.resolve(onOK(user)).then(function () {
2623
+ if (onSuccess) onSuccess();
2624
+ site.notify({
2625
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "User Unlocked"),
2626
+ body: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "The user has been unlocked successfully"),
2627
+ icon: "key"
2628
+ });
2629
+ });
2630
+ }, function (error) {
2631
+ site.notify({
2632
+ title: "Error",
2633
+ body: error.message,
2634
+ type: "danger",
2635
+ icon: "error"
2636
+ });
2637
+ });
2638
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
2639
+ } catch (e) {
2640
+ return Promise.reject(e);
2641
+ }
2642
+ };
2643
+ var site = React.useContext(SiteContext);
2644
+ var user = props.user,
2645
+ _props$icon2 = props.icon,
2646
+ icon = _props$icon2 === void 0 ? true : _props$icon2,
2647
+ onOK = props.onOK,
2648
+ onSuccess = props.onSuccess;
2649
+ var label = /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Unlock User");
2650
+ return icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
2651
+ icon: "key_off",
2652
+ clickable: true,
2653
+ action: execute,
2654
+ size: "small"
2655
+ }) : /*#__PURE__*/React__default["default"].createElement(Button, {
2656
+ label: label,
2657
+ action: execute,
2658
+ outlined: true,
2659
+ className: ""
2660
+ });
2661
+ };
2732
2662
 
2733
2663
  /**
2734
- * Planner
2664
+ * Change User Password Action
2735
2665
  */
2736
- var Planner = function Planner(_ref) {
2737
- var title = _ref.title,
2738
- _ref$events = _ref.events,
2739
- events = _ref$events === void 0 ? [] : _ref$events,
2740
- _ref$lanes = _ref.lanes,
2741
- lanes = _ref$lanes === void 0 ? [] : _ref$lanes,
2742
- _ref$navigation = _ref.navigation,
2743
- navigation = _ref$navigation === void 0 ? true : _ref$navigation,
2744
- onSelectCell = _ref.onSelectCell,
2745
- focusEvent = _ref.focusEvent,
2746
- _ref$config = _ref.config,
2747
- config = _ref$config === void 0 ? {
2748
- range: "year",
2749
- from: "2022-01-01",
2750
- to: "2022-12-30"
2751
- } : _ref$config,
2752
- onChange = _ref.onChange;
2753
- var _useState = React.useState(config.range),
2754
- dateRange = _useState[0],
2755
- setDateRange = _useState[1];
2756
- var _useState2 = React.useState(config.from),
2757
- from = _useState2[0],
2758
- setFrom = _useState2[1];
2759
- var _useState3 = React.useState(config.to),
2760
- to = _useState3[0],
2761
- setTo = _useState3[1];
2762
- var thisMondayElement = React.useRef(null);
2763
- var gotoMonday = React.useCallback(function (node) {
2764
- var element = node;
2765
- if (element) element.scrollIntoView({
2766
- behavior: 'smooth',
2767
- block: 'start',
2768
- inline: 'start'
2769
- });
2666
+ var ChangeUserPasswordAction = function ChangeUserPasswordAction(props) {
2667
+ var site = React.useContext(SiteContext);
2668
+ var user = props.user,
2669
+ _props$icon3 = props.icon,
2670
+ icon = _props$icon3 === void 0 ? false : _props$icon3,
2671
+ _props$oldPwdRequired = props.oldPwdRequired,
2672
+ oldPwdRequired = _props$oldPwdRequired === void 0 ? true : _props$oldPwdRequired;
2673
+ var errorMessages = React.useMemo(function () {
2674
+ return {
2675
+ "ERROR OLD PASSWORD": {
2676
+ title: "Error",
2677
+ description: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Incorrect old password")
2678
+ },
2679
+ "PASSWORD ALREADY USED": {
2680
+ title: "Error",
2681
+ description: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "The new password provided has already been used")
2682
+ }
2683
+ };
2770
2684
  }, []);
2771
- React.useEffect(function () {
2772
- var element = document.getElementById(focusEvent);
2773
- if (element) element.scrollIntoView({
2774
- behavior: 'smooth',
2775
- block: 'center',
2776
- inline: 'center'
2777
- });
2778
- }, [focusEvent]);
2779
- React.useEffect(function () {
2780
- var today = moment__default["default"]();
2781
- var from_date = today.startOf(dateRange).format("YYYY-MM-DD");
2782
- var to_date = today.endOf(dateRange).format("YYYY-MM-DD");
2783
- setFrom(from_date);
2784
- setTo(to_date);
2785
- }, [dateRange]);
2786
- function next() {
2787
- var actual = moment__default["default"](from);
2788
- var next = actual.add(1, dateRange);
2789
- var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2790
- var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2791
- setFrom(from_date);
2792
- setTo(to_date);
2685
+ function execute() {
2686
+ var onOK = function onOK(form) {
2687
+ try {
2688
+ var _temp3 = _catch$7(function () {
2689
+ return Promise.resolve(props.onOK(user, form.oldPassword, form.password1)).then(function () {
2690
+ site.notify({
2691
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Change Password"),
2692
+ body: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "The password has been changed successfully"),
2693
+ icon: "key"
2694
+ });
2695
+ site.closeDialog();
2696
+ });
2697
+ }, function (error) {
2698
+ var _errorMessages$key;
2699
+ var key = error.message.toUpperCase();
2700
+ var message = ((_errorMessages$key = errorMessages[key]) == null ? void 0 : _errorMessages$key.description) || error.message;
2701
+ site.notify({
2702
+ title: "Error",
2703
+ body: message,
2704
+ type: "danger",
2705
+ icon: "error"
2706
+ });
2707
+ site.openDialog(/*#__PURE__*/React__default["default"].createElement(ChangeUserPasswordDialog, {
2708
+ oldPwdRequired: oldPwdRequired,
2709
+ onOK: onOK,
2710
+ error: message
2711
+ }));
2712
+ });
2713
+ return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(function () {}) : void 0);
2714
+ } catch (e) {
2715
+ return Promise.reject(e);
2716
+ }
2717
+ };
2718
+ site.openDialog(/*#__PURE__*/React__default["default"].createElement(ChangeUserPasswordDialog, {
2719
+ oldPwdRequired: oldPwdRequired,
2720
+ onOK: onOK
2721
+ }));
2793
2722
  }
2794
- function prev() {
2795
- var actual = moment__default["default"](from);
2796
- var next = actual.subtract(1, dateRange);
2797
- var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
2798
- var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
2799
- setFrom(from_date);
2800
- setTo(to_date);
2723
+ var label = /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Change Password");
2724
+ return icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
2725
+ icon: "key",
2726
+ clickable: true,
2727
+ action: execute,
2728
+ size: "small"
2729
+ }) : /*#__PURE__*/React__default["default"].createElement(Button, {
2730
+ label: label,
2731
+ action: execute,
2732
+ outlined: true,
2733
+ className: ""
2734
+ });
2735
+ };
2736
+
2737
+ var _LOGIN_DICTIONARY;
2738
+ var LOGIN_DICTIONARY = (_LOGIN_DICTIONARY = {
2739
+ 'Forgot Password': {
2740
+ en: 'Forgot Password',
2741
+ es: 'Olvidé mi contraseña',
2742
+ de: 'Passwort vergessen',
2743
+ pt: 'Esqueceu a senha',
2744
+ ca: 'He oblidat la contrasenya',
2745
+ it: 'Password dimenticata',
2746
+ fr: 'Mot de passe oublié'
2747
+ },
2748
+ 'Check your email to reset your password': {
2749
+ en: 'Check your email to reset your password',
2750
+ es: 'Revise su correo electrónico para restablecer su contraseña',
2751
+ de: 'Überprüfen Sie Ihre E-Mails, um Ihr Passwort zurückzusetzen',
2752
+ pt: 'Verifique seu e-mail para redefinir sua senha',
2753
+ ca: 'Comproveu el correu electrònic per restablir la contrasenya',
2754
+ it: 'Controlla la tua email per reimpostare la password',
2755
+ fr: 'Vérifiez votre email pour réinitialiser votre mot de passe'
2756
+ },
2757
+ 'Unlock User': {
2758
+ en: 'Unlock User',
2759
+ es: 'Desbloquear usuario',
2760
+ de: 'Benutzer entsperren',
2761
+ pt: 'Desbloquear usuário',
2762
+ ca: 'Desbloquejar usuari',
2763
+ it: 'Sblocca utente',
2764
+ fr: 'Débloquer l\'utilisateur'
2765
+ },
2766
+ 'The user has been unlocked successfully': {
2767
+ en: 'The user has been unlocked successfully',
2768
+ es: 'El usuario ha sido desbloqueado con éxito',
2769
+ de: 'Der Benutzer wurde erfolgreich entsperrt',
2770
+ pt: 'O usuário foi desbloqueado com sucesso',
2771
+ ca: 'L\'usuari s\'ha desbloquejat correctament',
2772
+ it: 'L\'utente è stato sbloccato con successo',
2773
+ fr: 'L\'utilisateur a été débloqué avec succès'
2774
+ },
2775
+ 'User Unlocked': {
2776
+ en: 'User Unlocked',
2777
+ es: 'Usuario desbloqueado',
2778
+ de: 'Benutzer entsperrt',
2779
+ pt: 'Usuário desbloqueado',
2780
+ ca: 'Usuari desbloquejat',
2781
+ it: 'Utente sbloccato',
2782
+ fr: 'Utilisateur débloqué'
2783
+ },
2784
+ 'The password has been changed successfully': {
2785
+ en: 'The password has been changed successfully',
2786
+ es: 'La contraseña se ha cambiado con éxito',
2787
+ de: 'Das Passwort wurde erfolgreich geändert',
2788
+ pt: 'A senha foi alterada com sucesso',
2789
+ ca: 'La contrasenya s\'ha canviat correctament',
2790
+ it: 'La password è stata cambiata con successo',
2791
+ fr: 'Le mot de passe a été changé avec succès'
2792
+ },
2793
+ 'Password Changed': {
2794
+ en: 'Password Changed',
2795
+ es: 'Contraseña cambiada',
2796
+ de: 'Passwort geändert',
2797
+ pt: 'Senha alterada',
2798
+ ca: 'Contrasenya canviada',
2799
+ it: 'Password cambiata',
2800
+ fr: 'Mot de passe changé'
2801
+ },
2802
+ 'The new password must contain:': {
2803
+ en: 'The new password must contain:',
2804
+ es: 'La nueva contraseña debe contener:',
2805
+ de: 'Das neue Passwort muss enthalten:',
2806
+ pt: 'A nova senha deve conter:',
2807
+ ca: 'La nova contrasenya ha de contenir:',
2808
+ it: 'La nuova password deve contenere:',
2809
+ fr: 'Le nouveau mot de passe doit contenir:'
2810
+ },
2811
+ 'At least 15 characters': {
2812
+ en: 'At least 15 characters',
2813
+ es: 'Al menos 15 caracteres',
2814
+ de: 'Mindestens 15 Zeichen',
2815
+ pt: 'Pelo menos 15 caracteres',
2816
+ ca: 'Almenys 15 caràcters',
2817
+ it: 'Almeno 15 caratteri',
2818
+ fr: 'Au moins 15 caractères'
2819
+ },
2820
+ 'At least one uppercase letter': {
2821
+ en: 'At least one uppercase letter',
2822
+ es: 'Al menos una letra mayúscula',
2823
+ de: 'Mindestens ein Großbuchstabe',
2824
+ pt: 'Pelo menos uma letra maiúscula',
2825
+ ca: 'Almenys una lletra majúscula',
2826
+ it: 'Almeno una lettera maiuscola',
2827
+ fr: 'Au moins une lettre majuscule'
2828
+ },
2829
+ 'At least one lowercase letter': {
2830
+ en: 'At least one lowercase letter',
2831
+ es: 'Al menos una letra minúscula',
2832
+ de: 'Mindestens ein Kleinbuchstabe',
2833
+ pt: 'Pelo menos uma letra minúscula',
2834
+ ca: 'Almenys una lletra minúscula',
2835
+ it: 'Almeno una lettera minuscola',
2836
+ fr: 'Au moins une lettre minuscule'
2837
+ },
2838
+ 'At least one number': {
2839
+ en: 'At least one number',
2840
+ es: 'Al menos un número',
2841
+ de: 'Mindestens eine Zahl',
2842
+ pt: 'Pelo menos um número',
2843
+ ca: 'Almenys un número',
2844
+ it: 'Almeno un numero',
2845
+ fr: 'Au moins un numéro'
2846
+ },
2847
+ 'At least one special character': {
2848
+ en: 'At least one special character',
2849
+ es: 'Al menos un carácter especial',
2850
+ de: 'Mindestens ein Sonderzeichen',
2851
+ pt: 'Pelo menos um caractere especial',
2852
+ ca: 'Almenys un caràcter especial',
2853
+ it: 'Almeno un carattere speciale',
2854
+ fr: 'Au moins un caractère spécial'
2855
+ },
2856
+ 'Passwords do not match.': {
2857
+ en: 'Passwords do not match.',
2858
+ es: 'Las contraseñas no coinciden.',
2859
+ de: 'Passwörter stimmen nicht überein.',
2860
+ pt: 'As senhas não coincidem.',
2861
+ ca: 'Les contrasenyes no coincideixen.',
2862
+ it: 'Le password non corrispondono.',
2863
+ fr: 'Les mots de passe ne correspondent pas.'
2864
+ },
2865
+ 'Password is required': {
2866
+ en: 'Password is required',
2867
+ es: 'Se requiere contraseña',
2868
+ de: 'Passwort ist erforderlich',
2869
+ pt: 'Senha é necessária',
2870
+ ca: 'Es requereix contrasenya',
2871
+ it: 'La password è obbligatoria',
2872
+ fr: 'Le mot de passe est requis'
2873
+ },
2874
+ 'Old password is required.': {
2875
+ en: 'Old password is required.',
2876
+ es: 'Se requiere contraseña antigua.',
2877
+ de: 'Altes Passwort ist erforderlich.',
2878
+ pt: 'Senha antiga é necessária.',
2879
+ ca: 'Es requereix contrasenya antiga.',
2880
+ it: 'La vecchia password è obbligatoria.',
2881
+ fr: 'Ancien mot de passe requis.'
2882
+ }
2883
+ }, _LOGIN_DICTIONARY["Passwords do not match."] = {
2884
+ en: 'Passwords do not match.',
2885
+ es: 'Las contraseñas no coinciden.',
2886
+ de: 'Passwörter stimmen nicht überein.',
2887
+ pt: 'As senhas não coincidem.',
2888
+ ca: 'Les contrasenyes no coincideixen.',
2889
+ it: 'Le password non corrispondono.',
2890
+ fr: 'Les mots de passe ne correspondent pas.'
2891
+ }, _LOGIN_DICTIONARY);
2892
+
2893
+ function _catch$6(body, recover) {
2894
+ try {
2895
+ var result = body();
2896
+ } catch (e) {
2897
+ return recover(e);
2801
2898
  }
2802
- function selectCell(lane, date) {
2803
- if (onSelectCell) onSelectCell(lane, date);
2899
+ if (result && result.then) {
2900
+ return result.then(void 0, recover);
2804
2901
  }
2805
- function showThisWeek() {
2806
- var element = thisMondayElement.current;
2807
- //const element = document.querySelector(".thisMonday")
2808
- console.log("Show this week", element);
2809
- if (element) element.scrollIntoView({
2810
- behavior: 'smooth',
2811
- block: 'start',
2812
- inline: 'start'
2902
+ return result;
2903
+ }
2904
+ var API_URL = typeof process !== 'undefined' ? process.env.REACT_APP_API : window.API;
2905
+ var http = HTTPClient(window.API || API_URL, Session);
2906
+
2907
+ /**
2908
+ * LOGIN_API
2909
+ */
2910
+ var LOGIN_API = {
2911
+ /**
2912
+ * Change Password
2913
+ * Request API to change user password
2914
+ *
2915
+ * @param {*} id
2916
+ * @param {*} form
2917
+ * @returns
2918
+ *
2919
+ * PATCH /users/:id
2920
+ * payload: { old_Password, new_Password }
2921
+ *
2922
+ */
2923
+ changePassword: function changePassword(id, form) {
2924
+ var body = JSON.stringify(form);
2925
+ return http.PATCH("/users/" + id, body);
2926
+ },
2927
+ /**
2928
+ * Forget user password
2929
+ * Request API to send a message to user email with a link to reset password
2930
+ *
2931
+ * @param {*} email
2932
+ * @returns
2933
+ *
2934
+ * POST /users/forget
2935
+ * payload: { email }
2936
+ */
2937
+ forgetUserPassword: function forgetUserPassword(email) {
2938
+ var body = JSON.stringify({
2939
+ email: email
2813
2940
  });
2814
- }
2815
- var period = React.useMemo(function () {
2816
- var start = ranges(from, "YYYY-MM-DD");
2817
- var end = ranges(to, "YYYY-MM-DD");
2818
- var range = ranges.range(start, end);
2819
- var period = Array.from(range.by("day")).map(function (m) {
2820
- return {
2821
- year: m.year(),
2822
- month: m.month(),
2823
- day: m.date(),
2824
- moment: m
2825
- };
2941
+ return http.POST("/users/forget", body);
2942
+ },
2943
+ /**
2944
+ * Reset user password
2945
+ * Request API to reset user password
2946
+ *
2947
+ * @param {*} token
2948
+ * @param {*} password
2949
+ * @returns
2950
+ *
2951
+ * POST /users/assign
2952
+ * payload: { token, password }
2953
+ */
2954
+ resetUserPassword: function resetUserPassword(token, password) {
2955
+ var body = JSON.stringify({
2956
+ token: token,
2957
+ password: password
2826
2958
  });
2827
- return period;
2828
- }, [from, to]);
2829
- var label = /*#__PURE__*/React__default["default"].createElement(Text, {
2830
- use: "headline6"
2831
- }, title);
2832
- return /*#__PURE__*/React__default["default"].createElement("div", {
2833
- className: "planner-box"
2834
- }, navigation ? /*#__PURE__*/React__default["default"].createElement(Header, {
2835
- title: label
2836
- }, "\xA0\xA0", /*#__PURE__*/React__default["default"].createElement(Button, {
2837
- label: "Esta Semana",
2838
- outlined: true,
2839
- action: showThisWeek
2840
- }), /*#__PURE__*/React__default["default"].createElement(Icon, {
2841
- icon: "chevron_right",
2842
- clickable: true,
2843
- action: next
2844
- }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2845
- id: "to",
2846
- type: "date",
2847
- label: "Hasta",
2848
- value: to,
2849
- onChange: function onChange(id, value) {
2850
- return setTo(value);
2959
+ return http.POST("/users/assign", body);
2960
+ }
2961
+ };
2962
+
2963
+ /**
2964
+ * LOGIN_CONTEXT
2965
+ */
2966
+ var LOGIN_CONTEXT = {
2967
+ /**
2968
+ * Change user password
2969
+ *
2970
+ * @param {*} user
2971
+ * @param {*} old_Password
2972
+ * @param {*} new_Password
2973
+ */
2974
+ changeUserPassword: function changeUserPassword(user, old_Password, new_Password) {
2975
+ try {
2976
+ return Promise.resolve(_catch$6(function () {
2977
+ return Promise.resolve(LOGIN_API.changePassword(user, {
2978
+ old_Password: old_Password,
2979
+ new_Password: new_Password
2980
+ })).then(function (response) {
2981
+ console.log("changeUserPassword", response);
2982
+ });
2983
+ }, function (error) {
2984
+ console.log("changeUserPassword error", error);
2985
+ throw error;
2986
+ }));
2987
+ } catch (e) {
2988
+ return Promise.reject(e);
2851
2989
  }
2852
- }), /*#__PURE__*/React__default["default"].createElement("div", {
2853
- className: "expand"
2854
- }), /*#__PURE__*/React__default["default"].createElement(DropDown, {
2855
- id: "ranges",
2856
- label: "Rango",
2857
- options: DATE_RANGE,
2858
- value: dateRange,
2859
- onChange: function onChange(id, value) {
2860
- return setDateRange(value);
2990
+ },
2991
+ /**
2992
+ * Unlock user
2993
+ *
2994
+ * @param {*} id
2995
+ */
2996
+ unlockUser: function unlockUser(id) {
2997
+ try {
2998
+ return Promise.resolve(_catch$6(function () {
2999
+ return Promise.resolve(API.changePassword(id, {
3000
+ unlock: true
3001
+ })).then(function () {});
3002
+ }, function (error) {
3003
+ console.log("unblockUser error", error);
3004
+ throw error;
3005
+ }));
3006
+ } catch (e) {
3007
+ return Promise.reject(e);
2861
3008
  }
2862
- }), /*#__PURE__*/React__default["default"].createElement("div", {
2863
- className: "expand"
2864
- }), /*#__PURE__*/React__default["default"].createElement(TextField, {
2865
- id: "from",
2866
- type: "date",
2867
- label: "Desde",
2868
- value: from,
2869
- onChange: function onChange(id, value) {
2870
- return setFrom(value);
3009
+ },
3010
+ /**
3011
+ * Forget user password
3012
+ *
3013
+ * @param {*} email
3014
+ */
3015
+ forgetUserPassword: function forgetUserPassword(email) {
3016
+ try {
3017
+ return Promise.resolve(_catch$6(function () {
3018
+ return Promise.resolve(API.forgetUserPassword(email)).then(function () {});
3019
+ }, function (error) {
3020
+ console.log("forgetUserPassword error", error);
3021
+ throw error;
3022
+ }));
3023
+ } catch (e) {
3024
+ return Promise.reject(e);
2871
3025
  }
2872
- }), /*#__PURE__*/React__default["default"].createElement(Icon, {
2873
- icon: "chevron_left",
2874
- clickable: true,
2875
- action: prev
2876
- })) : null, /*#__PURE__*/React__default["default"].createElement("main", {
2877
- className: "planner"
2878
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2879
- className: "column0"
2880
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2881
- className: "column-header"
2882
- }), lanes.map(function (lane) {
2883
- return /*#__PURE__*/React__default["default"].createElement("div", {
2884
- className: "row-header"
2885
- }, lane.label);
2886
- })), /*#__PURE__*/React__default["default"].createElement("div", {
2887
- className: "rows"
2888
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2889
- className: "row row0"
2890
- }, period.map(function (date, index) {
2891
- var first = index === 0 || date.day === 1 ? "first" : "";
2892
- return /*#__PURE__*/React__default["default"].createElement("div", {
2893
- className: "column-header"
2894
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2895
- className: "month-header " + first
2896
- }, /*#__PURE__*/React__default["default"].createElement(Text, {
2897
- use: "overline"
2898
- }, date.moment.format("MMM"))));
2899
- })), /*#__PURE__*/React__default["default"].createElement("div", {
2900
- className: "row row1"
2901
- }, period.map(function (date) {
2902
- var isWekend = [0, 6].includes(date.moment.day());
2903
- var weekend = isWekend ? "weekend" : "";
2904
- var thisWeek = moment__default["default"]().startOf('week').isSame(date.moment, "week") ? "thisWeek" : "";
2905
- var today = moment__default["default"]();
2906
- var weekStart = today.clone().startOf('week');
2907
- var isThisMonday = date.moment.isSame(weekStart);
2908
- return /*#__PURE__*/React__default["default"].createElement("div", {
2909
- key: "column-" + date.moment.dayOfYear(),
2910
- id: isThisMonday ? "thisMonday" : "",
2911
- className: "column-header",
2912
- ref: isThisMonday ? thisMondayElement : null
2913
- }, /*#__PURE__*/React__default["default"].createElement("div", {
2914
- className: "date-header " + weekend + " " + thisWeek,
2915
- ref: isThisMonday ? gotoMonday : null
2916
- }, /*#__PURE__*/React__default["default"].createElement(Text, {
2917
- use: "headline6"
2918
- }, date.moment.format("DD")), "\xA0", /*#__PURE__*/React__default["default"].createElement(Text, {
2919
- use: "caption"
2920
- }, date.moment.format("ddd"))));
2921
- })), lanes.map(function (lane) {
2922
- return /*#__PURE__*/React__default["default"].createElement(PlannerRow, {
2923
- key: lane.id,
2924
- lane: lane,
2925
- events: events,
2926
- period: period,
2927
- onSelectCell: selectCell,
2928
- onChange: onChange
2929
- });
2930
- }))));
3026
+ },
3027
+ /**
3028
+ * Reset Password
3029
+ *
3030
+ * @param {*} token
3031
+ * @param {*} password
3032
+ * @param {*} onError
3033
+ * @param {*} onSuccess
3034
+ */
3035
+ resetUserPassword: function resetUserPassword(token, password, onError, onSuccess) {
3036
+ try {
3037
+ var _temp = _catch$6(function () {
3038
+ return Promise.resolve(API.resetUserPassword(token, password)).then(function () {
3039
+ onSuccess();
3040
+ });
3041
+ }, function (error) {
3042
+ onError(error);
3043
+ });
3044
+ return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
3045
+ } catch (e) {
3046
+ return Promise.reject(e);
3047
+ }
3048
+ }
2931
3049
  };
2932
3050
 
2933
- /**
2934
- * Planner Row
2935
- */
2936
- var PlannerRow = function PlannerRow(props) {
2937
- var lane = props.lane,
2938
- _props$events = props.events,
2939
- events = _props$events === void 0 ? [] : _props$events,
2940
- period = props.period,
2941
- onSelectCell = props.onSelectCell,
2942
- onChange = props.onChange;
2943
- var rowEvents = events.filter(function (event) {
2944
- return event.lane === lane.id;
2945
- });
2946
- function change(data) {
2947
- if (onChange) onChange(data);
2948
- }
2949
- return /*#__PURE__*/React__default["default"].createElement("div", {
2950
- className: "row"
2951
- }, period.map(function (date) {
2952
- var slotDate = new Date(date.year, date.month, date.day);
2953
- slotDate.setHours(0, 0, 0);
2954
- var cellEvents = rowEvents.filter(function (event) {
2955
- var eventDate = new Date(event.date);
2956
- eventDate.setHours(0, 0, 0);
2957
- return eventDate.getTime() === slotDate.getTime();
2958
- });
2959
- return /*#__PURE__*/React__default["default"].createElement(PlannerCell, {
2960
- key: lane.id + "-" + slotDate.toString(),
2961
- lane: lane,
2962
- date: date,
2963
- events: cellEvents,
2964
- onSelect: onSelectCell,
2965
- onDrop: change
2966
- });
2967
- }));
2968
- };
3051
+ var SCROLL_SENSITIVITY = 0.0005;
3052
+ var MAX_ZOOM = 5;
3053
+ var MIN_ZOOM = 0.1;
3054
+ var ImageViewer = function ImageViewer(_ref) {
3055
+ var image = _ref.image;
3056
+ var _useState = React.useState({
3057
+ x: 0,
3058
+ y: 0
3059
+ }),
3060
+ offset = _useState[0],
3061
+ setOffset = _useState[1];
3062
+ var _useState2 = React.useState(1),
3063
+ zoom = _useState2[0],
3064
+ setZoom = _useState2[1];
3065
+ var _useState3 = React.useState(false),
3066
+ draggind = _useState3[0],
3067
+ setDragging = _useState3[1];
3068
+ var touch = React.useRef({
3069
+ x: 0,
3070
+ y: 0
3071
+ });
3072
+ var canvasRef = React.useRef(null);
3073
+ var containerRef = React.useRef(null);
3074
+ var observer = React.useRef(null);
3075
+ var background = React.useMemo(function () {
3076
+ return new Image();
3077
+ }, [image]);
3078
+ var clamp = function clamp(num, min, max) {
3079
+ return Math.min(Math.max(num, min), max);
3080
+ };
3081
+ var handleWheel = function handleWheel(event) {
3082
+ var deltaY = event.deltaY;
3083
+ if (!draggind) {
3084
+ setZoom(function (zoom) {
3085
+ return clamp(zoom + deltaY * SCROLL_SENSITIVITY * -1, MIN_ZOOM, MAX_ZOOM);
3086
+ });
3087
+ }
3088
+ };
3089
+ var handleMouseMove = function handleMouseMove(event) {
3090
+ if (draggind) {
3091
+ var _touch$current = touch.current,
3092
+ x = _touch$current.x,
3093
+ y = _touch$current.y;
3094
+ var clientX = event.clientX,
3095
+ clientY = event.clientY;
3096
+ setOffset({
3097
+ x: offset.x + (x - clientX),
3098
+ y: offset.y + (y - clientY)
3099
+ });
3100
+ touch.current = {
3101
+ x: clientX,
3102
+ y: clientY
3103
+ };
3104
+ }
3105
+ };
3106
+ var handleMouseDown = function handleMouseDown(event) {
3107
+ var clientX = event.clientX,
3108
+ clientY = event.clientY;
3109
+ touch.current = {
3110
+ x: clientX,
3111
+ y: clientY
3112
+ };
3113
+ setDragging(true);
3114
+ };
3115
+ var handleMouseUp = function handleMouseUp() {
3116
+ return setDragging(false);
3117
+ };
3118
+ var draw = function draw() {
3119
+ if (canvasRef.current) {
3120
+ var _canvasRef$current = canvasRef.current,
3121
+ width = _canvasRef$current.width,
3122
+ height = _canvasRef$current.height;
3123
+ var context = canvasRef.current.getContext("2d");
3124
+
3125
+ // Set canvas dimensions
3126
+ canvasRef.current.width = width;
3127
+ canvasRef.current.height = height;
2969
3128
 
2970
- /**
2971
- * Planner Cell
2972
- */
2973
- var PlannerCell = function PlannerCell(_ref2) {
2974
- var lane = _ref2.lane,
2975
- events = _ref2.events,
2976
- date = _ref2.date,
2977
- onSelect = _ref2.onSelect,
2978
- onDrop = _ref2.onDrop;
2979
- var _useState4 = React.useState(false),
2980
- dragOver = _useState4[0],
2981
- setDragOver = _useState4[1];
2982
- function select() {
2983
- if (onSelect) onSelect(lane, date.moment.format("YYYY-MM-DD"));
2984
- }
2985
- function onDragOver(event) {
2986
- if (!dragOver) setDragOver(true);
2987
- event.stopPropagation();
2988
- event.preventDefault();
2989
- }
2990
- function onDragLeave(event) {
2991
- setDragOver(false);
2992
- event.stopPropagation();
2993
- event.preventDefault();
2994
- }
2995
- function drop(event) {
2996
- event.stopPropagation();
2997
- event.preventDefault();
2998
- var id = event.dataTransfer.getData("text");
2999
- if (onDrop) onDrop({
3000
- id: id,
3001
- lane: lane.id,
3002
- date: date.moment.format("YYYY-MM-DD")
3129
+ // Clear canvas and scale it
3130
+ context.translate(-offset.x, -offset.y);
3131
+ context.scale(zoom, zoom);
3132
+ context.clearRect(0, 0, width, height);
3133
+
3134
+ // Make sure we're zooming to the center
3135
+ var x = (context.canvas.width / zoom - background.width) / 2;
3136
+ var y = (context.canvas.height / zoom - background.height) / 2;
3137
+
3138
+ // Draw image
3139
+ context.drawImage(background, x, y);
3140
+ }
3141
+ };
3142
+ React.useEffect(function () {
3143
+ observer.current = new ResizeObserver(function (entries) {
3144
+ entries.forEach(function (_ref2) {
3145
+ var target = _ref2.target;
3146
+ var width = background.width,
3147
+ height = background.height;
3148
+ // If width of the container is smaller than image, scale image down
3149
+ if (target.clientWidth < width) {
3150
+ // Calculate scale
3151
+ var scale = target.clientWidth / width;
3152
+
3153
+ // Redraw image
3154
+ canvasRef.current.width = width * scale;
3155
+ canvasRef.current.height = height * scale;
3156
+ canvasRef.current.getContext("2d").drawImage(background, 0, 0, width * scale, height * scale);
3157
+ }
3158
+ });
3003
3159
  });
3004
- setDragOver(false);
3005
- }
3006
- var isWekend = [0, 6].includes(date.moment.day());
3007
- var weekend = isWekend ? "weekend" : "";
3008
- var today = moment__default["default"]();
3009
- var weekStart = today.clone().startOf('week');
3010
- var thisMonday = date.moment.isSame(weekStart) ? "thisMonday" : "";
3011
- var dragOverStyle = dragOver ? "drag-over" : "";
3160
+ observer.current.observe(containerRef.current);
3161
+ return function () {
3162
+ return observer.current.unobserve(containerRef.current);
3163
+ };
3164
+ }, []);
3165
+ React.useEffect(function () {
3166
+ background.src = image;
3167
+ if (canvasRef.current) {
3168
+ background.onload = function () {
3169
+ // Get the image dimensions
3170
+ var width = background.width,
3171
+ height = background.height;
3172
+ canvasRef.current.width = width;
3173
+ canvasRef.current.height = height;
3174
+
3175
+ // Set image as background
3176
+ canvasRef.current.getContext("2d").drawImage(background, 0, 0);
3177
+ };
3178
+ }
3179
+ }, [background]);
3180
+ React.useEffect(function () {
3181
+ draw();
3182
+ }, [zoom, offset]);
3012
3183
  return /*#__PURE__*/React__default["default"].createElement("div", {
3013
- className: "cell " + thisMonday + " " + weekend + " " + dragOverStyle,
3014
- onDragOver: onDragOver,
3015
- onDragLeave: onDragLeave,
3016
- onDrop: drop,
3017
- onClick: select
3018
- }, events.map(function (event) {
3019
- var _event$Renderer = event.Renderer,
3020
- Renderer = _event$Renderer === void 0 ? EventCard : _event$Renderer;
3021
- return /*#__PURE__*/React__default["default"].createElement(Renderer, {
3022
- key: event.id,
3023
- event: event
3024
- });
3184
+ className: "image-viewer",
3185
+ ref: containerRef
3186
+ }, /*#__PURE__*/React__default["default"].createElement("canvas", {
3187
+ onMouseDown: handleMouseDown,
3188
+ onMouseUp: handleMouseUp,
3189
+ onWheel: handleWheel,
3190
+ onMouseMove: handleMouseMove,
3191
+ ref: canvasRef
3025
3192
  }));
3026
3193
  };
3027
- var EventCard = function EventCard(props) {
3028
- var event = props.event;
3029
- var title = event.title,
3030
- color = event.color;
3031
- var style = {
3032
- backgroundColor: color,
3033
- color: "white"
3034
- };
3035
- return /*#__PURE__*/React__default["default"].createElement("div", {
3036
- draggable: "true",
3037
- className: "event-card",
3038
- style: style
3039
- }, title);
3040
- };
3041
3194
 
3042
3195
  /**
3043
- * Upload Area
3196
+ * Viewer
3044
3197
  */
3045
- var UploadArea = function UploadArea(props) {
3046
- var _props$label = props.label,
3047
- label = _props$label === void 0 ? 'Add file or drop file here...' : _props$label;
3048
- var areaElement = React.useRef();
3198
+ var Viewer = function Viewer(_ref) {
3199
+ var title = _ref.title,
3200
+ src = _ref.src,
3201
+ info = _ref.info,
3202
+ _ref$actions = _ref.actions,
3203
+ actions = _ref$actions === void 0 ? [] : _ref$actions,
3204
+ _ref$tools = _ref.tools,
3205
+ tools = _ref$tools === void 0 ? false : _ref$tools,
3206
+ onClose = _ref.onClose;
3049
3207
  var _useState = React.useState(false),
3050
- drag = _useState[0],
3051
- setDrag = _useState[1];
3052
- var resumable = props.resumable;
3053
- React.useEffect(function () {
3054
- if (resumable && areaElement) {
3055
- resumable.assignDrop(areaElement.current);
3056
- }
3057
- }, []);
3058
- var onDragOver = function onDragOver() {
3059
- setDrag(true);
3060
- };
3061
- var onDragLeave = function onDragLeave() {
3062
- setDrag(false);
3063
- };
3064
- var dragging = drag === true ? 'drag-over' : '';
3208
+ showDetails = _useState[0],
3209
+ setShowDetails = _useState[1];
3210
+ function toggleDetails() {
3211
+ setShowDetails(!showDetails);
3212
+ }
3213
+ var headerTitle = /*#__PURE__*/React__default["default"].createElement(Text$1, {
3214
+ use: "headline6"
3215
+ }, title);
3065
3216
  return /*#__PURE__*/React__default["default"].createElement("div", {
3066
- className: "upload-area6 " + dragging,
3067
- onDragOver: onDragOver,
3068
- onDragLeave: onDragLeave,
3069
- ref: areaElement
3070
- }, /*#__PURE__*/React__default["default"].createElement(UploadIcon, {
3071
- resumable: resumable
3072
- }), /*#__PURE__*/React__default["default"].createElement("label", null, label));
3217
+ className: "viewer"
3218
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
3219
+ icon: "view",
3220
+ title: headerTitle
3221
+ }, onClose ? /*#__PURE__*/React__default["default"].createElement(Icon, {
3222
+ icon: "close",
3223
+ clickable: true,
3224
+ action: onClose
3225
+ }) : null, showDetails ? '' : /*#__PURE__*/React__default["default"].createElement(Icon, {
3226
+ icon: "info",
3227
+ clickable: true,
3228
+ action: toggleDetails
3229
+ }), actions), /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement("div", {
3230
+ className: "resizer"
3231
+ }, /*#__PURE__*/React__default["default"].createElement("picture", null, /*#__PURE__*/React__default["default"].createElement(ImageViewer, {
3232
+ image: src
3233
+ })))), /*#__PURE__*/React__default["default"].createElement("aside", {
3234
+ className: "" + (showDetails ? 'open' : '')
3235
+ }, /*#__PURE__*/React__default["default"].createElement(Header, {
3236
+ title: "Detalles"
3237
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
3238
+ icon: "close",
3239
+ clickable: true,
3240
+ action: toggleDetails
3241
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, info)), tools ? /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
3242
+ clickable: true,
3243
+ icon: "zoom_out"
3244
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
3245
+ clickable: true,
3246
+ icon: "zoom_out_map"
3247
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
3248
+ clickable: true,
3249
+ icon: "zoom_in"
3250
+ })) : null);
3073
3251
  };
3074
3252
 
3075
3253
  /**
3076
- * Upload Icon
3254
+ * Kanban
3077
3255
  */
3078
- var UploadIcon = function UploadIcon(_ref) {
3079
- var _ref$icon = _ref.icon,
3080
- icon = _ref$icon === void 0 ? "folder_open" : _ref$icon,
3081
- resumable = _ref.resumable;
3082
- var iconElement = React.useRef();
3083
- React.useEffect(function () {
3084
- if (resumable && iconElement.current) {
3085
- resumable.assignBrowse(iconElement.current);
3086
- }
3087
- }, [iconElement]);
3256
+ var Kanban = function Kanban(_ref) {
3257
+ var children = _ref.children;
3258
+ var hasSwimlanes = React.useMemo(function () {
3259
+ var found = React__default["default"].Children.map(children, function (child) {
3260
+ if (child.type.name === KanbanSwimlane.name) {
3261
+ return child;
3262
+ }
3263
+ });
3264
+ return found.length > 0;
3265
+ });
3266
+ var style = hasSwimlanes ? "with-swimlanes" : "";
3088
3267
  return /*#__PURE__*/React__default["default"].createElement("div", {
3089
- className: "upload-icon",
3090
- ref: iconElement
3091
- }, /*#__PURE__*/React__default["default"].createElement(Icon, {
3092
- icon: icon,
3093
- clickable: true
3094
- }));
3095
- };
3096
-
3097
- var UPLOAD_STATES = {
3098
- IDLE: 0,
3099
- RUNNING: 1,
3100
- SUCCESS: 2,
3101
- ERROR: 3,
3102
- COMPLETED: 4
3268
+ className: "kanban " + style
3269
+ }, children);
3103
3270
  };
3104
-
3105
- /**
3106
- * Upload File
3107
- */
3108
- var UploadFile$1 = function UploadFile(_ref) {
3109
- var file = _ref.file;
3110
- var icon = file.icon,
3111
- name = file.name,
3112
- state = file.state,
3113
- progress = file.progress,
3114
- error = file.error;
3115
- return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
3116
- className: "upload-file"
3117
- }, icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
3118
- icon: icon
3119
- }) : null, /*#__PURE__*/React__default["default"].createElement("label", null, name), state === UPLOAD_STATES.RUNNING ? /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(LinearProgress, {
3120
- progress: progress
3121
- }), /*#__PURE__*/React__default["default"].createElement(Icon, {
3122
- icon: "close",
3123
- clickable: true
3124
- })) : '', state === UPLOAD_STATES.SUCCESS ? /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
3125
- icon: "done"
3126
- })) : '', state === UPLOAD_STATES.ERROR ? /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement("div", {
3127
- className: "error"
3128
- }, error), /*#__PURE__*/React__default["default"].createElement(Icon, {
3129
- icon: "error"
3130
- })) : ''));
3271
+ var KanbanHeader = function KanbanHeader(props) {
3272
+ var columns = props.columns;
3273
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3274
+ className: "kanban-header"
3275
+ }, columns.map(function (column, index) {
3276
+ var icon = column.icon,
3277
+ title = column.title,
3278
+ subtitle = column.subtitle,
3279
+ badge = column.badge;
3280
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3281
+ className: "kanban-column",
3282
+ key: index
3283
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
3284
+ icon: icon
3285
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
3286
+ className: "title"
3287
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
3288
+ use: "headline6"
3289
+ }, title), /*#__PURE__*/React__default["default"].createElement(Text$1, {
3290
+ className: "secondary-text",
3291
+ use: "body2"
3292
+ }, subtitle)), /*#__PURE__*/React__default["default"].createElement("div", {
3293
+ className: "badge"
3294
+ }, badge)));
3295
+ }));
3131
3296
  };
3297
+ var KanbanSwimlane = function KanbanSwimlane(_ref2) {
3298
+ var icon = _ref2.icon,
3299
+ title = _ref2.title,
3300
+ subtitle = _ref2.subtitle,
3301
+ badge = _ref2.badge,
3302
+ children = _ref2.children;
3303
+ var _useState = React.useState(true),
3304
+ unfold = _useState[0],
3305
+ setUnfold = _useState[1];
3132
3306
 
3133
- var UploadProgress = function UploadProgress(_ref) {
3134
- var _ref$files = _ref.files,
3135
- files = _ref$files === void 0 ? [] : _ref$files;
3136
- return /*#__PURE__*/React__default["default"].createElement("div", null, files.map(function (file) {
3137
- var f = {
3138
- icon: "description",
3139
- name: file.fileName,
3140
- progress: file.progress() * 100,
3141
- state: file.uploadState,
3142
- error: file.uploadError
3143
- };
3144
- return /*#__PURE__*/React__default["default"].createElement(UploadFile$1, {
3145
- key: f.name,
3146
- file: f
3307
+ // cahnge all children headless prop to true
3308
+ // if there is only one child
3309
+ if (children.length === 1) {
3310
+ children = React__default["default"].cloneElement(children, {
3311
+ headless: true
3147
3312
  });
3148
- }));
3313
+ } else {
3314
+ children = React__default["default"].Children.map(children, function (child) {
3315
+ return React__default["default"].cloneElement(child, {
3316
+ headless: true
3317
+ });
3318
+ });
3319
+ }
3320
+
3321
+ // log al children headless prop
3322
+ children.forEach(function (child) {
3323
+ console.log(child.props.headless);
3324
+ });
3325
+ function toggle() {
3326
+ setUnfold(!unfold);
3327
+ }
3328
+ var toggleIcon = unfold ? "unfold_less" : "unfold_more";
3329
+ var toggleStyle = unfold ? "unfold" : "fold";
3330
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3331
+ className: "kanban-swimlane"
3332
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
3333
+ icon: icon,
3334
+ size: "small"
3335
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
3336
+ className: "title"
3337
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
3338
+ use: "headline6"
3339
+ }, title, ":"), /*#__PURE__*/React__default["default"].createElement(Text$1, {
3340
+ className: "secondary-text",
3341
+ use: "body2"
3342
+ }, subtitle)), /*#__PURE__*/React__default["default"].createElement("div", {
3343
+ className: "badge"
3344
+ }, badge), /*#__PURE__*/React__default["default"].createElement(Icon, {
3345
+ icon: toggleIcon,
3346
+ clickable: true,
3347
+ action: toggle
3348
+ })), /*#__PURE__*/React__default["default"].createElement("main", {
3349
+ className: toggleStyle
3350
+ }, children));
3149
3351
  };
3150
3352
 
3151
3353
  /**
3152
- * Uploader
3354
+ * Kanban Column
3153
3355
  */
3154
- var Uploader = function Uploader(_ref) {
3155
- var icon = _ref.icon,
3156
- label = _ref.label,
3157
- _ref$view = _ref.view,
3158
- view = _ref$view === void 0 ? "area" : _ref$view,
3159
- target = _ref.target,
3160
- accept = _ref.accept,
3161
- _ref$simultaneousUplo = _ref.simultaneousUploads,
3162
- simultaneousUploads = _ref$simultaneousUplo === void 0 ? 1 : _ref$simultaneousUplo,
3163
- className = _ref.className,
3164
- onProgress = _ref.onProgress,
3165
- onSuccess = _ref.onSuccess,
3166
- onError = _ref.onError,
3167
- onComplete = _ref.onComplete;
3168
- var resumable = React.useMemo(function () {
3169
- var config = {
3170
- target: target,
3171
- chunkSize: 1 * 1024 * 1024,
3172
- simultaneousUploads: simultaneousUploads,
3173
- testChunks: false,
3174
- throttleProgressCallbacks: 1,
3175
- fileType: accept
3176
- };
3177
- var resumable = new ResumableJS__default["default"](config);
3178
- resumable.on('fileAdded', onFileAdded);
3179
- resumable.on('fileProgress', onFileProgress);
3180
- resumable.on('fileSuccess', onFileSuccess);
3181
- resumable.on('fileError', onFileError);
3182
- resumable.on('complete', onAllComplete);
3183
- return resumable;
3184
- }, []);
3185
- var _useState = React.useState(0),
3186
- setProgress = _useState[1];
3187
- var _useState2 = React.useState(UPLOAD_STATES.IDLE),
3188
- state = _useState2[0],
3189
- setState = _useState2[1];
3190
- var _useState3 = React.useState([]),
3191
- files = _useState3[0],
3192
- setFiles = _useState3[1];
3193
- function onFileAdded(file) {
3194
- files.push(file);
3195
- setFiles(files);
3196
- setState(UPLOAD_STATES.RUNNING);
3197
- resumable.upload();
3198
- }
3199
- function onFileProgress(file) {
3200
- file.uploadState = UPLOAD_STATES.RUNNING;
3201
- var progress = file.progress();
3202
- setProgress(progress);
3203
- if (onProgress) onProgress(files);
3204
- }
3205
- function onFileSuccess(file, message) {
3206
- file.uploadState = UPLOAD_STATES.SUCCESS;
3207
- if (onSuccess) onSuccess(file, message);
3208
- }
3209
- function onFileError(file, message) {
3210
- file.uploadState = UPLOAD_STATES.ERROR;
3211
- file.uploadError = message;
3212
- if (onError) onError(file, message);
3213
- }
3214
- function onAllComplete() {
3215
- setState(UPLOAD_STATES.COMPLETED);
3216
- if (onComplete) onComplete(files);
3217
- }
3218
- function renderView() {
3219
- switch (view) {
3220
- case "area":
3221
- return /*#__PURE__*/React__default["default"].createElement(UploadArea, {
3222
- resumable: resumable,
3223
- icon: icon,
3224
- label: label
3225
- });
3226
- case "icon":
3227
- return /*#__PURE__*/React__default["default"].createElement(UploadIcon, {
3228
- resumable: resumable,
3229
- icon: icon
3230
- });
3231
- default:
3232
- return /*#__PURE__*/React__default["default"].createElement(UploadArea, {
3233
- resumable: resumable,
3234
- icon: icon,
3235
- label: label
3236
- });
3237
- }
3356
+ var KanbanColumn = function KanbanColumn(_ref3) {
3357
+ var id = _ref3.id,
3358
+ actions = _ref3.actions,
3359
+ _ref3$headless = _ref3.headless,
3360
+ headless = _ref3$headless === void 0 ? false : _ref3$headless,
3361
+ icon = _ref3.icon,
3362
+ title = _ref3.title,
3363
+ subtitle = _ref3.subtitle,
3364
+ badge = _ref3.badge,
3365
+ children = _ref3.children,
3366
+ _ref3$minified = _ref3.minified,
3367
+ minified = _ref3$minified === void 0 ? false : _ref3$minified,
3368
+ _ref3$disabled = _ref3.disabled,
3369
+ disabled = _ref3$disabled === void 0 ? false : _ref3$disabled;
3370
+ var _useState2 = React.useState(minified),
3371
+ min = _useState2[0],
3372
+ setMin = _useState2[1];
3373
+ function toggle() {
3374
+ setMin(!min);
3238
3375
  }
3239
- return /*#__PURE__*/React__default["default"].createElement("div", {
3240
- className: "uploader " + className
3241
- }, state === UPLOAD_STATES.IDLE ? renderView() : /*#__PURE__*/React__default["default"].createElement(UploadProgress, {
3242
- files: files
3243
- }));
3376
+ return min ? /*#__PURE__*/React__default["default"].createElement("div", {
3377
+ className: "kanban-column " + id + " min"
3378
+ }, /*#__PURE__*/React__default["default"].createElement("main", null, title), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
3379
+ icon: "toggle_off",
3380
+ onIcon: "toggle_on",
3381
+ clickable: true,
3382
+ action: toggle
3383
+ }))) : /*#__PURE__*/React__default["default"].createElement("div", {
3384
+ className: "kanban-column " + id + " " + (disabled ? 'disabled' : '')
3385
+ }, headless ? "" : /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
3386
+ icon: icon
3387
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
3388
+ className: "title"
3389
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
3390
+ use: "headline6"
3391
+ }, title), /*#__PURE__*/React__default["default"].createElement(Text$1, {
3392
+ className: "secondary-text",
3393
+ use: "body2"
3394
+ }, subtitle)), /*#__PURE__*/React__default["default"].createElement("div", {
3395
+ className: "badge"
3396
+ }, badge)), /*#__PURE__*/React__default["default"].createElement("main", null, children), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
3397
+ icon: "toggle_off",
3398
+ onIcon: "toggle_on",
3399
+ clickable: true,
3400
+ action: toggle
3401
+ }), actions));
3244
3402
  };
3245
3403
 
3246
3404
  /**
3247
- * Page Context
3248
- */
3249
- var PageContext = React__default["default"].createContext({});
3250
-
3251
- /**
3252
- * Page Provider
3405
+ * Kanban Card
3253
3406
  */
3254
- var PageProvider = function PageProvider(_ref) {
3255
- var _ref$context = _ref.context,
3256
- context = _ref$context === void 0 ? {} : _ref$context,
3257
- children = _ref.children;
3258
- var _useState = React.useState(context),
3259
- pageCtx = _useState[0],
3260
- setPageCtx = _useState[1];
3261
- return /*#__PURE__*/React__default["default"].createElement(PageContext.Provider, {
3262
- value: [pageCtx, setPageCtx]
3407
+ var KanbanCard = function KanbanCard(_ref4) {
3408
+ var className = _ref4.className,
3409
+ color = _ref4.color,
3410
+ children = _ref4.children;
3411
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3412
+ className: "kanban-card " + className + " " + color
3263
3413
  }, children);
3264
3414
  };
3265
3415
 
3266
3416
  /**
3267
- * Page
3417
+ * Avatar
3268
3418
  */
3269
- var Page = function Page(props) {
3270
- var children = props.children,
3271
- _props$layout = props.layout,
3272
- layout = _props$layout === void 0 ? "simple" : _props$layout,
3273
- _props$context = props.context,
3274
- context = _props$context === void 0 ? {} : _props$context,
3275
- className = props.className;
3276
- return /*#__PURE__*/React__default["default"].createElement(PageProvider, {
3277
- context: context
3278
- }, /*#__PURE__*/React__default["default"].createElement("article", {
3279
- className: "page6 " + layout + " " + className
3280
- }, children));
3419
+ var Avatar = function Avatar(props) {
3420
+ var id = props.id,
3421
+ name = props.name,
3422
+ className = props.className,
3423
+ src = props.src,
3424
+ _props$size = props.size,
3425
+ size = _props$size === void 0 ? "small" : _props$size,
3426
+ _props$clickable = props.clickable,
3427
+ clickable = _props$clickable === void 0 ? false : _props$clickable,
3428
+ action = props.action;
3429
+ function click() {
3430
+ if (clickable) {
3431
+ action(id);
3432
+ }
3433
+ }
3434
+ var clickableStyle = clickable ? 'clickable' : '';
3435
+ var style = "avatar " + size + " " + clickableStyle + " " + className;
3436
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3437
+ className: style,
3438
+ onClick: click
3439
+ }, src ? /*#__PURE__*/React__default["default"].createElement("img", {
3440
+ src: src
3441
+ }) : /*#__PURE__*/React__default["default"].createElement("span", null, name));
3442
+ };
3443
+
3444
+ var WaitScreen = function WaitScreen() {
3445
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3446
+ className: "wait-screen"
3447
+ }, /*#__PURE__*/React__default["default"].createElement(CircularProgress, {
3448
+ size: "large"
3449
+ }));
3281
3450
  };
3282
3451
 
3452
+ moment__default["default"].locale('es');
3453
+ var moment = momentRange.extendMoment(moment__default["default"]);
3454
+
3283
3455
  /**
3284
- * Site Provider
3456
+ * Calendar
3285
3457
  */
3286
- var SiteProvider = function SiteProvider(_ref) {
3287
- var children = _ref.children,
3288
- siteLang = _ref.siteLang,
3289
- siteDictionary = _ref.siteDictionary;
3290
- var _useState = React.useState(siteLang),
3291
- lang = _useState[0],
3292
- setLang = _useState[1];
3293
- var _useState2 = React.useState(siteDictionary),
3294
- dictionary = _useState2[0],
3295
- setDictionary = _useState2[1];
3296
- var _useState3 = React.useState('max'),
3297
- sideNav = _useState3[0],
3298
- setSideNav = _useState3[1];
3299
- var _useState4 = React.useState(false),
3300
- showNav = _useState4[0],
3301
- setShowNav = _useState4[1];
3302
- var _useState5 = React.useState(null),
3303
- info = _useState5[0],
3304
- setInfo = _useState5[1];
3305
- var _useState6 = React.useState(false),
3306
- showConsole = _useState6[0],
3307
- setShowConsole = _useState6[1];
3308
- var _useState7 = React.useState([]),
3309
- consoleLines = _useState7[0],
3310
- setConsoleLines = _useState7[1];
3311
- var _useState8 = React.useState(),
3312
- page = _useState8[0],
3313
- setPage = _useState8[1];
3314
- var _useState9 = React.useState(),
3315
- dialog = _useState9[0],
3316
- setDialog = _useState9[1];
3317
- var _useState10 = React.useState(),
3318
- promptDialog = _useState10[0],
3319
- setPromptDialog = _useState10[1];
3320
- var _useState11 = React.useState(),
3321
- preview = _useState11[0],
3322
- setPreview = _useState11[1];
3323
- var _useState12 = React.useState(),
3324
- breadcrumb = _useState12[0],
3325
- setBreadcrumb = _useState12[1];
3326
- var value = {
3327
- lang: lang,
3328
- setLang: setLang,
3329
- dictionary: dictionary,
3330
- setDictionary: setDictionary,
3331
- translate: function translate(key) {
3332
- if (!key) return key;
3333
- if (dictionary === undefined) return key;
3334
- var term = dictionary[key];
3335
- return term ? term[lang] : key;
3336
- },
3337
- sideNav: sideNav,
3338
- setSideNav: setSideNav,
3339
- showNav: showNav,
3340
- setShowNav: setShowNav,
3341
- info: info,
3342
- openInfo: function openInfo(info) {
3343
- setInfo(info);
3344
- },
3345
- closeInfo: function closeInfo() {
3346
- setInfo(null);
3347
- },
3348
- consoleLines: consoleLines,
3349
- showConsole: showConsole,
3350
- toggleConsole: function toggleConsole() {
3351
- setShowConsole(!showConsole);
3352
- },
3353
- writeLog: function writeLog(line) {
3354
- var next = consoleLines.concat(line);
3355
- setConsoleLines(next);
3356
- },
3357
- clearLog: function clearLog() {
3358
- setConsoleLines([]);
3359
- },
3360
- breadcrumb: breadcrumb,
3361
- setBreadcrumb: setBreadcrumb,
3362
- page: page,
3363
- "goto": function goto(id) {
3364
- setPage(id);
3365
- },
3366
- dialog: dialog,
3367
- openDialog: function openDialog(dialog) {
3368
- setDialog(dialog);
3369
- },
3370
- closeDialog: function closeDialog() {
3371
- setDialog(null);
3372
- },
3373
- preview: preview,
3374
- openPreview: function openPreview(preview) {
3375
- setPreview(preview);
3376
- },
3377
- closePreview: function closePreview() {
3378
- setPreview(null);
3379
- },
3380
- confirm: function confirm(message) {
3381
- return window.confirm(message);
3382
- },
3383
- prompt: function prompt(message) {
3384
- return window.prompt(message);
3385
- },
3386
- promptDialog: promptDialog,
3387
- openPromptDialog: function openPromptDialog(dialog) {
3388
- setPromptDialog(dialog);
3389
- },
3390
- closePromptDialog: function closePromptDialog() {
3391
- setPromptDialog(null);
3392
- },
3393
- notify: function notify(_ref2) {
3394
- var title = _ref2.title,
3395
- body = _ref2.body,
3396
- _ref2$type = _ref2.type,
3397
- type = _ref2$type === void 0 ? "success" : _ref2$type,
3398
- _ref2$duration = _ref2.duration,
3399
- duration = _ref2$duration === void 0 ? 3000 : _ref2$duration,
3400
- onRemoval = _ref2.onRemoval;
3401
- reactNotificationsComponent.Store.addNotification({
3402
- title: title,
3403
- message: body,
3404
- type: type,
3405
- insert: "top",
3406
- container: "top-right",
3407
- animationIn: ["animate__animated", "animate__fadeIn"],
3408
- animationOut: ["animate__animated", "animate__fadeOut"],
3409
- dismiss: {
3410
- duration: duration,
3411
- onScreen: true
3412
- },
3413
- onRemoval: onRemoval
3414
- });
3458
+ var Calendar = function Calendar(props) {
3459
+ var _props$events = props.events,
3460
+ events = _props$events === void 0 ? [] : _props$events,
3461
+ children = props.children,
3462
+ onChange = props.onChange,
3463
+ onRange = props.onRange;
3464
+ var _useState = React.useState(props.range || "year"),
3465
+ range = _useState[0],
3466
+ setRange = _useState[1];
3467
+ function onChangeRange(range) {
3468
+ setRange(range);
3469
+ if (onRange) onRange(range);
3470
+ }
3471
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3472
+ className: "calendar"
3473
+ }, /*#__PURE__*/React__default["default"].createElement(CalendarRangeControl, {
3474
+ range: range,
3475
+ onChange: onChangeRange
3476
+ }), range === "year" && /*#__PURE__*/React__default["default"].createElement(YearCalendar, {
3477
+ events: events,
3478
+ onChange: onChange
3479
+ }, children), range === "month" && /*#__PURE__*/React__default["default"].createElement(MonthCalendar, {
3480
+ events: events,
3481
+ onChange: onChange,
3482
+ onRange: onChangeRange
3483
+ }, children));
3484
+ };
3485
+
3486
+ /**
3487
+ * CalendarRangeControl
3488
+ */
3489
+ var CalendarRangeControl = function CalendarRangeControl(props) {
3490
+ var range = props.range,
3491
+ onChange = props.onChange;
3492
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3493
+ className: "calendar-range-control"
3494
+ }, /*#__PURE__*/React__default["default"].createElement(Button, {
3495
+ label: "Year",
3496
+ outlined: range == "year",
3497
+ action: function action() {
3498
+ return onChange("year");
3415
3499
  }
3416
- };
3417
- return /*#__PURE__*/React__default["default"].createElement(SiteContext.Provider, {
3418
- value: value
3419
- }, children);
3500
+ }), /*#__PURE__*/React__default["default"].createElement(Button, {
3501
+ label: "Month",
3502
+ outlined: range == "month",
3503
+ action: function action() {
3504
+ return onChange("month");
3505
+ }
3506
+ }));
3420
3507
  };
3421
3508
 
3422
3509
  /**
3423
- * Site
3510
+ * MonthCalendar
3424
3511
  */
3425
- var Site = function Site(_ref3) {
3426
- var icon = _ref3.icon,
3427
- iconSrc = _ref3.iconSrc,
3428
- title = _ref3.title,
3429
- toolbar = _ref3.toolbar,
3430
- footer = _ref3.footer,
3431
- children = _ref3.children,
3432
- init = _ref3.init,
3433
- min = _ref3.min,
3434
- lang = _ref3.lang,
3435
- dictionary = _ref3.dictionary;
3436
- return /*#__PURE__*/React__default["default"].createElement(SiteProvider, {
3437
- siteLang: lang,
3438
- siteDictionary: dictionary
3439
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3440
- className: "site6"
3441
- }, /*#__PURE__*/React__default["default"].createElement(SiteHeader, {
3442
- icon: icon,
3443
- iconSrc: iconSrc,
3444
- title: title
3445
- }), /*#__PURE__*/React__default["default"].createElement(SiteToolBar, null, toolbar), /*#__PURE__*/React__default["default"].createElement(SiteMenu, {
3446
- iconSrc: iconSrc,
3447
- title: title,
3448
- min: min
3449
- }, children), /*#__PURE__*/React__default["default"].createElement(SitePage, {
3450
- init: init
3451
- }, children, /*#__PURE__*/React__default["default"].createElement(Page, {
3452
- id: "EMPTY"
3453
- }, "EMPTY")), /*#__PURE__*/React__default["default"].createElement(SiteAside, null), /*#__PURE__*/React__default["default"].createElement(SiteConsole, null), /*#__PURE__*/React__default["default"].createElement(SiteDialog, null), /*#__PURE__*/React__default["default"].createElement(SitePromptDialog, null), /*#__PURE__*/React__default["default"].createElement(SitePreview, null), /*#__PURE__*/React__default["default"].createElement(SiteNotifications, null), /*#__PURE__*/React__default["default"].createElement(SiteFooter, null, footer)));
3512
+ var MonthCalendar = function MonthCalendar(props) {
3513
+ var _props$events2 = props.events,
3514
+ events = _props$events2 === void 0 ? [] : _props$events2,
3515
+ children = props.children,
3516
+ onChange = props.onChange;
3517
+ var _useState2 = React.useState(),
3518
+ position = _useState2[0],
3519
+ setPosition = _useState2[1];
3520
+ React.useEffect(function () {
3521
+ var today = moment();
3522
+ setPosition(today);
3523
+ }, []);
3524
+ React.useEffect(function () {
3525
+ if (position && onChange) {
3526
+ var _firstDayOfMonth = position.clone().startOf('month');
3527
+ var _firstDayOfRange = _firstDayOfMonth.clone().startOf('isoweek');
3528
+ var _lastDayOfMonth = position.clone().endOf('month');
3529
+ var _lastDayOfRange = _lastDayOfMonth.clone().endOf('isoweek');
3530
+ var _range = moment.range(_firstDayOfRange, _lastDayOfRange);
3531
+ onChange(position, _range);
3532
+ }
3533
+ }, [position]);
3534
+ function next() {
3535
+ var next = position.clone().add(1, 'month');
3536
+ setPosition(next);
3537
+ }
3538
+ function prev() {
3539
+ var prev = position.clone().subtract(1, 'month');
3540
+ setPosition(prev);
3541
+ }
3542
+ function today() {
3543
+ var today = moment();
3544
+ setPosition(today);
3545
+ }
3546
+ if (!position) return "...";
3547
+ var monthName = position.format("MMMM");
3548
+ var year = position.format("YYYY");
3549
+ var firstDayOfMonth = position.clone().startOf('month');
3550
+ var firstDayOfRange = firstDayOfMonth.clone().startOf('isoweek');
3551
+ var lastDayOfMonth = position.clone().endOf('month');
3552
+ var lastDayOfRange = lastDayOfMonth.clone().endOf('isoweek');
3553
+ var range = moment.range(firstDayOfRange, lastDayOfRange);
3554
+ var days = Array.from(range.by('days'));
3555
+ var cells = days.map(function (day) {
3556
+ var eventsOfDay = events.filter(function (event) {
3557
+ var eventDay = moment(event.date);
3558
+ return eventDay.isSame(day, 'day');
3559
+ });
3560
+ var sameMonthStyle = day.isSame(moment(position), 'month') ? '' : 'other-month';
3561
+ return {
3562
+ day: day,
3563
+ events: eventsOfDay,
3564
+ sameMonthStyle: sameMonthStyle
3565
+ };
3566
+ });
3567
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3568
+ className: "month-calendar"
3569
+ }, /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement("label", null, " ", /*#__PURE__*/React__default["default"].createElement(Text$1, null, monthName), " ", year), /*#__PURE__*/React__default["default"].createElement(Button, {
3570
+ icon: "chevron_left",
3571
+ action: prev
3572
+ }), /*#__PURE__*/React__default["default"].createElement(Button, {
3573
+ label: "Today",
3574
+ outlined: true,
3575
+ action: today
3576
+ }), /*#__PURE__*/React__default["default"].createElement(Button, {
3577
+ icon: "chevron_right",
3578
+ action: next
3579
+ })), /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement("div", {
3580
+ className: "week-day-cell"
3581
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Mon")), /*#__PURE__*/React__default["default"].createElement("div", {
3582
+ className: "week-day-cell"
3583
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Tue")), /*#__PURE__*/React__default["default"].createElement("div", {
3584
+ className: "week-day-cell"
3585
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Wed")), /*#__PURE__*/React__default["default"].createElement("div", {
3586
+ className: "week-day-cell"
3587
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Thu")), /*#__PURE__*/React__default["default"].createElement("div", {
3588
+ className: "week-day-cell"
3589
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Fri")), /*#__PURE__*/React__default["default"].createElement("div", {
3590
+ className: "week-day-cell"
3591
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Sat")), /*#__PURE__*/React__default["default"].createElement("div", {
3592
+ className: "week-day-cell"
3593
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Sun"))), /*#__PURE__*/React__default["default"].createElement("main", null, cells.map(function (cell) {
3594
+ return /*#__PURE__*/React__default["default"].createElement(DayCell, {
3595
+ key: cell.day,
3596
+ cell: cell
3597
+ }, children);
3598
+ })));
3454
3599
  };
3455
- var SiteNotifications = function SiteNotifications() {
3456
- return /*#__PURE__*/React__default["default"].createElement(reactNotificationsComponent.ReactNotifications, null);
3600
+ var DayCell = function DayCell(props) {
3601
+ var _props$cell = props.cell,
3602
+ cell = _props$cell === void 0 ? [] : _props$cell,
3603
+ children = props.children;
3604
+ var day = cell.day,
3605
+ events = cell.events,
3606
+ sameMonthStyle = cell.sameMonthStyle;
3607
+ var todayStyle = day.isSame(moment(), 'day') ? 'today' : '';
3608
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3609
+ className: "day-cell " + todayStyle + " " + sameMonthStyle
3610
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, day.format("DD")), /*#__PURE__*/React__default["default"].createElement("main", null, events.map(function (event) {
3611
+ return /*#__PURE__*/React__default["default"].createElement(Event, {
3612
+ key: event.id,
3613
+ event: event
3614
+ }, children);
3615
+ })));
3457
3616
  };
3458
3617
 
3459
3618
  /**
3460
- * Site Header
3619
+ * Event
3461
3620
  */
3462
- var SiteHeader = function SiteHeader(props) {
3463
- var _props$icon = props.icon,
3464
- icon = _props$icon === void 0 ? "equalizer" : _props$icon,
3465
- iconSrc = props.iconSrc,
3466
- title = props.title;
3467
- return /*#__PURE__*/React__default["default"].createElement(Header, {
3468
- icon: icon,
3469
- iconSrc: iconSrc,
3470
- title: title
3471
- });
3621
+ var Event = function Event(props) {
3622
+ var event = props.event,
3623
+ children = props.children;
3624
+ if (children) {
3625
+ var element = React__default["default"].Children.toArray(children)[0];
3626
+ return React__default["default"].cloneElement(element, {
3627
+ event: event
3628
+ });
3629
+ } else {
3630
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3631
+ className: "event"
3632
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3633
+ className: "event-name"
3634
+ }, event.title));
3635
+ }
3472
3636
  };
3473
3637
 
3474
3638
  /**
3475
- * Site ToolBar
3639
+ * YearCalendar
3476
3640
  */
3477
- var SiteToolBar = function SiteToolBar(_ref4) {
3478
- var children = _ref4.children;
3479
- return /*#__PURE__*/React__default["default"].createElement("nav", null, children);
3641
+ var YearCalendar = function YearCalendar(props) {
3642
+ var _props$events3 = props.events,
3643
+ events = _props$events3 === void 0 ? [] : _props$events3,
3644
+ children = props.children,
3645
+ onChange = props.onChange;
3646
+ var _useState3 = React.useState(),
3647
+ position = _useState3[0],
3648
+ setPosition = _useState3[1];
3649
+ React.useEffect(function () {
3650
+ var today = moment();
3651
+ setPosition(today);
3652
+ }, []);
3653
+ React.useEffect(function () {
3654
+ if (position && onChange) {
3655
+ var _firstDayOfYear = position.clone().startOf('year');
3656
+ var firstDayOfRange = _firstDayOfYear.clone().startOf('isoweek');
3657
+ var _lastDayOfYear = position.clone().endOf('year');
3658
+ var lastDayOfRange = _lastDayOfYear.clone().endOf('isoweek');
3659
+ var range = moment.range(firstDayOfRange, lastDayOfRange);
3660
+ onChange(position, range);
3661
+ }
3662
+ }, [position]);
3663
+ function next() {
3664
+ var next = position.clone().add(1, 'year');
3665
+ setPosition(next);
3666
+ }
3667
+ function prev() {
3668
+ var prev = position.clone().subtract(1, 'year');
3669
+ setPosition(prev);
3670
+ }
3671
+ function today() {
3672
+ var today = moment();
3673
+ setPosition(today);
3674
+ }
3675
+ if (!position) return "...";
3676
+ var year = position.format("YYYY");
3677
+ var firstDayOfYear = moment(position).startOf('year');
3678
+ var lastDayOfYear = moment(position).endOf('year');
3679
+ var months = [];
3680
+ for (var currentMonth = moment(firstDayOfYear); currentMonth.isBefore(lastDayOfYear); currentMonth.add(1, 'month')) {
3681
+ months.push(moment(currentMonth));
3682
+ }
3683
+ var cells = months.map(function (month) {
3684
+ var firstDayOfMonth = month.clone().startOf('month');
3685
+ var firstDayOfRange = firstDayOfMonth.clone().startOf('isoweek');
3686
+ var lastDayOfMonth = month.clone().endOf('month');
3687
+ var lastDayOfRange = lastDayOfMonth.clone().endOf('isoweek');
3688
+ var range = moment.range(firstDayOfRange, lastDayOfRange);
3689
+ var days = Array.from(range.by('days'));
3690
+ var cells = days.map(function (day) {
3691
+ var eventsOfDay = events.filter(function (event) {
3692
+ var eventDay = moment(event.date);
3693
+ return eventDay.isSame(day, 'day');
3694
+ });
3695
+ var sameMonthStyle = day.isSame(moment(month), 'month') ? '' : 'other-month';
3696
+ return {
3697
+ day: day,
3698
+ events: eventsOfDay,
3699
+ sameMonthStyle: sameMonthStyle
3700
+ };
3701
+ });
3702
+ return {
3703
+ month: month,
3704
+ cells: cells
3705
+ };
3706
+ });
3707
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3708
+ className: "year-calendar"
3709
+ }, /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement("label", null, " ", /*#__PURE__*/React__default["default"].createElement(Text$1, null, year)), /*#__PURE__*/React__default["default"].createElement(Button, {
3710
+ icon: "chevron_left",
3711
+ action: prev
3712
+ }), /*#__PURE__*/React__default["default"].createElement(Button, {
3713
+ label: "Today",
3714
+ outlined: true,
3715
+ action: today
3716
+ }), /*#__PURE__*/React__default["default"].createElement(Button, {
3717
+ icon: "chevron_right",
3718
+ action: next
3719
+ })), /*#__PURE__*/React__default["default"].createElement("main", null, cells.map(function (cell) {
3720
+ return /*#__PURE__*/React__default["default"].createElement(MonthCell, {
3721
+ key: cell.month,
3722
+ cell: cell
3723
+ }, children);
3724
+ })));
3480
3725
  };
3481
3726
 
3482
3727
  /**
3483
- * Site Footer
3728
+ * MonthCell
3484
3729
  */
3485
- var SiteFooter = function SiteFooter(_ref5) {
3486
- var children = _ref5.children;
3487
- return /*#__PURE__*/React__default["default"].createElement("footer", null, children);
3730
+ var MonthCell = function MonthCell(props) {
3731
+ var _props$cell2 = props.cell,
3732
+ cell = _props$cell2 === void 0 ? [] : _props$cell2,
3733
+ children = props.children;
3734
+ var month = cell.month,
3735
+ cells = cell.cells;
3736
+ var monthName = month.format("MMMM");
3737
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3738
+ className: "month-cell"
3739
+ }, /*#__PURE__*/React__default["default"].createElement("nav", null, monthName), /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement("div", {
3740
+ className: "week-day-cell"
3741
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Mon")), /*#__PURE__*/React__default["default"].createElement("div", {
3742
+ className: "week-day-cell"
3743
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Tue")), /*#__PURE__*/React__default["default"].createElement("div", {
3744
+ className: "week-day-cell"
3745
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Wed")), /*#__PURE__*/React__default["default"].createElement("div", {
3746
+ className: "week-day-cell"
3747
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Thu")), /*#__PURE__*/React__default["default"].createElement("div", {
3748
+ className: "week-day-cell"
3749
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Fri")), /*#__PURE__*/React__default["default"].createElement("div", {
3750
+ className: "week-day-cell"
3751
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Sat")), /*#__PURE__*/React__default["default"].createElement("div", {
3752
+ className: "week-day-cell"
3753
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Sun"))), /*#__PURE__*/React__default["default"].createElement("main", null, cells.map(function (cell) {
3754
+ return /*#__PURE__*/React__default["default"].createElement(DayCell, {
3755
+ key: cell.day,
3756
+ cell: cell
3757
+ }, children);
3758
+ })));
3488
3759
  };
3489
3760
 
3490
- /**
3491
- * Site Aside
3492
- */
3493
- var SiteAside = function SiteAside() {
3494
- var context = React.useContext(SiteContext);
3495
- return context.info ? /*#__PURE__*/React__default["default"].createElement("aside", null, context.info) : '';
3496
- };
3761
+ var ranges = momentRange.extendMoment(moment__default["default"]);
3762
+ var DATE_RANGE = [{
3763
+ label: "Week",
3764
+ value: "week"
3765
+ }, {
3766
+ label: "Month",
3767
+ value: "month"
3768
+ }, {
3769
+ label: "Year",
3770
+ value: "year"
3771
+ }];
3497
3772
 
3498
3773
  /**
3499
- * SiteMenu
3774
+ * Planner
3500
3775
  */
3501
- var SiteMenu = function SiteMenu(_ref6) {
3502
- var iconSrc = _ref6.iconSrc,
3503
- title = _ref6.title,
3504
- children = _ref6.children,
3505
- min = _ref6.min;
3506
- var context = React.useContext(SiteContext);
3507
- var page = context.page,
3508
- sideNav = context.sideNav,
3509
- setSideNav = context.setSideNav,
3510
- showNav = context.showNav;
3511
- React.useEffect(function () {
3512
- if (min) context.setSideNav('min');
3776
+ var Planner = function Planner(_ref) {
3777
+ var title = _ref.title,
3778
+ _ref$events = _ref.events,
3779
+ events = _ref$events === void 0 ? [] : _ref$events,
3780
+ _ref$lanes = _ref.lanes,
3781
+ lanes = _ref$lanes === void 0 ? [] : _ref$lanes,
3782
+ _ref$navigation = _ref.navigation,
3783
+ navigation = _ref$navigation === void 0 ? true : _ref$navigation,
3784
+ onSelectCell = _ref.onSelectCell,
3785
+ focusEvent = _ref.focusEvent,
3786
+ _ref$config = _ref.config,
3787
+ config = _ref$config === void 0 ? {
3788
+ range: "year",
3789
+ from: "2022-01-01",
3790
+ to: "2022-12-30"
3791
+ } : _ref$config,
3792
+ onChange = _ref.onChange;
3793
+ var _useState = React.useState(config.range),
3794
+ dateRange = _useState[0],
3795
+ setDateRange = _useState[1];
3796
+ var _useState2 = React.useState(config.from),
3797
+ from = _useState2[0],
3798
+ setFrom = _useState2[1];
3799
+ var _useState3 = React.useState(config.to),
3800
+ to = _useState3[0],
3801
+ setTo = _useState3[1];
3802
+ var thisMondayElement = React.useRef(null);
3803
+ var gotoMonday = React.useCallback(function (node) {
3804
+ var element = node;
3805
+ if (element) element.scrollIntoView({
3806
+ behavior: 'smooth',
3807
+ block: 'start',
3808
+ inline: 'start'
3809
+ });
3513
3810
  }, []);
3514
- function toggle() {
3515
- var next = sideNav === 'max' ? 'min' : 'max';
3516
- setSideNav(next);
3811
+ React.useEffect(function () {
3812
+ var element = document.getElementById(focusEvent);
3813
+ if (element) element.scrollIntoView({
3814
+ behavior: 'smooth',
3815
+ block: 'center',
3816
+ inline: 'center'
3817
+ });
3818
+ }, [focusEvent]);
3819
+ React.useEffect(function () {
3820
+ var today = moment__default["default"]();
3821
+ var from_date = today.startOf(dateRange).format("YYYY-MM-DD");
3822
+ var to_date = today.endOf(dateRange).format("YYYY-MM-DD");
3823
+ setFrom(from_date);
3824
+ setTo(to_date);
3825
+ }, [dateRange]);
3826
+ function next() {
3827
+ var actual = moment__default["default"](from);
3828
+ var next = actual.add(1, dateRange);
3829
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
3830
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
3831
+ setFrom(from_date);
3832
+ setTo(to_date);
3517
3833
  }
3518
- var _goto = function _goto(id) {
3519
- context.setShowNav(false);
3520
- context["goto"](id);
3521
- };
3522
- var sections = children ? React.Children.toArray(children).reduce(function (sections, page) {
3523
- var section = page.props ? page.props.section : '...';
3524
- if (!sections[section]) sections[section] = [];
3525
- var _page$props = page.props,
3526
- id = _page$props.id,
3527
- icon = _page$props.icon,
3528
- title = _page$props.title;
3529
- if (title) sections[section].push({
3530
- id: id,
3531
- icon: icon,
3532
- title: title
3834
+ function prev() {
3835
+ var actual = moment__default["default"](from);
3836
+ var next = actual.subtract(1, dateRange);
3837
+ var from_date = next.startOf(dateRange).format("YYYY-MM-DD");
3838
+ var to_date = next.endOf(dateRange).format("YYYY-MM-DD");
3839
+ setFrom(from_date);
3840
+ setTo(to_date);
3841
+ }
3842
+ function selectCell(lane, date) {
3843
+ if (onSelectCell) onSelectCell(lane, date);
3844
+ }
3845
+ function showThisWeek() {
3846
+ var element = thisMondayElement.current;
3847
+ //const element = document.querySelector(".thisMonday")
3848
+ console.log("Show this week", element);
3849
+ if (element) element.scrollIntoView({
3850
+ behavior: 'smooth',
3851
+ block: 'start',
3852
+ inline: 'start'
3533
3853
  });
3534
- return sections;
3535
- }, {}) : {};
3536
- var style = sideNav === 'max' ? 'max' : 'min';
3537
- var toggleIcon = sideNav === 'max' ? 'chevron_left' : 'chevron_right';
3538
- var menutTitle = sideNav === 'max' ? title : '';
3539
- return /*#__PURE__*/React__default["default"].createElement("menu", {
3540
- className: style + " " + (showNav ? 'show' : '')
3541
- }, /*#__PURE__*/React__default["default"].createElement(Header, {
3542
- title: menutTitle,
3543
- iconSrc: iconSrc
3544
- }), /*#__PURE__*/React__default["default"].createElement("main", null, Object.keys(sections).map(function (title) {
3545
- return /*#__PURE__*/React__default["default"].createElement(React.Fragment, {
3546
- key: title
3547
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3548
- className: "section-title " + style
3549
- }, sideNav === "max" ? title : ''), sections[title].map(function (_ref7) {
3550
- var id = _ref7.id,
3551
- _ref7$icon = _ref7.icon,
3552
- icon = _ref7$icon === void 0 ? 'info' : _ref7$icon,
3553
- title = _ref7.title;
3554
- var styleItem = id === page ? 'selected' : '';
3555
- var titleTxt = context.translate(title);
3556
- return /*#__PURE__*/React__default["default"].createElement("div", {
3557
- className: "site-menu-item " + styleItem,
3558
- key: id,
3559
- onClick: function onClick() {
3560
- return _goto(id);
3561
- }
3562
- }, /*#__PURE__*/React__default["default"].createElement(Tooltip, {
3563
- text: title,
3564
- top: ".5rem",
3565
- left: "4.5rem"
3566
- }, /*#__PURE__*/React__default["default"].createElement(Icon, {
3567
- key: id,
3568
- icon: icon,
3569
- clickable: true,
3570
- action: function action() {
3571
- return _goto(id);
3572
- }
3573
- })), sideNav === 'max' ? /*#__PURE__*/React__default["default"].createElement("label", null, titleTxt) : null);
3574
- }), /*#__PURE__*/React__default["default"].createElement("div", {
3575
- className: "section-divider"
3576
- }));
3577
- })), /*#__PURE__*/React__default["default"].createElement("footer", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
3578
- icon: toggleIcon,
3854
+ }
3855
+ var period = React.useMemo(function () {
3856
+ var start = ranges(from, "YYYY-MM-DD");
3857
+ var end = ranges(to, "YYYY-MM-DD");
3858
+ var range = ranges.range(start, end);
3859
+ var period = Array.from(range.by("day")).map(function (m) {
3860
+ return {
3861
+ year: m.year(),
3862
+ month: m.month(),
3863
+ day: m.date(),
3864
+ moment: m
3865
+ };
3866
+ });
3867
+ return period;
3868
+ }, [from, to]);
3869
+ var label = /*#__PURE__*/React__default["default"].createElement(Text$1, {
3870
+ use: "headline6"
3871
+ }, title);
3872
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3873
+ className: "planner-box"
3874
+ }, navigation ? /*#__PURE__*/React__default["default"].createElement(Header, {
3875
+ title: label
3876
+ }, "\xA0\xA0", /*#__PURE__*/React__default["default"].createElement(Button, {
3877
+ label: "Esta Semana",
3878
+ outlined: true,
3879
+ action: showThisWeek
3880
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
3881
+ icon: "chevron_right",
3882
+ clickable: true,
3883
+ action: next
3884
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
3885
+ id: "to",
3886
+ type: "date",
3887
+ label: "Hasta",
3888
+ value: to,
3889
+ onChange: function onChange(id, value) {
3890
+ return setTo(value);
3891
+ }
3892
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
3893
+ className: "expand"
3894
+ }), /*#__PURE__*/React__default["default"].createElement(DropDown, {
3895
+ id: "ranges",
3896
+ label: "Rango",
3897
+ options: DATE_RANGE,
3898
+ value: dateRange,
3899
+ onChange: function onChange(id, value) {
3900
+ return setDateRange(value);
3901
+ }
3902
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
3903
+ className: "expand"
3904
+ }), /*#__PURE__*/React__default["default"].createElement(TextField, {
3905
+ id: "from",
3906
+ type: "date",
3907
+ label: "Desde",
3908
+ value: from,
3909
+ onChange: function onChange(id, value) {
3910
+ return setFrom(value);
3911
+ }
3912
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
3913
+ icon: "chevron_left",
3579
3914
  clickable: true,
3580
- action: toggle
3581
- })));
3915
+ action: prev
3916
+ })) : null, /*#__PURE__*/React__default["default"].createElement("main", {
3917
+ className: "planner"
3918
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3919
+ className: "column0"
3920
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3921
+ className: "column-header"
3922
+ }), lanes.map(function (lane) {
3923
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3924
+ className: "row-header"
3925
+ }, lane.label);
3926
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
3927
+ className: "rows"
3928
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3929
+ className: "row row0"
3930
+ }, period.map(function (date, index) {
3931
+ var first = index === 0 || date.day === 1 ? "first" : "";
3932
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3933
+ className: "column-header"
3934
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3935
+ className: "month-header " + first
3936
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
3937
+ use: "overline"
3938
+ }, date.moment.format("MMM"))));
3939
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
3940
+ className: "row row1"
3941
+ }, period.map(function (date) {
3942
+ var isWekend = [0, 6].includes(date.moment.day());
3943
+ var weekend = isWekend ? "weekend" : "";
3944
+ var thisWeek = moment__default["default"]().startOf('week').isSame(date.moment, "week") ? "thisWeek" : "";
3945
+ var today = moment__default["default"]();
3946
+ var weekStart = today.clone().startOf('week');
3947
+ var isThisMonday = date.moment.isSame(weekStart);
3948
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3949
+ key: "column-" + date.moment.dayOfYear(),
3950
+ id: isThisMonday ? "thisMonday" : "",
3951
+ className: "column-header",
3952
+ ref: isThisMonday ? thisMondayElement : null
3953
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3954
+ className: "date-header " + weekend + " " + thisWeek,
3955
+ ref: isThisMonday ? gotoMonday : null
3956
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
3957
+ use: "headline6"
3958
+ }, date.moment.format("DD")), "\xA0", /*#__PURE__*/React__default["default"].createElement(Text$1, {
3959
+ use: "caption"
3960
+ }, date.moment.format("ddd"))));
3961
+ })), lanes.map(function (lane) {
3962
+ return /*#__PURE__*/React__default["default"].createElement(PlannerRow, {
3963
+ key: lane.id,
3964
+ lane: lane,
3965
+ events: events,
3966
+ period: period,
3967
+ onSelectCell: selectCell,
3968
+ onChange: onChange
3969
+ });
3970
+ }))));
3582
3971
  };
3583
3972
 
3584
3973
  /**
3585
- * SitePage
3974
+ * Planner Row
3586
3975
  */
3587
- var SitePage = function SitePage(_ref8) {
3588
- var children = _ref8.children,
3589
- init = _ref8.init;
3590
- var context = React.useContext(SiteContext);
3591
- var page = context.page;
3592
- React.useEffect(function () {
3593
- if (init) {
3594
- context["goto"](init);
3595
- } else {
3596
- context["goto"]("EMPTY");
3597
- }
3598
- }, []);
3599
- return /*#__PURE__*/React__default["default"].createElement("main", null, React__default["default"].Children.toArray(children).filter(function (child) {
3600
- return child.props ? child.props.id === page : false;
3976
+ var PlannerRow = function PlannerRow(props) {
3977
+ var lane = props.lane,
3978
+ _props$events = props.events,
3979
+ events = _props$events === void 0 ? [] : _props$events,
3980
+ period = props.period,
3981
+ onSelectCell = props.onSelectCell,
3982
+ onChange = props.onChange;
3983
+ var rowEvents = events.filter(function (event) {
3984
+ return event.lane === lane.id;
3985
+ });
3986
+ function change(data) {
3987
+ if (onChange) onChange(data);
3988
+ }
3989
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3990
+ className: "row"
3991
+ }, period.map(function (date) {
3992
+ var slotDate = new Date(date.year, date.month, date.day);
3993
+ slotDate.setHours(0, 0, 0);
3994
+ var cellEvents = rowEvents.filter(function (event) {
3995
+ var eventDate = new Date(event.date);
3996
+ eventDate.setHours(0, 0, 0);
3997
+ return eventDate.getTime() === slotDate.getTime();
3998
+ });
3999
+ return /*#__PURE__*/React__default["default"].createElement(PlannerCell, {
4000
+ key: lane.id + "-" + slotDate.toString(),
4001
+ lane: lane,
4002
+ date: date,
4003
+ events: cellEvents,
4004
+ onSelect: onSelectCell,
4005
+ onDrop: change
4006
+ });
3601
4007
  }));
3602
4008
  };
3603
4009
 
3604
4010
  /**
3605
- * Site Dialog
4011
+ * Planner Cell
3606
4012
  */
3607
- var SiteDialog = function SiteDialog() {
3608
- var context = React.useContext(SiteContext);
3609
- return context.dialog ? context.dialog : '';
4013
+ var PlannerCell = function PlannerCell(_ref2) {
4014
+ var lane = _ref2.lane,
4015
+ events = _ref2.events,
4016
+ date = _ref2.date,
4017
+ onSelect = _ref2.onSelect,
4018
+ onDrop = _ref2.onDrop;
4019
+ var _useState4 = React.useState(false),
4020
+ dragOver = _useState4[0],
4021
+ setDragOver = _useState4[1];
4022
+ function select() {
4023
+ if (onSelect) onSelect(lane, date.moment.format("YYYY-MM-DD"));
4024
+ }
4025
+ function onDragOver(event) {
4026
+ if (!dragOver) setDragOver(true);
4027
+ event.stopPropagation();
4028
+ event.preventDefault();
4029
+ }
4030
+ function onDragLeave(event) {
4031
+ setDragOver(false);
4032
+ event.stopPropagation();
4033
+ event.preventDefault();
4034
+ }
4035
+ function drop(event) {
4036
+ event.stopPropagation();
4037
+ event.preventDefault();
4038
+ var id = event.dataTransfer.getData("text");
4039
+ if (onDrop) onDrop({
4040
+ id: id,
4041
+ lane: lane.id,
4042
+ date: date.moment.format("YYYY-MM-DD")
4043
+ });
4044
+ setDragOver(false);
4045
+ }
4046
+ var isWekend = [0, 6].includes(date.moment.day());
4047
+ var weekend = isWekend ? "weekend" : "";
4048
+ var today = moment__default["default"]();
4049
+ var weekStart = today.clone().startOf('week');
4050
+ var thisMonday = date.moment.isSame(weekStart) ? "thisMonday" : "";
4051
+ var dragOverStyle = dragOver ? "drag-over" : "";
4052
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4053
+ className: "cell " + thisMonday + " " + weekend + " " + dragOverStyle,
4054
+ onDragOver: onDragOver,
4055
+ onDragLeave: onDragLeave,
4056
+ onDrop: drop,
4057
+ onClick: select
4058
+ }, events.map(function (event) {
4059
+ var _event$Renderer = event.Renderer,
4060
+ Renderer = _event$Renderer === void 0 ? EventCard : _event$Renderer;
4061
+ return /*#__PURE__*/React__default["default"].createElement(Renderer, {
4062
+ key: event.id,
4063
+ event: event
4064
+ });
4065
+ }));
3610
4066
  };
3611
-
3612
- /**
3613
- * Site Promtp Dialog
3614
- */
3615
- var SitePromptDialog = function SitePromptDialog() {
3616
- var context = React.useContext(SiteContext);
3617
- return context.promptDialog ? context.promptDialog : '';
4067
+ var EventCard = function EventCard(props) {
4068
+ var event = props.event;
4069
+ var title = event.title,
4070
+ color = event.color;
4071
+ var style = {
4072
+ backgroundColor: color,
4073
+ color: "white"
4074
+ };
4075
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4076
+ draggable: "true",
4077
+ className: "event-card",
4078
+ style: style
4079
+ }, title);
3618
4080
  };
3619
4081
 
3620
4082
  /**
3621
- * Site Preview
4083
+ * Upload Area
3622
4084
  */
3623
- var SitePreview = function SitePreview() {
3624
- var context = React.useContext(SiteContext);
3625
- return context.preview ? /*#__PURE__*/React__default["default"].createElement("div", {
3626
- className: "site-preview"
3627
- }, context.preview) : '';
4085
+ var UploadArea = function UploadArea(props) {
4086
+ var _props$label = props.label,
4087
+ label = _props$label === void 0 ? 'Add file or drop file here...' : _props$label;
4088
+ var areaElement = React.useRef();
4089
+ var _useState = React.useState(false),
4090
+ drag = _useState[0],
4091
+ setDrag = _useState[1];
4092
+ var resumable = props.resumable;
4093
+ React.useEffect(function () {
4094
+ if (resumable && areaElement) {
4095
+ resumable.assignDrop(areaElement.current);
4096
+ }
4097
+ }, []);
4098
+ var onDragOver = function onDragOver() {
4099
+ setDrag(true);
4100
+ };
4101
+ var onDragLeave = function onDragLeave() {
4102
+ setDrag(false);
4103
+ };
4104
+ var dragging = drag === true ? 'drag-over' : '';
4105
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4106
+ className: "upload-area6 " + dragging,
4107
+ onDragOver: onDragOver,
4108
+ onDragLeave: onDragLeave,
4109
+ ref: areaElement
4110
+ }, /*#__PURE__*/React__default["default"].createElement(UploadIcon, {
4111
+ resumable: resumable
4112
+ }), /*#__PURE__*/React__default["default"].createElement("label", null, label));
3628
4113
  };
3629
4114
 
3630
4115
  /**
3631
- * Site Console
3632
- */
3633
- var SiteConsole = function SiteConsole() {
3634
- var context = React.useContext(SiteContext);
3635
- function clear() {
3636
- context.clearLog();
3637
- }
3638
- return context.showConsole ? /*#__PURE__*/React__default["default"].createElement("div", {
3639
- className: "site-console"
3640
- }, /*#__PURE__*/React__default["default"].createElement(Header, null, /*#__PURE__*/React__default["default"].createElement(Tabs, null, /*#__PURE__*/React__default["default"].createElement(Tab, {
3641
- label: "Console"
3642
- }))), /*#__PURE__*/React__default["default"].createElement("nav", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
3643
- icon: "clear_all",
3644
- size: "small",
3645
- clickable: true,
3646
- action: clear
3647
- })), /*#__PURE__*/React__default["default"].createElement("main", null, context.consoleLines.map(function (line, index) {
3648
- return /*#__PURE__*/React__default["default"].createElement("div", {
3649
- key: "log-" + index
3650
- }, line);
3651
- }))) : '';
4116
+ * Upload Icon
4117
+ */
4118
+ var UploadIcon = function UploadIcon(_ref) {
4119
+ var _ref$icon = _ref.icon,
4120
+ icon = _ref$icon === void 0 ? "folder_open" : _ref$icon,
4121
+ resumable = _ref.resumable;
4122
+ var iconElement = React.useRef();
4123
+ React.useEffect(function () {
4124
+ if (resumable && iconElement.current) {
4125
+ resumable.assignBrowse(iconElement.current);
4126
+ }
4127
+ }, [iconElement]);
4128
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4129
+ className: "upload-icon",
4130
+ ref: iconElement
4131
+ }, /*#__PURE__*/React__default["default"].createElement(Icon, {
4132
+ icon: icon,
4133
+ clickable: true
4134
+ }));
4135
+ };
4136
+
4137
+ var UPLOAD_STATES = {
4138
+ IDLE: 0,
4139
+ RUNNING: 1,
4140
+ SUCCESS: 2,
4141
+ ERROR: 3,
4142
+ COMPLETED: 4
3652
4143
  };
3653
4144
 
3654
4145
  /**
3655
- * Dialog
3656
- *
3657
- * <Dialog title={title} open={true} actions={actions}>
4146
+ * Upload File
3658
4147
  */
3659
- var Dialog = function Dialog(props) {
3660
- var site = React.useContext(SiteContext);
3661
- var icon = props.icon,
3662
- _props$title = props.title,
3663
- title = _props$title === void 0 ? "Dialog" : _props$title,
3664
- toolbar = props.toolbar,
3665
- children = props.children,
3666
- actions = props.actions,
3667
- className = props.className,
3668
- onClose = props.onClose,
3669
- _props$overlayCanClos = props.overlayCanClose,
3670
- overlayCanClose = _props$overlayCanClos === void 0 ? true : _props$overlayCanClos;
3671
- function overlayClose() {
3672
- if (overlayCanClose) {
3673
- close();
3674
- }
3675
- }
3676
- function close() {
3677
- if (onClose) onClose();
3678
- if (className === "prompt") {
3679
- site.closePromptDialog();
3680
- } else {
3681
- site.closeDialog();
3682
- }
3683
- }
4148
+ var UploadFile$1 = function UploadFile(_ref) {
4149
+ var file = _ref.file;
4150
+ var icon = file.icon,
4151
+ name = file.name,
4152
+ state = file.state,
4153
+ progress = file.progress,
4154
+ error = file.error;
3684
4155
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
3685
- className: "overlay " + className,
3686
- onMouseDown: overlayClose
3687
- }), /*#__PURE__*/React__default["default"].createElement("dialog", {
3688
- className: "dialog-panel " + className
3689
- }, /*#__PURE__*/React__default["default"].createElement("header", null, icon ? /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
4156
+ className: "upload-file"
4157
+ }, icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
3690
4158
  icon: icon
3691
- }) : null, /*#__PURE__*/React__default["default"].createElement(Text, null, title), toolbar), /*#__PURE__*/React__default["default"].createElement("main", null, children), /*#__PURE__*/React__default["default"].createElement("footer", null, actions)));
4159
+ }) : null, /*#__PURE__*/React__default["default"].createElement("label", null, name), state === UPLOAD_STATES.RUNNING ? /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(LinearProgress, {
4160
+ progress: progress
4161
+ }), /*#__PURE__*/React__default["default"].createElement(Icon, {
4162
+ icon: "close",
4163
+ clickable: true
4164
+ })) : '', state === UPLOAD_STATES.SUCCESS ? /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
4165
+ icon: "done"
4166
+ })) : '', state === UPLOAD_STATES.ERROR ? /*#__PURE__*/React__default["default"].createElement("main", null, /*#__PURE__*/React__default["default"].createElement("div", {
4167
+ className: "error"
4168
+ }, error), /*#__PURE__*/React__default["default"].createElement(Icon, {
4169
+ icon: "error"
4170
+ })) : ''));
4171
+ };
4172
+
4173
+ var UploadProgress = function UploadProgress(_ref) {
4174
+ var _ref$files = _ref.files,
4175
+ files = _ref$files === void 0 ? [] : _ref$files;
4176
+ return /*#__PURE__*/React__default["default"].createElement("div", null, files.map(function (file) {
4177
+ var f = {
4178
+ icon: "description",
4179
+ name: file.fileName,
4180
+ progress: file.progress() * 100,
4181
+ state: file.uploadState,
4182
+ error: file.uploadError
4183
+ };
4184
+ return /*#__PURE__*/React__default["default"].createElement(UploadFile$1, {
4185
+ key: f.name,
4186
+ file: f
4187
+ });
4188
+ }));
3692
4189
  };
3693
4190
 
3694
4191
  /**
3695
- * View
4192
+ * Uploader
3696
4193
  */
3697
- var View = function View(props) {
3698
- var id = props.id,
3699
- className = props.className,
3700
- icon = props.icon,
3701
- title = props.title,
3702
- toolbar = props.toolbar,
3703
- menu = props.menu,
3704
- info = props.info,
3705
- onClose = props.onClose,
3706
- _props$canCollapse = props.canCollapse,
3707
- canCollapse = _props$canCollapse === void 0 ? false : _props$canCollapse,
3708
- children = props.children;
3709
- var _useState = React.useState(true),
3710
- open = _useState[0],
3711
- setOpen = _useState[1];
3712
- function toggle() {
3713
- setOpen(!open);
4194
+ var Uploader = function Uploader(_ref) {
4195
+ var icon = _ref.icon,
4196
+ label = _ref.label,
4197
+ _ref$view = _ref.view,
4198
+ view = _ref$view === void 0 ? "area" : _ref$view,
4199
+ target = _ref.target,
4200
+ accept = _ref.accept,
4201
+ _ref$simultaneousUplo = _ref.simultaneousUploads,
4202
+ simultaneousUploads = _ref$simultaneousUplo === void 0 ? 1 : _ref$simultaneousUplo,
4203
+ className = _ref.className,
4204
+ onProgress = _ref.onProgress,
4205
+ onSuccess = _ref.onSuccess,
4206
+ onError = _ref.onError,
4207
+ onComplete = _ref.onComplete;
4208
+ var resumable = React.useMemo(function () {
4209
+ var config = {
4210
+ target: target,
4211
+ chunkSize: 1 * 1024 * 1024,
4212
+ simultaneousUploads: simultaneousUploads,
4213
+ testChunks: false,
4214
+ throttleProgressCallbacks: 1,
4215
+ fileType: accept
4216
+ };
4217
+ var resumable = new ResumableJS__default["default"](config);
4218
+ resumable.on('fileAdded', onFileAdded);
4219
+ resumable.on('fileProgress', onFileProgress);
4220
+ resumable.on('fileSuccess', onFileSuccess);
4221
+ resumable.on('fileError', onFileError);
4222
+ resumable.on('complete', onAllComplete);
4223
+ return resumable;
4224
+ }, []);
4225
+ var _useState = React.useState(0),
4226
+ setProgress = _useState[1];
4227
+ var _useState2 = React.useState(UPLOAD_STATES.IDLE),
4228
+ state = _useState2[0],
4229
+ setState = _useState2[1];
4230
+ var _useState3 = React.useState([]),
4231
+ files = _useState3[0],
4232
+ setFiles = _useState3[1];
4233
+ function onFileAdded(file) {
4234
+ files.push(file);
4235
+ setFiles(files);
4236
+ setState(UPLOAD_STATES.RUNNING);
4237
+ resumable.upload();
3714
4238
  }
3715
- function close() {
3716
- if (onClose) onClose();
4239
+ function onFileProgress(file) {
4240
+ file.uploadState = UPLOAD_STATES.RUNNING;
4241
+ var progress = file.progress();
4242
+ setProgress(progress);
4243
+ if (onProgress) onProgress(files);
3717
4244
  }
3718
- return /*#__PURE__*/React__default["default"].createElement("section", {
3719
- id: id,
3720
- className: "view " + className
3721
- }, /*#__PURE__*/React__default["default"].createElement("header", null, canCollapse ? /*#__PURE__*/React__default["default"].createElement(Icon, {
3722
- icon: "expand_more",
3723
- size: "small",
3724
- clickable: true,
3725
- action: toggle
3726
- }) : null, icon ? /*#__PURE__*/React__default["default"].createElement(Icon, {
3727
- icon: icon,
3728
- size: "small"
3729
- }) : null, title ? /*#__PURE__*/React__default["default"].createElement("label", null, title) : null, menu ? /*#__PURE__*/React__default["default"].createElement(MenuIcon, {
3730
- align: "alignRight"
3731
- }, menu) : null, onClose ? /*#__PURE__*/React__default["default"].createElement(Icon, {
3732
- icon: "close",
3733
- size: "small",
3734
- clickable: true,
3735
- action: close
3736
- }) : null), toolbar ? /*#__PURE__*/React__default["default"].createElement("nav", null, toolbar) : null, open ? /*#__PURE__*/React__default["default"].createElement("main", null, children) : null, info ? /*#__PURE__*/React__default["default"].createElement("footer", null, info) : null);
3737
- };
3738
- var TabbedView = function TabbedView(props) {
3739
- var title = props.title,
3740
- className = props.className,
3741
- selected = props.selected;
3742
- var _useState2 = React.useState(0),
3743
- tab = _useState2[0],
3744
- setTab = _useState2[1];
3745
- var children = React__default["default"].Children.toArray(props.children);
3746
- var tabs = children.map(function (child) {
3747
- return /*#__PURE__*/React__default["default"].createElement(Tab, {
3748
- key: child.props.label,
3749
- label: child.props.label
3750
- });
3751
- });
3752
- React.useEffect(function () {
3753
- if (selected && selected !== tab) setTab(selected);
3754
- }, [selected]);
3755
- var toolbar = /*#__PURE__*/React__default["default"].createElement(Tabs, {
3756
- selected: tab,
3757
- onChange: function onChange(tab) {
3758
- return setTab(tab);
4245
+ function onFileSuccess(file, message) {
4246
+ file.uploadState = UPLOAD_STATES.SUCCESS;
4247
+ if (onSuccess) onSuccess(file, message);
4248
+ }
4249
+ function onFileError(file, message) {
4250
+ file.uploadState = UPLOAD_STATES.ERROR;
4251
+ file.uploadError = message;
4252
+ if (onError) onError(file, message);
4253
+ }
4254
+ function onAllComplete() {
4255
+ setState(UPLOAD_STATES.COMPLETED);
4256
+ if (onComplete) onComplete(files);
4257
+ }
4258
+ function renderView() {
4259
+ switch (view) {
4260
+ case "area":
4261
+ return /*#__PURE__*/React__default["default"].createElement(UploadArea, {
4262
+ resumable: resumable,
4263
+ icon: icon,
4264
+ label: label
4265
+ });
4266
+ case "icon":
4267
+ return /*#__PURE__*/React__default["default"].createElement(UploadIcon, {
4268
+ resumable: resumable,
4269
+ icon: icon
4270
+ });
4271
+ default:
4272
+ return /*#__PURE__*/React__default["default"].createElement(UploadArea, {
4273
+ resumable: resumable,
4274
+ icon: icon,
4275
+ label: label
4276
+ });
3759
4277
  }
3760
- }, tabs);
3761
- return /*#__PURE__*/React__default["default"].createElement(View, {
3762
- title: title,
3763
- toolbar: toolbar,
3764
- className: className
3765
- }, /*#__PURE__*/React__default["default"].createElement(Stack, {
3766
- selected: tab
3767
- }, children));
4278
+ }
4279
+ return /*#__PURE__*/React__default["default"].createElement("div", {
4280
+ className: "uploader " + className
4281
+ }, state === UPLOAD_STATES.IDLE ? renderView() : /*#__PURE__*/React__default["default"].createElement(UploadProgress, {
4282
+ files: files
4283
+ }));
3768
4284
  };
3769
4285
 
3770
4286
  /**
@@ -3806,7 +4322,7 @@
3806
4322
  },
3807
4323
  disabled: !canClose()
3808
4324
  }));
3809
- var title = /*#__PURE__*/React__default["default"].createElement(Text, {
4325
+ var title = /*#__PURE__*/React__default["default"].createElement(Text$1, {
3810
4326
  use: "headline6"
3811
4327
  }, label);
3812
4328
  return /*#__PURE__*/React__default["default"].createElement(Dialog, {
@@ -3923,7 +4439,7 @@
3923
4439
  var folder = folders.find(function (folder) {
3924
4440
  return folder.id === selectedFolder;
3925
4441
  });
3926
- var folderTitle = folder ? /*#__PURE__*/React__default["default"].createElement(Text, null, folder.title) : '';
4442
+ var folderTitle = folder ? /*#__PURE__*/React__default["default"].createElement(Text$1, null, folder.title) : '';
3927
4443
  function switchView() {
3928
4444
  setView(view === 'grid' ? 'list' : 'grid');
3929
4445
  }
@@ -4131,7 +4647,7 @@
4131
4647
  className: "empty"
4132
4648
  }, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(Icon, {
4133
4649
  icon: icon
4134
- })), /*#__PURE__*/React__default["default"].createElement("br", null), /*#__PURE__*/React__default["default"].createElement(Text, {
4650
+ })), /*#__PURE__*/React__default["default"].createElement("br", null), /*#__PURE__*/React__default["default"].createElement(Text$1, {
4135
4651
  use: "subtitle2"
4136
4652
  }, text));
4137
4653
  };
@@ -4263,7 +4779,7 @@
4263
4779
  }, /*#__PURE__*/React__default["default"].createElement("div", null, id === "checked" && onCheckAll ? /*#__PURE__*/React__default["default"].createElement(CheckBox, {
4264
4780
  onChange: checkAll,
4265
4781
  value: allChecked
4266
- }) : /*#__PURE__*/React__default["default"].createElement(Text, {
4782
+ }) : /*#__PURE__*/React__default["default"].createElement(Text$1, {
4267
4783
  key: "th_" + id
4268
4784
  }, label), sortable ? /*#__PURE__*/React__default["default"].createElement(SortIcon, {
4269
4785
  sortDir: sortDir[id],
@@ -4990,7 +5506,7 @@
4990
5506
  onDelete = _ref2.onDelete;
4991
5507
  return /*#__PURE__*/React__default["default"].createElement("div", {
4992
5508
  className: "token"
4993
- }, /*#__PURE__*/React__default["default"].createElement(Text, {
5509
+ }, /*#__PURE__*/React__default["default"].createElement(Text$1, {
4994
5510
  use: "caption",
4995
5511
  tag: "div"
4996
5512
  }, text), /*#__PURE__*/React__default["default"].createElement(Icon, {
@@ -5026,7 +5542,7 @@
5026
5542
  children = _ref2.children,
5027
5543
  actions = _ref2.actions,
5028
5544
  onSelect = _ref2.onSelect;
5029
- var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text, {
5545
+ var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text$1, {
5030
5546
  format: TEXTFORMATS.STRING
5031
5547
  }, label) : null;
5032
5548
  function select() {
@@ -5066,7 +5582,7 @@
5066
5582
  if (onSelect) onSelect(id);
5067
5583
  }
5068
5584
  var style = selected ? "selected" : "";
5069
- var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text, {
5585
+ var labelTxt = label ? /*#__PURE__*/React__default["default"].createElement(Text$1, {
5070
5586
  format: TEXTFORMATS.STRING
5071
5587
  }, label) : null;
5072
5588
  return /*#__PURE__*/React__default["default"].createElement("div", {
@@ -5849,7 +6365,7 @@
5849
6365
  }).map(function (task) {
5850
6366
  return {
5851
6367
  id: task.id,
5852
- state: /*#__PURE__*/React__default["default"].createElement(Text, null, task.state),
6368
+ state: /*#__PURE__*/React__default["default"].createElement(Text$1, null, task.state),
5853
6369
  description: task.description,
5854
6370
  message: task.message,
5855
6371
  progress: /*#__PURE__*/React__default["default"].createElement(LinearProgress, {
@@ -5951,7 +6467,6 @@
5951
6467
  }
5952
6468
  function handleFiles(files) {
5953
6469
  var file = files[0];
5954
- console.log("handleFiles", files, file);
5955
6470
  setFile(file);
5956
6471
  }
5957
6472
  function handleFile(e) {
@@ -6486,7 +7001,7 @@
6486
7001
  }
6487
7002
  return /*#__PURE__*/React__default["default"].createElement("div", {
6488
7003
  className: "content-editor treeded-editor"
6489
- }, /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Text, {
7004
+ }, /*#__PURE__*/React__default["default"].createElement("menu", null, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Text$1, {
6490
7005
  use: "caption"
6491
7006
  }, "Tree Editor")), /*#__PURE__*/React__default["default"].createElement(Tree, null, nodes.map(function (node, index) {
6492
7007
  return /*#__PURE__*/React__default["default"].createElement(TreeNode, {
@@ -6638,7 +7153,7 @@
6638
7153
  var sections = content.sections();
6639
7154
  return /*#__PURE__*/React__default["default"].createElement("div", {
6640
7155
  className: "entity-editor"
6641
- }, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Text, {
7156
+ }, /*#__PURE__*/React__default["default"].createElement("header", null, /*#__PURE__*/React__default["default"].createElement(Text$1, {
6642
7157
  use: "caption"
6643
7158
  }, label)), sections.map(function (section) {
6644
7159
  var title = section.title,
@@ -6885,7 +7400,7 @@
6885
7400
  }
6886
7401
  return /*#__PURE__*/React__default["default"].createElement("div", {
6887
7402
  className: "multiselection-editor"
6888
- }, /*#__PURE__*/React__default["default"].createElement("label", null, /*#__PURE__*/React__default["default"].createElement(Text, null, label)), buildOptions().map(function (option) {
7403
+ }, /*#__PURE__*/React__default["default"].createElement("label", null, /*#__PURE__*/React__default["default"].createElement(Text$1, null, label)), buildOptions().map(function (option) {
6889
7404
  var checked = value.includes(option.value);
6890
7405
  switch (format) {
6891
7406
  case FORMATS$1.CHECKBOX:
@@ -7089,7 +7604,7 @@
7089
7604
  className: "empty-message"
7090
7605
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
7091
7606
  icon: "search_off"
7092
- }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
7607
+ }), /*#__PURE__*/React__default["default"].createElement(Text$1, null, "No Result Found"));
7093
7608
  var groups = items.reduce(function (groups, item) {
7094
7609
  var groupName = item[groupBy];
7095
7610
  if (!groupName) groupName = ("NO " + groupBy).toUpperCase();
@@ -7182,7 +7697,7 @@
7182
7697
  }
7183
7698
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7184
7699
  icon: icon,
7185
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
7700
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, title)
7186
7701
  }, /*#__PURE__*/React__default["default"].createElement(DropDown, {
7187
7702
  id: "groupBy",
7188
7703
  label: "Agrupar Por",
@@ -7451,7 +7966,7 @@
7451
7966
  disabled: !isValid,
7452
7967
  raised: true
7453
7968
  }));
7454
- var title = /*#__PURE__*/React__default["default"].createElement(Text, {
7969
+ var title = /*#__PURE__*/React__default["default"].createElement(Text$1, {
7455
7970
  use: "headline6"
7456
7971
  }, label);
7457
7972
  var content = new Content(type, form);
@@ -7467,7 +7982,7 @@
7467
7982
  className: className,
7468
7983
  outlined: outlined
7469
7984
  }), errors.map(function (error) {
7470
- return /*#__PURE__*/React__default["default"].createElement(Text, {
7985
+ return /*#__PURE__*/React__default["default"].createElement(Text$1, {
7471
7986
  use: "overline",
7472
7987
  tag: "div",
7473
7988
  className: "error"
@@ -7533,7 +8048,7 @@
7533
8048
  disabled: !isValid,
7534
8049
  raised: true
7535
8050
  }));
7536
- var title = /*#__PURE__*/React__default["default"].createElement(Text, {
8051
+ var title = /*#__PURE__*/React__default["default"].createElement(Text$1, {
7537
8052
  use: "headline6"
7538
8053
  }, label);
7539
8054
  var content = new Content(type, form);
@@ -7548,7 +8063,7 @@
7548
8063
  filter: filterForm,
7549
8064
  className: className
7550
8065
  }), errors.map(function (error) {
7551
- return /*#__PURE__*/React__default["default"].createElement(Text, {
8066
+ return /*#__PURE__*/React__default["default"].createElement(Text$1, {
7552
8067
  use: "overline",
7553
8068
  tag: "div",
7554
8069
  className: "error"
@@ -7775,7 +8290,7 @@
7775
8290
  var hiddenStyle = pageContext.selected ? "hidden" : "";
7776
8291
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
7777
8292
  className: "collection-page " + className,
7778
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, title2)
8293
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, title2)
7779
8294
  }, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
7780
8295
  icon: "add",
7781
8296
  label: "Add",
@@ -8255,7 +8770,7 @@
8255
8770
  }
8256
8771
  }
8257
8772
  var hasMenu = canDelete;
8258
- var saveLabel = /*#__PURE__*/React__default["default"].createElement(Text, null, "Guardar Cambios");
8773
+ var saveLabel = /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Guardar Cambios");
8259
8774
  return selected && form ? /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
8260
8775
  icon: icon,
8261
8776
  title: renderTitle()
@@ -8698,7 +9213,7 @@
8698
9213
  }, total), " ", title);
8699
9214
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
8700
9215
  className: "table-page " + className,
8701
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, title2)
9216
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, title2)
8702
9217
  }, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
8703
9218
  icon: "add",
8704
9219
  label: "A\xF1adir",
@@ -8855,7 +9370,7 @@
8855
9370
  }
8856
9371
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
8857
9372
  className: "table-queries",
8858
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Queries")
9373
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Queries")
8859
9374
  }), /*#__PURE__*/React__default["default"].createElement("main", {
8860
9375
  className: "table-queries"
8861
9376
  }, queries ? queries.filter(function (query) {
@@ -8953,7 +9468,7 @@
8953
9468
  var content = new Content(filterSchema, form);
8954
9469
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
8955
9470
  className: "table-filters",
8956
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filters")
9471
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Filters")
8957
9472
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
8958
9473
  icon: "filter_list_off",
8959
9474
  size: "small",
@@ -9080,7 +9595,7 @@
9080
9595
  className: "empty-message"
9081
9596
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
9082
9597
  icon: "search_off"
9083
- }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
9598
+ }), /*#__PURE__*/React__default["default"].createElement(Text$1, null, "No Result Found"));
9084
9599
  var groups = items.reduce(function (groups, item) {
9085
9600
  var groupName = item[groupBy];
9086
9601
  if (!groupName) groupName = ("NO " + groupBy).toUpperCase();
@@ -9177,7 +9692,7 @@
9177
9692
  }
9178
9693
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
9179
9694
  icon: icon,
9180
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
9695
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, title)
9181
9696
  }, groupBy ? /*#__PURE__*/React__default["default"].createElement(DropDown, {
9182
9697
  id: "groupBy",
9183
9698
  label: "Agrupar Por",
@@ -9619,7 +10134,7 @@
9619
10134
  }
9620
10135
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
9621
10136
  className: "table-page " + className,
9622
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
10137
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, title)
9623
10138
  }, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
9624
10139
  icon: "add",
9625
10140
  label: "A\xF1adir",
@@ -9771,7 +10286,7 @@
9771
10286
  }
9772
10287
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
9773
10288
  className: "table-queries",
9774
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Queries")
10289
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Queries")
9775
10290
  }), /*#__PURE__*/React__default["default"].createElement("main", {
9776
10291
  className: "table-queries"
9777
10292
  }, queries ? queries.filter(function (query) {
@@ -9856,7 +10371,7 @@
9856
10371
  var content = new Content(filterSchema, form);
9857
10372
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
9858
10373
  className: "table-filters",
9859
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filters")
10374
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Filters")
9860
10375
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
9861
10376
  icon: "filter_list_off",
9862
10377
  size: "small",
@@ -10061,7 +10576,7 @@
10061
10576
  className: "empty-message"
10062
10577
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
10063
10578
  icon: "search_off"
10064
- }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
10579
+ }), /*#__PURE__*/React__default["default"].createElement(Text$1, null, "No Result Found"));
10065
10580
  var groups = items.reduce(function (groups, item) {
10066
10581
  var groupName = item[groupBy];
10067
10582
  if (!groups[groupName]) groups[groupName] = [];
@@ -10124,10 +10639,10 @@
10124
10639
  });
10125
10640
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
10126
10641
  icon: icon,
10127
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
10642
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, title)
10128
10643
  }, groupBy ? /*#__PURE__*/React__default["default"].createElement(DropDown, {
10129
10644
  id: "groupBy",
10130
- label: /*#__PURE__*/React__default["default"].createElement(Text, null, "Group By"),
10645
+ label: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Group By"),
10131
10646
  value: groupBy,
10132
10647
  options: buildGroupOptions(schema),
10133
10648
  onChange: changeGroup
@@ -10651,7 +11166,7 @@
10651
11166
  }
10652
11167
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
10653
11168
  className: "table-page",
10654
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
11169
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, title)
10655
11170
  }, canAdd ? /*#__PURE__*/React__default["default"].createElement(Button, {
10656
11171
  icon: "add",
10657
11172
  label: "A\xF1adir",
@@ -10808,7 +11323,7 @@
10808
11323
  }
10809
11324
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
10810
11325
  className: "table-queries",
10811
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Queries")
11326
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Queries")
10812
11327
  }), /*#__PURE__*/React__default["default"].createElement("main", {
10813
11328
  className: "table-queries"
10814
11329
  }, queries ? queries.filter(function (query) {
@@ -10906,7 +11421,7 @@
10906
11421
  var content = new Content(filterSchema, form);
10907
11422
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
10908
11423
  className: "table-filters",
10909
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, "Filters")
11424
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, "Filters")
10910
11425
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
10911
11426
  icon: "filter_list_off",
10912
11427
  size: "small",
@@ -11034,7 +11549,7 @@
11034
11549
  className: "empty-message"
11035
11550
  }, /*#__PURE__*/React__default["default"].createElement(Icon, {
11036
11551
  icon: "search_off"
11037
- }), /*#__PURE__*/React__default["default"].createElement(Text, null, "No Result Found"));
11552
+ }), /*#__PURE__*/React__default["default"].createElement(Text$1, null, "No Result Found"));
11038
11553
  var groups = items.reduce(function (groups, item) {
11039
11554
  var groupName = item[groupBy];
11040
11555
  var group = groups[groupName];
@@ -11125,7 +11640,7 @@
11125
11640
  }
11126
11641
  return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, /*#__PURE__*/React__default["default"].createElement(Header, {
11127
11642
  icon: icon,
11128
- title: /*#__PURE__*/React__default["default"].createElement(Text, null, title)
11643
+ title: /*#__PURE__*/React__default["default"].createElement(Text$1, null, title)
11129
11644
  }, /*#__PURE__*/React__default["default"].createElement(DropDown, {
11130
11645
  id: "groupBy",
11131
11646
  label: "Agrupar Por",
@@ -12107,6 +12622,8 @@
12107
12622
  exports.Avatar = Avatar;
12108
12623
  exports.Button = Button;
12109
12624
  exports.Calendar = Calendar;
12625
+ exports.ChangeUserPasswordAction = ChangeUserPasswordAction;
12626
+ exports.ChangeUserPasswordDialog = ChangeUserPasswordDialog;
12110
12627
  exports.CheckBox = CheckBox;
12111
12628
  exports.Chip = Chip;
12112
12629
  exports.Chips = Chips;
@@ -12142,6 +12659,7 @@
12142
12659
  exports.FilesSearchBox = FilesSearchBox;
12143
12660
  exports.FilesTableView = FilesTableView;
12144
12661
  exports.FoldersTreeView = FoldersTreeView;
12662
+ exports.ForgetUserPasswordAction = ForgetUserPasswordAction;
12145
12663
  exports.Form = Form;
12146
12664
  exports.HTTPClient = HTTPClient;
12147
12665
  exports.Header = Header;
@@ -12152,6 +12670,9 @@
12152
12670
  exports.KanbanColumn = KanbanColumn;
12153
12671
  exports.KanbanHeader = KanbanHeader;
12154
12672
  exports.KanbanSwimlane = KanbanSwimlane;
12673
+ exports.LOGIN_API = LOGIN_API;
12674
+ exports.LOGIN_CONTEXT = LOGIN_CONTEXT;
12675
+ exports.LOGIN_DICTIONARY = LOGIN_DICTIONARY;
12155
12676
  exports.LinearProgress = LinearProgress;
12156
12677
  exports.List = List;
12157
12678
  exports.ListEditor = ListEditor;
@@ -12195,7 +12716,7 @@
12195
12716
  exports.TaskContextProvider = TaskContextProvider;
12196
12717
  exports.TaskMonitor = TaskMonitor;
12197
12718
  exports.TaskProgress = TaskProgress;
12198
- exports.Text = Text;
12719
+ exports.Text = Text$1;
12199
12720
  exports.TextArea = TextArea;
12200
12721
  exports.TextField = TextField;
12201
12722
  exports.Thumbnail = Thumbnail;
@@ -12206,6 +12727,7 @@
12206
12727
  exports.TreeItem = TreeItem;
12207
12728
  exports.TreeNode = TreeNode;
12208
12729
  exports.TreededContentEditor = TreededContentEditor;
12730
+ exports.UnlockUserAction = UnlockUserAction;
12209
12731
  exports.UploadArea = UploadArea;
12210
12732
  exports.UploadDialog = UploadDialog;
12211
12733
  exports.UploadFile = UploadFile$1;