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