@equinor/echo-framework 0.8.5 → 0.8.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkButtons.helpers.d.ts +47 -0
  2. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkButtons.helpers.test.d.ts +1 -0
  3. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToCommApp.d.ts +14 -0
  4. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToMcApp.d.ts +3 -1
  5. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToProCoSys.d.ts +1 -2
  6. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToSap.d.ts +3 -0
  7. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToSemiDoc.d.ts +4 -0
  8. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToTr2000.d.ts +2 -0
  9. package/dist/components/contextualAppLinks/externalLinkButtons/iconButtonSpinner.d.ts +18 -0
  10. package/dist/components/contextualAppLinks/externalLinkButtons/index.d.ts +1 -0
  11. package/dist/components/externalLinkButton/externalLinkButton.d.ts +16 -7
  12. package/dist/components/panel/corePanelLeft.d.ts +1 -4
  13. package/dist/components/panel/corePanelRight.d.ts +1 -4
  14. package/dist/components/realTimeData/hooks/useSignalR.d.ts +3 -2
  15. package/dist/coreApplication/EchoContent.d.ts +0 -1
  16. package/dist/coreApplication/index.d.ts +0 -1
  17. package/dist/hooks/hookLibrary.d.ts +2 -8
  18. package/dist/hooks/index.d.ts +0 -1
  19. package/dist/hooks/useSemi.d.ts +11 -7
  20. package/dist/hooks/useTagDetails.d.ts +10 -3
  21. package/dist/index.d.ts +12 -7
  22. package/dist/services/api/api-manager.d.ts +1 -1
  23. package/dist/services/api/api-tag-details.d.ts +18 -0
  24. package/dist/services/api/api-tag-details.test.d.ts +1 -0
  25. package/dist/services/api/api-tags.d.ts +17 -0
  26. package/dist/services/api/api-tags.test.d.ts +1 -0
  27. package/dist/services/api/index.d.ts +1 -0
  28. package/dist/services/echopediaAnalyticsModule/echopediaAnalyticsModule.d.ts +1 -0
  29. package/dist/src/components/containers/layout.module.css.js +1 -4
  30. package/dist/src/components/containers/layouts.js +10 -127
  31. package/dist/src/components/contextualAppLinks/externalAppsMenu.js +4 -4
  32. package/dist/src/components/contextualAppLinks/externalLinkButtons/allExternalLinks.js +66 -11
  33. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkButtons.helpers.js +169 -0
  34. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToCommApp.js +93 -0
  35. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToMcApp.js +60 -5
  36. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToProCoSys.js +43 -11
  37. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToSafeX.js +1 -1
  38. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToSap.js +58 -11
  39. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToSemiDoc.js +16 -5
  40. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToStid.js +1 -1
  41. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToTr2000.js +67 -16
  42. package/dist/src/components/contextualAppLinks/externalLinkButtons/iconButtonSpinner.js +44 -0
  43. package/dist/src/components/contextualAppLinks/externalLinkButtons/iconButtonSpinner.module.css.js +15 -0
  44. package/dist/src/components/externalLinkButton/externalLinkButton.js +95 -34
  45. package/dist/src/components/externalLinkButton/externalLinkButton.module.css.js +5 -2
  46. package/dist/src/components/footer/footer.module.css.js +1 -1
  47. package/dist/src/components/panel/corePanelLeft.js +2 -5
  48. package/dist/src/components/panel/corePanelLeft.module.css.js +1 -1
  49. package/dist/src/components/panel/corePanelRight.js +2 -5
  50. package/dist/src/components/panel/corePanelRight.module.css.js +1 -1
  51. package/dist/src/components/realTimeData/components/connectorForIMSTag/IMSConnector.module.css.js +3 -2
  52. package/dist/src/components/realTimeData/components/connectorForIMSTag/RealTimeConnectorForIMSTag.js +32 -7
  53. package/dist/src/components/realTimeData/hooks/useSignalR.js +4 -2
  54. package/dist/src/coreApplication/EchoContent.js +2 -11
  55. package/dist/src/globalStyles.css.js +1 -1
  56. package/dist/src/hooks/hookLibrary.js +0 -9
  57. package/dist/src/hooks/index.js +0 -3
  58. package/dist/src/hooks/useSemi.js +40 -14
  59. package/dist/src/hooks/useTagDetails.js +116 -45
  60. package/dist/src/icons/common/CommissionApp-icon.png.js +7 -0
  61. package/dist/src/icons/common/Evision.svg.js +3 -2
  62. package/dist/src/icons/common/Fusion.svg.js +30 -25
  63. package/dist/src/icons/common/McApp.svg.js +10 -6
  64. package/dist/src/icons/common/Notification.svg.js +82 -0
  65. package/dist/src/icons/common/ProCoSysIcon.svg.js +3 -2
  66. package/dist/src/icons/common/Robim.svg.js +67 -0
  67. package/dist/src/icons/common/SapLogo.svg.js +5 -4
  68. package/dist/src/icons/common/SemiIcon.svg.js +11 -11
  69. package/dist/src/icons/common/Stid.svg.js +3 -2
  70. package/dist/src/icons/common/TR2000.svg.js +8 -6
  71. package/dist/src/icons/common/WorkOrder.svg.js +72 -0
  72. package/dist/src/icons/common/Yammer.svg.js +2 -1
  73. package/dist/src/icons/common/satos-logo.png.js +7 -0
  74. package/dist/src/index.js +15 -7
  75. package/dist/src/services/api/api-manager.js +2 -2
  76. package/dist/src/services/api/api-realtimedata.js +3 -1
  77. package/dist/src/services/api/api-tag-details.js +66 -0
  78. package/dist/src/services/api/api-tags.js +29 -0
  79. package/dist/src/services/echopediaAnalyticsModule/echopediaAnalyticsModule.js +10 -0
  80. package/dist/src/types/pingableSources.js +1 -0
  81. package/dist/src/utils/navigationUtils.js +28 -0
  82. package/dist/src/utils/plantInfo.js +1 -0
  83. package/dist/types/api-proCoSysTagResponse.d.ts +8 -0
  84. package/dist/types/hookLibrary.d.ts +0 -4
  85. package/dist/types/pingableSources.d.ts +2 -1
  86. package/dist/utils/index.d.ts +1 -0
  87. package/dist/utils/navigationUtils.d.ts +7 -0
  88. package/dist/utils/navigationUtils.test.d.ts +1 -0
  89. package/dist/utils/plantInfo.d.ts +6 -0
  90. package/dist/utils/plantInfo.test.d.ts +1 -0
  91. package/package.json +3 -3
  92. package/dist/coreApplication/EchoBarComponent.d.ts +0 -6
  93. package/dist/hooks/useScreenOrientation.d.ts +0 -1
  94. package/dist/src/coreApplication/EchoBarComponent.js +0 -190
  95. package/dist/src/coreApplication/EchoContent.module.css.js +0 -21
  96. package/dist/src/hooks/useScreenOrientation.js +0 -50
@@ -1,5 +1,17 @@
1
1
  'use strict';
2
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
+
3
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); }
4
16
 
5
17
  Object.defineProperty(exports, '__esModule', {
@@ -10,22 +22,30 @@ var _tslib = require('../../../_virtual/_tslib.js');
10
22
 
11
23
  var echoComponents = require('@equinor/echo-components');
12
24
 
13
- var EchoCore = require('@equinor/echo-core');
25
+ var EchoUtils = require('@equinor/echo-utils');
14
26
 
15
27
  var edsCoreReact = require('@equinor/eds-core-react');
16
28
 
17
29
  var React = require('react');
18
30
 
31
+ var CommissionAppIcon = require('../../icons/common/CommissionApp-icon.png.js');
32
+
19
33
  var Evision = require('../../icons/common/Evision.svg.js');
20
34
 
21
35
  var Fusion = require('../../icons/common/Fusion.svg.js');
22
36
 
23
37
  var McApp = require('../../icons/common/McApp.svg.js');
24
38
 
39
+ var Notification = require('../../icons/common/Notification.svg.js');
40
+
25
41
  var ProCoSysIcon = require('../../icons/common/ProCoSysIcon.svg.js');
26
42
 
43
+ var Robim = require('../../icons/common/Robim.svg.js');
44
+
27
45
  var SapLogo = require('../../icons/common/SapLogo.svg.js');
28
46
 
47
+ var satosLogo = require('../../icons/common/satos-logo.png.js');
48
+
29
49
  var SemiIcon = require('../../icons/common/SemiIcon.svg.js');
30
50
 
31
51
  var Stid = require('../../icons/common/Stid.svg.js');
@@ -34,8 +54,14 @@ var SXLogo = require('../../icons/common/SX-logo.png.js');
34
54
 
35
55
  var TR2000 = require('../../icons/common/TR2000.svg.js');
36
56
 
57
+ var WorkOrder = require('../../icons/common/WorkOrder.svg.js');
58
+
37
59
  var Yammer = require('../../icons/common/Yammer.svg.js');
38
60
 
61
+ var navigationUtils = require('../../utils/navigationUtils.js');
62
+
63
+ var iconButtonSpinner = require('../contextualAppLinks/externalLinkButtons/iconButtonSpinner.js');
64
+
39
65
  var externalLinkButton_module = require('./externalLinkButton.module.css.js');
40
66
 
41
67
  function _interopDefaultLegacy(e) {
@@ -44,13 +70,15 @@ function _interopDefaultLegacy(e) {
44
70
  };
45
71
  }
46
72
 
73
+ var EchoUtils__default = /*#__PURE__*/_interopDefaultLegacy(EchoUtils);
74
+
47
75
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
48
76
 
49
- var echopediaAnalyticsModule = EchoCore.analytics.createAnalyticsModule('ep');
50
77
  exports.ExternalLinkButtonStyle = void 0;
51
78
 
52
79
  (function (ExternalLinkButtonStyle) {
53
80
  ExternalLinkButtonStyle["Rounded"] = "Rounded";
81
+ ExternalLinkButtonStyle["Large"] = "Large";
54
82
  })(exports.ExternalLinkButtonStyle || (exports.ExternalLinkButtonStyle = {}));
55
83
  /**
56
84
  *
@@ -61,7 +89,8 @@ exports.ExternalLinkButtonStyle = void 0;
61
89
  * @param {boolean} props.hideText Optional. If set to `true`, will hide `buttonName`.
62
90
  * @param {boolean} props.redirect Optional. If set to `true`, the app will not open in a new tab / window, but in the current one.
63
91
  * @param {ExternalLinkButtonStyle} props.buttonStyle Optional.
64
- * @param {() => Promise<string>} props.getUrlToOpen Optional. Function () => Promise<string>. Custom async function to be called to handle the navigation.
92
+ * @param {(...args) => Promise<string | undefined>} props.getUrlToOpen Optional. Pass this custom async function to create a URL based on async data.
93
+ * Return with 'undefined' to prevent any navigation. (Useful when the API call fails)
65
94
  * @param {boolean} props.disabledColor Optional. If set to `true`, the button will show disabled color. (If not Rounded button style is used)
66
95
  * @param {boolean} props.disabledButton Optional.
67
96
  * @param {string} props.hoverText Optional. Applies only if Rounded button style is applied.
@@ -80,7 +109,16 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
80
109
  disabledColor = _ref.disabledColor,
81
110
  disabledButton = _ref.disabledButton,
82
111
  hoverText = _ref.hoverText;
112
+
113
+ var _EchoUtils__default$d = EchoUtils__default["default"].Hooks.useStateSafe(false),
114
+ _EchoUtils__default$d2 = _slicedToArray(_EchoUtils__default$d, 2),
115
+ isLoading = _EchoUtils__default$d2[0],
116
+ setIsLoading = _EchoUtils__default$d2[1];
117
+
83
118
  var icon = null;
119
+ var isAsyncButton = !!getUrlToOpen;
120
+ var isRoundedButtonStyle = buttonStyle === exports.ExternalLinkButtonStyle.Rounded;
121
+ var imageBasedIconStyle = isRoundedButtonStyle ? externalLinkButton_module["default"].roundedButtonIconAsImage : externalLinkButton_module["default"].largeButtonIconAsImage;
84
122
 
85
123
  function goToLink(event) {
86
124
  return _tslib.__awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
@@ -92,28 +130,29 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
92
130
  event.persist();
93
131
  event.preventDefault();
94
132
 
95
- if (!getUrlToOpen) {
96
- _context.next = 8;
133
+ if (!isAsyncButton) {
134
+ _context.next = 10;
97
135
  break;
98
136
  }
99
137
 
100
- _context.next = 5;
138
+ setIsLoading(true);
139
+ _context.next = 6;
101
140
  return getUrlToOpen();
102
141
 
103
- case 5:
104
- _context.t0 = _context.sent;
105
- _context.next = 9;
142
+ case 6:
143
+ link = _context.sent;
144
+ setIsLoading(false);
145
+ _context.next = 11;
106
146
  break;
107
147
 
108
- case 8:
109
- _context.t0 = linkTo;
148
+ case 10:
149
+ link = linkTo;
110
150
 
111
- case 9:
112
- link = _context.t0;
113
- goToExternalLink(link, redirect);
151
+ case 11:
152
+ link && navigationUtils.goToExternalLink(link, redirect);
114
153
  event.stopPropagation();
115
154
 
116
- case 12:
155
+ case 13:
117
156
  case "end":
118
157
  return _context.stop();
119
158
  }
@@ -122,18 +161,6 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
122
161
  }));
123
162
  }
124
163
 
125
- function goToExternalLink(link, redirect) {
126
- echopediaAnalyticsModule.trackEventBy('ExternalLink', 'Opened', {
127
- linkTo: link
128
- });
129
-
130
- if (redirect) {
131
- window.location.href = link;
132
- } else {
133
- window.open(link, '_blank');
134
- }
135
- }
136
-
137
164
  switch (buttonIcon) {
138
165
  case 'Fusion':
139
166
  icon = /*#__PURE__*/React__default["default"].createElement(Fusion.ReactComponent, null);
@@ -194,12 +221,18 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
194
221
  icon = /*#__PURE__*/React__default["default"].createElement(McApp.ReactComponent, null);
195
222
  break;
196
223
 
197
- case 'Sap':
198
- icon = /*#__PURE__*/React__default["default"].createElement(SapLogo.ReactComponent, {
199
- viewBox: "0 0 92 45"
224
+ case 'CommApp':
225
+ icon = /*#__PURE__*/React__default["default"].createElement("img", {
226
+ src: CommissionAppIcon["default"],
227
+ className: imageBasedIconStyle,
228
+ alt: "CommissionAppIcon"
200
229
  });
201
230
  break;
202
231
 
232
+ case 'Sap':
233
+ icon = /*#__PURE__*/React__default["default"].createElement(SapLogo.ReactComponent, null);
234
+ break;
235
+
203
236
  case 'Semi':
204
237
  icon = /*#__PURE__*/React__default["default"].createElement(SemiIcon.ReactComponent, null);
205
238
  break;
@@ -207,8 +240,16 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
207
240
  case 'SafeX':
208
241
  icon = /*#__PURE__*/React__default["default"].createElement("img", {
209
242
  src: SXLogo["default"],
210
- className: externalLinkButton_module["default"].buttonIconAsImage,
211
- alt: "SafeX"
243
+ className: imageBasedIconStyle,
244
+ alt: "SafeXIcon"
245
+ });
246
+ break;
247
+
248
+ case 'Satos':
249
+ icon = /*#__PURE__*/React__default["default"].createElement("img", {
250
+ src: satosLogo["default"],
251
+ className: imageBasedIconStyle,
252
+ alt: "SatosIcon"
212
253
  });
213
254
  break;
214
255
 
@@ -222,9 +263,28 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
222
263
  case 'Tr2000':
223
264
  icon = /*#__PURE__*/React__default["default"].createElement(TR2000.ReactComponent, null);
224
265
  break;
266
+
267
+ case 'Notification':
268
+ icon = /*#__PURE__*/React__default["default"].createElement(Notification.ReactComponent, null);
269
+ break;
270
+
271
+ case 'WorkOrder':
272
+ icon = /*#__PURE__*/React__default["default"].createElement(WorkOrder.ReactComponent, null);
273
+ break;
274
+
275
+ case 'Robim':
276
+ icon = /*#__PURE__*/React__default["default"].createElement(Robim.ReactComponent, null);
277
+ break;
225
278
  }
226
279
 
227
- return buttonStyle === exports.ExternalLinkButtonStyle.Rounded ? /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Tooltip, {
280
+ return isRoundedButtonStyle ? /*#__PURE__*/React__default["default"].createElement("div", {
281
+ className: externalLinkButton_module["default"].roundedButtonWrapper
282
+ }, isAsyncButton && isLoading && /*#__PURE__*/React__default["default"].createElement(iconButtonSpinner.IconButtonSpinner, {
283
+ size: 24,
284
+ customClassNames: {
285
+ container: externalLinkButton_module["default"].asyncButtonSpinner
286
+ }
287
+ }), /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Tooltip, {
228
288
  placement: "bottom",
229
289
  title: hoverText !== null && hoverText !== void 0 ? hoverText : buttonName
230
290
  }, /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Button, {
@@ -234,7 +294,7 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
234
294
  goToLink(event);
235
295
  },
236
296
  disabled: disabledButton
237
- }, icon)) : /*#__PURE__*/React__default["default"].createElement("button", {
297
+ }, icon))) : /*#__PURE__*/React__default["default"].createElement("button", {
238
298
  className: "".concat(externalLinkButton_module["default"].echoButton, " ").concat(disabledColor ? externalLinkButton_module["default"].echoButtonDisabled : ''),
239
299
  onClick: function onClick(event) {
240
300
  goToLink(event);
@@ -244,4 +304,5 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
244
304
  }, icon, !hideText && /*#__PURE__*/React__default["default"].createElement("span", null, buttonName));
245
305
  };
246
306
 
307
+ exports.ExternalLinkButton = ExternalLinkButton;
247
308
  exports["default"] = ExternalLinkButton;
@@ -6,12 +6,15 @@ Object.defineProperty(exports, '__esModule', {
6
6
 
7
7
  var styleInject_es = require('../../../node_modules/style-inject/dist/style-inject.es.js');
8
8
 
9
- var css_248z = ".externalLinkButton-module_echoButton__J9As0{display:inline-block;padding:16px;position:relative;width:90px}.externalLinkButton-module_echoButtonDisabled__6kYFw{padding-bottom:0}.externalLinkButton-module_echoButtonRounded__moamZ{display:inline-block;position:relative}@media screen and (min-width:420px){.externalLinkButton-module_echoButtonDisabled__6kYFw,.externalLinkButton-module_echoButton__J9As0{width:96px}}.externalLinkButton-module_echoButton__J9As0 svg{display:inline-block;height:48px;margin:0 8px 8px;width:48px}.externalLinkButton-module_echoButtonRounded__moamZ svg{display:inline-block;height:24px;margin:0 8px;width:24px}.externalLinkButton-module_echoButton__J9As0 span{color:#007079;display:inline-block;font-size:14px;font-weight:500;line-height:16px;width:64px}.externalLinkButton-module_echoButton__J9As0:hover svg{fill:#004f55}.externalLinkButton-module_echoButton__J9As0:hover span{color:#004f55}.externalLinkButton-module_echoButtonDisabled__6kYFw span{color:var(--disabledColor)}.externalLinkButton-module_echoButtonDisabled__6kYFw:hover svg{fill:var(--disabledColor)}.externalLinkButton-module_echoButtonDisabled__6kYFw:hover span{color:var(--disabledColor)}.externalLinkButton-module_buttonIconAsImage__JL6p6{height:30px;justify-self:center;width:30px}.externalLinkButton-module_toolTip__ywPoc{background-color:#233746;border-radius:8px;box-shadow:0 0 4px rgba(0,0,0,.05),0 4px 4px rgba(0,0,0,.05);color:#fff;display:block;padding:8px 16px;position:absolute;z-index:1}.externalLinkButton-module_toolTipContainer__n1YIl{display:inline-flex;justify-content:center}.externalLinkButton-module_stidIcon__XoFaL{height:auto!important}";
9
+ var css_248z = ".externalLinkButton-module_echoButton__J9As0{display:inline-block;padding:16px;position:relative;width:90px}.externalLinkButton-module_echoButtonDisabled__6kYFw{padding-bottom:0}.externalLinkButton-module_echoButtonRounded__moamZ,.externalLinkButton-module_roundedButtonWrapper__x5h3U{display:inline-block;position:relative}.externalLinkButton-module_asyncButtonSpinner__-oNeC{opacity:.75;position:absolute;z-index:10}@media screen and (min-width:420px){.externalLinkButton-module_echoButtonDisabled__6kYFw,.externalLinkButton-module_echoButton__J9As0{width:96px}}.externalLinkButton-module_echoButton__J9As0 svg{display:inline-block;height:48px;margin:0 8px 8px;width:48px}.externalLinkButton-module_echoButtonRounded__moamZ svg{display:inline-block;height:24px;margin:0 8px;width:24px}.externalLinkButton-module_echoButton__J9As0 span{color:#007079;display:inline-block;font-size:14px;font-weight:500;line-height:16px;width:64px}.externalLinkButton-module_echoButton__J9As0:hover svg{fill:#004f55}.externalLinkButton-module_echoButton__J9As0:hover span{color:#004f55}.externalLinkButton-module_echoButtonDisabled__6kYFw span{color:var(--disabledColor)}.externalLinkButton-module_echoButtonDisabled__6kYFw:hover svg{fill:var(--disabledColor)}.externalLinkButton-module_echoButtonDisabled__6kYFw:hover span{color:var(--disabledColor)}.externalLinkButton-module_roundedButtonIconAsImage__ZBmFg{height:30px;justify-self:center;width:30px}.externalLinkButton-module_largeButtonIconAsImage__PF38e{height:auto;justify-self:center;width:100%}.externalLinkButton-module_toolTip__ywPoc{background-color:#233746;border-radius:8px;box-shadow:0 0 4px rgba(0,0,0,.05),0 4px 4px rgba(0,0,0,.05);color:#fff;display:block;padding:8px 16px;position:absolute;z-index:1}.externalLinkButton-module_toolTipContainer__n1YIl{display:inline-flex;justify-content:center}.externalLinkButton-module_stidIcon__XoFaL{height:auto!important}";
10
10
  var style = {
11
11
  "echoButton": "externalLinkButton-module_echoButton__J9As0",
12
12
  "echoButtonDisabled": "externalLinkButton-module_echoButtonDisabled__6kYFw",
13
13
  "echoButtonRounded": "externalLinkButton-module_echoButtonRounded__moamZ",
14
- "buttonIconAsImage": "externalLinkButton-module_buttonIconAsImage__JL6p6",
14
+ "roundedButtonWrapper": "externalLinkButton-module_roundedButtonWrapper__x5h3U",
15
+ "asyncButtonSpinner": "externalLinkButton-module_asyncButtonSpinner__-oNeC",
16
+ "roundedButtonIconAsImage": "externalLinkButton-module_roundedButtonIconAsImage__ZBmFg",
17
+ "largeButtonIconAsImage": "externalLinkButton-module_largeButtonIconAsImage__PF38e",
15
18
  "toolTip": "externalLinkButton-module_toolTip__ywPoc",
16
19
  "toolTipContainer": "externalLinkButton-module_toolTipContainer__n1YIl",
17
20
  "stidIcon": "externalLinkButton-module_stidIcon__XoFaL"
@@ -6,7 +6,7 @@ Object.defineProperty(exports, '__esModule', {
6
6
 
7
7
  var styleInject_es = require('../../../node_modules/style-inject/dist/style-inject.es.js');
8
8
 
9
- var css_248z = ".footer-module_echoFooter__6xy2c{background:#fff;bottom:0;display:flex;left:0;position:fixed}@media screen and (max-width:767px) and (orientation:portrait){.footer-module_echoFooter__6xy2c{bottom:48px}}@media screen and (max-width:927px) and (orientation:landscape){.footer-module_echoFooter__6xy2c{left:48px}}@media screen and (min-width:360px){.footer-module_echoFooter__6xy2c{height:33px}}@media screen and (min-width:640px){.footer-module_echoFooter__6xy2c{height:56px;width:100%}}p.footer-module_footerDisclaimer__sJJ5f{font-size:10px;width:100%}.footer-module_footerLogo__ttZmv{display:none;float:right;margin:0 0 12px;max-height:2.5rem;padding:12px 16px;width:74px}.footer-module_tosFooter__9mGDz{background:#fff;bottom:0;height:33px;left:0;position:fixed;width:100%}@media screen and (min-width:640px){p.footer-module_footerDisclaimer__sJJ5f{line-height:32px;margin:0;padding:12px 16px}.footer-module_footerLogo__ttZmv{display:block}.footer-module_tosFooter__9mGDz{height:56px}}";
9
+ var css_248z = ".footer-module_echoFooter__6xy2c{background:#fff;bottom:0;display:flex;left:0;position:fixed}@media screen and (min-width:360px){.footer-module_echoFooter__6xy2c{height:33px}}@media screen and (min-width:640px){.footer-module_echoFooter__6xy2c{height:56px;width:100%}}p.footer-module_footerDisclaimer__sJJ5f{font-size:10px;width:100%}.footer-module_footerLogo__ttZmv{display:none;float:right;margin:0 0 12px;max-height:2.5rem;padding:12px 16px;width:74px}.footer-module_tosFooter__9mGDz{background:#fff;bottom:0;height:33px;left:0;position:fixed;width:100%}@media screen and (min-width:640px){p.footer-module_footerDisclaimer__sJJ5f{line-height:32px;margin:0;padding:12px 16px}.footer-module_footerLogo__ttZmv{display:block}.footer-module_tosFooter__9mGDz{height:56px}}";
10
10
  var style = {
11
11
  "echoFooter": "footer-module_echoFooter__6xy2c",
12
12
  "footerDisclaimer": "footer-module_footerDisclaimer__sJJ5f",
@@ -40,9 +40,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
40
40
 
41
41
  edsIons.edsIcons();
42
42
 
43
- var CorePanelLeft = function CorePanelLeft(_ref) {
44
- var isToggleButtonVisible = _ref.isToggleButtonVisible;
45
-
43
+ var CorePanelLeft = function CorePanelLeft() {
46
44
  var _a;
47
45
 
48
46
  var _EchoCore$usePanels = EchoCore.usePanels(),
@@ -74,8 +72,7 @@ var CorePanelLeft = function CorePanelLeft(_ref) {
74
72
  style: panelUI.panelButton
75
73
  }, panels.map(function (panel, i) {
76
74
  var Icon = panel.icon;
77
- var showPanel = isToggleButtonVisible || panel.key !== EchoCore.ECHO_CORE_SEARCH;
78
- return showPanel && /*#__PURE__*/React__default["default"].createElement(panelButton["default"], {
75
+ return /*#__PURE__*/React__default["default"].createElement(panelButton["default"], {
79
76
  key: i,
80
77
  onClick: function onClick(e) {
81
78
  e.stopPropagation();
@@ -6,7 +6,7 @@ Object.defineProperty(exports, '__esModule', {
6
6
 
7
7
  var styleInject_es = require('../../../node_modules/style-inject/dist/style-inject.es.js');
8
8
 
9
- var css_248z = ".corePanelLeft-module_wrapper__d2Omx{height:100%;left:-550px;max-width:550px;position:fixed;top:0;transition:all .4s ease-in-out;width:550px;z-index:2}@media screen and (max-width:550px){.corePanelLeft-module_wrapperClosed__Zd1CL{left:-75vw;max-width:75vw;width:75vw}.corePanelLeft-module_active__-A3TW{width:100%}}.corePanelLeft-module_active__-A3TW{left:0;z-index:var(--echo-framework-z-level-panel)}@media screen and (max-width:927px) and (orientation:landscape){.corePanelLeft-module_active__-A3TW{left:48px}}.corePanelLeft-module_drawer__Wdb3G{background-color:#fff;border-left:2px solid #f7f7f7;box-shadow:0 6px 4px #00000040;display:flex;flex-direction:column;height:100%;opacity:0;overflow-y:hidden;position:relative;transition:opacity .4s ease-in-out;width:auto}.corePanelLeft-module_active__-A3TW .corePanelLeft-module_drawer__Wdb3G{opacity:1}.corePanelLeft-module_buttonContainer__bs-Uu{display:flex;flex-direction:column;position:absolute;right:-70px;top:0}@media screen and (max-width:927px) and (orientation:landscape){.corePanelLeft-module_buttonContainer__bs-Uu{right:-118px}}.corePanelLeft-module_button__SqyKk{margin-left:var(--medium);margin-top:var(--small)}";
9
+ var css_248z = ".corePanelLeft-module_wrapper__d2Omx{height:100%;left:-550px;max-width:550px;position:fixed;top:0;transition:left .4s ease-in-out,width .4s ease-in-out;width:550px;z-index:2}@media screen and (max-width:550px){.corePanelLeft-module_wrapperClosed__Zd1CL{left:-75vw;max-width:75vw;width:75vw}.corePanelLeft-module_active__-A3TW{width:100%}}.corePanelLeft-module_active__-A3TW{left:0;z-index:var(--echo-framework-z-level-panel)}.corePanelLeft-module_drawer__Wdb3G{background-color:#fff;border-left:2px solid #f7f7f7;box-shadow:0 6px 4px #00000040;display:flex;flex-direction:column;height:100%;opacity:0;overflow-y:hidden;position:relative;transition:opacity .4s ease-in-out;width:auto}.corePanelLeft-module_active__-A3TW .corePanelLeft-module_drawer__Wdb3G{opacity:1}.corePanelLeft-module_buttonContainer__bs-Uu{display:flex;flex-direction:column;position:absolute;right:-70px;top:0}.corePanelLeft-module_button__SqyKk{margin-left:var(--medium);margin-top:var(--small)}";
10
10
  var style = {
11
11
  "wrapper": "corePanelLeft-module_wrapper__d2Omx",
12
12
  "wrapperClosed": "corePanelLeft-module_wrapperClosed__Zd1CL",
@@ -42,9 +42,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
42
42
 
43
43
  edsIons.edsIcons();
44
44
 
45
- var CorePanelRight = function CorePanelRight(_ref) {
46
- var isToggleButtonVisible = _ref.isToggleButtonVisible;
47
-
45
+ var CorePanelRight = function CorePanelRight() {
48
46
  var _a;
49
47
 
50
48
  var _EchoCore$usePanels = EchoCore.usePanels('right'),
@@ -76,8 +74,7 @@ var CorePanelRight = function CorePanelRight(_ref) {
76
74
  style: panelUI.panelButton
77
75
  }, panels.map(function (panel, i) {
78
76
  var PanelIcon = panel.icon;
79
- var showPanel = isToggleButtonVisible || panel.key !== EchoCore.ECHO_CORE_MAIN;
80
- return showPanel && /*#__PURE__*/React__default["default"].createElement(panelButton["default"], {
77
+ return /*#__PURE__*/React__default["default"].createElement(panelButton["default"], {
81
78
  key: i,
82
79
  label: panel.label,
83
80
  variant: panel.key === EchoCore.ECHO_CORE_MAIN ? panelButton.Variants.NotificationButton : panelButton.Variants.OpenCloseButton,
@@ -6,7 +6,7 @@ Object.defineProperty(exports, '__esModule', {
6
6
 
7
7
  var styleInject_es = require('../../../node_modules/style-inject/dist/style-inject.es.js');
8
8
 
9
- var css_248z = ".corePanelRight-module_wrapper__YN3Zr{height:100%;max-width:550px;position:fixed;right:-352px;top:0;transition:all .4s ease-in-out;width:352px;z-index:2}@media screen and (max-width:550px){.corePanelRight-module_active__RIMQt{width:100%}}.corePanelRight-module_active__RIMQt{right:0;z-index:var(--echo-framework-z-level-panel)}@media screen and (max-width:927px) and (orientation:landscape){.corePanelRight-module_wrapper__YN3Zr{left:-352px}.corePanelRight-module_active__RIMQt{left:48px;z-index:var(--echo-framework-z-level-panel)}}.corePanelRight-module_drawer__1-ucH{background-color:#fff;border-left:2px solid #f7f7f7;box-shadow:0 6px 4px #00000040;display:flex;flex-direction:column;height:100%;opacity:0;overflow-y:auto;position:relative;transition:opacity .4s ease-in-out;width:auto}.corePanelRight-module_active__RIMQt .corePanelRight-module_drawer__1-ucH{opacity:1}.corePanelRight-module_buttonContainer__62imJ{display:flex;flex-direction:column;left:-90px;position:absolute;top:0}.corePanelRight-module_button__WBdfZ{margin-left:var(--medium);margin-top:var(--small)}";
9
+ var css_248z = ".corePanelRight-module_wrapper__YN3Zr{height:100%;max-width:352px;position:fixed;right:-352px;top:0;transition:right .4s ease-in-out,width .4s ease-in-out;width:352px;z-index:2}@media screen and (max-width:500px){.corePanelRight-module_wrapper__YN3Zr{max-width:75vw;right:-75vw;width:75vw}}.corePanelRight-module_active__RIMQt{right:0;z-index:var(--echo-framework-z-level-panel)}.corePanelRight-module_drawer__1-ucH{background-color:#fff;border-left:2px solid #f7f7f7;box-shadow:0 6px 4px #00000040;display:flex;flex-direction:column;height:100%;opacity:0;overflow-y:auto;position:relative;transition:opacity .4s ease-in-out;width:auto}.corePanelRight-module_active__RIMQt .corePanelRight-module_drawer__1-ucH{opacity:1}.corePanelRight-module_buttonContainer__62imJ{display:flex;flex-direction:column;left:-90px;position:absolute;top:0}.corePanelRight-module_button__WBdfZ{margin-left:var(--medium);margin-top:var(--small)}";
10
10
  var style = {
11
11
  "wrapper": "corePanelRight-module_wrapper__YN3Zr",
12
12
  "active": "corePanelRight-module_active__RIMQt",
@@ -6,11 +6,12 @@ Object.defineProperty(exports, '__esModule', {
6
6
 
7
7
  var styleInject_es = require('../../../../../node_modules/style-inject/dist/style-inject.es.js');
8
8
 
9
- var css_248z = ".IMSConnector-module_wrapper__CvKvm{align-items:center;display:grid;gap:1rem;grid-row:1fr;grid-template-columns:1fr 1fr;justify-items:center;margin-top:1rem}.IMSConnector-module_experimentalWarning__7Vv3z{grid-template-columns:auto 1fr;margin-top:0}.IMSConnector-module_message__w8j1M{margin-top:1rem;width:100%}";
9
+ var css_248z = ".IMSConnector-module_wrapper__CvKvm{align-items:center;display:grid;gap:1rem;grid-row:1fr;grid-template-columns:1fr 1fr;justify-items:center;margin-top:1rem}.IMSConnector-module_experimentalWarning__7Vv3z{grid-template-columns:auto 1fr;margin-top:0}.IMSConnector-module_message__w8j1M{margin-top:1rem;width:100%}.IMSConnector-module_requestAccess__YDOu9{margin-bottom:1rem}";
10
10
  var style = {
11
11
  "wrapper": "IMSConnector-module_wrapper__CvKvm",
12
12
  "experimentalWarning": "IMSConnector-module_experimentalWarning__7Vv3z IMSConnector-module_wrapper__CvKvm",
13
- "message": "IMSConnector-module_message__w8j1M"
13
+ "message": "IMSConnector-module_message__w8j1M",
14
+ "requestAccess": "IMSConnector-module_requestAccess__YDOu9"
14
15
  };
15
16
  styleInject_es["default"](css_248z);
16
17
  exports["default"] = style;
@@ -51,7 +51,8 @@ function RealTimeConnectorForIMSTag(_ref) {
51
51
  present = _useRealTimeHub$useRe.present,
52
52
  status = _useRealTimeHub$useRe.status,
53
53
  message = _useRealTimeHub$useRe.message,
54
- loading = _useRealTimeHub$useRe.loading;
54
+ loading = _useRealTimeHub$useRe.loading,
55
+ statusCode = _useRealTimeHub$useRe.statusCode;
55
56
 
56
57
  var _React$useMemo = React.useMemo(function () {
57
58
  if (present && metadata) {
@@ -66,6 +67,8 @@ function RealTimeConnectorForIMSTag(_ref) {
66
67
 
67
68
  if (status === 'error') {
68
69
  return /*#__PURE__*/React__default["default"].createElement(ErrorMessage, {
70
+ instCode: instCode,
71
+ statusCode: statusCode,
69
72
  message: message
70
73
  });
71
74
  }
@@ -90,21 +93,43 @@ function SensorValueProps(_ref2) {
90
93
  var value = _ref2.value,
91
94
  unit = _ref2.unit;
92
95
 
93
- if (!value || !unit) {
96
+ if (value === undefined || value === null) {
94
97
  return null;
95
- }
98
+ } // If Value exists and unit is null
99
+ // it usually means the value is related to open/closed, true/false
100
+ // but i'm not sure how to tell which one.
101
+
96
102
 
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));
103
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("span", null, value), " ", unit && /*#__PURE__*/React__default["default"].createElement("b", null, unit));
98
104
  }
99
105
 
100
106
  function ErrorMessage(_ref3) {
101
- var message = _ref3.message;
107
+ var instCode = _ref3.instCode,
108
+ statusCode = _ref3.statusCode,
109
+ message = _ref3.message;
102
110
  return /*#__PURE__*/React__default["default"].createElement("div", {
103
111
  className: IMSConnector_module["default"].message
104
- }, /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Typography, {
112
+ }, statusCode && statusCode === 403 ? /*#__PURE__*/React__default["default"].createElement(RequestAccessMessage, {
113
+ instCode: instCode
114
+ }) : /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Typography, {
105
115
  variant: "body_short",
106
- color: echoComponents.themeConst.voided
116
+ color: echoComponents.themeConst.echoText
107
117
  }, message !== null && message !== void 0 ? message : 'Something went wrong with RTD connection.'));
108
118
  }
109
119
 
120
+ function RequestAccessMessage(_ref4) {
121
+ var instCode = _ref4.instCode;
122
+ var url = new URL('https://accessit.equinor.com');
123
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
124
+ className: IMSConnector_module["default"].requestAccess
125
+ }, /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Typography, {
126
+ variant: "body_short",
127
+ color: echoComponents.themeConst.echoText
128
+ }, "You need access to:"), /*#__PURE__*/React__default["default"].createElement(edsCoreReact.List, null, /*#__PURE__*/React__default["default"].createElement(edsCoreReact.List.Item, null, "Omnia Plant Timeseries Read"), /*#__PURE__*/React__default["default"].createElement(edsCoreReact.List.Item, null, "PI vision"), instCode !== 'JSV' && /*#__PURE__*/React__default["default"].createElement(edsCoreReact.List.Item, null, "AspenOne Process Explorer"))), /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Button, {
129
+ as: "a",
130
+ href: url.href,
131
+ variant: "outlined"
132
+ }, "Go to AccessIT"));
133
+ }
134
+
110
135
  exports.RealTimeConnectorForIMSTag = RealTimeConnectorForIMSTag;
@@ -76,7 +76,7 @@ function useSignalR(hubUrl) {
76
76
  var _this = this;
77
77
 
78
78
  var _React$useState = React.useState({
79
- status: '',
79
+ status: 'ok',
80
80
  loading: false
81
81
  }),
82
82
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -89,7 +89,8 @@ function useSignalR(hubUrl) {
89
89
  setState(function (state) {
90
90
  return Object.assign(Object.assign({}, state), {
91
91
  loading: false,
92
- status: 'ok'
92
+ status: 'ok',
93
+ statusCode: status
93
94
  });
94
95
  });
95
96
  } else {
@@ -97,6 +98,7 @@ function useSignalR(hubUrl) {
97
98
  return Object.assign(Object.assign({}, state), {
98
99
  loading: false,
99
100
  status: 'error',
101
+ statusCode: status,
100
102
  message: typeof payload === 'string' ? payload : ''
101
103
  });
102
104
  });
@@ -14,8 +14,6 @@ var corePanelLeft = require('../components/panel/corePanelLeft.js');
14
14
 
15
15
  var corePanelRight = require('../components/panel/corePanelRight.js');
16
16
 
17
- var EchoContent_module = require('./EchoContent.module.css.js');
18
-
19
17
  function _interopDefaultLegacy(e) {
20
18
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
21
19
  'default': e
@@ -26,15 +24,8 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
24
 
27
25
  var EchoContent = function EchoContent(_ref) {
28
26
  var children = _ref.children,
29
- Legend = _ref.Legend,
30
- isToggleButtonVisible = _ref.isToggleButtonVisible;
31
- return /*#__PURE__*/React__default["default"].createElement(EchoCore.ModuleContextProvider, null, /*#__PURE__*/React__default["default"].createElement(corePanelLeft["default"], {
32
- isToggleButtonVisible: isToggleButtonVisible
33
- }), /*#__PURE__*/React__default["default"].createElement(corePanelRight["default"], {
34
- isToggleButtonVisible: isToggleButtonVisible
35
- }), /*#__PURE__*/React__default["default"].createElement("div", {
36
- className: EchoContent_module["default"].echoContentContainer
37
- }, children, Legend && /*#__PURE__*/React__default["default"].createElement(Legend, null)));
27
+ Legend = _ref.Legend;
28
+ return /*#__PURE__*/React__default["default"].createElement(EchoCore.ModuleContextProvider, null, /*#__PURE__*/React__default["default"].createElement(corePanelLeft["default"], null), /*#__PURE__*/React__default["default"].createElement(corePanelRight["default"], null), children, Legend && /*#__PURE__*/React__default["default"].createElement(Legend, null));
38
29
  };
39
30
 
40
31
  exports.EchoContent = EchoContent;
@@ -2,5 +2,5 @@
2
2
 
3
3
  var styleInject_es = require('../node_modules/style-inject/dist/style-inject.es.js');
4
4
 
5
- var css_248z = ":root{--echo-framework-z-level-panel:500;--echo-framework-z-level-bottom-bar:1000;--echo-framework-z-level-scrim:1450}[class^=Scrim__StyledScrim]{z-index:var(--echo-framework-z-level-scrim)!important}";
5
+ var css_248z = ":root{--echo-framework-z-level-panel:500;--echo-framework-z-level-scrim:1450}[class^=Scrim__StyledScrim]{z-index:var(--echo-framework-z-level-scrim)!important}";
6
6
  styleInject_es["default"](css_248z);
@@ -25,7 +25,6 @@ exports.RegisteredHookName = void 0;
25
25
  RegisteredHookName["useIsContextMenuInfoLoading"] = "useIsContextMenuInfoLoading";
26
26
  RegisteredHookName["useSetActiveCommPackNo"] = "useSetActiveCommPackNo";
27
27
  RegisteredHookName["useSetActiveMcPackNo"] = "useSetActiveMcPackNo";
28
- RegisteredHookName["useDeviceOrientation"] = "useDeviceOrientation";
29
28
  })(exports.RegisteredHookName || (exports.RegisteredHookName = {}));
30
29
 
31
30
  var HookLibrary = Object.freeze({
@@ -82,14 +81,6 @@ var HookLibrary = Object.freeze({
82
81
  */
83
82
  useSetActiveMcPackNo: function useSetActiveMcPackNo() {
84
83
  return EchoCore__default["default"].echoHookRegistry.getHookByName(exports.RegisteredHookName.useSetActiveMcPackNo)();
85
- },
86
-
87
- /**
88
- * Hook for detecting device orientation from native devices.
89
- * @returns {DeviceOrientation}
90
- */
91
- useDeviceOrientation: function useDeviceOrientation() {
92
- return EchoCore__default["default"].echoHookRegistry.getHookByName(exports.RegisteredHookName.useDeviceOrientation)();
93
84
  }
94
85
  });
95
86
  exports.HookLibrary = HookLibrary;
@@ -6,10 +6,7 @@ Object.defineProperty(exports, '__esModule', {
6
6
 
7
7
  var useEchoHistory = require('./useEchoHistory.js');
8
8
 
9
- var useScreenOrientation = require('./useScreenOrientation.js');
10
-
11
9
  var useTagDetails = require('./useTagDetails.js');
12
10
 
13
11
  exports.useEchoHistory = useEchoHistory.useEchoHistory;
14
- exports.useScreenOrientation = useScreenOrientation.useScreenOrientation;
15
12
  exports.useTagDetails = useTagDetails.useTagDetails;
@@ -12,48 +12,68 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
12
12
 
13
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
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
+
15
17
  Object.defineProperty(exports, '__esModule', {
16
18
  value: true
17
19
  });
18
20
 
19
- var EchoCore = require('@equinor/echo-core');
21
+ var EchoUtils = require('@equinor/echo-utils');
20
22
 
21
23
  var React = require('react');
22
24
 
23
25
  var useTagDetails = require('./useTagDetails.js');
26
+
27
+ function _interopDefaultLegacy(e) {
28
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
29
+ 'default': e
30
+ };
31
+ }
32
+
33
+ var EchoUtils__default = /*#__PURE__*/_interopDefaultLegacy(EchoUtils);
24
34
  /**
25
35
  * Provides information about Semi document for a given tag.
26
36
  *
27
- * @param {{ tagNo: string }} params
28
- * @param {string} params.tagNo Tag number in question.
37
+ * @param {{ tagNo: string; instCode: string }} params
38
+ * @param {string} params.tagNo The given tag's number.
39
+ * @param {string} params.instCode Plant's inst code.
29
40
  * @returns {Semi} object
30
41
  * @returns {boolean} object.isSemiDocumentAvailable - Will be set to true if the tag has Semi document.
31
42
  * @returns {string} object.semiDocumentId - If there's a document for the given tag, this will be set.
43
+ * @returns {boolean} object.isSemiLoading - Indicates if Semi is performing an API call (to get tag details)
32
44
  */
33
45
 
34
46
 
35
47
  function useSemi(_ref) {
36
- var tagNo = _ref.tagNo;
48
+ var tagNo = _ref.tagNo,
49
+ instCode = _ref.instCode;
37
50
 
38
- var _a;
39
-
40
- var instCode = EchoCore.useInstCode();
41
- var additionalTagDetailsFields = (_a = useTagDetails.useTagDetails({
51
+ var _useTagDetails$useTag = useTagDetails.useTagDetails({
42
52
  tagNo: tagNo,
43
53
  instCode: instCode
44
- })) === null || _a === void 0 ? void 0 : _a.additionalFields;
54
+ }),
55
+ tagDetails = _useTagDetails$useTag.tagDetails,
56
+ isTagDetailsLoading = _useTagDetails$useTag.isTagDetailsLoading,
57
+ hasError = _useTagDetails$useTag.hasError;
45
58
 
46
59
  var _React$useState = React.useState(false),
47
60
  _React$useState2 = _slicedToArray(_React$useState, 2),
48
61
  isSemiDocumentAvailable = _React$useState2[0],
49
62
  setIsSemiDocumentAvailable = _React$useState2[1];
50
63
 
51
- var _React$useState3 = React.useState(''),
64
+ var _React$useState3 = React.useState(false),
52
65
  _React$useState4 = _slicedToArray(_React$useState3, 2),
53
- semiDocumentId = _React$useState4[0],
54
- setSemiDocumentId = _React$useState4[1];
66
+ isSemiLoading = _React$useState4[0],
67
+ setIsSemiLoading = _React$useState4[1];
68
+
69
+ var _React$useState5 = React.useState(''),
70
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
71
+ semiDocumentId = _React$useState6[0],
72
+ setSemiDocumentId = _React$useState6[1];
55
73
 
56
74
  React.useEffect(function () {
75
+ var additionalTagDetailsFields = tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.additionalFields;
76
+
57
77
  if (Array.isArray(additionalTagDetailsFields) && additionalTagDetailsFields.length > 0) {
58
78
  var semi = additionalTagDetailsFields.find(function (field) {
59
79
  return field.type === 'SMI';
@@ -64,10 +84,16 @@ function useSemi(_ref) {
64
84
  setSemiDocumentId(semi.value);
65
85
  }
66
86
  }
67
- }, [additionalTagDetailsFields]);
87
+ }, [tagDetails, hasError]);
88
+ EchoUtils__default["default"].Hooks.useEffectAsync(function (signal) {
89
+ if (!signal.aborted) {
90
+ setIsSemiLoading(isTagDetailsLoading);
91
+ }
92
+ }, [isTagDetailsLoading]);
68
93
  return {
69
94
  isSemiDocumentAvailable: isSemiDocumentAvailable,
70
- semiDocumentId: semiDocumentId
95
+ semiDocumentId: semiDocumentId,
96
+ isSemiLoading: isSemiLoading
71
97
  };
72
98
  }
73
99