versacall-core-library-react 2.0.70 → 2.0.71

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 +108 -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,105 @@
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 _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
9
+ var _List = _interopRequireDefault(require("@material-ui/core/List"));
10
+ var _Tabs = _interopRequireDefault(require("@material-ui/core/Tabs"));
11
+ var _Tab = _interopRequireDefault(require("@material-ui/core/Tab"));
12
+ var _reactIntl = require("react-intl");
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _CoreDialogueToolBar = _interopRequireDefault(require("../CoreDialogueToolBar"));
15
+ var _OldTagOption = _interopRequireDefault(require("./OldTagOption"));
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ 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); }
18
+ class OldTagFilterSelector extends _react.Component {
19
+ constructor() {
20
+ super();
21
+ this.state = {
22
+ tab: 0,
23
+ search: ''
24
+ };
25
+ }
26
+ getTabTitle(title, index) {
27
+ const {
28
+ intl,
29
+ tagOptions,
30
+ filter
31
+ } = this.props;
32
+ let titleString = intl.formatMessage({
33
+ id: title
34
+ });
35
+ if (filter[tagOptions[index].filterArrayName].length > 0) {
36
+ titleString = "".concat(titleString, "(").concat(filter[tagOptions[index].filterArrayName].length, ")");
37
+ }
38
+ return titleString;
39
+ }
40
+ render() {
41
+ const {
42
+ intl,
43
+ title,
44
+ tagOptions,
45
+ updateFilter,
46
+ filter,
47
+ onClose
48
+ } = this.props;
49
+ const {
50
+ tab,
51
+ search
52
+ } = this.state;
53
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CoreDialogueToolBar.default, {
54
+ title: intl.formatMessage({
55
+ id: title
56
+ }),
57
+ handleClose: () => onClose()
58
+ }), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Tabs.default, {
59
+ value: tab,
60
+ onChange: (event, value) => this.setState({
61
+ tab: value,
62
+ search: ''
63
+ })
64
+ }, tagOptions.map((option, index) => /*#__PURE__*/_react.default.createElement(_Tab.default, {
65
+ label: this.getTabTitle(option.title, index),
66
+ key: String(index)
67
+ }))), /*#__PURE__*/_react.default.createElement("div", {
68
+ style: {
69
+ width: '80%',
70
+ margin: '0 10%'
71
+ }
72
+ }, /*#__PURE__*/_react.default.createElement(_TextField.default, {
73
+ margin: "dense",
74
+ value: search,
75
+ label: intl.formatMessage({
76
+ id: '__search_tags'
77
+ }),
78
+ onChange: event => this.setState({
79
+ search: event.target.value
80
+ })
81
+ })), /*#__PURE__*/_react.default.createElement("div", null, tagOptions.length > 0 && /*#__PURE__*/_react.default.createElement(_List.default, {
82
+ style: {
83
+ padding: '2%',
84
+ overflow: 'auto',
85
+ height: '25vh'
86
+ }
87
+ }, tagOptions[tab].options.filter(tag => tag.tag.includes(search)).map((tag, index) => /*#__PURE__*/_react.default.createElement(_OldTagOption.default, {
88
+ tag: tag,
89
+ key: String(index),
90
+ filterArrayName: tagOptions[tab].filterArrayName,
91
+ activeTags: filter[tagOptions[tab].filterArrayName],
92
+ showCount: tagOptions[tab].optionName !== 'locationTags',
93
+ updateFilter: newFilterProperties => updateFilter(newFilterProperties)
94
+ }))))));
95
+ }
96
+ }
97
+ OldTagFilterSelector.propTypes = {
98
+ title: _propTypes.default.string.isRequired,
99
+ intl: _propTypes.default.shape().isRequired,
100
+ onClose: _propTypes.default.func.isRequired,
101
+ filter: _propTypes.default.shape().isRequired,
102
+ updateFilter: _propTypes.default.func.isRequired,
103
+ tagOptions: _propTypes.default.arrayOf(_propTypes.default.shape()).isRequired
104
+ };
105
+ var _default = exports.default = (0, _reactIntl.injectIntl)(OldTagFilterSelector);
@@ -0,0 +1,53 @@
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 _ListItemText = _interopRequireDefault(require("@material-ui/core/ListItemText"));
9
+ var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
10
+ var _reactIntl = require("react-intl");
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function OldTagOption(props) {
14
+ const {
15
+ tag,
16
+ showCount,
17
+ activeTags,
18
+ updateFilter,
19
+ filterArrayName
20
+ } = props;
21
+ const listItemStyle = {
22
+ borderRadius: '8%',
23
+ border: '2px solid #005A96',
24
+ backgroundColor: activeTags.includes(tag.tag) ? 'rgba(0, 90, 150, 0.33)' : 'white'
25
+ };
26
+ const addTag = () => {
27
+ if (activeTags.includes(tag.tag)) {
28
+ const newTags = activeTags;
29
+ // remove tag if it already exists in the array
30
+ newTags.splice(activeTags.findIndex(_tag => _tag === tag.tag), 1);
31
+ return updateFilter({
32
+ [filterArrayName]: newTags
33
+ });
34
+ }
35
+ return updateFilter({
36
+ [filterArrayName]: [...activeTags, tag.tag]
37
+ });
38
+ };
39
+ return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
40
+ style: listItemStyle,
41
+ onClick: () => addTag()
42
+ }, /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
43
+ primary: showCount ? "".concat(tag.tag, " (").concat(tag.count, ")") : "".concat(tag.tag)
44
+ }));
45
+ }
46
+ OldTagOption.propTypes = {
47
+ tag: _propTypes.default.shape().isRequired,
48
+ showCount: _propTypes.default.bool.isRequired,
49
+ updateFilter: _propTypes.default.func.isRequired,
50
+ filterArrayName: _propTypes.default.string.isRequired,
51
+ activeTags: _propTypes.default.arrayOf(_propTypes.default.string).isRequired
52
+ };
53
+ var _default = exports.default = (0, _reactIntl.injectIntl)(OldTagOption);
@@ -0,0 +1,487 @@
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 _Grid = _interopRequireDefault(require("@material-ui/core/Grid"));
10
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
11
+ var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
12
+ var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
13
+ var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent"));
14
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
15
+ var _InputAdornment = _interopRequireDefault(require("@material-ui/core/InputAdornment"));
16
+ var _Link = _interopRequireDefault(require("@material-ui/core/Link"));
17
+ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
18
+ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
19
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
20
+ var _FilterList = _interopRequireDefault(require("@material-ui/icons/FilterList"));
21
+ var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
22
+ var _Search = _interopRequireDefault(require("@material-ui/icons/Search"));
23
+ var _LocationOn = _interopRequireDefault(require("@material-ui/icons/LocationOn"));
24
+ var _LocalOffer = _interopRequireDefault(require("@material-ui/icons/LocalOffer"));
25
+ var _Category = _interopRequireDefault(require("@material-ui/icons/Category"));
26
+ var _reactIntl = require("react-intl");
27
+ var _scrollbarModule = _interopRequireDefault(require("../../css/scrollbar.module.css"));
28
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
29
+ 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); }
30
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
33
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
34
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
35
+ const style = {
36
+ header: {
37
+ display: 'flex',
38
+ alignItems: 'center',
39
+ padding: 10
40
+ },
41
+ list: {
42
+ height: 360,
43
+ overflowY: 'auto'
44
+ }
45
+ };
46
+ const consolidateTags = tagList => {
47
+ const newTagList = [];
48
+ tagList.forEach(tagInfo => {
49
+ const existing = newTagList.find(x => x.tag === tagInfo.tag);
50
+ if (existing) {
51
+ existing.count += tagInfo.count;
52
+ } else {
53
+ newTagList.push({
54
+ tag: tagInfo.tag,
55
+ type: tagInfo.type,
56
+ count: tagInfo.count
57
+ });
58
+ }
59
+ });
60
+ return newTagList;
61
+ };
62
+ function TagFilterBuilder(props) {
63
+ const [search, setSearch] = (0, _react.useState)('');
64
+ const [showAddCustom, setShowAddCustom] = (0, _react.useState)(false);
65
+ const [customTypeOptions, setCustomTypeOptions] = (0, _react.useState)([]);
66
+ const [customType, setCustomType] = (0, _react.useState)('');
67
+ const [customTag, setCustomTag] = (0, _react.useState)('');
68
+ const {
69
+ intl,
70
+ tags,
71
+ filter,
72
+ updateFilter,
73
+ hideModuleTagFilters,
74
+ hideModuleLocationFilters,
75
+ hideMonitoringPointTagFilters,
76
+ hideMonitoringPointTypeFilters,
77
+ baseFilters
78
+ } = props;
79
+ const updateSearch = value => {
80
+ if (value.length > 0) {
81
+ const lower = value.toLowerCase();
82
+ const test = /^[a-z0-9_]+$/.exec(lower);
83
+ if (test !== null) {
84
+ setSearch(lower);
85
+ }
86
+ } else {
87
+ setSearch('');
88
+ }
89
+ // setSearch(value.replace(/[^A-Z0-9]/ig, ' ').toLowerCase());
90
+ };
91
+ const selectItem = (filterListName, tag) => {
92
+ const newFilter = _objectSpread({}, filter);
93
+ newFilter[filterListName].push(tag);
94
+ updateFilter(newFilter);
95
+ };
96
+ const deselectItem = (filterListName, tag) => {
97
+ const newFilter = _objectSpread({}, filter);
98
+ const index = newFilter[filterListName].indexOf(tag);
99
+ if (index !== -1) {
100
+ newFilter[filterListName].splice(index, 1);
101
+ updateFilter(newFilter);
102
+ }
103
+ };
104
+ const renderTag = (tagInfo, filterListName) => {
105
+ const isSelected = filter[filterListName].includes(tagInfo.tag);
106
+ let keyPrefix = '';
107
+ let icon;
108
+ switch (filterListName) {
109
+ case 'moduleTagFilters':
110
+ keyPrefix = 'mtag';
111
+ icon = /*#__PURE__*/_react.default.createElement(_LocalOffer.default, null);
112
+ break;
113
+ case 'moduleLocationFilters':
114
+ keyPrefix = 'loc';
115
+ icon = /*#__PURE__*/_react.default.createElement(_LocationOn.default, null);
116
+ break;
117
+ case 'monitoringPointTagFilters':
118
+ keyPrefix = 'mptag';
119
+ icon = /*#__PURE__*/_react.default.createElement(_LocalOffer.default, null);
120
+ break;
121
+ case 'monitoringPointTypeFilters':
122
+ keyPrefix = 'ttag';
123
+ icon = /*#__PURE__*/_react.default.createElement(_Category.default, null);
124
+ break;
125
+ default:
126
+ keyPrefix = 'def';
127
+ icon = /*#__PURE__*/_react.default.createElement(_LocalOffer.default, null);
128
+ break;
129
+ }
130
+ return /*#__PURE__*/_react.default.createElement("div", {
131
+ key: "".concat(keyPrefix, "_").concat(tagInfo.tag),
132
+ style: {
133
+ margin: 5,
134
+ padding: 5,
135
+ backgroundColor: isSelected ? '#55b7dc' : '#ffffff',
136
+ border: '1px solid black',
137
+ display: 'flex',
138
+ alignItems: 'center',
139
+ cursor: 'pointer'
140
+ },
141
+ onClick: () => isSelected ? deselectItem(filterListName, tagInfo.tag) : selectItem(filterListName, tagInfo.tag),
142
+ "aria-hidden": "true"
143
+ }, icon, /*#__PURE__*/_react.default.createElement("span", {
144
+ style: {
145
+ marginLeft: 10,
146
+ flexGrow: 1
147
+ }
148
+ }, tagInfo.tag), "(".concat(tagInfo.count, ")"));
149
+ };
150
+ const showCustom = which => {
151
+ const typeOptions = [];
152
+ if (which === 'module') {
153
+ if (!hideModuleTagFilters) {
154
+ typeOptions.push('moduleTagFilters');
155
+ }
156
+ if (!hideModuleLocationFilters) {
157
+ typeOptions.push('moduleLocationFilters');
158
+ }
159
+ setCustomType(!hideModuleLocationFilters ? 'moduleLocationFilters' : 'moduleTagFilters');
160
+ } else {
161
+ if (!hideMonitoringPointTagFilters) {
162
+ typeOptions.push('monitoringPointTagFilters');
163
+ }
164
+ if (!hideMonitoringPointTypeFilters) {
165
+ typeOptions.push('monitoringPointTypeFilters');
166
+ }
167
+ setCustomType(!hideMonitoringPointTagFilters ? 'monitoringPointTagFilters' : 'monitoringPointTypeFilters');
168
+ }
169
+ setCustomTypeOptions(typeOptions);
170
+ setCustomTag('');
171
+ setShowAddCustom(true);
172
+ };
173
+ const addCustomTag = () => {
174
+ const newFilter = _objectSpread({}, filter);
175
+ if (!newFilter[customType].includes(customTag)) {
176
+ newFilter[customType].push(customTag);
177
+ updateFilter(newFilter);
178
+ }
179
+ setShowAddCustom(false);
180
+ };
181
+ const handleKeyPress = e => {
182
+ if (e.which === 13) {
183
+ if (customTag.length > 0) {
184
+ addCustomTag();
185
+ }
186
+ }
187
+ };
188
+ const showModules = !hideModuleTagFilters || !hideModuleLocationFilters;
189
+ const showMonitoringPoints = !hideMonitoringPointTagFilters || !hideMonitoringPointTypeFilters;
190
+ let columns = 0;
191
+ if (showModules) columns++;
192
+ if (showMonitoringPoints) columns++;
193
+
194
+ // Add any tags that aren't on the supplied list to the supplied list. This is needed in case we reference tags that have been deleted/etc.
195
+ // const adjustedModuleTags = [...tags.moduleTags];
196
+ const adjustedModuleTags = consolidateTags(tags.moduleTags);
197
+ filter.moduleTagFilters.forEach(x => {
198
+ if (!adjustedModuleTags.find(tagInfo => tagInfo.tag === x)) {
199
+ adjustedModuleTags.push({
200
+ tag: x,
201
+ count: 0
202
+ });
203
+ }
204
+ });
205
+ // const adjustedLocationTags = [...tags.locationTags];
206
+ const adjustedLocationTags = consolidateTags(tags.locationTags);
207
+ filter.moduleLocationFilters.forEach(x => {
208
+ if (!adjustedLocationTags.find(tagInfo => tagInfo.tag === x)) {
209
+ adjustedLocationTags.push({
210
+ tag: x,
211
+ count: 0
212
+ });
213
+ }
214
+ });
215
+ // const adjustedMonitoringPointTags = [...tags.monitoringPointTags];
216
+ const adjustedMonitoringPointTags = consolidateTags(tags.monitoringPointTags);
217
+ filter.monitoringPointTagFilters.forEach(x => {
218
+ if (!adjustedMonitoringPointTags.find(tagInfo => tagInfo.tag === x)) {
219
+ adjustedMonitoringPointTags.push({
220
+ tag: x,
221
+ count: 0
222
+ });
223
+ }
224
+ });
225
+ // const adjustedMonitoringPointTypes = [...tags.typeTags];
226
+ const adjustedMonitoringPointTypes = consolidateTags(tags.typeTags);
227
+ filter.monitoringPointTypeFilters.forEach(x => {
228
+ if (!adjustedMonitoringPointTypes.find(tagInfo => tagInfo.tag === x)) {
229
+ adjustedMonitoringPointTypes.push({
230
+ tag: x,
231
+ count: 0
232
+ });
233
+ }
234
+ });
235
+
236
+ // Filter or not
237
+ // const filteredModuleTags = search.length > 0 ? tags.moduleTags.filter(x => x.tag.includes(search)) : [...tags.moduleTags];
238
+ // const filteredLocationTags = search.length > 0 ? tags.locationTags.filter(x => x.tag.includes(search)) : [...tags.locationTags];
239
+ // const filteredMonitoringPointTags = search.length > 0 ? tags.monitoringPointTags.filter(x => x.tag.includes(search)) : [...tags.monitoringPointTags];
240
+ // const filteredTypeTags = search.length > 0 ? tags.typeTags.filter(x => x.tag.includes(search)) : [...tags.typeTags];
241
+
242
+ const filteredModuleTags = search.length > 0 ? adjustedModuleTags.filter(x => x.tag.includes(search)) : [...adjustedModuleTags];
243
+ const filteredLocationTags = search.length > 0 ? adjustedLocationTags.filter(x => x.tag.includes(search)) : [...adjustedLocationTags];
244
+ const filteredMonitoringPointTags = search.length > 0 ? adjustedMonitoringPointTags.filter(x => x.tag.includes(search)) : [...adjustedMonitoringPointTags];
245
+ const filteredTypeTags = search.length > 0 ? adjustedMonitoringPointTypes.filter(x => x.tag.includes(search)) : [...adjustedMonitoringPointTypes];
246
+
247
+ // const filteredModuleTags = adjustedModuleTags;
248
+ // const filteredLocationTags = adjustedLocationTags;
249
+ // const filteredMonitoringPointTags = adjustedMonitoringPointTags;
250
+ // const filteredTypeTags = adjustedMonitoringPointTypes;
251
+
252
+ // Sort by highest quantities of tags
253
+ filteredModuleTags.sort((a, b) => b.count - a.count);
254
+ filteredLocationTags.sort((a, b) => b.count - a.count);
255
+ filteredMonitoringPointTags.sort((a, b) => b.count - a.count);
256
+ filteredTypeTags.sort((a, b) => b.count - a.count);
257
+
258
+ /* eslint-disable jsx-a11y/anchor-is-valid */
259
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.default, {
260
+ container: true
261
+ }, /*#__PURE__*/_react.default.createElement(_Grid.default, {
262
+ item: true,
263
+ xs: 12
264
+ }, /*#__PURE__*/_react.default.createElement("div", {
265
+ style: style.header
266
+ }, /*#__PURE__*/_react.default.createElement(_FilterList.default, {
267
+ style: {
268
+ marginRight: 10
269
+ }
270
+ }), /*#__PURE__*/_react.default.createElement(_Typography.default, {
271
+ variant: "h6",
272
+ style: {
273
+ flexGrow: 1
274
+ }
275
+ }, "Tag Filter Builder"), baseFilters && /*#__PURE__*/_react.default.createElement("div", {
276
+ style: {
277
+ minWidth: 200,
278
+ marginRight: 10
279
+ }
280
+ }, /*#__PURE__*/_react.default.createElement(_TextField.default, {
281
+ variant: "outlined",
282
+ label: "Base Filter",
283
+ InputLabelProps: {
284
+ shrink: true
285
+ },
286
+ value: filter.baseFilter ? filter.baseFilter : '',
287
+ onChange: e => updateFilter(_objectSpread(_objectSpread({}, filter), {}, {
288
+ baseFilter: e.target.value
289
+ })),
290
+ select: true,
291
+ SelectProps: {
292
+ displayEmpty: true
293
+ },
294
+ fullWidth: true,
295
+ size: "small"
296
+ }, /*#__PURE__*/_react.default.createElement("option", {
297
+ value: "",
298
+ style: {
299
+ fontStyle: 'italic'
300
+ }
301
+ }, "NONE"), baseFilters.map((bFilter, bfIndex) => /*#__PURE__*/_react.default.createElement("option", {
302
+ value: bFilter
303
+ }, bFilter)))), /*#__PURE__*/_react.default.createElement(_TextField.default, {
304
+ id: "searchbar",
305
+ placeholder: "Search...",
306
+ value: search,
307
+ onChange: e => updateSearch(e.target.value),
308
+ InputProps: {
309
+ startAdornment: /*#__PURE__*/_react.default.createElement(_InputAdornment.default, {
310
+ position: "start"
311
+ }, /*#__PURE__*/_react.default.createElement(_Search.default, null))
312
+ }
313
+ }), /*#__PURE__*/_react.default.createElement(_IconButton.default, {
314
+ onClick: () => props.close()
315
+ }, /*#__PURE__*/_react.default.createElement(_Close.default, null)))), showModules && /*#__PURE__*/_react.default.createElement(_Grid.default, {
316
+ item: true,
317
+ xs: columns === 1 ? 12 : 6,
318
+ style: {
319
+ padding: 10
320
+ }
321
+ }, /*#__PURE__*/_react.default.createElement("div", {
322
+ style: {
323
+ display: 'flex'
324
+ }
325
+ }, /*#__PURE__*/_react.default.createElement("div", {
326
+ style: {
327
+ flexGrow: 1
328
+ }
329
+ }, "Modules", " (".concat((filter.moduleTagFilters.length + filter.moduleLocationFilters.length).toString(), ")")), /*#__PURE__*/_react.default.createElement(_Link.default, {
330
+ component: "button",
331
+ variant: "body2",
332
+ style: {
333
+ marginRight: 10
334
+ },
335
+ onClick: () => updateFilter(_objectSpread(_objectSpread({}, filter), {}, {
336
+ moduleTagFilters: [],
337
+ moduleLocationFilters: []
338
+ }))
339
+ }, intl.formatMessage({
340
+ id: '__clear'
341
+ })), /*#__PURE__*/_react.default.createElement(_Link.default, {
342
+ component: "button",
343
+ variant: "body2",
344
+ onClick: () => showCustom('module')
345
+ }, intl.formatMessage({
346
+ id: '__add_custom'
347
+ }))), /*#__PURE__*/_react.default.createElement("div", {
348
+ style: style.list,
349
+ className: _scrollbarModule.default.scroll
350
+ }, !hideModuleTagFilters && filteredModuleTags.map(moduleTag => renderTag(moduleTag, 'moduleTagFilters')), !hideModuleLocationFilters && filteredLocationTags.map(locationTag => renderTag(locationTag, 'moduleLocationFilters')))), showMonitoringPoints && /*#__PURE__*/_react.default.createElement(_Grid.default, {
351
+ item: true,
352
+ xs: columns === 1 ? 12 : 6,
353
+ style: {
354
+ padding: 10
355
+ }
356
+ }, /*#__PURE__*/_react.default.createElement("div", {
357
+ style: {
358
+ display: 'flex'
359
+ }
360
+ }, /*#__PURE__*/_react.default.createElement("div", {
361
+ style: {
362
+ flexGrow: 1
363
+ }
364
+ }, "Monitoring Points", " (".concat((filter.monitoringPointTagFilters.length + filter.monitoringPointTypeFilters.length).toString(), ")")), /*#__PURE__*/_react.default.createElement(_Link.default, {
365
+ component: "button",
366
+ variant: "body2",
367
+ style: {
368
+ marginRight: 10
369
+ },
370
+ onClick: () => updateFilter(_objectSpread(_objectSpread({}, filter), {}, {
371
+ monitoringPointTagFilters: [],
372
+ monitoringPointTypeFilters: []
373
+ }))
374
+ }, intl.formatMessage({
375
+ id: '__clear'
376
+ })), /*#__PURE__*/_react.default.createElement(_Link.default, {
377
+ component: "button",
378
+ variant: "body2",
379
+ onClick: () => showCustom('monitoringPoint')
380
+ }, intl.formatMessage({
381
+ id: '__add_custom'
382
+ }))), /*#__PURE__*/_react.default.createElement("div", {
383
+ style: style.list,
384
+ className: _scrollbarModule.default.scroll
385
+ }, !hideMonitoringPointTagFilters && filteredMonitoringPointTags.map(mpTag => renderTag(mpTag, 'monitoringPointTagFilters')), !hideMonitoringPointTypeFilters && filteredTypeTags.map(typeTag => renderTag(typeTag, 'monitoringPointTypeFilters')))), columns === 0 && /*#__PURE__*/_react.default.createElement(_Grid.default, {
386
+ item: true,
387
+ xs: 12,
388
+ style: {
389
+ padding: 20,
390
+ textAlign: 'center'
391
+ }
392
+ }, "All types of tags have been hidden. Unhide some tags to be able to use the builder.")), showAddCustom && /*#__PURE__*/_react.default.createElement(_Dialog.default, {
393
+ open: true,
394
+ onClose: () => setShowAddCustom(false)
395
+ }, /*#__PURE__*/_react.default.createElement(_DialogContent.default, null, /*#__PURE__*/_react.default.createElement(_TextField.default, {
396
+ variant: "outlined",
397
+ label: intl.formatMessage({
398
+ id: '__type'
399
+ }),
400
+ margin: "normal",
401
+ value: customType,
402
+ onChange: e => setCustomType(e.target.value),
403
+ fullWidth: true,
404
+ select: true
405
+ }, customTypeOptions.map(cto => {
406
+ switch (cto) {
407
+ case 'moduleTagFilters':
408
+ return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
409
+ key: cto,
410
+ value: cto
411
+ }, /*#__PURE__*/_react.default.createElement(_LocalOffer.default, {
412
+ style: {
413
+ marginRight: 10
414
+ }
415
+ }), "Module Configuration Tag");
416
+ case 'moduleLocationFilters':
417
+ return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
418
+ key: cto,
419
+ value: cto
420
+ }, /*#__PURE__*/_react.default.createElement(_LocationOn.default, {
421
+ style: {
422
+ marginRight: 10
423
+ }
424
+ }), "Module Location Tag");
425
+ case 'monitoringPointTagFilters':
426
+ return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
427
+ key: cto,
428
+ value: cto
429
+ }, /*#__PURE__*/_react.default.createElement(_LocalOffer.default, {
430
+ style: {
431
+ marginRight: 10
432
+ }
433
+ }), "Monitoring Point Tag");
434
+ case 'monitoringPointTypeFilters':
435
+ return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
436
+ key: cto,
437
+ value: cto
438
+ }, /*#__PURE__*/_react.default.createElement(_Category.default, {
439
+ style: {
440
+ marginRight: 10
441
+ }
442
+ }), "Monitoring Point Type");
443
+ default:
444
+ return /*#__PURE__*/_react.default.createElement("option", {
445
+ key: cto,
446
+ value: cto
447
+ }, cto);
448
+ }
449
+ })), /*#__PURE__*/_react.default.createElement(_TextField.default, {
450
+ variant: "outlined",
451
+ label: intl.formatMessage({
452
+ id: '__custom_tag'
453
+ }),
454
+ margin: "normal",
455
+ fullWidth: true,
456
+ autoFocus: true,
457
+ onKeyPress: e => handleKeyPress(e),
458
+ InputLabelProps: {
459
+ shrink: true
460
+ },
461
+ value: customTag,
462
+ onChange: e => setCustomTag(e.target.value.replace(/[^a-z0-9_]/g, ''))
463
+ })), /*#__PURE__*/_react.default.createElement(_DialogActions.default, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
464
+ variant: "contained",
465
+ color: "primary",
466
+ disabled: customTag.length === 0,
467
+ onClick: () => addCustomTag()
468
+ }, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, {
469
+ id: "__add"
470
+ })))));
471
+ }
472
+ TagFilterBuilder.propTypes = {
473
+ intl: _propTypes.default.shape().isRequired,
474
+ tags: _propTypes.default.shape().isRequired,
475
+ filter: _propTypes.default.shape().isRequired,
476
+ updateFilter: _propTypes.default.func.isRequired,
477
+ close: _propTypes.default.func.isRequired,
478
+ hideModuleTagFilters: _propTypes.default.bool.isRequired,
479
+ hideModuleLocationFilters: _propTypes.default.bool.isRequired,
480
+ hideMonitoringPointTagFilters: _propTypes.default.bool.isRequired,
481
+ hideMonitoringPointTypeFilters: _propTypes.default.bool.isRequired,
482
+ baseFilters: _propTypes.default.arrayOf(_propTypes.default.string)
483
+ };
484
+ TagFilterBuilder.defaultProps = {
485
+ baseFilters: null
486
+ };
487
+ var _default = exports.default = (0, _reactIntl.injectIntl)(TagFilterBuilder);
@@ -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 _CoreTagFilter.default;
10
+ }
11
+ });
12
+ var _CoreTagFilter = _interopRequireDefault(require("./CoreTagFilter"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }