versacall-core-library-react 2.0.70 → 2.0.72

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 (142) hide show
  1. package/dist/components/CoreAlert/CoreAlert.js +85 -0
  2. package/dist/components/CoreAlert/index.js +13 -0
  3. package/dist/components/CoreAlert/readme.md +21 -0
  4. package/dist/components/CoreAppBar/CoreAppBar.js +364 -0
  5. package/dist/components/CoreAppBar/CoreAppBarDrawer.js +134 -0
  6. package/dist/components/CoreAppBar/README.md +27 -0
  7. package/dist/components/CoreAppBar/index.js +13 -0
  8. package/dist/components/CoreAppBar/screenshot.png +0 -0
  9. package/dist/components/CoreAppSelector/AppLink.js +101 -0
  10. package/dist/components/CoreAppSelector/CoreAppSelector.js +155 -0
  11. package/dist/components/CoreAppSelector/index.js +13 -0
  12. package/dist/components/CoreDialogueToolBar/CoreDialogueToolBar.js +123 -0
  13. package/dist/components/CoreDialogueToolBar/index.js +13 -0
  14. package/dist/components/CoreDrawer/CoreDrawer.js +236 -0
  15. package/dist/components/CoreDrawer/README.md +36 -0
  16. package/dist/components/CoreDrawer/index.js +13 -0
  17. package/dist/components/CoreDrawer/screenshot_collapsed.png +0 -0
  18. package/dist/components/CoreDrawer/screenshot_expanded.png +0 -0
  19. package/dist/components/CoreDropDownTextfield/CoreDropDownTextfield.js +85 -0
  20. package/dist/components/CoreDropDownTextfield/index.js +13 -0
  21. package/dist/components/CoreElapsedTime/CoreElapsedTime.js +57 -0
  22. package/dist/components/CoreElapsedTime/index.js +13 -0
  23. package/dist/components/CoreFrame/CoreFrame.js +64 -0
  24. package/dist/components/CoreFrame/index.js +13 -0
  25. package/dist/components/CoreImportDialog/CoreImportDialog.js +350 -0
  26. package/dist/components/CoreImportDialog/index.js +13 -0
  27. package/dist/components/CoreImportResultsDialog/CoreImportResultsDialog.js +103 -0
  28. package/dist/components/CoreImportResultsDialog/index.js +13 -0
  29. package/dist/components/CoreImporting/CoreImporting.js +60 -0
  30. package/dist/components/CoreImporting/index.js +13 -0
  31. package/dist/components/CorePlugin/CorePlugin.js +134 -0
  32. package/dist/components/CorePlugin/OldCorePlugin.js +124 -0
  33. package/dist/components/CorePlugin/index.js +13 -0
  34. package/dist/components/CoreSaveChangesDialog/CoreSaveChangesDialog.js +62 -0
  35. package/dist/components/CoreSaveChangesDialog/index.js +13 -0
  36. package/dist/components/CoreShiftTagFilter/CoreShiftTagFilter.js +350 -0
  37. package/dist/components/CoreShiftTagFilter/OldCoreShiftTagFilter.js +208 -0
  38. package/dist/components/CoreShiftTagFilter/index.js +13 -0
  39. package/dist/components/CoreSideBar/CoreSideBar.js +737 -0
  40. package/dist/components/CoreSideBar/CoreSideBarDrawer.js +172 -0
  41. package/dist/components/CoreSideBar/index.js +13 -0
  42. package/dist/components/CoreSnackBar/CoreSnackBar.js +116 -0
  43. package/dist/components/CoreSnackBar/index.js +13 -0
  44. package/dist/components/CoreSnackBar/readme.md +23 -0
  45. package/dist/components/CoreTable/CoreTable.js +315 -0
  46. package/dist/components/CoreTable/CoreTableChips.js +50 -0
  47. package/dist/components/CoreTable/CoreTableHead.js +175 -0
  48. package/dist/components/CoreTable/CoreTableToolbar.js +108 -0
  49. package/dist/components/CoreTable/index.js +13 -0
  50. package/dist/components/CoreTable/readMe.md +79 -0
  51. package/dist/components/CoreTagFilter/CoreTagFilter.js +275 -0
  52. package/dist/components/CoreTagFilter/OldCoreTagFilter.js +341 -0
  53. package/dist/components/CoreTagFilter/OldTagChip.js +44 -0
  54. package/dist/components/CoreTagFilter/OldTagFilterSelector.js +105 -0
  55. package/dist/components/CoreTagFilter/OldTagOption.js +53 -0
  56. package/dist/components/CoreTagFilter/TagFilterBuilder.js +487 -0
  57. package/dist/components/CoreTagFilter/index.js +13 -0
  58. package/dist/components/CoreTextField/CoreTextField.js +109 -0
  59. package/dist/components/CoreTextField/index.js +13 -0
  60. package/dist/components/CoreTheme/CoreTheme.css +9 -0
  61. package/dist/components/CoreTheme/CoreTheme.js +51 -0
  62. package/dist/components/CoreTheme/README.md +3 -0
  63. package/dist/components/CoreTheme/index.js +13 -0
  64. package/dist/components/CoreTile/CoreTile.js +62 -0
  65. package/dist/components/CoreTile/CoreTileToolbar.js +62 -0
  66. package/dist/components/CoreTile/index.js +13 -0
  67. package/dist/components/CoreTimerInput/CoreTimerInput.js +203 -0
  68. package/dist/components/CoreTimerInput/CoreTimerInputOld.js +146 -0
  69. package/dist/components/CoreTimerInput/index.js +13 -0
  70. package/dist/components/CoreToolbar/CoreToolbar.js +205 -0
  71. package/dist/components/CoreToolbar/index.js +13 -0
  72. package/dist/components/CoreTracker/CoreTracker.js +52 -0
  73. package/dist/components/CoreTracker/index.js +13 -0
  74. package/dist/components/CoreTranslate/CoreTranslate.js +62 -0
  75. package/dist/components/CoreTranslate/README.md +5 -0
  76. package/dist/components/CoreTranslate/index.js +13 -0
  77. package/dist/components/CoreTranslate/translations/en.json +451 -0
  78. package/dist/components/CoreTranslate/translations/es.json +433 -0
  79. package/dist/components/CoreTranslateWrapper/CoreTranslateWrapper.js +36 -0
  80. package/dist/components/CoreTranslateWrapper/index.js +13 -0
  81. package/dist/components/CoreWidget/CoreWidget.js +120 -0
  82. package/dist/components/CoreWidget/index.js +13 -0
  83. package/dist/components/CoreWrapper/CoreWrapper.js +51 -0
  84. package/dist/components/CoreWrapper/README.md +41 -0
  85. package/dist/components/CoreWrapper/index.js +13 -0
  86. package/dist/components/index.js +202 -0
  87. package/dist/constants/index.js +20 -0
  88. package/dist/constants/testOrganization.js +31 -0
  89. package/dist/constants/testToken.js +33 -0
  90. package/dist/context/Authentication/AuthenticationContext.js +10 -0
  91. package/dist/context/Authentication/AuthenticationProvider.js +225 -0
  92. package/dist/context/Authentication/README.md +47 -0
  93. package/dist/context/Authentication/index.js +27 -0
  94. package/dist/context/Authentication/withAuthentication.js +15 -0
  95. package/dist/context/Channels/ChannelsConsumer.js +42 -0
  96. package/dist/context/Channels/ChannelsContext.js +10 -0
  97. package/dist/context/Channels/ChannelsProvider.js +258 -0
  98. package/dist/context/Channels/DataChannel.js +68 -0
  99. package/dist/context/Channels/EntityChannel.js +69 -0
  100. package/dist/context/Channels/EveryoneChannel.js +55 -0
  101. package/dist/context/Channels/OrganizationChannel.js +69 -0
  102. package/dist/context/Channels/README.md +52 -0
  103. package/dist/context/Channels/UserChannel.js +60 -0
  104. package/dist/context/Channels/index.js +69 -0
  105. package/dist/context/Channels/withChannels.js +15 -0
  106. package/dist/context/Core/CoreContext.js +10 -0
  107. package/dist/context/Core/CoreProvider.js +107 -0
  108. package/dist/context/Core/README.md +43 -0
  109. package/dist/context/Core/index.js +27 -0
  110. package/dist/context/Core/withCore.js +15 -0
  111. package/dist/context/Organization/OrganizationContext.js +10 -0
  112. package/dist/context/Organization/OrganizationProvider.js +113 -0
  113. package/dist/context/Organization/README.md +82 -0
  114. package/dist/context/Organization/index.js +27 -0
  115. package/dist/context/Organization/withOrganization.js +15 -0
  116. package/dist/context/Plugin/PluginContext.js +10 -0
  117. package/dist/context/Plugin/PluginProvider.js +78 -0
  118. package/dist/context/Plugin/index.js +27 -0
  119. package/dist/context/Plugin/withPlugin.js +15 -0
  120. package/dist/context/index.js +60 -0
  121. package/dist/css/index.js +20 -0
  122. package/dist/css/junk.module.css +3 -0
  123. package/dist/css/scrollbar.css +35 -0
  124. package/dist/css/scrollbar.module.css +37 -0
  125. package/dist/functions/TagEvaluator.js +165 -0
  126. package/dist/functions/compareObjects.js +27 -0
  127. package/dist/functions/formatElapsedTime.js +18 -0
  128. package/dist/functions/formatNameFileSafe.js +16 -0
  129. package/dist/functions/getIconUrl.js +15 -0
  130. package/dist/functions/getParameterByName.js +34 -0
  131. package/dist/functions/getProperty.js +17 -0
  132. package/dist/functions/getUrl.js +15 -0
  133. package/dist/functions/index.js +62 -0
  134. package/dist/icons/CopyIcon.js +42 -0
  135. package/dist/icons/DeleteIcon.js +42 -0
  136. package/dist/icons/DuplicateIcon.js +42 -0
  137. package/dist/icons/EditIcon.js +42 -0
  138. package/dist/icons/FabAddIcon.js +78 -0
  139. package/dist/icons/PasteIcon.js +42 -0
  140. package/dist/icons/index.js +48 -0
  141. package/dist/index.js +71 -0
  142. package/package.json +2 -2
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactRouterDom = require("react-router-dom");
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _styles = require("@material-ui/core/styles");
11
+ var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
12
+ var _ListItemIcon = _interopRequireDefault(require("@material-ui/core/ListItemIcon"));
13
+ var _ListItemText = _interopRequireDefault(require("@material-ui/core/ListItemText"));
14
+ var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
15
+ var _reactIntl = require("react-intl");
16
+ var _Core = require("../../context/Core");
17
+ var _functions = require("../../functions");
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ const styles = () => ({
20
+ listItemRoot: {
21
+ color: '#ffffff'
22
+ },
23
+ activeListItem: {
24
+ color: '#55b7dc'
25
+ },
26
+ svgIcon: {
27
+ verticalAlign: 'middle',
28
+ height: 24,
29
+ width: 24,
30
+ filter: 'invert(1)'
31
+ },
32
+ activeStyle: {
33
+ backgroundColor: '#3f5c67',
34
+ color: '#55b7dc',
35
+ pointerEvents: 'none'
36
+ }
37
+ });
38
+ const style = {
39
+ navLink: {
40
+ textDecoration: 'none',
41
+ color: '#ffffff'
42
+ },
43
+ activeStyle: {
44
+ backgroundColor: '#3f5c67',
45
+ pointerEvents: 'none'
46
+ },
47
+ normalStyle: {}
48
+ };
49
+ function AppLink(props) {
50
+ const {
51
+ core,
52
+ classes,
53
+ app,
54
+ location,
55
+ intl
56
+ } = props;
57
+
58
+ // console.log(location);
59
+ // console.log(getUrl(app.metadata));
60
+ const active = location.pathname === (0, _functions.getUrl)(app.metadata);
61
+
62
+ // Look at translation array to get the appropriate name for the component
63
+ let appName = app.name;
64
+ if (app.translations) {
65
+ const translation = app.translations.find(x => x.languageCode === intl.locale);
66
+ if (translation !== undefined) {
67
+ appName = translation.name;
68
+ }
69
+ }
70
+ return /*#__PURE__*/_react.default.createElement("div", {
71
+ style: active ? style.activeStyle : style.normalStyle
72
+ }, /*#__PURE__*/_react.default.createElement(_reactRouterDom.NavLink, {
73
+ to: (0, _functions.getUrl)(app.metadata),
74
+ key: app.componentID,
75
+ style: style.navLink,
76
+ activeStyle: style.activeStyle
77
+ }, /*#__PURE__*/_react.default.createElement(_ListItem.default, {
78
+ button: true,
79
+ onClick: () => props.appSelected(app)
80
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
81
+ title: appName
82
+ }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement("img", {
83
+ src: core.formatUrl((0, _functions.getIconUrl)(app.metadata)),
84
+ className: classes.svgIcon,
85
+ alt: "icon"
86
+ }))), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
87
+ classes: {
88
+ primary: classes.listItemRoot
89
+ },
90
+ primary: appName
91
+ }))));
92
+ }
93
+ AppLink.propTypes = {
94
+ intl: _propTypes.default.shape().isRequired,
95
+ core: _propTypes.default.shape().isRequired,
96
+ location: _propTypes.default.shape().isRequired,
97
+ classes: _propTypes.default.shape().isRequired,
98
+ app: _propTypes.default.shape().isRequired,
99
+ appSelected: _propTypes.default.func.isRequired
100
+ };
101
+ var _default = exports.default = (0, _reactIntl.injectIntl)((0, _reactRouterDom.withRouter)((0, _Core.withCore)((0, _styles.withStyles)(styles)(AppLink))));
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _reactRouterDom = require("react-router-dom");
10
+ var _Core = require("../../context/Core");
11
+ var _Authentication = require("../../context/Authentication");
12
+ var _Organization = require("../../context/Organization");
13
+ var _Channels = require("../../context/Channels");
14
+ var _CoreSideBar = _interopRequireDefault(require("../CoreSideBar"));
15
+ var _CoreFrame = _interopRequireDefault(require("../CoreFrame"));
16
+ var _AppLink = _interopRequireDefault(require("./AppLink"));
17
+ var _functions = require("../../functions");
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } // import { CoreSideBar, CoreFrame } from '..';
21
+ const namespace = 'CoreAppSelector';
22
+ class CoreAppSelector extends _react.Component {
23
+ constructor(props) {
24
+ super(props);
25
+ this.state = {
26
+ apps: []
27
+ };
28
+ }
29
+ componentDidMount() {
30
+ this.props.core.log('verbose', namespace, 'componentDidMount()', 'Start');
31
+ this.updateApps();
32
+ }
33
+ componentDidUpdate(prevProps) {
34
+ if (this.props.authentication.didChange(prevProps.authentication) || this.props.organization.didChange(prevProps.organization)) {
35
+ this.updateApps();
36
+ }
37
+ }
38
+ getAppVersion(routeProps) {
39
+ const path = routeProps.match.params.app;
40
+ if (path !== undefined) {
41
+ const component = this.state.apps.find(_component => (0, _functions.getUrl)(_component.metadata) === "/".concat(path));
42
+ if (component) {
43
+ return component.version;
44
+ }
45
+ }
46
+ return null;
47
+ }
48
+ selectApp(app) {
49
+ if (typeof this.props.updateComponentID === 'function') {
50
+ this.props.updateComponentID(app.componentID);
51
+ }
52
+ }
53
+ updateApps() {
54
+ if (this.props.authentication.authenticated && this.props.organization.organization !== null && this.props.organization.entity !== null) {
55
+ this.props.authentication.http({
56
+ method: 'get',
57
+ url: "".concat(this.props.core.baseUrl, "/api/components"),
58
+ params: {
59
+ type: this.props.componentType,
60
+ organizationId: this.props.organization.organization.id,
61
+ entityId: this.props.organization.entity.id
62
+ }
63
+ }).then(res => {
64
+ this.props.core.log('debug', namespace, 'updateApps()', res.data);
65
+ if (res.data.length > 0 && window.location.hash === '#/') {
66
+ window.location.hash = "#".concat((0, _functions.getUrl)(res.data[0].metadata));
67
+ }
68
+ if (typeof this.props.updateComponentID === 'function') {
69
+ const component = res.data.find(_component => (0, _functions.getUrl)(_component.metadata) === window.location.hash.substr(1));
70
+ if (component) {
71
+ this.props.updateComponentID(component.componentID);
72
+ }
73
+ }
74
+ this.setState({
75
+ apps: res.data
76
+ });
77
+ });
78
+ }
79
+ }
80
+ processMessage(channel, obj) {
81
+ if (obj.what !== undefined) {
82
+ if (obj.what === 'package_enabled' || obj.what === 'package_disabled' || obj.what === 'package_added' || obj.what === 'package_updated' || obj.what === 'package_deleted') {
83
+ this.updateApps();
84
+ }
85
+ }
86
+ }
87
+
88
+ /* <NavLink
89
+ to={getUrl(app.metadata)}
90
+ key={app.componentID}
91
+ style={style.navLink}
92
+ activeStyle={style.activeStyle}
93
+ >
94
+ <ListItem
95
+ button
96
+ onClick={() => this.selectApp(app)}
97
+ >
98
+ <Tooltip title={this.getTranslatedName(app)}>
99
+ <ListItemIcon>
100
+ <img src={this.props.core.formatUrl(getIconUrl(app.metadata))} className={classes.svgIcon} alt="icon" />
101
+ </ListItemIcon>
102
+ </Tooltip>
103
+ <ListItemText classes={{ primary: classes.listItemRoot }} primary={this.getTranslatedName(app)} />
104
+ </ListItem>
105
+ </NavLink> */
106
+
107
+ render() {
108
+ const {
109
+ title,
110
+ componentID,
111
+ sandbox
112
+ } = this.props;
113
+ const {
114
+ apps
115
+ } = this.state;
116
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Channels.ChannelsConsumer, {
117
+ id: "coreappselector",
118
+ handler: (channel, obj) => this.processMessage(channel, obj)
119
+ }), /*#__PURE__*/_react.default.createElement(_reactRouterDom.HashRouter, null, /*#__PURE__*/_react.default.createElement(_CoreSideBar.default, {
120
+ title: title,
121
+ componentID: componentID,
122
+ showEntity: true,
123
+ apps: apps,
124
+ updateComponentID: id => this.props.updateComponentID(id),
125
+ content: apps.map(app => /*#__PURE__*/_react.default.createElement(_AppLink.default, {
126
+ key: app.componentID,
127
+ app: app,
128
+ appSelected: () => this.selectApp(app)
129
+ }))
130
+ }, this.props.children, /*#__PURE__*/_react.default.createElement(_reactRouterDom.Route, {
131
+ path: "/:app*",
132
+ render: routeProps => /*#__PURE__*/_react.default.createElement(_CoreFrame.default, _extends({}, routeProps, {
133
+ sandbox: sandbox,
134
+ version: this.getAppVersion(routeProps)
135
+ }))
136
+ }))));
137
+ }
138
+ }
139
+ CoreAppSelector.propTypes = {
140
+ title: _propTypes.default.string.isRequired,
141
+ componentID: _propTypes.default.string.isRequired,
142
+ componentType: _propTypes.default.string.isRequired,
143
+ sandbox: _propTypes.default.string,
144
+ updateComponentID: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.bool]),
145
+ core: _propTypes.default.shape().isRequired,
146
+ authentication: _propTypes.default.shape().isRequired,
147
+ organization: _propTypes.default.shape().isRequired,
148
+ children: _propTypes.default.node
149
+ };
150
+ CoreAppSelector.defaultProps = {
151
+ sandbox: '',
152
+ updateComponentID: false,
153
+ children: null
154
+ };
155
+ var _default = exports.default = (0, _Core.withCore)((0, _Authentication.withAuthentication)((0, _Organization.withOrganization)(CoreAppSelector)));
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CoreAppSelector.default;
10
+ }
11
+ });
12
+ var _CoreAppSelector = _interopRequireDefault(require("./CoreAppSelector"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _styles = require("@material-ui/core/styles");
9
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
10
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
11
+ var _Print = _interopRequireDefault(require("@material-ui/icons/Print"));
12
+ var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
13
+ var _Toolbar = _interopRequireDefault(require("@material-ui/core/Toolbar"));
14
+ var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
15
+ var _Save = _interopRequireDefault(require("@material-ui/icons/Save"));
16
+ var _AppBar = _interopRequireDefault(require("@material-ui/core/AppBar"));
17
+ var _Badge = _interopRequireDefault(require("@material-ui/core/Badge"));
18
+ var _reactIntl = require("react-intl");
19
+ var _propTypes = _interopRequireDefault(require("prop-types"));
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ const styles = theme => ({
22
+ fab: {
23
+ margin: 0,
24
+ top: 'auto',
25
+ right: 20,
26
+ bottom: 20,
27
+ left: 'auto',
28
+ position: 'fixed'
29
+ },
30
+ appBar: {
31
+ position: 'relative'
32
+ },
33
+ flex: {
34
+ flex: 1
35
+ },
36
+ root: {
37
+ flexGrow: 1
38
+ },
39
+ separator: {
40
+ display: 'inline',
41
+ width: 2,
42
+ height: 36,
43
+ background: '#0086b3',
44
+ margin: 7
45
+ },
46
+ paper: {
47
+ margin: '10px 10px 10px 10px',
48
+ padding: theme.spacing.unit * 2,
49
+ textAlign: 'center',
50
+ color: theme.palette.text.secondary
51
+ }
52
+ });
53
+ function CoreDialogueToolBar(props) {
54
+ const {
55
+ title,
56
+ warning,
57
+ intl,
58
+ classes
59
+ } = props;
60
+ return /*#__PURE__*/_react.default.createElement(_AppBar.default, {
61
+ className: classes.appBar,
62
+ color: "secondary"
63
+ }, /*#__PURE__*/_react.default.createElement(_Toolbar.default, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
64
+ variant: "h6",
65
+ color: "inherit",
66
+ className: classes.flex
67
+ }, title), props.children, props.handlePrint && /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
68
+ title: intl.formatMessage({
69
+ id: '__print'
70
+ })
71
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
72
+ color: "inherit",
73
+ "aria-label": intl.formatMessage({
74
+ id: '__print'
75
+ }),
76
+ onClick: () => props.handlePrint()
77
+ }, /*#__PURE__*/_react.default.createElement(_Print.default, null))), (props.handlePrint || props.children) && /*#__PURE__*/_react.default.createElement("div", {
78
+ className: classes.separator
79
+ }), props.handleSave && /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
80
+ title: intl.formatMessage({
81
+ id: '__save'
82
+ })
83
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
84
+ color: "inherit",
85
+ "aria-label": intl.formatMessage({
86
+ id: '__save'
87
+ }),
88
+ onClick: () => props.handleSave()
89
+ }, /*#__PURE__*/_react.default.createElement(_Badge.default, {
90
+ badgeContent: "!",
91
+ color: "error",
92
+ invisible: !warning
93
+ }, /*#__PURE__*/_react.default.createElement(_Save.default, null)))), props.handleClose && /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
94
+ title: intl.formatMessage({
95
+ id: '__close'
96
+ })
97
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
98
+ color: "inherit",
99
+ "aria-label": intl.formatMessage({
100
+ id: '__close'
101
+ }),
102
+ onClick: () => props.handleClose()
103
+ }, /*#__PURE__*/_react.default.createElement(_Close.default, null)))));
104
+ }
105
+ CoreDialogueToolBar.propTypes = {
106
+ title: _propTypes.default.string,
107
+ warning: _propTypes.default.bool,
108
+ handlePrint: _propTypes.default.func,
109
+ handleSave: _propTypes.default.func,
110
+ handleClose: _propTypes.default.func,
111
+ intl: _propTypes.default.shape().isRequired,
112
+ classes: _propTypes.default.shape().isRequired,
113
+ children: _propTypes.default.node
114
+ };
115
+ CoreDialogueToolBar.defaultProps = {
116
+ title: '',
117
+ warning: false,
118
+ handlePrint: null,
119
+ handleSave: null,
120
+ handleClose: null,
121
+ children: null
122
+ };
123
+ var _default = exports.default = (0, _reactIntl.injectIntl)((0, _styles.withStyles)(styles)(CoreDialogueToolBar));
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CoreDialogueToolBar.default;
10
+ }
11
+ });
12
+ var _CoreDialogueToolBar = _interopRequireDefault(require("./CoreDialogueToolBar"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactRouterDom = require("react-router-dom");
9
+ var _UnfoldMore = _interopRequireDefault(require("@material-ui/icons/UnfoldMore"));
10
+ var _UnfoldLess = _interopRequireDefault(require("@material-ui/icons/UnfoldLess"));
11
+ var _ListItemIcon = _interopRequireDefault(require("@material-ui/core/ListItemIcon"));
12
+ var _ListItemText = _interopRequireDefault(require("@material-ui/core/ListItemText"));
13
+ var _styles = require("@material-ui/core/styles");
14
+ var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
15
+ var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
16
+ var _Divider = _interopRequireDefault(require("@material-ui/core/Divider"));
17
+ var _Drawer = _interopRequireDefault(require("@material-ui/core/Drawer"));
18
+ var _reactIntl = require("react-intl");
19
+ var _propTypes = _interopRequireDefault(require("prop-types"));
20
+ var _Authentication = require("../../context/Authentication");
21
+ var _Organization = require("../../context/Organization");
22
+ var _Channels = require("../../context/Channels");
23
+ var _functions = require("../../functions");
24
+ var _Core = require("../../context/Core");
25
+ var _CoreFrame = _interopRequireDefault(require("../CoreFrame"));
26
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
27
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
28
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
29
+ const namespace = 'CoreDrawer';
30
+ const styles = theme => ({
31
+ root: {
32
+ display: 'flex',
33
+ height: 'calc(100vh - 64px)',
34
+ overflow: 'hidden'
35
+ },
36
+ drawerPaper: {
37
+ position: 'relative',
38
+ whiteSpace: 'nowrap'
39
+ },
40
+ drawerPaperClose: {
41
+ position: 'relative',
42
+ overflowX: 'hidden',
43
+ width: theme.spacing.unit * 7,
44
+ [theme.breakpoints.up('sm')]: {
45
+ width: theme.spacing.unit * 9
46
+ }
47
+ },
48
+ content: {
49
+ position: 'relative',
50
+ width: '100%'
51
+ },
52
+ icon: {
53
+ verticalAlign: 'middle',
54
+ height: 24,
55
+ width: 24
56
+ },
57
+ rotate: {
58
+ '-webkit-transform': 'rotate(90deg)',
59
+ '-moz-transform': 'rotate(90deg)',
60
+ '-ms-transform': 'rotate(90deg)',
61
+ '-o-transform': 'rotate(90deg)',
62
+ transform: 'rotate(90deg)'
63
+ },
64
+ dividerRootStart: {
65
+ height: 2
66
+ },
67
+ dividerRoot: {
68
+ height: 2,
69
+ marginTop: 8,
70
+ marginBottom: 8
71
+ }
72
+ });
73
+ const style = {
74
+ navLink: {
75
+ textDecoration: 'none'
76
+ },
77
+ activeStyle: {
78
+ background: '#CFD8DC',
79
+ pointerEvents: 'none'
80
+ }
81
+ };
82
+ class CoreDrawer extends _react.Component {
83
+ constructor() {
84
+ super();
85
+ this.state = {
86
+ apps: [],
87
+ drawerOpen: true
88
+ };
89
+ }
90
+ componentDidMount() {
91
+ this.props.core.log('verbose', namespace, 'componentDidMount()', 'Start');
92
+ this.updateApps();
93
+ }
94
+ componentDidUpdate(prevProps) {
95
+ if (this.props.authentication.didChange(prevProps.authentication) || this.props.organization.didChange(prevProps.organization)) {
96
+ this.updateApps();
97
+ }
98
+ }
99
+ getTranslatedName(app) {
100
+ // Look at translation array to get the appropriate name for the component
101
+ const translation = app.translations.find(x => x.languageCode === this.props.intl.locale);
102
+ if (translation !== undefined) {
103
+ return translation.name;
104
+ }
105
+ return app.name;
106
+ }
107
+ getAppVersion(routeProps) {
108
+ const path = routeProps.match.params.app;
109
+ if (path !== undefined) {
110
+ const component = this.state.apps.find(_component => (0, _functions.getUrl)(_component.metadata) === "/".concat(path));
111
+ if (component) {
112
+ return component.version;
113
+ }
114
+ }
115
+ return null;
116
+ }
117
+ handleClick() {
118
+ this.setState(prevState => ({
119
+ drawerOpen: !prevState.drawerOpen
120
+ }));
121
+ }
122
+ updateApps() {
123
+ if (this.props.authentication.authenticated && this.props.organization.organization !== null && this.props.organization.entity !== null) {
124
+ this.props.authentication.http({
125
+ method: 'get',
126
+ url: "".concat(this.props.core.baseUrl, "/api/components"),
127
+ params: {
128
+ type: this.props.componentType,
129
+ organizationId: this.props.organization.organization.id,
130
+ entityId: this.props.organization.entity.id
131
+ }
132
+ }).then(res => {
133
+ this.props.core.log('debug', namespace, 'updateApps()', res.data);
134
+ if (res.data.length > 0 && window.location.hash === '#/') {
135
+ window.location.hash = "#".concat((0, _functions.getUrl)(res.data[0].metadata));
136
+ }
137
+ if (typeof this.props.updateComponentID === 'function') {
138
+ const component = res.data.find(_component => (0, _functions.getUrl)(_component.metadata) === window.location.hash.substr(1));
139
+ this.props.updateComponentID(component.componentID);
140
+ }
141
+ this.setState({
142
+ apps: res.data
143
+ });
144
+ });
145
+ }
146
+ }
147
+ selectApp(app) {
148
+ if (typeof this.props.updateComponentID === 'function') {
149
+ this.props.updateComponentID(app.componentID);
150
+ }
151
+ }
152
+ processMessage(channel, obj) {
153
+ if (obj.what !== undefined) {
154
+ if (obj.what === 'package_enabled' || obj.what === 'package_disabled' || obj.what === 'package_added' || obj.what === 'package_updated' || obj.what === 'package_deleted') {
155
+ this.updateApps();
156
+ }
157
+ }
158
+ }
159
+ render() {
160
+ const {
161
+ sandbox,
162
+ classes
163
+ } = this.props;
164
+ const {
165
+ apps,
166
+ drawerOpen
167
+ } = this.state;
168
+ return /*#__PURE__*/_react.default.createElement(_reactRouterDom.HashRouter, null, /*#__PURE__*/_react.default.createElement("div", {
169
+ className: classes.root
170
+ }, /*#__PURE__*/_react.default.createElement(_Channels.ChannelsConsumer, {
171
+ id: "coredrawer",
172
+ handler: (channel, obj) => this.processMessage(channel, obj)
173
+ }), /*#__PURE__*/_react.default.createElement(_Drawer.default, {
174
+ variant: "permanent",
175
+ classes: {
176
+ paper: drawerOpen ? classes.drawerPaper : classes.drawerPaperClose
177
+ }
178
+ }, apps.map(app => /*#__PURE__*/_react.default.createElement(_reactRouterDom.NavLink, {
179
+ to: (0, _functions.getUrl)(app.metadata),
180
+ key: app.componentID,
181
+ style: style.navLink,
182
+ activeStyle: style.activeStyle
183
+ }, /*#__PURE__*/_react.default.createElement(_ListItem.default, {
184
+ button: true,
185
+ onClick: () => this.selectApp(app)
186
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
187
+ title: this.getTranslatedName(app)
188
+ }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement("img", {
189
+ src: this.props.core.formatUrl((0, _functions.getIconUrl)(app.metadata)),
190
+ className: classes.icon,
191
+ alt: "icon"
192
+ }))), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
193
+ primary: this.getTranslatedName(app)
194
+ })))), /*#__PURE__*/_react.default.createElement(_Divider.default, {
195
+ classes: {
196
+ root: apps.length > 0 ? classes.dividerRoot : classes.dividerRootStart
197
+ }
198
+ }), /*#__PURE__*/_react.default.createElement(_ListItem.default, {
199
+ onClick: () => this.handleClick(),
200
+ button: true
201
+ }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, drawerOpen ? /*#__PURE__*/_react.default.createElement(_UnfoldLess.default, {
202
+ className: classes.rotate
203
+ }) : /*#__PURE__*/_react.default.createElement(_UnfoldMore.default, {
204
+ className: classes.rotate
205
+ })), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
206
+ primary: "Collapse"
207
+ }))), /*#__PURE__*/_react.default.createElement("div", {
208
+ className: classes.content
209
+ }, this.props.children, /*#__PURE__*/_react.default.createElement(_reactRouterDom.Route, {
210
+ path: "/:app*",
211
+ render: routeProps => /*#__PURE__*/_react.default.createElement(_CoreFrame.default, _extends({}, routeProps, {
212
+ sandbox: sandbox,
213
+ version: this.getAppVersion(routeProps)
214
+ }))
215
+ }))));
216
+ }
217
+ }
218
+ CoreDrawer.propTypes = {
219
+ componentType: _propTypes.default.string.isRequired,
220
+ intl: _propTypes.default.shape({
221
+ locale: _propTypes.default.string
222
+ }).isRequired,
223
+ updateComponentID: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.bool]),
224
+ sandbox: _propTypes.default.string,
225
+ core: _propTypes.default.shape().isRequired,
226
+ authentication: _propTypes.default.shape().isRequired,
227
+ organization: _propTypes.default.shape().isRequired,
228
+ classes: _propTypes.default.shape().isRequired,
229
+ children: _propTypes.default.node
230
+ };
231
+ CoreDrawer.defaultProps = {
232
+ updateComponentID: false,
233
+ sandbox: '',
234
+ children: null
235
+ };
236
+ var _default = exports.default = (0, _reactIntl.injectIntl)((0, _Core.withCore)((0, _Authentication.withAuthentication)((0, _Organization.withOrganization)((0, _styles.withStyles)(styles)(CoreDrawer)))));
@@ -0,0 +1,36 @@
1
+ # CoreDrawer
2
+
3
+ This component is used in "main" applications that have "sub" applications. It makes a call to [components-api](https://github.com/versacall/components-api) to get a list of all components that match the specified type.
4
+
5
+ Expanded:
6
+ ![Expanded](screenshot_expanded.png)
7
+
8
+ Collapsed:
9
+ ![Collaped](screenshot_collapsed.png)
10
+
11
+ ```
12
+ import CoreAppBar from 'core-library-react';
13
+ import CoreDrawer from 'core-library-react';
14
+
15
+ ...
16
+
17
+ render() {
18
+ return(
19
+ <CoreAppBar title="Communications" />
20
+ <CoreDrawer componentType="communications.ui" />
21
+ );
22
+ }
23
+ ```
24
+
25
+ ## Props
26
+ - componentType : This is the type of component to get. Defined in the componentDefinition file of a package. Example: communications.ui
27
+
28
+ ## componentDefinition
29
+
30
+ This works with componentDefinition elements stored in [packages-api](https://github.com/versacall/packages-api). Here are a couple of
31
+ key elements:
32
+ - name : This is the name that is shown.
33
+ - type : This is the type that is searched for by the componentType prop.
34
+ - metadata
35
+ - url : This is the url to open when the item is clicked on. Can be relative or absolute.
36
+ - iconUrl : This is the url of the icon to show.