@agilemotion/oui-react-js 1.3.1 → 1.3.3

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.
Files changed (96) hide show
  1. package/dist/ApplicationContext.js +148 -39
  2. package/dist/BasicApp.js +12 -5
  3. package/dist/BasicAppHome.js +18 -12
  4. package/dist/BusinessPortalApp.css +37 -0
  5. package/dist/BusinessPortalApp.js +90 -0
  6. package/dist/BusinessPortalAppHome.js +160 -0
  7. package/dist/RestUtils.js +65 -40
  8. package/dist/Utils.js +47 -1
  9. package/dist/assets/jss/components/footerStyle.js +7 -4
  10. package/dist/assets/jss/views/loginBasicStyle.js +0 -1
  11. package/dist/assets/jss/views/loginBusinessPortalStyle.js +76 -0
  12. package/dist/components/AlertBar.js +40 -11
  13. package/dist/components/ConfirmationDialog.js +54 -8
  14. package/dist/components/DataGrid.css +3 -1
  15. package/dist/components/DataGrid.js +149 -82
  16. package/dist/components/DataGridFilter.js +85 -8
  17. package/dist/components/Dialog.js +258 -0
  18. package/dist/components/Graph.js +26 -18
  19. package/dist/components/GraphNode.js +0 -2
  20. package/dist/components/HtmlPanel.js +103 -4
  21. package/dist/components/Icon.js +60 -0
  22. package/dist/components/PopupView.js +55 -6
  23. package/dist/components/SignaturePanel.js +147 -0
  24. package/dist/components/StepperTitleBar.bck.css +85 -0
  25. package/dist/components/StepperTitleBar.css +53 -54
  26. package/dist/components/StepperTitleBar.js +42 -29
  27. package/dist/components/TabPanel.js +10 -11
  28. package/dist/components/TableCellContent.js +6 -3
  29. package/dist/components/TemplateDesigner.css +13 -0
  30. package/dist/components/TemplateDesigner.js +494 -0
  31. package/dist/components/TemplateItemEventHandler.js +440 -0
  32. package/dist/components/TemplateTable.js +222 -0
  33. package/dist/components/TitleBar.js +21 -14
  34. package/dist/components/Toolbar.js +7 -5
  35. package/dist/components/Tree.js +5 -2
  36. package/dist/components/dashboard/{BasicBusinessApp.js → BasicBusinessAppDashboard.js} +30 -25
  37. package/dist/components/dashboard/BusinessPortalAppDashboard.css +5 -0
  38. package/dist/components/dashboard/BusinessPortalAppDashboard.js +236 -0
  39. package/dist/components/dashboard/components/blackDashboard/sidebar/Sidebar.js +23 -12
  40. package/dist/components/dashboard/components/portal/Timeline.js +17 -0
  41. package/dist/components/dashboard/components/portal/Workspace.css +25 -0
  42. package/dist/components/dashboard/components/portal/Workspace.js +48 -0
  43. package/dist/components/dashboard/components/portal/portal-dashboard.css +25 -0
  44. package/dist/components/footer/Footer.js +43 -10
  45. package/dist/components/form/AddressSearch.js +140 -0
  46. package/dist/components/form/BaseField.js +42 -8
  47. package/dist/components/form/Checkbox.js +3 -0
  48. package/dist/components/form/DatePicker.js +70 -4
  49. package/dist/components/form/FieldSet.js +247 -72
  50. package/dist/components/form/Form.js +178 -127
  51. package/dist/components/form/GridField.js +3 -2
  52. package/dist/components/form/ImageEditor.js +461 -0
  53. package/dist/components/form/LabelField.js +2 -2
  54. package/dist/components/form/LookupField.js +16 -4
  55. package/dist/components/form/RadioGroup.js +107 -0
  56. package/dist/components/form/Section.js +58 -19
  57. package/dist/components/form/SelectItem.js +14 -5
  58. package/dist/components/form/SignatureTemplateDesignerField.js +46 -0
  59. package/dist/components/form/TextField.js +5 -9
  60. package/dist/components/form/TransferList.js +7 -7
  61. package/dist/components/form/UploadField.js +184 -55
  62. package/dist/components/form/noimage-person.png +0 -0
  63. package/dist/components/form/noimage.png +0 -0
  64. package/dist/components/form/transparent.jpeg +0 -0
  65. package/dist/components/layout/CollapsiblePanel.js +0 -6
  66. package/dist/components/layout/Layout.js +49 -19
  67. package/dist/components/layout/View.css +43 -0
  68. package/dist/components/layout/View.js +76 -156
  69. package/dist/components/layout/ViewPort.js +32 -49
  70. package/dist/components/menu/MenuLink.js +7 -0
  71. package/dist/components/navbars/HomeNavbar.js +29 -14
  72. package/dist/components/navbars/PortalNavbar.css +75 -0
  73. package/dist/components/navbars/PortalNavbar.js +227 -0
  74. package/dist/components/signatures/AgilitySignaturePanel.js +312 -0
  75. package/dist/components/signatures/DocumentContainer.css +33 -0
  76. package/dist/components/signatures/DocumentContainer.js +206 -0
  77. package/dist/components/signatures/ImageSignatureInput.js +265 -0
  78. package/dist/components/signatures/ResponsiveTable.js +1 -3
  79. package/dist/components/signatures/SignatureInput.js +303 -0
  80. package/dist/components/signatures/SignatureInputProps.js +17 -11
  81. package/dist/components/signatures/SignatureTemplateDesigner.js +192 -81
  82. package/dist/components/signatures/transparent.jpeg +0 -0
  83. package/dist/event/LoadDataActionHandler.js +1 -1
  84. package/dist/event/Observable.js +1 -1
  85. package/dist/event/RouteActionHandler.js +18 -5
  86. package/dist/event/ServiceCallActionHandler.js +7 -3
  87. package/dist/js/Addresses.js +16 -9
  88. package/dist/view/Dashboard.js +27 -19
  89. package/dist/view/PortalDashboard.js +33 -0
  90. package/dist/view/security/ChangePasswordBasic.js +1 -0
  91. package/dist/view/security/ForgotPasswordBasic.js +1 -0
  92. package/dist/view/security/LoginBasic.js +6 -1
  93. package/dist/view/security/LoginBusinessPortal.js +268 -0
  94. package/dist/view/security/ResetPasswordBasic.js +1 -0
  95. package/package.json +25 -21
  96. package/dist/assets/img/flogo.png +0 -0
@@ -15,7 +15,7 @@ var _Utils = _interopRequireDefault(require("../../Utils"));
15
15
 
16
16
  var _ApplicationContext = _interopRequireDefault(require("../../ApplicationContext"));
17
17
 
18
- var _ConfirmationDialog = _interopRequireDefault(require("../ConfirmationDialog"));
18
+ var _ConfirmationDialog = require("../ConfirmationDialog");
19
19
 
20
20
  var _PopupView = _interopRequireDefault(require("../PopupView"));
21
21
 
@@ -23,16 +23,20 @@ var _Dashboard = _interopRequireDefault(require("../../view/Dashboard"));
23
23
 
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
27
-
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
-
30
26
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
31
27
 
32
28
  class ViewPort extends _react.default.PureComponent {
33
29
  constructor(props) {
34
30
  super(props);
35
31
 
32
+ _defineProperty(this, "openPopupView", view => {
33
+ this.popupViewController.open(view);
34
+ });
35
+
36
+ _defineProperty(this, "closePopupView", () => {
37
+ this.popupViewController.close();
38
+ });
39
+
36
40
  _defineProperty(this, "renderView", routerProps => {
37
41
  let viewId = routerProps.match.params.id;
38
42
 
@@ -49,66 +53,45 @@ class ViewPort extends _react.default.PureComponent {
49
53
  }) : null;
50
54
  });
51
55
 
52
- this.state = {
53
- popupView: null,
54
- confirmDialogOpen: false,
55
- confirmDialogMessage: null,
56
- confirmHandler: result => {
57
- this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
58
- confirmDialogOpen: false
59
- }));
60
- this.state.confirmDialogResultCallback(result);
61
- }
62
- };
63
- }
64
-
65
- openDialog(message, resultCallback) {
66
- if (this.state.confirmDialogOpen) {
67
- console.error("There is already a confirm dialog open");
68
- } else {
69
- this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
70
- confirmDialogOpen: true,
71
- confirmDialogMessage: message,
72
- confirmDialogResultCallback: resultCallback
73
- }));
74
- }
75
- }
76
-
77
- openPopupView(view) {
78
- this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
79
- popupView: view
80
- }));
56
+ this.confirmationDialogController = {};
57
+ this.popupViewController = {};
81
58
  }
59
+ /*openDialog(message, resultCallback) {
60
+ if (this.state.confirmDialogOpen) {
61
+ console.error("There is already a confirm dialog open");
62
+ } else {
63
+ this.setState({
64
+ ...this.state, confirmDialogOpen: true, confirmDialogMessage: message,
65
+ confirmDialogResultCallback: resultCallback
66
+ });
67
+ }
68
+ };*/
82
69
 
83
- closePopupView() {
84
- this.setState(_objectSpread(_objectSpread({}, this.state), {}, {
85
- popupView: null
86
- }));
87
- }
88
70
 
89
71
  componentDidMount() {
72
+ this.confirmationDialogController.openPopupView = this.openPopupView;
73
+ this.confirmationDialogController.closePopupView = this.closePopupView;
74
+
90
75
  _ApplicationContext.default.setViewPortHistory(this.props.history);
91
76
 
92
- _ApplicationContext.default.setConfirmDialogHandler(this);
77
+ _ApplicationContext.default.setConfirmDialogHandler(this.confirmationDialogController);
93
78
 
94
- this.props.history.push("/view/dashboard");
79
+ let defaultRoute = !_Utils.default.isNull(this.props.defaultView) ? this.props.defaultView : "/view/dashboard";
80
+ this.props.history.push(defaultRoute);
95
81
  }
96
82
 
97
83
  render() {
98
84
  return /*#__PURE__*/_react.default.createElement("div", {
99
85
  style: {
100
- height: 'calc(100vh - 90px)'
86
+ height: _Utils.default.isNull(this.props.height) ? 'calc(100vh - 90px)' : this.props.height
101
87
  }
102
- }, this.state.popupView !== null ? /*#__PURE__*/_react.default.createElement(_PopupView.default, {
103
- open: this.state.popupView !== null,
104
- view: this.state.popupView
105
- }) : null, /*#__PURE__*/_react.default.createElement(_ConfirmationDialog.default, {
106
- open: this.state.confirmDialogOpen,
107
- message: this.state.confirmDialogMessage,
108
- handler: this.state.confirmHandler
88
+ }, /*#__PURE__*/_react.default.createElement(_PopupView.default, {
89
+ controller: this.popupViewController
109
90
  }), /*#__PURE__*/_react.default.createElement(_reactRouterDom.Route, {
110
91
  path: "/view/:id",
111
92
  render: routerProps => this.renderView(routerProps)
93
+ }), /*#__PURE__*/_react.default.createElement(_ConfirmationDialog.ConfirmationDialog, {
94
+ controller: this.confirmationDialogController
112
95
  }));
113
96
  }
114
97
 
@@ -33,6 +33,13 @@ const MenuLink = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
33
33
 
34
34
  if (!_Utils.default.isNull(parsedConfig)) {
35
35
  _Observable.default.addSubscriptions(parsedConfig.eventHandlingConfig, handle, props.viewId);
36
+
37
+ if (props.autoClick) {
38
+ dispatch(_DashboardStore.actionCreators.setActiveRoute(props.name));
39
+ let event = new _Event.default(handle, props.viewId);
40
+
41
+ _Observable.default.fireEvent(_EventType.default.CLICK, event);
42
+ }
36
43
  }
37
44
  }, [props.config]);
38
45
 
@@ -23,15 +23,9 @@ var _Utils = _interopRequireDefault(require("../../Utils"));
23
23
 
24
24
  var _ActionHandlers = _interopRequireDefault(require("../../event/ActionHandlers"));
25
25
 
26
- var _withWidth = require("material-ui/utils/withWidth");
26
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
27
27
 
28
- var _TokenManager = _interopRequireDefault(require("../../security/TokenManager"));
29
-
30
- var _ApplicationContext = _interopRequireWildcard(require("../../ApplicationContext"));
31
-
32
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
33
-
34
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
28
+ var _colors = require("material-ui/styles/colors");
35
29
 
36
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
31
 
@@ -185,7 +179,16 @@ class HomeNavbar extends _react.default.Component {
185
179
  style: {
186
180
  background: this.props.themeTextColor
187
181
  }
188
- })), " ", /*#__PURE__*/_react.default.createElement(_reactstrap.Collapse, {
182
+ })), " ", /*#__PURE__*/_react.default.createElement("div", {
183
+ className: "col-*-*",
184
+ style: {
185
+ height: '48px'
186
+ }
187
+ }, /*#__PURE__*/_react.default.createElement("div", {
188
+ style: {
189
+ width: '80px'
190
+ }
191
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Collapse, {
189
192
  navbar: true,
190
193
  isOpen: this.state.collapseOpen
191
194
  }, /*#__PURE__*/_react.default.createElement(_reactstrap.Nav, {
@@ -202,12 +205,24 @@ class HomeNavbar extends _react.default.Component {
202
205
  "data-toggle": "dropdown",
203
206
  nav: true,
204
207
  onClick: e => e.preventDefault()
205
- }, /*#__PURE__*/_react.default.createElement("div", {
206
- className: "photo"
208
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
209
+ "aria-controls": "menu-list-grow",
210
+ style: {
211
+ borderColor: _colors.grey800,
212
+ width: '40px',
213
+ height: '40px',
214
+ padding: '0'
215
+ },
216
+ "aria-haspopup": "true"
207
217
  }, /*#__PURE__*/_react.default.createElement("img", {
208
218
  alt: "...",
209
- src: this.state.avatar
210
- }), " "), " ", /*#__PURE__*/_react.default.createElement("b", {
219
+ src: this.state.avatar,
220
+ width: '36px',
221
+ height: '36px',
222
+ style: {
223
+ borderRadius: '50%'
224
+ }
225
+ })), " ", /*#__PURE__*/_react.default.createElement("b", {
211
226
  className: "caret d-none d-lg-block d-xl-block"
212
227
  }), /*#__PURE__*/_react.default.createElement("p", {
213
228
  className: "d-lg-none"
@@ -230,7 +245,7 @@ class HomeNavbar extends _react.default.Component {
230
245
  onClick: this.props.logoutCallBack
231
246
  }, " ", "Log out", " "), " "), " "), " "), " ", /*#__PURE__*/_react.default.createElement("li", {
232
247
  className: "separator d-lg-none"
233
- })), " "), " "), " "), " ", /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
248
+ })), " "), " "))), " "), " ", /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
234
249
  modalClassName: "modal-search",
235
250
  isOpen: this.state.modalSearch,
236
251
  toggle: this.toggleModalSearch
@@ -0,0 +1,75 @@
1
+ .portal-navbar-container {
2
+ width: 100vw;
3
+ background-color: #ffffff;
4
+ height: 100%;
5
+ margin-left: 0 !important;
6
+ text-align: right;
7
+ border-bottom: 1px solid #e1e1e1;
8
+ }
9
+
10
+ .portal-navbar-logo {
11
+ margin-top: 4px;
12
+ width: 31%;
13
+ text-align: right;
14
+ height: 48px;
15
+ }
16
+
17
+ .portal-navbar-toolbar {
18
+ display: inline-block;
19
+ text-align: left;
20
+ width: 56%;
21
+ height: 48px;
22
+ padding-left: 72px;
23
+ }
24
+
25
+ .spacer {
26
+ width: 320px;
27
+ }
28
+
29
+ /* Smartphones (landscape); */
30
+ @media only screen and (min-device-width: 361px) and (max-device-width: 480px) {
31
+ .portal-navbar-logo {
32
+ margin: 4px;
33
+ width: 48px;
34
+ }
35
+
36
+ .portal-navbar-toolbar {
37
+ width: calc(100% - 84px);
38
+ margin-left: 24px;
39
+ }
40
+
41
+ .spacer {
42
+ width: 144px;
43
+ }
44
+ }
45
+
46
+ /* Smartphones (portrait); */
47
+ @media only screen and (min-device-width: 280px) and (max-device-width: 360px) {
48
+ .portal-navbar-logo {
49
+ margin: 4px;
50
+ width: 48px;
51
+ }
52
+
53
+ .portal-navbar-toolbar {
54
+ width: calc(100% - 84px);
55
+ margin-left: 24px;
56
+ }
57
+
58
+ .spacer {
59
+ width: 144px;
60
+ }
61
+ }
62
+
63
+
64
+ /* iPads (portrait and landscape); */
65
+ @media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
66
+
67
+ }
68
+
69
+ /* iPad 3 */
70
+ @media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2) {
71
+ }
72
+
73
+ @media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2) {
74
+ }
75
+
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
11
+
12
+ var _styles = require("@material-ui/core/styles");
13
+
14
+ var _Icon = _interopRequireDefault(require("./../Icon"));
15
+
16
+ var _colors = require("material-ui/styles/colors");
17
+
18
+ require("./PortalNavbar.css");
19
+
20
+ var _reactstrap = require("reactstrap");
21
+
22
+ var _ActionHandlers = _interopRequireDefault(require("../../event/ActionHandlers"));
23
+
24
+ var _ApplicationContext = _interopRequireWildcard(require("./../../ApplicationContext"));
25
+
26
+ var _Utils = _interopRequireDefault(require("../../Utils"));
27
+
28
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
29
+
30
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
+
34
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
35
+
36
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
37
+
38
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
39
+
40
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
41
+
42
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
43
+
44
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
45
+
46
+ const useStyles = (0, _styles.makeStyles)(theme => ({
47
+ iconButtonLabel: {
48
+ display: 'flex',
49
+ flexDirection: 'column'
50
+ }
51
+ }));
52
+
53
+ const PortalNavbar = /*#__PURE__*/_react.default.memo(props => {
54
+ const classes = useStyles();
55
+
56
+ const _React$useState = _react.default.useState(props.avatar),
57
+ _React$useState2 = _slicedToArray(_React$useState, 2),
58
+ avatarUrl = _React$useState2[0],
59
+ setAvatarUrl = _React$useState2[1];
60
+
61
+ const _React$useState3 = _react.default.useState(props.moduleMenus ? props.moduleMenus[0].id : null),
62
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
63
+ selectedButton = _React$useState4[0],
64
+ setSelectedButton = _React$useState4[1];
65
+
66
+ const initializing = _react.default.useRef(true);
67
+
68
+ let keyCounter = 0;
69
+
70
+ _react.default.useEffect(() => {
71
+ if (initializing.current) {
72
+ let avatarListener = {};
73
+ avatarListener.type = _ApplicationContext.AVATAR_LISTENER_TYPE;
74
+
75
+ avatarListener.handler = avatar => {
76
+ setAvatarUrl(avatar.url);
77
+ };
78
+
79
+ _ApplicationContext.default.addApplicationListener(avatarListener);
80
+
81
+ initializing.current = false;
82
+ }
83
+ });
84
+
85
+ const launchView = path => {
86
+ let actionConfig = {};
87
+ actionConfig.actionType = 'route';
88
+ actionConfig.path = path;
89
+ actionConfig.parent = true;
90
+
91
+ _ActionHandlers.default.invokeHandler(actionConfig);
92
+ };
93
+
94
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
95
+ className: "row portal-navbar-container",
96
+ style: {
97
+ padding: "4px 0"
98
+ }
99
+ }, /*#__PURE__*/_react.default.createElement("div", {
100
+ className: "col-*-* portal-navbar-logo"
101
+ }, /*#__PURE__*/_react.default.createElement("img", {
102
+ src: props.appLogoPath,
103
+ alt: "...",
104
+ style: {
105
+ height: '48px'
106
+ }
107
+ })), /*#__PURE__*/_react.default.createElement("div", {
108
+ className: "col-*-* portal-navbar-toolbar"
109
+ }, /*#__PURE__*/_react.default.createElement("div", {
110
+ className: "row"
111
+ }, /*#__PURE__*/_react.default.createElement("div", {
112
+ className: "col-*-*",
113
+ style: {
114
+ width: '71%',
115
+ height: '48px'
116
+ }
117
+ }, /*#__PURE__*/_react.default.createElement("div", {
118
+ className: "row"
119
+ }, props.moduleMenus ? props.moduleMenus.map(menu => {
120
+ return /*#__PURE__*/_react.default.createElement("div", {
121
+ className: "col-*-*",
122
+ style: {
123
+ padding: "4px"
124
+ },
125
+ key: keyCounter++
126
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
127
+ "aria-controls": "menu-list-grow",
128
+ style: {
129
+ width: 80,
130
+ height: 48,
131
+ borderBottom: selectedButton === menu.id ? '2px solid ' + _colors.grey800 : 'none',
132
+ borderRadius: 0
133
+ },
134
+ "aria-haspopup": "true",
135
+ classes: {
136
+ label: classes.iconButtonLabel
137
+ },
138
+ onClick: () => {
139
+ setSelectedButton(menu.id);
140
+ props.moduleChangeHandler(menu.id);
141
+ }
142
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
143
+ id: menu.icon
144
+ }), /*#__PURE__*/_react.default.createElement("div", {
145
+ style: {
146
+ fontSize: '14px'
147
+ }
148
+ }, _Utils.default.getComponentAttribute(menu, 'label', ''))));
149
+ }) : null)), /*#__PURE__*/_react.default.createElement("div", {
150
+ className: "col-*-*",
151
+ style: {
152
+ width: '29%',
153
+ height: '48px'
154
+ }
155
+ }, /*#__PURE__*/_react.default.createElement("div", {
156
+ style: {
157
+ width: '80px'
158
+ }
159
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Collapse, {
160
+ navbar: true,
161
+ isOpen: true
162
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.Nav, {
163
+ className: "ml-auto",
164
+ navbar: true
165
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledDropdown, {
166
+ nav: true
167
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownToggle, {
168
+ style: {
169
+ color: props.themeTextColor
170
+ },
171
+ caret: true,
172
+ color: "default",
173
+ "data-toggle": "dropdown",
174
+ nav: true,
175
+ onClick: e => e.preventDefault()
176
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
177
+ "aria-controls": "menu-list-grow",
178
+ style: {
179
+ borderColor: _colors.grey800,
180
+ width: '40px',
181
+ height: '40px',
182
+ padding: '0'
183
+ },
184
+ "aria-haspopup": "true",
185
+ classes: {
186
+ label: classes.iconButtonLabel
187
+ }
188
+ }, /*#__PURE__*/_react.default.createElement("img", {
189
+ alt: "...",
190
+ src: avatarUrl,
191
+ width: '36px',
192
+ height: '36px',
193
+ style: {
194
+ borderRadius: '50%'
195
+ }
196
+ })), " ", /*#__PURE__*/_react.default.createElement("b", {
197
+ className: "caret d-none d-lg-block d-xl-block",
198
+ style: {
199
+ margin: '0 0 0 44px',
200
+ color: _colors.grey800
201
+ }
202
+ }), /*#__PURE__*/_react.default.createElement("p", {
203
+ className: "d-lg-none"
204
+ }, " Log out "), " "), " ", /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownMenu, {
205
+ className: "dropdown-navbar",
206
+ right: true,
207
+ tag: "ul"
208
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.NavLink, {
209
+ tag: "li"
210
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
211
+ className: "nav-item",
212
+ onClick: () => launchView('system/user-profile.json')
213
+ }, " ", "Profile", " "), " "), " ", /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
214
+ divider: true,
215
+ tag: "li"
216
+ }), /*#__PURE__*/_react.default.createElement(_reactstrap.NavLink, {
217
+ tag: "li"
218
+ }, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
219
+ className: "nav-item",
220
+ onClick: props.logoutCallBack
221
+ }, " ", "Log out", " "), " "), " "), " "), " ", /*#__PURE__*/_react.default.createElement("li", {
222
+ className: "separator d-lg-none"
223
+ })), " "), " "))))));
224
+ });
225
+
226
+ var _default = PortalNavbar;
227
+ exports.default = _default;