@equinor/echo-framework 0.8.1 → 0.8.2

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 (95) hide show
  1. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToMcApp.d.ts +1 -3
  2. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToProCoSys.d.ts +2 -1
  3. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToSap.d.ts +0 -3
  4. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToSemiDoc.d.ts +0 -4
  5. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToTr2000.d.ts +0 -2
  6. package/dist/components/contextualAppLinks/externalLinkButtons/index.d.ts +0 -1
  7. package/dist/components/externalLinkButton/externalLinkButton.d.ts +7 -16
  8. package/dist/components/panel/corePanelLeft.d.ts +4 -1
  9. package/dist/components/panel/corePanelRight.d.ts +4 -1
  10. package/dist/components/realTimeData/hooks/useSignalR.d.ts +2 -3
  11. package/dist/coreApplication/EchoBarComponent.d.ts +6 -0
  12. package/dist/coreApplication/EchoContent.d.ts +1 -0
  13. package/dist/coreApplication/index.d.ts +1 -0
  14. package/dist/hooks/hookLibrary.d.ts +8 -2
  15. package/dist/hooks/index.d.ts +1 -0
  16. package/dist/hooks/useScreenOrientation.d.ts +1 -0
  17. package/dist/hooks/useSemi.d.ts +7 -11
  18. package/dist/hooks/useTagDetails.d.ts +3 -10
  19. package/dist/index.d.ts +7 -12
  20. package/dist/services/api/api-manager.d.ts +1 -1
  21. package/dist/services/api/index.d.ts +0 -1
  22. package/dist/src/components/containers/layout.module.css.js +3 -1
  23. package/dist/src/components/containers/layouts.js +5 -7
  24. package/dist/src/components/contextualAppLinks/externalAppsMenu.js +4 -4
  25. package/dist/src/components/contextualAppLinks/externalLinkButtons/allExternalLinks.js +11 -66
  26. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToMcApp.js +5 -60
  27. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToProCoSys.js +11 -43
  28. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToSafeX.js +1 -1
  29. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToSap.js +11 -58
  30. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToSemiDoc.js +5 -16
  31. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToStid.js +1 -1
  32. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToTr2000.js +16 -67
  33. package/dist/src/components/externalLinkButton/externalLinkButton.js +34 -89
  34. package/dist/src/components/externalLinkButton/externalLinkButton.module.css.js +2 -5
  35. package/dist/src/components/footer/footer.module.css.js +1 -1
  36. package/dist/src/components/panel/corePanelLeft.js +5 -2
  37. package/dist/src/components/panel/corePanelLeft.module.css.js +1 -1
  38. package/dist/src/components/panel/corePanelRight.js +5 -2
  39. package/dist/src/components/panel/corePanelRight.module.css.js +1 -1
  40. package/dist/src/components/realTimeData/components/connectorForIMSTag/IMSConnector.module.css.js +2 -3
  41. package/dist/src/components/realTimeData/components/connectorForIMSTag/RealTimeConnectorForIMSTag.js +7 -32
  42. package/dist/src/components/realTimeData/hooks/useSignalR.js +2 -4
  43. package/dist/src/coreApplication/EchoBarComponent.js +190 -0
  44. package/dist/src/coreApplication/EchoContent.js +36 -2
  45. package/dist/src/coreApplication/EchoContent.module.css.js +21 -0
  46. package/dist/src/globalStyles.css.js +1 -1
  47. package/dist/src/hooks/hookLibrary.js +9 -0
  48. package/dist/src/hooks/index.js +3 -0
  49. package/dist/src/hooks/useScreenOrientation.js +50 -0
  50. package/dist/src/hooks/useSemi.js +14 -40
  51. package/dist/src/hooks/useTagDetails.js +45 -116
  52. package/dist/src/icons/common/Evision.svg.js +2 -3
  53. package/dist/src/icons/common/Fusion.svg.js +25 -30
  54. package/dist/src/icons/common/McApp.svg.js +6 -10
  55. package/dist/src/icons/common/ProCoSysIcon.svg.js +2 -3
  56. package/dist/src/icons/common/SapLogo.svg.js +4 -5
  57. package/dist/src/icons/common/SemiIcon.svg.js +11 -11
  58. package/dist/src/icons/common/Stid.svg.js +2 -3
  59. package/dist/src/icons/common/TR2000.svg.js +6 -8
  60. package/dist/src/icons/common/Yammer.svg.js +1 -2
  61. package/dist/src/index.js +13 -15
  62. package/dist/src/services/api/api-manager.js +2 -2
  63. package/dist/src/services/api/api-realtimedata.js +1 -3
  64. package/dist/src/types/pingableSources.js +0 -1
  65. package/dist/src/utils/plantInfo.js +0 -1
  66. package/dist/types/hookLibrary.d.ts +4 -0
  67. package/dist/types/pingableSources.d.ts +1 -2
  68. package/dist/utils/index.d.ts +0 -1
  69. package/dist/utils/plantInfo.d.ts +0 -6
  70. package/package.json +2 -2
  71. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkButtons.helpers.d.ts +0 -47
  72. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkButtons.helpers.test.d.ts +0 -1
  73. package/dist/components/contextualAppLinks/externalLinkButtons/externalLinkToCommApp.d.ts +0 -14
  74. package/dist/components/contextualAppLinks/externalLinkButtons/iconButtonSpinner.d.ts +0 -18
  75. package/dist/services/api/api-tag-details.d.ts +0 -18
  76. package/dist/services/api/api-tag-details.test.d.ts +0 -1
  77. package/dist/services/api/api-tags.d.ts +0 -17
  78. package/dist/services/api/api-tags.test.d.ts +0 -1
  79. package/dist/services/echopediaAnalyticsModule/echopediaAnalyticsModule.d.ts +0 -1
  80. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkButtons.helpers.js +0 -169
  81. package/dist/src/components/contextualAppLinks/externalLinkButtons/externalLinkToCommApp.js +0 -93
  82. package/dist/src/components/contextualAppLinks/externalLinkButtons/iconButtonSpinner.js +0 -44
  83. package/dist/src/components/contextualAppLinks/externalLinkButtons/iconButtonSpinner.module.css.js +0 -15
  84. package/dist/src/icons/common/CommissionApp-icon.png.js +0 -7
  85. package/dist/src/icons/common/Notification.svg.js +0 -82
  86. package/dist/src/icons/common/WorkOrder.svg.js +0 -72
  87. package/dist/src/icons/common/satos-logo.png.js +0 -7
  88. package/dist/src/services/api/api-tag-details.js +0 -66
  89. package/dist/src/services/api/api-tags.js +0 -29
  90. package/dist/src/services/echopediaAnalyticsModule/echopediaAnalyticsModule.js +0 -10
  91. package/dist/src/utils/navigationUtils.js +0 -28
  92. package/dist/types/api-proCoSysTagResponse.d.ts +0 -8
  93. package/dist/utils/navigationUtils.d.ts +0 -7
  94. package/dist/utils/navigationUtils.test.d.ts +0 -1
  95. package/dist/utils/plantInfo.test.d.ts +0 -1
@@ -6,15 +6,13 @@ Object.defineProperty(exports, '__esModule', {
6
6
  value: true
7
7
  });
8
8
 
9
- var _tslib = require('../../../../_virtual/_tslib.js');
10
-
11
9
  var EchoCore = require('@equinor/echo-core');
12
10
 
13
11
  var React = require('react');
14
12
 
15
- var externalLinkButton = require('../../externalLinkButton/externalLinkButton.js');
13
+ var useTagDetails = require('../../../hooks/useTagDetails.js');
16
14
 
17
- var externalLinkButtons_helpers = require('./externalLinkButtons.helpers.js');
15
+ var externalLinkButton = require('../../externalLinkButton/externalLinkButton.js');
18
16
 
19
17
  function _interopDefaultLegacy(e) {
20
18
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
@@ -25,9 +23,10 @@ function _interopDefaultLegacy(e) {
25
23
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
24
  /**
27
25
  * External link button to ProCoSys.
26
+ * Will only render if the passed tagNo has any tag details in the actually selected plant.
28
27
  *
29
28
  * @param {string} tagNo The tag's number to open in ProCoSys.
30
- * @param {TagDetailsDto} tagDetails The given tags detailed information.
29
+ * @param {string} instCode Plant installation code.
31
30
  * @returns {React.FC<ExternalLinkToProCoSysProps>} React component.
32
31
  */
33
32
 
@@ -35,48 +34,17 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
35
34
  var ExternalLinkToProCoSys = function ExternalLinkToProCoSys(_ref) {
36
35
  var tagNo = _ref.tagNo,
37
36
  instCode = _ref.instCode;
37
+ var tagDetails = useTagDetails.useTagDetails({
38
+ tagNo: tagNo,
39
+ instCode: instCode
40
+ });
38
41
  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, 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.getTagDetailsWithErrorHandling({
50
- tagNo: params.tagNo,
51
- instCode: params.instCode
52
- });
53
-
54
- case 2:
55
- _yield$externalLinkBu = _context.sent;
56
- tagDetails = _yield$externalLinkBu.tagDetails;
57
- hasError = _yield$externalLinkBu.hasError;
58
- return _context.abrupt("return", hasError ? undefined : "https://procosys.equinor.com/".concat(proCoSysPlantCode, "/Link/TAG?TagNo=").concat(tagNo, "&project=").concat(tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.projectCode));
59
-
60
- case 6:
61
- case "end":
62
- return _context.stop();
63
- }
64
- }
65
- }, _callee);
66
- }));
67
- }
68
-
69
- return /*#__PURE__*/React__default["default"].createElement(externalLinkButton.ExternalLinkButton, {
42
+ return tagDetails ? /*#__PURE__*/React__default["default"].createElement(externalLinkButton["default"], {
70
43
  buttonName: "ProCoSys",
71
44
  buttonIcon: "ProCoSys",
72
- getUrlToOpen: function getUrlToOpen() {
73
- return createUrl({
74
- tagNo: tagNo,
75
- instCode: instCode
76
- });
77
- },
45
+ linkTo: "https://procosys.equinor.com/".concat(proCoSysPlantCode, "/Link/TAG?TagNo=").concat(tagNo, "&project=").concat(tagDetails.projectCode),
78
46
  buttonStyle: externalLinkButton.ExternalLinkButtonStyle.Rounded
79
- });
47
+ }) : null;
80
48
  };
81
49
 
82
50
  exports.ExternalLinkToProCoSys = ExternalLinkToProCoSys;
@@ -27,7 +27,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
27
 
28
28
  var ExternalLinkToSafeX = function ExternalLinkToSafeX(_ref) {
29
29
  var tag = _ref.tag;
30
- return /*#__PURE__*/React__default["default"].createElement(externalLinkButton.ExternalLinkButton, {
30
+ return /*#__PURE__*/React__default["default"].createElement(externalLinkButton["default"], {
31
31
  buttonName: "SafeX",
32
32
  buttonIcon: "SafeX",
33
33
  linkTo: "https://safex.equinor.com/search?keyword=".concat(tag.description),
@@ -6,18 +6,16 @@ Object.defineProperty(exports, '__esModule', {
6
6
  value: true
7
7
  });
8
8
 
9
- var _tslib = require('../../../../_virtual/_tslib.js');
10
-
11
9
  var EchoUtils = require('@equinor/echo-utils');
12
10
 
13
11
  var React = require('react');
14
12
 
13
+ var useTagDetails = require('../../../hooks/useTagDetails.js');
14
+
15
15
  var pingableSources = require('../../../types/pingableSources.js');
16
16
 
17
17
  var externalLinkButton = require('../../externalLinkButton/externalLinkButton.js');
18
18
 
19
- var externalLinkButtons_helpers = require('./externalLinkButtons.helpers.js');
20
-
21
19
  function _interopDefaultLegacy(e) {
22
20
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
23
21
  'default': e
@@ -30,79 +28,34 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
28
  /**
31
29
  * External link button to SAP.
32
30
  * Will only render if the passed tagNo has any tag details in the actually selected plant and SAP is available.
33
- * It pings SAP to determine whether is available or not.
34
31
  *
35
32
  * @param {string} tagNo The tag's number to open in SAP.
36
33
  * @param {string} instCode Plant installation code.
37
- * @param {(isLoading: boolean) => void} loadingStatusCallback Callback which provides an 'isLoading' param reflecting the actual loading state of the ping to SAP.
38
34
  * @returns {React.FC<ExternalLinkToSapProps>} React component.
39
35
  */
40
36
 
41
37
 
42
38
  var ExternalLinkToSap = function ExternalLinkToSap(_ref) {
43
39
  var tagNo = _ref.tagNo,
44
- instCode = _ref.instCode,
45
- loadingStatusCallback = _ref.loadingStatusCallback;
40
+ instCode = _ref.instCode;
46
41
  var _EchoUtils__default$d = EchoUtils__default["default"].Hooks,
47
42
  usePing = _EchoUtils__default$d.usePing,
48
43
  useIsIosDevice = _EchoUtils__default$d.useIsIosDevice;
44
+ var tagDetails = useTagDetails.useTagDetails({
45
+ tagNo: tagNo,
46
+ instCode: instCode
47
+ });
49
48
 
50
49
  var _usePing = usePing(pingableSources.PingableSources.Sap),
51
- isSourceAvailable = _usePing.isSourceAvailable,
52
- isPingLoading = _usePing.isPingLoading;
50
+ isSourceAvailable = _usePing.isSourceAvailable;
53
51
 
54
52
  var isIosDevice = useIsIosDevice();
55
-
56
- function createUrl(params) {
57
- return _tslib.__awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
58
- var _yield$externalLinkBu, tagDetails, hasError;
59
-
60
- return regeneratorRuntime.wrap(function _callee$(_context) {
61
- while (1) {
62
- switch (_context.prev = _context.next) {
63
- case 0:
64
- _context.next = 2;
65
- return externalLinkButtons_helpers.getTagDetailsWithErrorHandling({
66
- tagNo: params.tagNo,
67
- instCode: params.instCode
68
- });
69
-
70
- case 2:
71
- _yield$externalLinkBu = _context.sent;
72
- tagDetails = _yield$externalLinkBu.tagDetails;
73
- hasError = _yield$externalLinkBu.hasError;
74
- return _context.abrupt("return", hasError ? undefined : "https://p03web.statoil.no/sap/bc/gui/sap/its/webgui?sap-client=505&sap-language=EN&~transaction=*ih06%20STRNO-LOW=".concat(tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.plantNo, "-").concat(tagNo, "#"));
75
-
76
- case 6:
77
- case "end":
78
- return _context.stop();
79
- }
80
- }
81
- }, _callee);
82
- }));
83
- }
84
-
85
- React.useEffect(function () {
86
- if (!!loadingStatusCallback) {
87
- loadingStatusCallback(isPingLoading);
88
- }
89
- }, [isPingLoading, loadingStatusCallback]);
90
-
91
- if (!isIosDevice && !isSourceAvailable) {
92
- return null;
93
- }
94
-
95
- return /*#__PURE__*/React__default["default"].createElement(externalLinkButton.ExternalLinkButton, {
53
+ return tagDetails && (isSourceAvailable || isIosDevice) ? /*#__PURE__*/React__default["default"].createElement(externalLinkButton["default"], {
96
54
  buttonName: "Sap",
97
55
  buttonIcon: "Sap",
98
- getUrlToOpen: function getUrlToOpen() {
99
- return createUrl({
100
- tagNo: tagNo,
101
- instCode: instCode
102
- });
103
- },
56
+ linkTo: "https://p03web.statoil.no/sap/bc/gui/sap/its/webgui?sap-client=505&sap-language=EN&~transaction=*ih06%20STRNO-LOW=".concat(tagDetails.plantNo, "-").concat(tagNo, "#"),
104
57
  buttonStyle: externalLinkButton.ExternalLinkButtonStyle.Rounded
105
- });
58
+ }) : null;
106
59
  };
107
60
 
108
61
  exports.ExternalLinkToSap = ExternalLinkToSap;
@@ -24,31 +24,20 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
24
24
  * Will only render if Semi is available for the passed tagNo.
25
25
  *
26
26
  * @param {string} tagNo The tag's number to open in Semi.
27
- * @param {string} instCode Plant installation code.
28
- * @param {(isLoading: boolean) => void} loadingStatusCallback Callback which provides an 'isLoading' param reflecting the actual API call state for checking Semi availability.
29
27
  * @returns {React.FC<ExternalLinkToSemiDocProps>} React component.
30
28
  */
31
29
 
32
30
 
33
31
  var ExternalLinkToSemiDoc = function ExternalLinkToSemiDoc(_ref) {
34
- var tagNo = _ref.tagNo,
35
- instCode = _ref.instCode,
36
- loadingStatusCallback = _ref.loadingStatusCallback;
32
+ var tagNo = _ref.tagNo;
37
33
 
38
34
  var _useSemi$useSemi = useSemi.useSemi({
39
- tagNo: tagNo,
40
- instCode: instCode
35
+ tagNo: tagNo
41
36
  }),
42
37
  isSemiDocumentAvailable = _useSemi$useSemi.isSemiDocumentAvailable,
43
- semiDocumentId = _useSemi$useSemi.semiDocumentId,
44
- isSemiLoading = _useSemi$useSemi.isSemiLoading;
45
-
46
- React.useEffect(function () {
47
- if (!!loadingStatusCallback) {
48
- loadingStatusCallback(isSemiLoading);
49
- }
50
- }, [isSemiLoading, loadingStatusCallback]);
51
- return isSemiDocumentAvailable && !isSemiLoading ? /*#__PURE__*/React__default["default"].createElement(externalLinkButton.ExternalLinkButton, {
38
+ semiDocumentId = _useSemi$useSemi.semiDocumentId;
39
+
40
+ return isSemiDocumentAvailable ? /*#__PURE__*/React__default["default"].createElement(externalLinkButton["default"], {
52
41
  buttonName: "Semi",
53
42
  buttonIcon: "Semi",
54
43
  linkTo: "https://semi.equinor.com/uploaddocumentation?semiId=".concat(semiDocumentId),
@@ -29,7 +29,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
29
29
  var ExternalLinkToStid = function ExternalLinkToStid(_ref) {
30
30
  var tagNo = _ref.tagNo,
31
31
  instCode = _ref.instCode;
32
- return /*#__PURE__*/React__default["default"].createElement(externalLinkButton.ExternalLinkButton, {
32
+ return /*#__PURE__*/React__default["default"].createElement(externalLinkButton["default"], {
33
33
  buttonName: "STID",
34
34
  buttonIcon: "Stid",
35
35
  linkTo: "https://stid.equinor.com/".concat(instCode, "/tag/").concat(tagNo),
@@ -1,17 +1,5 @@
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
-
15
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); }
16
4
 
17
5
  Object.defineProperty(exports, '__esModule', {
@@ -20,12 +8,8 @@ Object.defineProperty(exports, '__esModule', {
20
8
 
21
9
  var EchoCore = require('@equinor/echo-core');
22
10
 
23
- var EchoUtils = require('@equinor/echo-utils');
24
-
25
11
  var React = require('react');
26
12
 
27
- require('react-router-dom');
28
-
29
13
  var useTagDetails = require('../../../hooks/useTagDetails.js');
30
14
 
31
15
  var externalLinkButton = require('../../externalLinkButton/externalLinkButton.js');
@@ -36,8 +20,6 @@ function _interopDefaultLegacy(e) {
36
20
  };
37
21
  }
38
22
 
39
- var EchoUtils__default = /*#__PURE__*/_interopDefaultLegacy(EchoUtils);
40
-
41
23
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
42
24
  /**
43
25
  * External link button to TR2000.
@@ -45,68 +27,35 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
45
27
  *
46
28
  * @param {string} tagNo The tag's number to open in TR2000.
47
29
  * @param {string} instCode Plant installation code.
48
- * @param {(isLoading: boolean) => void} loadingStatusCallback Callback which provides an 'isLoading' param reflecting the actual API call state for checking TR2000 availability.
49
30
  * @returns {React.FC<ExternalLinkToTr2000Props>} React component.
50
31
  */
51
32
 
52
33
 
53
34
  var ExternalLinkToTr2000 = function ExternalLinkToTr2000(_ref) {
54
35
  var tagNo = _ref.tagNo,
55
- instCode = _ref.instCode,
56
- loadingStatusCallback = _ref.loadingStatusCallback;
57
- var useStateSafe = EchoUtils__default["default"].Hooks.useStateSafe;
58
- var selectedPlant = EchoCore.EchoSettings.plant.getSelectedPlant();
59
-
60
- var _useStateSafe = useStateSafe(''),
61
- _useStateSafe2 = _slicedToArray(_useStateSafe, 2),
62
- url = _useStateSafe2[0],
63
- setUrl = _useStateSafe2[1];
64
-
65
- var _useStateSafe3 = useStateSafe(false),
66
- _useStateSafe4 = _slicedToArray(_useStateSafe3, 2),
67
- hasTr2000 = _useStateSafe4[0],
68
- setHasTr2000 = _useStateSafe4[1];
69
-
70
- var _useTagDetails$useTag = useTagDetails.useTagDetails({
36
+ instCode = _ref.instCode;
37
+ var tagDetails = useTagDetails.useTagDetails({
71
38
  tagNo: tagNo,
72
39
  instCode: instCode
73
- }),
74
- tagDetails = _useTagDetails$useTag.tagDetails,
75
- hasError = _useTagDetails$useTag.hasError,
76
- isTagDetailsLoading = _useTagDetails$useTag.isTagDetailsLoading;
77
-
78
- React.useEffect(function () {
79
- function evaluateTr2000Status(tagDetails) {
80
- var valveOk = (tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.tagCategory) === 9 && !!tagDetails.valveDatash;
81
- var pipeOk = (tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.tagCategory) === 6 && !!tagDetails.pipingClass && !!tagDetails.nomDiam;
82
- return (valveOk || pipeOk) && !!(selectedPlant === null || selectedPlant === void 0 ? void 0 : selectedPlant.hasTr2000);
83
- }
84
-
85
- if (!!loadingStatusCallback) {
86
- loadingStatusCallback(isTagDetailsLoading);
87
- }
88
-
89
- if (hasError) {
90
- setHasTr2000(false);
91
- return;
92
- }
40
+ });
41
+ var selectedPlant = EchoCore.EchoSettings.plant.getSelectedPlant();
93
42
 
94
- setHasTr2000(evaluateTr2000Status(tagDetails));
43
+ var hasTr2000 = function hasTr2000() {
44
+ var valveOk = (tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.tagCategory) === 9 && !!tagDetails.valveDatash;
45
+ var pipeOk = (tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.tagCategory) === 6 && !!tagDetails.pipingClass && !!tagDetails.nomDiam;
46
+ return (valveOk || pipeOk) && !!(selectedPlant === null || selectedPlant === void 0 ? void 0 : selectedPlant.hasTr2000);
47
+ };
95
48
 
96
- if (hasTr2000) {
97
- var ds = (tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.tagCategory) === 6 ? 'PCS' : 'VDS';
98
- var id = (tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.tagCategory) === 6 ? tagDetails.pipingClass : tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.valveDatash;
99
- setUrl("https://tr2000.equinor.com/TR2000/integration/get_datasheet.jsp?SYS=STID&DS=".concat(ds, "&ID=").concat(id, "&PLANT=").concat(instCode));
100
- }
49
+ var createTr2000Link = function createTr2000Link() {
50
+ var ds = (tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.tagCategory) === 6 ? 'PCS' : 'VDS';
51
+ var id = (tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.tagCategory) === 6 ? tagDetails.pipingClass : tagDetails === null || tagDetails === void 0 ? void 0 : tagDetails.valveDatash;
52
+ return "https://tr2000.equinor.com/TR2000/integration/get_datasheet.jsp?SYS=STID&DS=".concat(ds, "&ID=").concat(id, "&PLANT=").concat(instCode);
53
+ };
101
54
 
102
- if (!!loadingStatusCallback) {
103
- loadingStatusCallback(isTagDetailsLoading);
104
- }
105
- }, [tagNo, instCode, loadingStatusCallback, setUrl, setHasTr2000, isTagDetailsLoading, tagDetails, hasError, hasTr2000, selectedPlant]);
106
- return hasTr2000 && !hasError ? /*#__PURE__*/React__default["default"].createElement(externalLinkButton.ExternalLinkButton, {
55
+ return tagDetails && hasTr2000() ? /*#__PURE__*/React__default["default"].createElement(externalLinkButton["default"], {
107
56
  buttonName: "TR2000",
108
57
  buttonIcon: "TR2000",
109
- linkTo: url,
58
+ linkTo: createTr2000Link(),
110
59
  buttonStyle: externalLinkButton.ExternalLinkButtonStyle.Rounded
111
60
  }) : null;
112
61
  };
@@ -1,17 +1,5 @@
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
-
15
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); }
16
4
 
17
5
  Object.defineProperty(exports, '__esModule', {
@@ -22,28 +10,22 @@ var _tslib = require('../../../_virtual/_tslib.js');
22
10
 
23
11
  var echoComponents = require('@equinor/echo-components');
24
12
 
25
- var EchoUtils = require('@equinor/echo-utils');
13
+ var EchoCore = require('@equinor/echo-core');
26
14
 
27
15
  var edsCoreReact = require('@equinor/eds-core-react');
28
16
 
29
17
  var React = require('react');
30
18
 
31
- var CommissionAppIcon = require('../../icons/common/CommissionApp-icon.png.js');
32
-
33
19
  var Evision = require('../../icons/common/Evision.svg.js');
34
20
 
35
21
  var Fusion = require('../../icons/common/Fusion.svg.js');
36
22
 
37
23
  var McApp = require('../../icons/common/McApp.svg.js');
38
24
 
39
- var Notification = require('../../icons/common/Notification.svg.js');
40
-
41
25
  var ProCoSysIcon = require('../../icons/common/ProCoSysIcon.svg.js');
42
26
 
43
27
  var SapLogo = require('../../icons/common/SapLogo.svg.js');
44
28
 
45
- var satosLogo = require('../../icons/common/satos-logo.png.js');
46
-
47
29
  var SemiIcon = require('../../icons/common/SemiIcon.svg.js');
48
30
 
49
31
  var Stid = require('../../icons/common/Stid.svg.js');
@@ -52,14 +34,8 @@ var SXLogo = require('../../icons/common/SX-logo.png.js');
52
34
 
53
35
  var TR2000 = require('../../icons/common/TR2000.svg.js');
54
36
 
55
- var WorkOrder = require('../../icons/common/WorkOrder.svg.js');
56
-
57
37
  var Yammer = require('../../icons/common/Yammer.svg.js');
58
38
 
59
- var navigationUtils = require('../../utils/navigationUtils.js');
60
-
61
- var iconButtonSpinner = require('../contextualAppLinks/externalLinkButtons/iconButtonSpinner.js');
62
-
63
39
  var externalLinkButton_module = require('./externalLinkButton.module.css.js');
64
40
 
65
41
  function _interopDefaultLegacy(e) {
@@ -68,15 +44,13 @@ function _interopDefaultLegacy(e) {
68
44
  };
69
45
  }
70
46
 
71
- var EchoUtils__default = /*#__PURE__*/_interopDefaultLegacy(EchoUtils);
72
-
73
47
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
74
48
 
49
+ var echopediaAnalyticsModule = EchoCore.analytics.createAnalyticsModule('ep');
75
50
  exports.ExternalLinkButtonStyle = void 0;
76
51
 
77
52
  (function (ExternalLinkButtonStyle) {
78
53
  ExternalLinkButtonStyle["Rounded"] = "Rounded";
79
- ExternalLinkButtonStyle["Large"] = "Large";
80
54
  })(exports.ExternalLinkButtonStyle || (exports.ExternalLinkButtonStyle = {}));
81
55
  /**
82
56
  *
@@ -87,8 +61,7 @@ exports.ExternalLinkButtonStyle = void 0;
87
61
  * @param {boolean} props.hideText Optional. If set to `true`, will hide `buttonName`.
88
62
  * @param {boolean} props.redirect Optional. If set to `true`, the app will not open in a new tab / window, but in the current one.
89
63
  * @param {ExternalLinkButtonStyle} props.buttonStyle Optional.
90
- * @param {(...args) => Promise<string | undefined>} props.getUrlToOpen Optional. Pass this custom async function to create a URL based on async data.
91
- * Return with 'undefined' to prevent any navigation. (Useful when the API call fails)
64
+ * @param {() => Promise<string>} props.getUrlToOpen Optional. Function () => Promise<string>. Custom async function to be called to handle the navigation.
92
65
  * @param {boolean} props.disabledColor Optional. If set to `true`, the button will show disabled color. (If not Rounded button style is used)
93
66
  * @param {boolean} props.disabledButton Optional.
94
67
  * @param {string} props.hoverText Optional. Applies only if Rounded button style is applied.
@@ -107,16 +80,7 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
107
80
  disabledColor = _ref.disabledColor,
108
81
  disabledButton = _ref.disabledButton,
109
82
  hoverText = _ref.hoverText;
110
-
111
- var _EchoUtils__default$d = EchoUtils__default["default"].Hooks.useStateSafe(false),
112
- _EchoUtils__default$d2 = _slicedToArray(_EchoUtils__default$d, 2),
113
- isLoading = _EchoUtils__default$d2[0],
114
- setIsLoading = _EchoUtils__default$d2[1];
115
-
116
83
  var icon = null;
117
- var isAsyncButton = !!getUrlToOpen;
118
- var isRoundedButtonStyle = buttonStyle === exports.ExternalLinkButtonStyle.Rounded;
119
- var imageBasedIconStyle = isRoundedButtonStyle ? externalLinkButton_module["default"].roundedButtonIconAsImage : externalLinkButton_module["default"].largeButtonIconAsImage;
120
84
 
121
85
  function goToLink(event) {
122
86
  return _tslib.__awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
@@ -128,29 +92,28 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
128
92
  event.persist();
129
93
  event.preventDefault();
130
94
 
131
- if (!isAsyncButton) {
132
- _context.next = 10;
95
+ if (!getUrlToOpen) {
96
+ _context.next = 8;
133
97
  break;
134
98
  }
135
99
 
136
- setIsLoading(true);
137
- _context.next = 6;
100
+ _context.next = 5;
138
101
  return getUrlToOpen();
139
102
 
140
- case 6:
141
- link = _context.sent;
142
- setIsLoading(false);
143
- _context.next = 11;
103
+ case 5:
104
+ _context.t0 = _context.sent;
105
+ _context.next = 9;
144
106
  break;
145
107
 
146
- case 10:
147
- link = linkTo;
108
+ case 8:
109
+ _context.t0 = linkTo;
148
110
 
149
- case 11:
150
- link && navigationUtils.goToExternalLink(link, redirect);
111
+ case 9:
112
+ link = _context.t0;
113
+ goToExternalLink(link, redirect);
151
114
  event.stopPropagation();
152
115
 
153
- case 13:
116
+ case 12:
154
117
  case "end":
155
118
  return _context.stop();
156
119
  }
@@ -159,6 +122,18 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
159
122
  }));
160
123
  }
161
124
 
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
+
162
137
  switch (buttonIcon) {
163
138
  case 'Fusion':
164
139
  icon = /*#__PURE__*/React__default["default"].createElement(Fusion.ReactComponent, null);
@@ -219,16 +194,10 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
219
194
  icon = /*#__PURE__*/React__default["default"].createElement(McApp.ReactComponent, null);
220
195
  break;
221
196
 
222
- case 'CommApp':
223
- icon = /*#__PURE__*/React__default["default"].createElement("img", {
224
- src: CommissionAppIcon["default"],
225
- className: imageBasedIconStyle,
226
- alt: "CommissionAppIcon"
227
- });
228
- break;
229
-
230
197
  case 'Sap':
231
- icon = /*#__PURE__*/React__default["default"].createElement(SapLogo.ReactComponent, null);
198
+ icon = /*#__PURE__*/React__default["default"].createElement(SapLogo.ReactComponent, {
199
+ viewBox: "0 0 92 45"
200
+ });
232
201
  break;
233
202
 
234
203
  case 'Semi':
@@ -238,16 +207,8 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
238
207
  case 'SafeX':
239
208
  icon = /*#__PURE__*/React__default["default"].createElement("img", {
240
209
  src: SXLogo["default"],
241
- className: imageBasedIconStyle,
242
- alt: "SafeXIcon"
243
- });
244
- break;
245
-
246
- case 'Satos':
247
- icon = /*#__PURE__*/React__default["default"].createElement("img", {
248
- src: satosLogo["default"],
249
- className: imageBasedIconStyle,
250
- alt: "SatosIcon"
210
+ className: externalLinkButton_module["default"].buttonIconAsImage,
211
+ alt: "SafeX"
251
212
  });
252
213
  break;
253
214
 
@@ -261,24 +222,9 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
261
222
  case 'Tr2000':
262
223
  icon = /*#__PURE__*/React__default["default"].createElement(TR2000.ReactComponent, null);
263
224
  break;
264
-
265
- case 'Notification':
266
- icon = /*#__PURE__*/React__default["default"].createElement(Notification.ReactComponent, null);
267
- break;
268
-
269
- case 'WorkOrder':
270
- icon = /*#__PURE__*/React__default["default"].createElement(WorkOrder.ReactComponent, null);
271
- break;
272
225
  }
273
226
 
274
- return isRoundedButtonStyle ? /*#__PURE__*/React__default["default"].createElement("div", {
275
- className: externalLinkButton_module["default"].roundedButtonWrapper
276
- }, isAsyncButton && isLoading && /*#__PURE__*/React__default["default"].createElement(iconButtonSpinner.IconButtonSpinner, {
277
- size: 24,
278
- customClassNames: {
279
- container: externalLinkButton_module["default"].asyncButtonSpinner
280
- }
281
- }), /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Tooltip, {
227
+ return buttonStyle === exports.ExternalLinkButtonStyle.Rounded ? /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Tooltip, {
282
228
  placement: "bottom",
283
229
  title: hoverText !== null && hoverText !== void 0 ? hoverText : buttonName
284
230
  }, /*#__PURE__*/React__default["default"].createElement(edsCoreReact.Button, {
@@ -288,7 +234,7 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
288
234
  goToLink(event);
289
235
  },
290
236
  disabled: disabledButton
291
- }, icon))) : /*#__PURE__*/React__default["default"].createElement("button", {
237
+ }, icon)) : /*#__PURE__*/React__default["default"].createElement("button", {
292
238
  className: "".concat(externalLinkButton_module["default"].echoButton, " ").concat(disabledColor ? externalLinkButton_module["default"].echoButtonDisabled : ''),
293
239
  onClick: function onClick(event) {
294
240
  goToLink(event);
@@ -298,5 +244,4 @@ var ExternalLinkButton = function ExternalLinkButton(_ref) {
298
244
  }, icon, !hideText && /*#__PURE__*/React__default["default"].createElement("span", null, buttonName));
299
245
  };
300
246
 
301
- exports.ExternalLinkButton = ExternalLinkButton;
302
247
  exports["default"] = ExternalLinkButton;
@@ -6,15 +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 = ".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}";
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}";
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
- "roundedButtonWrapper": "externalLinkButton-module_roundedButtonWrapper__x5h3U",
15
- "asyncButtonSpinner": "externalLinkButton-module_asyncButtonSpinner__-oNeC",
16
- "roundedButtonIconAsImage": "externalLinkButton-module_roundedButtonIconAsImage__ZBmFg",
17
- "largeButtonIconAsImage": "externalLinkButton-module_largeButtonIconAsImage__PF38e",
14
+ "buttonIconAsImage": "externalLinkButton-module_buttonIconAsImage__JL6p6",
18
15
  "toolTip": "externalLinkButton-module_toolTip__ywPoc",
19
16
  "toolTipContainer": "externalLinkButton-module_toolTipContainer__n1YIl",
20
17
  "stidIcon": "externalLinkButton-module_stidIcon__XoFaL"