@equinor/echo-framework 0.7.2 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/realTimeDataHooks.test.d.ts +1 -0
- package/dist/__tests__/realTimeDataUtils.test.d.ts +1 -0
- package/dist/_virtual/_tslib.js +14 -0
- package/dist/components/errorBoundary/errorBoundary.d.ts +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/realTimeData/RealTimePopoverButton.d.ts +18 -0
- package/dist/components/realTimeData/components/IMSDropdown/RealTimeIMSDropdown.d.ts +7 -0
- package/dist/components/realTimeData/components/IMSDropdown/index.d.ts +1 -0
- package/dist/components/realTimeData/components/connectorForIMSTag/RealTimeConnectorForIMSTag.d.ts +6 -0
- package/dist/components/realTimeData/components/connectorForIMSTag/index.d.ts +1 -0
- package/dist/components/realTimeData/components/contextButton/RealTimeContextButton.d.ts +6 -0
- package/dist/components/realTimeData/components/contextButton/index.d.ts +1 -0
- package/dist/components/realTimeData/components/contextPopover/Popover.d.ts +6 -0
- package/dist/components/realTimeData/components/contextPopover/index.d.ts +1 -0
- package/dist/components/realTimeData/components/index.d.ts +4 -0
- package/dist/components/realTimeData/hooks/index.d.ts +3 -0
- package/dist/components/realTimeData/hooks/useRealTimeHub.d.ts +13 -0
- package/dist/components/realTimeData/hooks/useSignalR.d.ts +9 -0
- package/dist/components/realTimeData/hooks/useSignalRListener.d.ts +4 -0
- package/dist/components/realTimeData/index.d.ts +1 -0
- package/dist/hooks/useLongPress.d.ts +6 -0
- package/dist/hooks/useLongPress.test.d.ts +1 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/AbortController.js +54 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js +96 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js +47 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/Errors.js +287 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js +281 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js +86 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/HeaderNames.js +20 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/HttpClient.js +82 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/HttpConnection.js +1167 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/HubConnection.js +1342 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js +165 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js +33 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/ILogger.js +37 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/ITransport.js +37 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js +179 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/Loggers.js +35 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js +444 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js +235 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/Subject.js +99 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js +45 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/Utils.js +433 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js +263 -0
- package/dist/node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js +133 -0
- package/dist/services/api/api-realtimedata.d.ts +2 -0
- package/dist/src/components/projectSelector/ProcosysProjectSelector.js +2 -2
- package/dist/src/components/realTimeData/RealTimePopoverButton.js +136 -0
- package/dist/src/components/realTimeData/components/IMSDropdown/RealTimeIMSDropdown.js +81 -0
- package/dist/src/components/realTimeData/components/IMSDropdown/RealTimeIMSDropdown.module.css.js +15 -0
- package/dist/src/components/realTimeData/components/connectorForIMSTag/IMSConnector.module.css.js +16 -0
- package/dist/src/components/realTimeData/components/connectorForIMSTag/RealTimeConnectorForIMSTag.js +110 -0
- package/dist/src/components/realTimeData/components/contextButton/RealTimeContextButton.js +75 -0
- package/dist/src/components/realTimeData/components/contextButton/RealTimeContextButton.module.css.js +15 -0
- package/dist/src/components/realTimeData/components/contextPopover/Popover.js +37 -0
- package/dist/src/components/realTimeData/components/contextPopover/Popover.module.css.js +15 -0
- package/dist/src/components/realTimeData/hooks/useRealTimeHub.js +122 -0
- package/dist/src/components/realTimeData/hooks/useSignalR.js +159 -0
- package/dist/src/components/realTimeData/hooks/useSignalRListener.js +22 -0
- package/dist/src/coreApplication/EchoEventHandler.js +16 -1
- package/dist/src/coreApplication/EchoEventHandler.module.css.js +14 -0
- package/dist/src/hooks/useLongPress.js +37 -0
- package/dist/src/index.js +3 -0
- package/dist/src/services/api/api-realtimedata.js +42 -0
- package/dist/src/utils/copyText.js +43 -0
- package/dist/types/realtimedata.d.ts +18 -0
- package/dist/utils/copyText.d.ts +2 -0
- package/dist/utils/copyText.test.d.ts +1 -0
- package/package.json +28 -24
- package/dist/utils/unitTestingUtils.d.ts +0 -1
package/dist/src/components/realTimeData/components/connectorForIMSTag/RealTimeConnectorForIMSTag.js
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
+
|
|
5
|
+
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."); }
|
|
6
|
+
|
|
7
|
+
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); }
|
|
8
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
12
|
+
|
|
13
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
|
|
15
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
16
|
+
|
|
17
|
+
Object.defineProperty(exports, '__esModule', {
|
|
18
|
+
value: true
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
var React = require('react');
|
|
22
|
+
|
|
23
|
+
var edsCoreReact = require('@equinor/eds-core-react');
|
|
24
|
+
|
|
25
|
+
var echoComponents = require('@equinor/echo-components');
|
|
26
|
+
|
|
27
|
+
var IMSConnector_module = require('./IMSConnector.module.css.js');
|
|
28
|
+
|
|
29
|
+
require('@equinor/echo-utils');
|
|
30
|
+
|
|
31
|
+
var EchoCore = require('@equinor/echo-core');
|
|
32
|
+
|
|
33
|
+
require('../../../../services/api/api-manager.js');
|
|
34
|
+
|
|
35
|
+
var useRealTimeHub = require('../../hooks/useRealTimeHub.js');
|
|
36
|
+
|
|
37
|
+
function _interopDefaultLegacy(e) {
|
|
38
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
39
|
+
'default': e
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
44
|
+
|
|
45
|
+
function RealTimeConnectorForIMSTag(_ref) {
|
|
46
|
+
var ims = _ref.ims;
|
|
47
|
+
var instCode = EchoCore.useInstCode();
|
|
48
|
+
|
|
49
|
+
var _useRealTimeHub$useRe = useRealTimeHub.useRealTimeHub(ims, instCode),
|
|
50
|
+
metadata = _useRealTimeHub$useRe.metadata,
|
|
51
|
+
present = _useRealTimeHub$useRe.present,
|
|
52
|
+
status = _useRealTimeHub$useRe.status,
|
|
53
|
+
message = _useRealTimeHub$useRe.message,
|
|
54
|
+
loading = _useRealTimeHub$useRe.loading;
|
|
55
|
+
|
|
56
|
+
var _React$useMemo = React.useMemo(function () {
|
|
57
|
+
if (present && metadata) {
|
|
58
|
+
return [present.value, metadata.unit];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return [];
|
|
62
|
+
}, [metadata, present]),
|
|
63
|
+
_React$useMemo2 = _slicedToArray(_React$useMemo, 2),
|
|
64
|
+
value = _React$useMemo2[0],
|
|
65
|
+
unit = _React$useMemo2[1];
|
|
66
|
+
|
|
67
|
+
if (status === 'error') {
|
|
68
|
+
return /*#__PURE__*/React__default["default"].createElement(ErrorMessage, {
|
|
69
|
+
message: message
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
74
|
+
className: IMSConnector_module["default"].wrapper
|
|
75
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", null, loading ? /*#__PURE__*/React__default["default"].createElement(edsCoreReact.CircularProgress, null) : /*#__PURE__*/React__default["default"].createElement(SensorValueProps, {
|
|
76
|
+
value: value,
|
|
77
|
+
unit: unit
|
|
78
|
+
})), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
79
|
+
className: IMSConnector_module["default"].experimentalWarning
|
|
80
|
+
}, /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Icon, {
|
|
81
|
+
name: "warning_outlined",
|
|
82
|
+
color: echoComponents.themeConst.warningIcon
|
|
83
|
+
}), /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Typography, {
|
|
84
|
+
variant: "helper",
|
|
85
|
+
group: "input"
|
|
86
|
+
}, "Tag sensor mapping is experimental, do not use for operational purposes")));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function SensorValueProps(_ref2) {
|
|
90
|
+
var value = _ref2.value,
|
|
91
|
+
unit = _ref2.unit;
|
|
92
|
+
|
|
93
|
+
if (!value || !unit) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("span", null, value), " ", /*#__PURE__*/React__default["default"].createElement("b", null, unit));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function ErrorMessage(_ref3) {
|
|
101
|
+
var message = _ref3.message;
|
|
102
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
103
|
+
className: IMSConnector_module["default"].message
|
|
104
|
+
}, /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Typography, {
|
|
105
|
+
variant: "body_short",
|
|
106
|
+
color: echoComponents.themeConst.voided
|
|
107
|
+
}, message !== null && message !== void 0 ? message : 'Something went wrong with RTD connection.'));
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
exports.RealTimeConnectorForIMSTag = RealTimeConnectorForIMSTag;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
+
|
|
5
|
+
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."); }
|
|
6
|
+
|
|
7
|
+
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); }
|
|
8
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
12
|
+
|
|
13
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
|
|
15
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
16
|
+
|
|
17
|
+
Object.defineProperty(exports, '__esModule', {
|
|
18
|
+
value: true
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
var React = require('react');
|
|
22
|
+
|
|
23
|
+
var edsCoreReact = require('@equinor/eds-core-react');
|
|
24
|
+
|
|
25
|
+
var echoComponents = require('@equinor/echo-components');
|
|
26
|
+
|
|
27
|
+
var RealTimeContextButton_module = require('./RealTimeContextButton.module.css.js');
|
|
28
|
+
|
|
29
|
+
var Popover = require('../contextPopover/Popover.js');
|
|
30
|
+
|
|
31
|
+
function _interopDefaultLegacy(e) {
|
|
32
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
33
|
+
'default': e
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
38
|
+
|
|
39
|
+
var RealTimeContextButton = function RealTimeContextButton(_ref) {
|
|
40
|
+
var onOpen = _ref.onOpen,
|
|
41
|
+
children = _ref.children;
|
|
42
|
+
|
|
43
|
+
var _React$useState = React.useState(false),
|
|
44
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
45
|
+
expanded = _React$useState2[0],
|
|
46
|
+
setExpanded = _React$useState2[1];
|
|
47
|
+
|
|
48
|
+
function handleClick() {
|
|
49
|
+
var nextState = !expanded;
|
|
50
|
+
|
|
51
|
+
if (nextState) {
|
|
52
|
+
onOpen && onOpen();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
setExpanded(nextState);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
59
|
+
className: RealTimeContextButton_module["default"].wrapper
|
|
60
|
+
}, /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Button, {
|
|
61
|
+
className: RealTimeContextButton_module["default"].button,
|
|
62
|
+
variant: "ghost_icon",
|
|
63
|
+
onClick: handleClick
|
|
64
|
+
}, expanded ? /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Icon, {
|
|
65
|
+
name: "close",
|
|
66
|
+
title: "Close Real Time Data",
|
|
67
|
+
color: echoComponents.themeConst.asBuilt
|
|
68
|
+
}) : /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Icon, {
|
|
69
|
+
name: "timeline",
|
|
70
|
+
title: "Real Time Data",
|
|
71
|
+
color: echoComponents.themeConst.asBuilt
|
|
72
|
+
})), expanded && /*#__PURE__*/React__default["default"].createElement(Popover.ContextPopover, null, children));
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
exports.RealTimeContextButton = RealTimeContextButton;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var styleInject_es = require('../../../../../node_modules/style-inject/dist/style-inject.es.js');
|
|
8
|
+
|
|
9
|
+
var css_248z = ".RealTimeContextButton-module_wrapper__2hzo4{margin-left:4px}.RealTimeContextButton-module_button__TxZmh{background-color:var(--white)!important;border:3px solid var(--white)!important;border-radius:10rem;box-shadow:0 4px 4px rgba(0,0,0,.25);box-sizing:border-box;height:46px!important;width:46px!important}.RealTimeContextButton-module_button__TxZmh:hover{background:#deedee!important}";
|
|
10
|
+
var style = {
|
|
11
|
+
"wrapper": "RealTimeContextButton-module_wrapper__2hzo4",
|
|
12
|
+
"button": "RealTimeContextButton-module_button__TxZmh"
|
|
13
|
+
};
|
|
14
|
+
styleInject_es["default"](css_248z);
|
|
15
|
+
exports["default"] = style;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, '__esModule', {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
var React = require('react');
|
|
10
|
+
|
|
11
|
+
var Popover_module = require('./Popover.module.css.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy(e) {
|
|
14
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
15
|
+
'default': e
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
20
|
+
/**
|
|
21
|
+
* Generic Popover placement component that can take in optional background color
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
var ContextPopover = function ContextPopover(_ref) {
|
|
26
|
+
var children = _ref.children;
|
|
27
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
28
|
+
className: Popover_module["default"].wrapper,
|
|
29
|
+
onClick: function onClick(e) {
|
|
30
|
+
return e.stopPropagation();
|
|
31
|
+
}
|
|
32
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
33
|
+
className: Popover_module["default"].optionsPopover
|
|
34
|
+
}, children));
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
exports.ContextPopover = ContextPopover;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var styleInject_es = require('../../../../../node_modules/style-inject/dist/style-inject.es.js');
|
|
8
|
+
|
|
9
|
+
var css_248z = ".Popover-module_wrapper__6HoPX{display:flex;flex-direction:column;left:0;position:absolute;right:0;z-index:10}.Popover-module_optionsPopover__Qp7UL{display:flex}@media screen and (max-width:440px){.Popover-module_optionsPopover__Qp7UL{max-width:270px}.Popover-module_wrapper__6HoPX{left:0}.Popover-module_optionsPopover__Qp7UL{align-self:flex-start}}";
|
|
10
|
+
var styles = {
|
|
11
|
+
"wrapper": "Popover-module_wrapper__6HoPX",
|
|
12
|
+
"optionsPopover": "Popover-module_optionsPopover__Qp7UL"
|
|
13
|
+
};
|
|
14
|
+
styleInject_es["default"](css_248z);
|
|
15
|
+
exports["default"] = styles;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
+
|
|
5
|
+
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."); }
|
|
6
|
+
|
|
7
|
+
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); }
|
|
8
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
12
|
+
|
|
13
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
|
|
15
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
16
|
+
|
|
17
|
+
Object.defineProperty(exports, '__esModule', {
|
|
18
|
+
value: true
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
var _tslib = require('../../../../_virtual/_tslib.js');
|
|
22
|
+
|
|
23
|
+
var React = require('react');
|
|
24
|
+
|
|
25
|
+
var EchoUtils = require('@equinor/echo-utils');
|
|
26
|
+
|
|
27
|
+
var EchoCore = require('@equinor/echo-core');
|
|
28
|
+
|
|
29
|
+
var useSignalR = require('./useSignalR.js');
|
|
30
|
+
|
|
31
|
+
var useSignalRListener = require('./useSignalRListener.js');
|
|
32
|
+
|
|
33
|
+
var apiRealtimedata = require('../../../services/api/api-realtimedata.js');
|
|
34
|
+
|
|
35
|
+
function _interopDefaultLegacy(e) {
|
|
36
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
37
|
+
'default': e
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
var EchoUtils__default = /*#__PURE__*/_interopDefaultLegacy(EchoUtils);
|
|
42
|
+
|
|
43
|
+
var EchoCore__default = /*#__PURE__*/_interopDefaultLegacy(EchoCore);
|
|
44
|
+
|
|
45
|
+
function useRealTimeHub(id, instCode) {
|
|
46
|
+
var _this = this;
|
|
47
|
+
|
|
48
|
+
var _a = useSignalR.useSignalR('/real-time-data'),
|
|
49
|
+
connection = _a.connection,
|
|
50
|
+
loading = _a.loading,
|
|
51
|
+
rest = _tslib.__rest(_a, ["connection", "loading"]);
|
|
52
|
+
|
|
53
|
+
var _React$useState = React.useState(),
|
|
54
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
55
|
+
metadata = _React$useState2[0],
|
|
56
|
+
setMetadata = _React$useState2[1];
|
|
57
|
+
|
|
58
|
+
var _React$useState3 = React.useState(),
|
|
59
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
60
|
+
present = _React$useState4[0],
|
|
61
|
+
setPresent = _React$useState4[1];
|
|
62
|
+
|
|
63
|
+
useSignalRListener.useSignalRListener(connection, 'realtimedata', function (timeData) {
|
|
64
|
+
var _timeData$dataPoints = _slicedToArray(timeData.dataPoints, 1),
|
|
65
|
+
present = _timeData$dataPoints[0];
|
|
66
|
+
|
|
67
|
+
setPresent(present);
|
|
68
|
+
}); // SignalR connection starter + listen to timeseries data
|
|
69
|
+
|
|
70
|
+
EchoUtils__default["default"].Hooks.useEffectAsync(function () {
|
|
71
|
+
return _tslib.__awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
72
|
+
var timeseries, timeseriesId, accessToken;
|
|
73
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
74
|
+
while (1) {
|
|
75
|
+
switch (_context.prev = _context.next) {
|
|
76
|
+
case 0:
|
|
77
|
+
if (!(!instCode || !connection)) {
|
|
78
|
+
_context.next = 2;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return _context.abrupt("return");
|
|
83
|
+
|
|
84
|
+
case 2:
|
|
85
|
+
_context.next = 4;
|
|
86
|
+
return apiRealtimedata.getTimeseriesByName(id, instCode);
|
|
87
|
+
|
|
88
|
+
case 4:
|
|
89
|
+
timeseries = _context.sent;
|
|
90
|
+
|
|
91
|
+
if (!timeseries) {
|
|
92
|
+
_context.next = 13;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
setMetadata(timeseries);
|
|
97
|
+
timeseriesId = timeseries.id;
|
|
98
|
+
_context.next = 10;
|
|
99
|
+
return EchoCore__default["default"].EchoClient.getAccessToken();
|
|
100
|
+
|
|
101
|
+
case 10:
|
|
102
|
+
accessToken = _context.sent;
|
|
103
|
+
_context.next = 13;
|
|
104
|
+
return connection.send('subscribe', accessToken, timeseriesId);
|
|
105
|
+
|
|
106
|
+
case 13:
|
|
107
|
+
case "end":
|
|
108
|
+
return _context.stop();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}, _callee);
|
|
112
|
+
}));
|
|
113
|
+
}, [connection, id, instCode]);
|
|
114
|
+
return Object.assign({
|
|
115
|
+
metadata: metadata,
|
|
116
|
+
present: present,
|
|
117
|
+
connection: connection,
|
|
118
|
+
loading: loading || !present
|
|
119
|
+
}, rest);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
exports.useRealTimeHub = useRealTimeHub;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
+
|
|
5
|
+
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."); }
|
|
6
|
+
|
|
7
|
+
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); }
|
|
8
|
+
|
|
9
|
+
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; }
|
|
10
|
+
|
|
11
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; }
|
|
12
|
+
|
|
13
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
14
|
+
|
|
15
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
16
|
+
|
|
17
|
+
Object.defineProperty(exports, '__esModule', {
|
|
18
|
+
value: true
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
var _tslib = require('../../../../_virtual/_tslib.js');
|
|
22
|
+
|
|
23
|
+
var React = require('react');
|
|
24
|
+
|
|
25
|
+
var EchoUtils = require('@equinor/echo-utils');
|
|
26
|
+
|
|
27
|
+
var EchoCore = require('@equinor/echo-core');
|
|
28
|
+
|
|
29
|
+
var apiManager = require('../../../services/api/api-manager.js');
|
|
30
|
+
|
|
31
|
+
var useSignalRListener = require('./useSignalRListener.js');
|
|
32
|
+
|
|
33
|
+
var HubConnectionBuilder = require('../../../../node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js');
|
|
34
|
+
|
|
35
|
+
function _interopDefaultLegacy(e) {
|
|
36
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
37
|
+
'default': e
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
var EchoUtils__default = /*#__PURE__*/_interopDefaultLegacy(EchoUtils);
|
|
42
|
+
|
|
43
|
+
var EchoCore__default = /*#__PURE__*/_interopDefaultLegacy(EchoCore);
|
|
44
|
+
|
|
45
|
+
function setLoading(state) {
|
|
46
|
+
return Object.assign(Object.assign({}, state), {
|
|
47
|
+
loading: false
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function setDoneLoading(state) {
|
|
52
|
+
return Object.assign(Object.assign({}, state), {
|
|
53
|
+
loading: true
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function accessTokenFactory() {
|
|
58
|
+
return _tslib.__awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
59
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
60
|
+
while (1) {
|
|
61
|
+
switch (_context.prev = _context.next) {
|
|
62
|
+
case 0:
|
|
63
|
+
return _context.abrupt("return", EchoCore__default["default"].EchoClient.getAccessToken());
|
|
64
|
+
|
|
65
|
+
case 1:
|
|
66
|
+
case "end":
|
|
67
|
+
return _context.stop();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}, _callee);
|
|
71
|
+
}));
|
|
72
|
+
} // TODO - Add unit test - need to figure out how to test hooks with useEffectAsync
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
function useSignalR(hubUrl) {
|
|
76
|
+
var _this = this;
|
|
77
|
+
|
|
78
|
+
var _React$useState = React.useState({
|
|
79
|
+
status: '',
|
|
80
|
+
loading: false
|
|
81
|
+
}),
|
|
82
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
83
|
+
state = _React$useState2[0],
|
|
84
|
+
setState = _React$useState2[1]; // we will always default to listening for the subscribe message
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
useSignalRListener.useSignalRListener(state.connection, 'subscribe', function (id, status, payload) {
|
|
88
|
+
if (status === 200) {
|
|
89
|
+
setState(function (state) {
|
|
90
|
+
return Object.assign(Object.assign({}, state), {
|
|
91
|
+
loading: false,
|
|
92
|
+
status: 'ok'
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
} else {
|
|
96
|
+
setState(function (state) {
|
|
97
|
+
return Object.assign(Object.assign({}, state), {
|
|
98
|
+
loading: false,
|
|
99
|
+
status: 'error',
|
|
100
|
+
message: typeof payload === 'string' ? payload : ''
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}); // SignalR start/stop connection hook
|
|
105
|
+
|
|
106
|
+
EchoUtils__default["default"].Hooks.useEffectAsync(function (signal) {
|
|
107
|
+
return _tslib.__awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
108
|
+
var setStateWhenMounted, connection;
|
|
109
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
110
|
+
while (1) {
|
|
111
|
+
switch (_context2.prev = _context2.next) {
|
|
112
|
+
case 0:
|
|
113
|
+
setStateWhenMounted = function _setStateWhenMounted(value) {
|
|
114
|
+
if (signal.aborted) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
setState(value);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
connection = new HubConnectionBuilder.HubConnectionBuilder().withUrl(apiManager.baseApiUrl + hubUrl, {
|
|
122
|
+
accessTokenFactory: accessTokenFactory
|
|
123
|
+
}).withAutomaticReconnect().build(); // reconnect things
|
|
124
|
+
|
|
125
|
+
connection.onreconnected(function () {
|
|
126
|
+
return setStateWhenMounted(setDoneLoading);
|
|
127
|
+
});
|
|
128
|
+
connection.onreconnecting(function () {
|
|
129
|
+
return setStateWhenMounted(setLoading);
|
|
130
|
+
}); // starting connection
|
|
131
|
+
|
|
132
|
+
_context2.next = 6;
|
|
133
|
+
return connection.start();
|
|
134
|
+
|
|
135
|
+
case 6:
|
|
136
|
+
// should set connection and then loading to done
|
|
137
|
+
setStateWhenMounted(function (state) {
|
|
138
|
+
return Object.assign(Object.assign({}, state), {
|
|
139
|
+
connection: connection
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
setStateWhenMounted(setDoneLoading); // stop connection when unmounted
|
|
143
|
+
|
|
144
|
+
return _context2.abrupt("return", function () {
|
|
145
|
+
connection.stop();
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
case 9:
|
|
149
|
+
case "end":
|
|
150
|
+
return _context2.stop();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}, _callee2);
|
|
154
|
+
}));
|
|
155
|
+
}, []);
|
|
156
|
+
return state;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
exports.useSignalR = useSignalR;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var React = require('react');
|
|
8
|
+
|
|
9
|
+
function useSignalRListener(hubConnection, target, method) {
|
|
10
|
+
React.useEffect(function () {
|
|
11
|
+
if (!hubConnection) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
hubConnection.on(target, method);
|
|
16
|
+
return function () {
|
|
17
|
+
hubConnection.off(target, method);
|
|
18
|
+
};
|
|
19
|
+
}, [hubConnection, target, method]);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
exports.useSignalRListener = useSignalRListener;
|
|
@@ -14,10 +14,16 @@ var React = require('react');
|
|
|
14
14
|
|
|
15
15
|
var reactRouterDom = require('react-router-dom');
|
|
16
16
|
|
|
17
|
+
var useLongPress = require('../hooks/useLongPress.js');
|
|
18
|
+
|
|
17
19
|
var plantChanged = require('../services/eventCallbacks/plantChanged.js');
|
|
18
20
|
|
|
21
|
+
var copyText = require('../utils/copyText.js');
|
|
22
|
+
|
|
19
23
|
var eventHandlerUtils = require('../utils/eventHandlerUtils.js');
|
|
20
24
|
|
|
25
|
+
var EchoEventHandler_module = require('./EchoEventHandler.module.css.js');
|
|
26
|
+
|
|
21
27
|
function _interopDefaultLegacy(e) {
|
|
22
28
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
23
29
|
'default': e
|
|
@@ -35,6 +41,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
35
41
|
var EchoEventHandler = function EchoEventHandler(_ref) {
|
|
36
42
|
var children = _ref.children;
|
|
37
43
|
var history = reactRouterDom.useHistory();
|
|
44
|
+
var touchEvents = useLongPress.useLongPress(copyText.copyText, 800);
|
|
38
45
|
React.useEffect(function () {
|
|
39
46
|
var unsubscribe = echoBase.eventHub.subscribe(EchoCore.EchoEvents.PlantChanged, function (plantEvent) {
|
|
40
47
|
plantChanged.handlePlantChanged(plantEvent.selectedPlant, history, plantEvent.stayOnPath);
|
|
@@ -43,6 +50,12 @@ var EchoEventHandler = function EchoEventHandler(_ref) {
|
|
|
43
50
|
unsubscribe();
|
|
44
51
|
};
|
|
45
52
|
});
|
|
53
|
+
React.useEffect(function () {
|
|
54
|
+
document.addEventListener('contextmenu', copyText.copyText);
|
|
55
|
+
return function () {
|
|
56
|
+
document.removeEventListener('contextmenu', copyText.copyText);
|
|
57
|
+
};
|
|
58
|
+
});
|
|
46
59
|
React.useEffect(function () {
|
|
47
60
|
if (!history) {
|
|
48
61
|
console.error('No react history found!', history);
|
|
@@ -58,7 +71,9 @@ var EchoEventHandler = function EchoEventHandler(_ref) {
|
|
|
58
71
|
unListen();
|
|
59
72
|
};
|
|
60
73
|
}, [history]);
|
|
61
|
-
return /*#__PURE__*/React__default["default"].createElement(
|
|
74
|
+
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
75
|
+
className: EchoEventHandler_module["default"].echoEventContainer
|
|
76
|
+
}, touchEvents), children);
|
|
62
77
|
};
|
|
63
78
|
|
|
64
79
|
exports.EchoEventHandler = EchoEventHandler;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var styleInject_es = require('../../node_modules/style-inject/dist/style-inject.es.js');
|
|
8
|
+
|
|
9
|
+
var css_248z = ".EchoEventHandler-module_echoEventContainer__zFKRh{height:100%}";
|
|
10
|
+
var style = {
|
|
11
|
+
"echoEventContainer": "EchoEventHandler-module_echoEventContainer__zFKRh"
|
|
12
|
+
};
|
|
13
|
+
styleInject_es["default"](css_248z);
|
|
14
|
+
exports["default"] = style;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var React = require('react'); // https://stackoverflow.com/questions/48048957/react-long-press-event
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
function useLongPress(onLongPress) {
|
|
11
|
+
var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
|
|
12
|
+
var timeout = React.useRef();
|
|
13
|
+
|
|
14
|
+
var start = function start(event) {
|
|
15
|
+
timeout.current = setTimeout(function () {
|
|
16
|
+
onLongPress(event);
|
|
17
|
+
}, delay);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var clear = function clear() {
|
|
21
|
+
timeout.current && clearTimeout(timeout.current);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
return {
|
|
25
|
+
onTouchStart: function onTouchStart(e) {
|
|
26
|
+
return start(e);
|
|
27
|
+
},
|
|
28
|
+
onTouchMove: function onTouchMove() {
|
|
29
|
+
return clear();
|
|
30
|
+
},
|
|
31
|
+
onTouchEnd: function onTouchEnd() {
|
|
32
|
+
return clear();
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.useLongPress = useLongPress;
|