@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
@@ -8,50 +8,6 @@ Object.defineProperty(exports, '__esModule', {
8
8
 
9
9
  var React = require('react');
10
10
 
11
- var EchoBarComponent = require('../../coreApplication/EchoBarComponent.js');
12
-
13
- require('@equinor/echo-core');
14
-
15
- require('../panel/corePanelLeft.js');
16
-
17
- require('../panel/corePanelRight.js');
18
-
19
- require('../../coreApplication/EchoContent.module.css.js');
20
-
21
- require('react-router-dom');
22
-
23
- require('@equinor/echo-components');
24
-
25
- require('@equinor/eds-core-react');
26
-
27
- require('../pageMenu/accordionItem.module.css.js');
28
-
29
- require('../appLinks/AppLinks.module.css.js');
30
-
31
- require('../pageMenu/Navigation/applicationList.module.css.js');
32
-
33
- require('../pageMenu/pageMenu.module.css.js');
34
-
35
- require('../pageMenu/pageMenuDrawerItem.module.css.js');
36
-
37
- require('@equinor/echo-base');
38
-
39
- require('../pageMenu/settings/settings.module.css.js');
40
-
41
- require('../../services/api/api-manager.js');
42
-
43
- require('../pageMenu/version/version.module.css.js');
44
-
45
- require('../searchMenu/searchMenu.module.css.js');
46
-
47
- require('../../coreApplication/EchoEventHandler.module.css.js');
48
-
49
- var useScreenOrientation = require('../../hooks/useScreenOrientation.js');
50
-
51
- require('@equinor/echo-search');
52
-
53
- var hookLibrary = require('../../hooks/hookLibrary.js');
54
-
55
11
  var layout_module = require('./layout.module.css.js');
56
12
 
57
13
  function _interopDefaultLegacy(e) {
@@ -64,112 +20,39 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
64
20
 
65
21
  var MainLayout = function MainLayout(_ref) {
66
22
  var children = _ref.children;
67
- var deviceOrientation = hookLibrary.HookLibrary.useDeviceOrientation();
68
- var isLandscapeDevice = deviceOrientation.landscape;
69
- var screenOrientation = useScreenOrientation.useScreenOrientation();
70
- var isWeb = !deviceOrientation.landscape && !deviceOrientation.portrait;
71
- var isLandscapeWeb = screenOrientation === 'landscape';
72
23
  return /*#__PURE__*/React__default["default"].createElement("div", {
73
- className: layout_module["default"].echoContentContainer
74
- }, isWeb ? screenOrientation === 'landscape' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
75
- isLandscape: isLandscapeWeb
76
- }) : deviceOrientation.landscape && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
77
- isLandscape: isLandscapeDevice
78
- }), /*#__PURE__*/React__default["default"].createElement("div", {
24
+ className: layout_module["default"].applicationWrapper
25
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
79
26
  className: layout_module["default"].mainLayoutWrapper
80
- }, children), ' ', isWeb ? screenOrientation === 'portrait' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
81
- isLandscape: isLandscapeWeb
82
- }) : deviceOrientation.portrait && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
83
- isLandscape: isLandscapeDevice
84
- }));
27
+ }, children));
85
28
  };
86
29
 
87
30
  var ColorLayout = function ColorLayout(_ref2) {
88
31
  var children = _ref2.children;
89
- var deviceOrientation = hookLibrary.HookLibrary.useDeviceOrientation();
90
- var isLandscapeDevice = deviceOrientation.landscape;
91
- var screenOrientation = useScreenOrientation.useScreenOrientation();
92
- var isWeb = !deviceOrientation.landscape && !deviceOrientation.portrait;
93
- var isLandscapeWeb = screenOrientation === 'landscape';
94
32
  return /*#__PURE__*/React__default["default"].createElement("div", {
95
- className: layout_module["default"].echoContentContainer
96
- }, ' ', isWeb ? screenOrientation === 'landscape' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
97
- isLandscape: isLandscapeWeb
98
- }) : deviceOrientation.landscape && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
99
- isLandscape: isLandscapeDevice
100
- }), /*#__PURE__*/React__default["default"].createElement("div", {
101
33
  className: layout_module["default"].colorLayout
102
- }, children), isWeb ? screenOrientation === 'portrait' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
103
- isLandscape: isLandscapeWeb
104
- }) : deviceOrientation.portrait && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
105
- isLandscape: isLandscapeDevice
106
- }));
34
+ }, children);
107
35
  };
108
36
 
109
37
  var PdfViewerNative = function PdfViewerNative(_ref3) {
110
38
  var children = _ref3.children;
111
- var deviceOrientation = hookLibrary.HookLibrary.useDeviceOrientation();
112
- var isLandscapeDevice = deviceOrientation.landscape;
113
- var screenOrientation = useScreenOrientation.useScreenOrientation();
114
- var isWeb = !deviceOrientation.landscape && !deviceOrientation.portrait;
115
- var isLandscapeWeb = screenOrientation === 'landscape';
116
39
  return /*#__PURE__*/React__default["default"].createElement("div", {
117
- className: layout_module["default"].echoContentContainer
118
- }, ' ', isWeb ? screenOrientation === 'landscape' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
119
- isLandscape: isLandscapeWeb
120
- }) : deviceOrientation.landscape && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
121
- isLandscape: isLandscapeDevice
122
- }), /*#__PURE__*/React__default["default"].createElement("div", {
123
40
  className: layout_module["default"].pdfViewerNative
124
- }, children), ' ', isWeb ? screenOrientation === 'portrait' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
125
- isLandscape: isLandscapeWeb
126
- }) : deviceOrientation.portrait && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
127
- isLandscape: isLandscapeDevice
128
- }));
41
+ }, children);
129
42
  };
130
43
 
131
44
  var CameraLayout = function CameraLayout(_ref4) {
132
45
  var children = _ref4.children;
133
- var deviceOrientation = hookLibrary.HookLibrary.useDeviceOrientation();
134
- var isLandscapeDevice = deviceOrientation.landscape;
135
- var screenOrientation = useScreenOrientation.useScreenOrientation();
136
- var isWeb = !deviceOrientation.landscape && !deviceOrientation.portrait;
137
- var isLandscapeWeb = screenOrientation === 'landscape';
138
46
  return /*#__PURE__*/React__default["default"].createElement("div", {
139
- className: layout_module["default"].echoContentContainer
140
- }, isWeb ? screenOrientation === 'landscape' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
141
- isLandscape: isLandscapeWeb
142
- }) : deviceOrientation.landscape && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
143
- isLandscape: isLandscapeDevice
144
- }), /*#__PURE__*/React__default["default"].createElement("div", {
145
- className: layout_module["default"].cameraLayout
146
- }, children), ' ', isWeb ? screenOrientation === 'portrait' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
147
- isLandscape: isLandscapeWeb
148
- }) : deviceOrientation.portrait && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
149
- isLandscape: isLandscapeDevice
150
- }), ' ');
47
+ style: {
48
+ backgroundColor: 'transparent'
49
+ }
50
+ }, children);
151
51
  };
152
52
 
153
53
  var DefaultLayout = function DefaultLayout(_ref5) {
154
54
  var children = _ref5.children;
155
- var deviceOrientation = hookLibrary.HookLibrary.useDeviceOrientation();
156
- var isLandscapeDevice = deviceOrientation.landscape;
157
- var screenOrientation = useScreenOrientation.useScreenOrientation();
158
- var isWeb = !deviceOrientation.landscape && !deviceOrientation.portrait;
159
- var isLandscapeWeb = screenOrientation === 'landscape';
160
- return /*#__PURE__*/React__default["default"].createElement("div", {
161
- className: layout_module["default"].echoContentContainer
162
- }, isWeb ? screenOrientation === 'landscape' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
163
- isLandscape: isLandscapeWeb
164
- }) : deviceOrientation.landscape && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
165
- isLandscape: isLandscapeDevice
166
- }), /*#__PURE__*/React__default["default"].createElement("div", {
167
- className: layout_module["default"].defaultLayout
168
- }, children), isWeb ? screenOrientation === 'portrait' && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
169
- isLandscape: isLandscapeWeb
170
- }) : deviceOrientation.portrait && /*#__PURE__*/React__default["default"].createElement(EchoBarComponent.EchoBarComponent, {
171
- isLandscape: isLandscapeDevice
172
- }));
55
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, children);
173
56
  };
174
57
 
175
58
  exports.CameraLayout = CameraLayout;
@@ -121,7 +121,7 @@ var ExternalAppsMenu = function ExternalAppsMenu(_a) {
121
121
  id: menuButtonId,
122
122
  "aria-controls": appMenuOnButtonId,
123
123
  "aria-haspopup": "true",
124
- "aria-expanded": Boolean(menuState.buttonEl),
124
+ "aria-expanded": isOpen,
125
125
  onClick: function onClick() {
126
126
  isOpen ? closeMenu() : openMenu(buttonElRef);
127
127
  },
@@ -138,7 +138,7 @@ var ExternalAppsMenu = function ExternalAppsMenu(_a) {
138
138
  })), /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Menu, {
139
139
  id: appMenuOnButtonId,
140
140
  "aria-labelledby": menuButtonId,
141
- open: Boolean(menuState.buttonEl),
141
+ open: isOpen,
142
142
  anchorEl: buttonElRef === null || buttonElRef === void 0 ? void 0 : buttonElRef.current,
143
143
  placement: 'bottom-end',
144
144
  onClose: closeMenu,
@@ -149,9 +149,9 @@ var ExternalAppsMenu = function ExternalAppsMenu(_a) {
149
149
  onMouseLeave: function onMouseLeave() {
150
150
  closeMenu();
151
151
  }
152
- }, /*#__PURE__*/React__default["default"].createElement("div", null, externalAppLinks.map(function (AppLink) {
152
+ }, isOpen ? /*#__PURE__*/React__default["default"].createElement("div", null, externalAppLinks.map(function (AppLink) {
153
153
  return renderAppLink(AppLink.component);
154
- }), children)));
154
+ }), children) : null));
155
155
  };
156
156
 
157
157
  exports.ExternalAppsMenu = ExternalAppsMenu;
@@ -1,15 +1,33 @@
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', {
6
18
  value: true
7
19
  });
8
20
 
21
+ var EchoUtils = require('@equinor/echo-utils');
22
+
9
23
  var React = require('react');
10
24
 
11
25
  var useContextualAppLinksContext = require('../hooks/useContextualAppLinksContext.js');
12
26
 
27
+ var iconButtonSpinner = require('./iconButtonSpinner.js');
28
+
29
+ var externalLinkToCommApp = require('./externalLinkToCommApp.js');
30
+
13
31
  var externalLinkToMcApp = require('./externalLinkToMcApp.js');
14
32
 
15
33
  var externalLinkToProCoSys = require('./externalLinkToProCoSys.js');
@@ -30,6 +48,8 @@ function _interopDefaultLegacy(e) {
30
48
  };
31
49
  }
32
50
 
51
+ var EchoUtils__default = /*#__PURE__*/_interopDefaultLegacy(EchoUtils);
52
+
33
53
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
34
54
  /**
35
55
  * To be used inside ContextualAppLinks component.
@@ -44,29 +64,64 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
44
64
 
45
65
 
46
66
  var AllExternalLinks = function AllExternalLinks() {
67
+ var useStateSafe = EchoUtils__default["default"].Hooks.useStateSafe;
68
+
47
69
  var _useContextualAppLink = useContextualAppLinksContext.useContextualAppLinksContext(),
48
70
  tag = _useContextualAppLink.tag,
49
71
  instCode = _useContextualAppLink.instCode;
50
72
 
73
+ var tagNo = tag.tagNo;
74
+
75
+ var _useStateSafe = useStateSafe(false),
76
+ _useStateSafe2 = _slicedToArray(_useStateSafe, 2),
77
+ isTR2000Loading = _useStateSafe2[0],
78
+ setIsisTR2000LoadingLoading = _useStateSafe2[1];
79
+
80
+ var _useStateSafe3 = useStateSafe(false),
81
+ _useStateSafe4 = _slicedToArray(_useStateSafe3, 2),
82
+ isSapLoading = _useStateSafe4[0],
83
+ setIsSapLoading = _useStateSafe4[1];
84
+
85
+ var _useStateSafe5 = useStateSafe(false),
86
+ _useStateSafe6 = _slicedToArray(_useStateSafe5, 2),
87
+ isSemiLoading = _useStateSafe6[0],
88
+ setIsSemiLoading = _useStateSafe6[1];
89
+
51
90
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(externalLinkToStid.ExternalLinkToStid, {
52
- tagNo: tag.tagNo,
91
+ tagNo: tagNo,
53
92
  instCode: instCode
54
93
  }), /*#__PURE__*/React__default["default"].createElement(externalLinkToProCoSys.ExternalLinkToProCoSys, {
55
- tagNo: tag.tagNo,
94
+ tagNo: tagNo,
56
95
  instCode: instCode
57
- }), /*#__PURE__*/React__default["default"].createElement(externalLinkToSap.ExternalLinkToSap, {
58
- tagNo: tag.tagNo,
59
- instCode: instCode
60
- }), /*#__PURE__*/React__default["default"].createElement(externalLinkToSemiDoc.ExternalLinkToSemiDoc, {
61
- tagNo: tag.tagNo
62
96
  }), /*#__PURE__*/React__default["default"].createElement(externalLinkToMcApp.ExternalLinkToMcApp, {
63
- tagNo: tag.tagNo
97
+ tagNo: tagNo,
98
+ instCode: instCode
99
+ }), /*#__PURE__*/React__default["default"].createElement(externalLinkToCommApp.ExternalLinkToCommApp, {
100
+ tagNo: tagNo,
101
+ instCode: instCode
64
102
  }), /*#__PURE__*/React__default["default"].createElement(externalLinkToSafeX.ExternalLinkToSafeX, {
65
103
  tag: tag
104
+ }), /*#__PURE__*/React__default["default"].createElement(externalLinkToSemiDoc.ExternalLinkToSemiDoc, {
105
+ tagNo: tagNo,
106
+ instCode: instCode,
107
+ loadingStatusCallback: function loadingStatusCallback(isButtonLoading) {
108
+ setIsSemiLoading(isButtonLoading);
109
+ }
66
110
  }), /*#__PURE__*/React__default["default"].createElement(externalLinkToTr2000.ExternalLinkToTr2000, {
67
- tagNo: tag.tagNo,
68
- instCode: instCode
69
- }));
111
+ tagNo: tagNo,
112
+ instCode: instCode,
113
+ loadingStatusCallback: function loadingStatusCallback(isButtonLoading) {
114
+ setIsisTR2000LoadingLoading(isButtonLoading);
115
+ }
116
+ }), /*#__PURE__*/React__default["default"].createElement(externalLinkToSap.ExternalLinkToSap, {
117
+ tagNo: tagNo,
118
+ instCode: instCode,
119
+ loadingStatusCallback: function loadingStatusCallback(isButtonLoading) {
120
+ setIsSapLoading(isButtonLoading);
121
+ }
122
+ }), isTR2000Loading || isSapLoading || isSemiLoading ? /*#__PURE__*/React__default["default"].createElement(iconButtonSpinner.IconButtonSpinner, {
123
+ size: 24
124
+ }) : null);
70
125
  };
71
126
 
72
127
  exports.AllExternalLinks = AllExternalLinks;
@@ -0,0 +1,169 @@
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 _tslib = require('../../../../_virtual/_tslib.js');
10
+
11
+ var EchoCore = require('@equinor/echo-core');
12
+
13
+ var apiTagDetails = require('../../../services/api/api-tag-details.js');
14
+
15
+ var apiTags = require('../../../services/api/api-tags.js');
16
+
17
+ var echopediaAnalyticsModule = require('../../../services/echopediaAnalyticsModule/echopediaAnalyticsModule.js');
18
+
19
+ var toastActions = require('../../../services/eventHubActions/toastActions.js');
20
+
21
+ function _interopDefaultLegacy(e) {
22
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
23
+ 'default': e
24
+ };
25
+ }
26
+
27
+ var EchoCore__default = /*#__PURE__*/_interopDefaultLegacy(EchoCore);
28
+ /**
29
+ * Specific tool for external link buttons to help build URLS for deep linking into ProCoSys web app.
30
+ * Fetches both tag details and tag information from ProCoSys.
31
+ *
32
+ * @param {Object} params
33
+ * @param {string} params.tagNo The tag number to query.
34
+ * @param {string} params.instCode Plant installation code for the given tag.
35
+ * @returns {GetTagDetailsAndProCoSysDataResult} response - The returned promise will resolve once both API calls are resolved. (with Promise.all)
36
+ * @returns {TagDetailsDto} response.tagDetails - Result of tag details API call.
37
+ * @returns {ProCoSysApiTag} response.proCoSysTag - Tag related information from the ProCoSys system.
38
+ * @returns {hasError} response.hasError - indicates if there were any errors during the API calls. The exception is handled under the hood.
39
+ */
40
+
41
+
42
+ function getTagDetailsAndProCoSysData(_ref) {
43
+ var tagNo = _ref.tagNo,
44
+ instCode = _ref.instCode;
45
+ return _tslib.__awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
46
+ var tagDetailsPromise, proCoSysTagPromise, response;
47
+ return regeneratorRuntime.wrap(function _callee$(_context) {
48
+ while (1) {
49
+ switch (_context.prev = _context.next) {
50
+ case 0:
51
+ tagDetailsPromise = apiTagDetails.getTagDetails({
52
+ tagNo: tagNo,
53
+ instCode: instCode
54
+ });
55
+ proCoSysTagPromise = apiTags.getTagFromProCoSys({
56
+ tagNo: tagNo,
57
+ instCode: instCode
58
+ });
59
+ response = {
60
+ tagDetails: undefined,
61
+ proCoSysTag: undefined,
62
+ hasError: false
63
+ };
64
+ _context.next = 5;
65
+ return Promise.all([tagDetailsPromise, proCoSysTagPromise].map(function (actualPromise, i) {
66
+ return actualPromise["catch"](function (error) {
67
+ error.index = i;
68
+ throw error;
69
+ });
70
+ })).then(function (responses) {
71
+ response.tagDetails = responses[0];
72
+ response.proCoSysTag = responses[1].find(function (item) {
73
+ return item.isMaster;
74
+ });
75
+
76
+ if (!response.proCoSysTag) {
77
+ toastActions.displayToast({
78
+ message: "Tag with number ".concat(response.tagDetails.tagNo, " does not exists in ProCoSys.")
79
+ });
80
+ response.hasError = true;
81
+ }
82
+ }, function (error) {
83
+ var errorSource = error.index === 0 ? 'tag details' : 'ProCoSys tag data';
84
+ var errorMessage = "Failed to fetch ".concat(errorSource, " for tagNo: ").concat(tagNo, " with instCode: ").concat(instCode, ". Please try again later.");
85
+ delete error.index;
86
+ EchoCore__default["default"].handleErrors && EchoCore__default["default"].handleErrors(error, echopediaAnalyticsModule.echopediaAnalyticsModule);
87
+ toastActions.displayToast({
88
+ message: errorMessage
89
+ });
90
+ response.hasError = true;
91
+ });
92
+
93
+ case 5:
94
+ return _context.abrupt("return", response);
95
+
96
+ case 6:
97
+ case "end":
98
+ return _context.stop();
99
+ }
100
+ }
101
+ }, _callee);
102
+ }));
103
+ }
104
+ /**
105
+ * Wraps the 'getTagDetails' function. Handles and logs any Error thrown by it whi;e displaying an error message toast.
106
+ * Use 'getTagDetails' if you want complete freedom on how you handle any exceptions.
107
+ *
108
+ * If there were any errors during the API call, the returned value will have a 'hasError' flag set to 'true'.
109
+ *
110
+ * @param {Object} params
111
+ * @param {string} params.tagNo The tag number to query.
112
+ * @param {string} params.instCode Plant installation code for the given tag.
113
+ * @param {AbortSignal} params.abortSignal A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object.
114
+ * @returns {getTagDetailsWithErrorHandlingResponse} response
115
+ * @returns {TagDetailsDto} response.tagDetails - Result of tag details API call.
116
+ * @returns {hasError} response.hasError - indicates if there were any errors during the API call.
117
+ */
118
+
119
+
120
+ function getTagDetailsWithErrorHandling(_ref2) {
121
+ var tagNo = _ref2.tagNo,
122
+ instCode = _ref2.instCode,
123
+ abortSignal = _ref2.abortSignal;
124
+ return _tslib.__awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
125
+ var result;
126
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
127
+ while (1) {
128
+ switch (_context2.prev = _context2.next) {
129
+ case 0:
130
+ result = {
131
+ tagDetails: undefined,
132
+ hasError: false
133
+ };
134
+ _context2.prev = 1;
135
+ _context2.next = 4;
136
+ return apiTagDetails.getTagDetails({
137
+ tagNo: tagNo,
138
+ instCode: instCode,
139
+ abortSignal: abortSignal
140
+ });
141
+
142
+ case 4:
143
+ result.tagDetails = _context2.sent;
144
+ _context2.next = 12;
145
+ break;
146
+
147
+ case 7:
148
+ _context2.prev = 7;
149
+ _context2.t0 = _context2["catch"](1);
150
+ EchoCore__default["default"].handleErrors && EchoCore__default["default"].handleErrors(_context2.t0, echopediaAnalyticsModule.echopediaAnalyticsModule);
151
+ toastActions.displayToast({
152
+ message: "Failed to fetch tag details for tagNo: ".concat(tagNo, " with instCode: ").concat(instCode, ". Please try again alter.")
153
+ });
154
+ result.hasError = true;
155
+
156
+ case 12:
157
+ return _context2.abrupt("return", result);
158
+
159
+ case 13:
160
+ case "end":
161
+ return _context2.stop();
162
+ }
163
+ }
164
+ }, _callee2, null, [[1, 7]]);
165
+ }));
166
+ }
167
+
168
+ exports.getTagDetailsAndProCoSysData = getTagDetailsAndProCoSysData;
169
+ exports.getTagDetailsWithErrorHandling = getTagDetailsWithErrorHandling;
@@ -0,0 +1,93 @@
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 _tslib = require('../../../../_virtual/_tslib.js');
10
+
11
+ var EchoCore = require('@equinor/echo-core');
12
+
13
+ var React = require('react');
14
+
15
+ var externalLinkButton = require('../../externalLinkButton/externalLinkButton.js');
16
+
17
+ var externalLinkButtons_helpers = require('./externalLinkButtons.helpers.js');
18
+
19
+ function _interopDefaultLegacy(e) {
20
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
21
+ 'default': e
22
+ };
23
+ }
24
+
25
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
+ /**
27
+ * External link button to Commissioning web app.
28
+ *
29
+ * @param {string} tagNo The tag's number to open in the Comm app.
30
+ * @param {string} instCode Plant installation code.
31
+ * @returns {React.FC<ExternalLinkToMcAppProps>} React component.
32
+ */
33
+
34
+
35
+ var ExternalLinkToCommApp = function ExternalLinkToCommApp(_ref) {
36
+ var tagNo = _ref.tagNo,
37
+ instCode = _ref.instCode;
38
+ var proCoSysPlantCode = EchoCore.useProCoSysPlantId();
39
+
40
+ function createUrl(params) {
41
+ return _tslib.__awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
42
+ var _yield$externalLinkBu, tagDetails, proCoSysTag, hasError;
43
+
44
+ return regeneratorRuntime.wrap(function _callee$(_context) {
45
+ while (1) {
46
+ switch (_context.prev = _context.next) {
47
+ case 0:
48
+ _context.next = 2;
49
+ return externalLinkButtons_helpers.getTagDetailsAndProCoSysData(Object.assign({}, params));
50
+
51
+ case 2:
52
+ _yield$externalLinkBu = _context.sent;
53
+ tagDetails = _yield$externalLinkBu.tagDetails;
54
+ proCoSysTag = _yield$externalLinkBu.proCoSysTag;
55
+ hasError = _yield$externalLinkBu.hasError;
56
+ return _context.abrupt("return", hasError ? undefined : "https://apps.procosys.com/comm/".concat(proCoSysPlantCode, "/").concat(tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.projectCode, "/Tag/").concat(proCoSysTag === null || proCoSysTag === void 0 ? void 0 : proCoSysTag.id));
57
+
58
+ case 7:
59
+ case "end":
60
+ return _context.stop();
61
+ }
62
+ }
63
+ }, _callee);
64
+ }));
65
+ }
66
+
67
+ return /*#__PURE__*/React__default["default"].createElement(externalLinkButton.ExternalLinkButton, {
68
+ buttonName: "Comm App",
69
+ buttonIcon: "CommApp",
70
+ getUrlToOpen: function getUrlToOpen() {
71
+ return _tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
72
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
73
+ while (1) {
74
+ switch (_context2.prev = _context2.next) {
75
+ case 0:
76
+ return _context2.abrupt("return", createUrl({
77
+ tagNo: tagNo,
78
+ instCode: instCode
79
+ }));
80
+
81
+ case 1:
82
+ case "end":
83
+ return _context2.stop();
84
+ }
85
+ }
86
+ }, _callee2);
87
+ }));
88
+ },
89
+ buttonStyle: externalLinkButton.ExternalLinkButtonStyle.Rounded
90
+ });
91
+ };
92
+
93
+ exports.ExternalLinkToCommApp = ExternalLinkToCommApp;