@corva/ui 3.54.0-7 → 3.54.0-9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs-bundle/clients/api/apiCore.js +1 -1
- package/cjs-bundle/clients/api/apiCore.js.map +1 -1
- package/cjs-bundle/clients/api/constants.js +2 -0
- package/cjs-bundle/clients/api/constants.js.map +1 -0
- package/cjs-bundle/clients/api/rateLimiter.js +2 -0
- package/cjs-bundle/clients/api/rateLimiter.js.map +1 -0
- package/cjs-bundle/clients/index.js +1 -1
- package/cjs-bundle/clients/utils.js +1 -1
- package/cjs-bundle/clients/utils.js.map +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
- package/cjs-bundle/componentsV2/AppContainer/AppContainer.js +1 -1
- package/cjs-bundle/componentsV2/AppHeader/AppHeader.js +1 -1
- package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
- package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
- package/cjs-bundle/componentsV2/AppSettings/AppSettings.js +1 -1
- package/cjs-bundle/componentsV2/AppSettings/AppSettingsPinningContext.js +1 -1
- package/cjs-bundle/effects/subscriptions/useSubscriptions.v1.js +1 -1
- package/cjs-bundle/effects/subscriptions/useSubscriptions.v1.js.map +1 -1
- package/cjs-bundle/effects/subscriptions/useSubscriptions.v2.js +1 -1
- package/clients/api/apiCore.d.ts.map +1 -1
- package/clients/api/apiCore.js +1 -1
- package/clients/api/apiCore.js.map +1 -1
- package/clients/api/constants.d.ts +37 -0
- package/clients/api/constants.d.ts.map +1 -0
- package/clients/api/constants.js +2 -0
- package/clients/api/constants.js.map +1 -0
- package/clients/api/rateLimiter.d.ts +24 -0
- package/clients/api/rateLimiter.d.ts.map +1 -0
- package/clients/api/rateLimiter.js +2 -0
- package/clients/api/rateLimiter.js.map +1 -0
- package/clients/index.js +1 -1
- package/clients/index.js.map +1 -1
- package/clients/utils.d.ts +4 -2
- package/clients/utils.d.ts.map +1 -1
- package/clients/utils.js +1 -1
- package/clients/utils.js.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.d.ts.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.d.ts.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
- package/componentsV2/AppContainer/AppContainer.d.ts +2 -0
- package/componentsV2/AppContainer/AppContainer.d.ts.map +1 -1
- package/componentsV2/AppContainer/AppContainer.js +1 -1
- package/componentsV2/AppHeader/AppHeader.d.ts +1 -5
- package/componentsV2/AppHeader/AppHeader.d.ts.map +1 -1
- package/componentsV2/AppHeader/AppHeader.js +1 -1
- package/componentsV2/AppHeader/V3/Actions/Actions.d.ts +1 -2
- package/componentsV2/AppHeader/V3/Actions/Actions.d.ts.map +1 -1
- package/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
- package/componentsV2/AppHeader/V3/AppHeaderV3.d.ts +0 -1
- package/componentsV2/AppHeader/V3/AppHeaderV3.d.ts.map +1 -1
- package/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
- package/componentsV2/AppHeader/V3/AppHeaderV3.stories.d.ts +2 -1
- package/componentsV2/AppHeader/V3/AppHeaderV3.stories.d.ts.map +1 -1
- package/componentsV2/AppSettings/AppSettings.d.ts +0 -1
- package/componentsV2/AppSettings/AppSettings.d.ts.map +1 -1
- package/componentsV2/AppSettings/AppSettings.js +1 -1
- package/componentsV2/AppSettings/AppSettingsPinningContext.d.ts +3 -1
- package/componentsV2/AppSettings/AppSettingsPinningContext.d.ts.map +1 -1
- package/componentsV2/AppSettings/AppSettingsPinningContext.js +1 -1
- package/effects/subscriptions/useSubscriptions.v1.js +1 -1
- package/effects/subscriptions/useSubscriptions.v1.js.map +1 -1
- package/effects/subscriptions/useSubscriptions.v2.d.ts.map +1 -1
- package/effects/subscriptions/useSubscriptions.v2.js +1 -1
- package/effects/useSubscriptions.d.ts.map +1 -1
- package/mcp-server/server.mjs +13 -13
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),t=require("@babel/runtime/helpers/
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/slicedToArray"),t=require("@babel/runtime/helpers/objectWithoutProperties"),r=require("@babel/runtime/helpers/asyncToGenerator"),n=require("@babel/runtime/helpers/defineProperty"),a=require("@babel/runtime/helpers/classCallCheck"),i=require("@babel/runtime/helpers/createClass"),s=require("@babel/runtime/regenerator"),o=require("query-string"),u=require("../utils.js"),c=require("../constants.js"),l=require("./httpMessages.js"),p=require("./rateLimiter.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function f(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var h=d(e),v=d(t),y=d(r),g=d(n),b=d(a),m=d(i),x=d(s),P=f(o),j=["appKey"],w=["appKey"];function A(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function O(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?A(Object(r),!0).forEach((function(t){g.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):A(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var k={400:"Request Failed",403:"No Permission",404:"Not Found"},T=["POST","PUT","PATCH","DELETE"],K=function(){function e(t,r){b.default(this,e),this.status=t.status,this.statusText=t.statusText,this.message=r.message||"No Message",this.errorBody=r}return m.default(e,[{key:"isAuthenticationProblem",value:function(){return 401===this.status}},{key:"isTermsProblem",value:function(){return 401===this.status&&"Please accept the latest terms of service"===this.message}},{key:"isLoginProblem",value:function(){var e,t;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t?void 0:t.login)}},{key:"isLockedAccountProblem",value:function(){var e,t,r;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t||null===(r=t.login)||void 0===r?void 0:r.includes("Account has been locked"))}},{key:"isInvalidVerificationCode",value:function(){var e,t,r;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t||null===(r=t.login)||void 0===r?void 0:r.includes("Invalid verification code"))}},{key:"isMissingVerificationCode",value:function(){var e,t,r;return 401===this.status&&(null===(e=this.errorBody)||void 0===e||null===(t=e.errors)||void 0===t||null===(r=t.identity)||void 0===r?void 0:r.includes("Missing verification code"))}}]),e}(),q=c.CORVA_API_URLS.API,E=u.getAuthorizationHeaders(),I=O({"Content-Type":"application/json",Accept:"application/json"},E);function U(e){var t;null===(t=e.isAuthenticationProblem)||void 0===t||!t.call(e)||e.isTermsProblem()||e.isLoginProblem()||(console.error("Problem with user"),"/login"!==window.location.pathname&&(window.location.href="/login"))}var S=/^\/v1\/assets.*/;function D(){return D=y.default(x.default.mark((function e(t){var r,n,a,i,s,o,c=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=c.length>1&&void 0!==c[1]?c[1]:{},n=c.length>2&&void 0!==c[2]?c[2]:{},a=n.apiUrl,i=void 0===a?q:a,s=n.appKey,o=n.appInstanceId,!s||!o){e.next=6;break}return e.next=6,p.apiRequestsRateLimiter.acquire(s,o);case 6:return S.test(t)&&(r.cache="reload"),r.credentials="include",e.abrupt("return",fetch("".concat(i).concat(t),u.attachHTTPHeaders(O({config:r,appKey:s},E))));case 9:case"end":return e.stop()}}),e)}))),D.apply(this,arguments)}var C,L,H=(C=function(e){return D.apply(this,arguments)},L=y.default(x.default.mark((function e(t,r,n){var a,i,s,o,u,c,p;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,C(t,r,n);case 2:if(a=e.sent,i=a.status,!a.ok){e.next=6;break}return e.abrupt("return",204===i?null:a);case 6:return e.prev=6,e.next=9,a.json();case 9:s=e.sent,e.next=15;break;case 12:e.prev=12,e.t0=e.catch(6),s={};case 15:throw o=r.method,u=!n.hideNotification&&T.includes(o),c=l.DISPLAY_HTTP_MESSAGES[s.message]||k[i],u&&c&&console.error(c),U(p=new K(a,s)),p;case 22:case"end":return e.stop()}}),e,null,[[6,12]])}))),function(e,t,r){return L.apply(this,arguments)});function _(){return _=y.default(x.default.mark((function e(t,r){var n,a,i,s,o,c=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=c.length>2&&void 0!==c[2]?c[2]:{},a=n.apiUrl,i=n.withHeaders,s=void 0!==i&&i,e.next=4,H(t,{method:"POST",headers:I,body:JSON.stringify(r)},O({apiUrl:a},u.getAppKeyAndId()));case 4:if(o=e.sent,!s){e.next=7;break}return e.abrupt("return",o);case 7:return e.abrupt("return",o&&o.json());case 8:case"end":return e.stop()}}),e)}))),_.apply(this,arguments)}function M(e){return N.apply(this,arguments)}function N(){return N=y.default(x.default.mark((function e(t){var r,n,a,i,s,o,c,l,p,d=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=d.length>1&&void 0!==d[1]?d[1]:{},n=d.length>2&&void 0!==d[2]?d[2]:{},a=n.apiUrl,i=n.signal,s=P.stringify(r,{arrayFormat:"bracket"}),o=u.getAppKeyAndId()||{},c=o.appKey,l=v.default(o,j),e.next=7,H("".concat(t).concat(s?"?":"").concat(s),{method:"GET",signal:i},O({apiUrl:a,appKey:n.appKey||c},l));case 7:if(p=e.sent,e.t0=p,!e.t0){e.next=13;break}return e.next=12,p.json();case 12:e.t0=e.sent;case 13:return e.t1=e.t0,e.t2=p&&p.headers,e.abrupt("return",{data:e.t1,headers:e.t2});case 16:case"end":return e.stop()}}),e)}))),N.apply(this,arguments)}function B(){return B=y.default(x.default.mark((function e(t){var r,n,a,i,s,o,c=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=c.length>1&&void 0!==c[1]?c[1]:{},n=c.length>2&&void 0!==c[2]?c[2]:{},a=u.getAppKeyAndId()||{},i=a.appKey,s=v.default(a,w),e.next=5,M(t,r,O(O({},n),{},{appKey:n.appKey||i},s));case 5:return o=e.sent,e.abrupt("return",o.data);case 7:case"end":return e.stop()}}),e)}))),B.apply(this,arguments)}function F(){return F=y.default(x.default.mark((function e(t,r){var n,a,i,s,o,c,l=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=l.length>2&&void 0!==l[2]?l[2]:{},a=l.length>3&&void 0!==l[3]?l[3]:{},i=a.apiUrl,s=a.signal,o=P.stringify(n),e.next=6,H("".concat(t).concat(o?"?":"").concat(o),{method:"PUT",headers:I,body:JSON.stringify(r)},O(O({apiUrl:i},u.getAppKeyAndId()),{},{signal:s}));case 6:return c=e.sent,e.abrupt("return",c&&c.json());case 8:case"end":return e.stop()}}),e)}))),F.apply(this,arguments)}function R(){return R=y.default(x.default.mark((function e(t,r){var n,a,i,s,o,c,l=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=l.length>2&&void 0!==l[2]?l[2]:{},a=l.length>3&&void 0!==l[3]?l[3]:{},i=a.apiUrl,s=a.signal,o=P.stringify(n),e.next=6,H("".concat(t).concat(o?"?":"").concat(o),{method:"PATCH",headers:I,body:JSON.stringify(r)},O(O({apiUrl:i},u.getAppKeyAndId()),{},{signal:s}));case 6:return c=e.sent,e.abrupt("return",c&&c.json());case 8:case"end":return e.stop()}}),e)}))),R.apply(this,arguments)}function G(){return G=y.default(x.default.mark((function e(t){var r,n,a,i,s,o,c=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=c.length>1&&void 0!==c[1]?c[1]:{},n=c.length>2&&void 0!==c[2]?c[2]:{},a=n.apiUrl,i=n.signal,s=P.stringify(r),e.next=6,H(s?"".concat(t,"?").concat(s):t,{method:"DELETE",headers:I},O(O({apiUrl:a},u.getAppKeyAndId()),{},{signal:i}));case 6:return o=e.sent,e.abrupt("return",o&&o.json());case 8:case"end":return e.stop()}}),e)}))),G.apply(this,arguments)}function J(){return J=y.default(x.default.mark((function e(t,r){var n,a,i,s,o,c,l,p,d=arguments;return x.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=d.length>2&&void 0!==d[2]?d[2]:{},a=d.length>3&&void 0!==d[3]?d[3]:{},i=P.stringify(n),s=a.method,o=void 0===s?"POST":s,c=a.signal,l=new FormData,Object.entries(r).forEach((function(e){var t=h.default(e,2),r=t[0],n=t[1];Array.isArray(n)?n.forEach((function(e){l.append(r,e)})):l.append(r,n)})),e.next=8,H(i?"".concat(t,"?").concat(i):t,{method:o,headers:{Accept:"application/json"},body:l},O(O({},u.getAppKeyAndId()),{},{signal:c}));case 8:return p=e.sent,e.abrupt("return",p&&p.json());case 10:case"end":return e.stop()}}),e)}))),J.apply(this,arguments)}exports.APIException=K,exports.baseUrl=q,exports.del=function(e){return G.apply(this,arguments)},exports.get=function(e){return B.apply(this,arguments)},exports.getWithHeaders=M,exports.handleAuthenticationProblem=U,exports.patch=function(e,t){return R.apply(this,arguments)},exports.post=function(e,t){return _.apply(this,arguments)},exports.put=function(e,t){return F.apply(this,arguments)},exports.sendFormData=function(e,t){return J.apply(this,arguments)};
|
|
2
2
|
//# sourceMappingURL=apiCore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiCore.js","sources":["../../../../src/clients/api/apiCore.js"],"sourcesContent":["import * as queryString from 'query-string';\n\nimport {\n getAppKeyFromStackTrace,\n attachHTTPHeaders,\n getAuthorizationHeaders,\n getAppKeyFromXProps,\n} from '../utils';\nimport { CORVA_API_URLS } from '../constants';\n\nimport { DISPLAY_HTTP_MESSAGES } from './httpMessages';\n\nconst HTTP_ERROR_MESSAGES = {\n 400: 'Request Failed',\n 403: 'No Permission',\n 404: 'Not Found',\n};\n\nconst TOS_ERROR_MESSAGE = 'Please accept the latest terms of service';\nconst LOCKED_ERROR_MESSAGE = 'Account has been locked';\nconst INVALID_VERIFICATION_CODE_MESSAGE = 'Invalid verification code';\nconst MISSING_VERIFICATION_CODE_MESSAGE = 'Missing verification code';\n\nconst HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS = [\n // NOTE: Do not show error notifications for GET method. Because users may request a deleted item\n 'POST',\n 'PUT',\n 'PATCH',\n 'DELETE',\n];\n\nexport class APIException {\n constructor(response, json) {\n this.status = response.status;\n this.statusText = response.statusText;\n this.message = json.message || 'No Message';\n this.errorBody = json;\n }\n\n isAuthenticationProblem() {\n return this.status === 401;\n }\n\n isTermsProblem() {\n // FIXME: this.message === TOS_ERROR_MESSAGE is a hack. Back-end team should come\n // with another solution.\n return this.status === 401 && this.message === TOS_ERROR_MESSAGE;\n }\n\n isLoginProblem() {\n return this.status === 401 && this.errorBody?.errors?.login;\n }\n\n isLockedAccountProblem() {\n return this.status === 401 && this.errorBody?.errors?.login?.includes(LOCKED_ERROR_MESSAGE);\n }\n\n isInvalidVerificationCode() {\n return (\n this.status === 401 &&\n this.errorBody?.errors?.login?.includes(INVALID_VERIFICATION_CODE_MESSAGE)\n );\n }\n\n isMissingVerificationCode() {\n return (\n this.status === 401 &&\n this.errorBody?.errors?.identity?.includes(MISSING_VERIFICATION_CODE_MESSAGE)\n );\n }\n}\n\nexport const baseUrl = CORVA_API_URLS.API;\n\nconst AUTH_HEADERS = getAuthorizationHeaders();\nconst JSON_HEADERS = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...AUTH_HEADERS,\n};\n\nexport function handleAuthenticationProblem(e) {\n if (e.isAuthenticationProblem?.() && !e.isTermsProblem() && !e.isLoginProblem()) {\n console.error('Problem with user');\n // NOTE: Redirect to login page\n if (window.location.pathname !== '/login') window.location.href = '/login';\n }\n}\n\nfunction errorHandlerDecorator(requestCoreFunc) {\n return async function errorHandler(path, config, overrides) {\n const response = await requestCoreFunc(path, config, overrides);\n\n const { status } = response;\n\n if (response.ok) {\n return status === 204 // NOTE: No content\n ? null\n : response;\n }\n\n // NOTE: Handle Error response logic\n let json;\n try {\n json = await response.json();\n } catch (e) {\n json = {};\n }\n const requestMethod = config.method;\n const isMethodToShowNotification =\n !overrides.hideNotification &&\n HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS.includes(requestMethod);\n\n const httpErrorMessage = DISPLAY_HTTP_MESSAGES[json.message] || HTTP_ERROR_MESSAGES[status];\n\n if (isMethodToShowNotification && httpErrorMessage) {\n console.error(httpErrorMessage);\n }\n\n const exception = new APIException(response, json);\n handleAuthenticationProblem(exception);\n\n throw exception;\n };\n}\n\nconst V1_ASSETS_REGEXP = /^\\/v1\\/assets.*/;\n\nasync function requestCore(path, config = {}, overrides = {}) {\n const { apiUrl = baseUrl, appKey } = overrides;\n // temporary enable cache for the heaviest request\n if (V1_ASSETS_REGEXP.test(path)) {\n config.cache = 'reload'; // eslint-disable-line no-param-reassign\n }\n\n config.credentials = 'include'; // eslint-disable-line no-param-reassign\n\n return fetch(`${apiUrl}${path}`, attachHTTPHeaders({ config, appKey, ...AUTH_HEADERS }));\n}\n\nconst request = errorHandlerDecorator(requestCore);\n\n/**\n * The post method is most-often utilized to **create** new resources.\n * @async\n * @param {string} path - path to resource.\n * @param {Object=} entity - API entity to create\n * @returns {Promise<*>}\n */\nexport async function post(path, entity, requestOptions = {}) {\n const { apiUrl, withHeaders = false } = requestOptions;\n const response = await request(\n path,\n {\n method: 'POST',\n headers: JSON_HEADERS,\n body: JSON.stringify(entity),\n },\n { apiUrl, appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace() }\n );\n\n if (withHeaders) return response;\n\n return response && response.json();\n}\n\nexport async function getWithHeaders(path, queryParams = {}, requestOptions = {}) {\n const { apiUrl, appKey, signal } = requestOptions;\n const qry = queryString.stringify(queryParams, { arrayFormat: 'bracket' });\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'GET',\n signal,\n },\n { apiUrl, appKey: appKey || getAppKeyFromXProps() || getAppKeyFromStackTrace() }\n );\n\n return {\n data: response && (await response.json()),\n headers: response && response.headers,\n };\n}\n\n/**\n * The get method is used to **read** (or retrieve) a representation of a resource\n * @async\n * @param {string} path - path to resource.\n * @param {Object=} queryParams - Object with query params such as per_page, sort, asset_id, etc.\n * @param {Object=} requestOptions - Additional options for request. For example: apiUrl, signal etc.\n * @returns {Promise<*>}\n */\nexport async function get(path, queryParams = {}, requestOptions = {}) {\n const dataAndHeaders = await getWithHeaders(path, queryParams, {\n ...requestOptions,\n appKey: requestOptions.appKey || getAppKeyFromXProps() || getAppKeyFromStackTrace(),\n });\n return dataAndHeaders.data;\n}\n\nexport async function getFile(path, queryParams = {}, requestOptions = {}) {\n const qry = queryString.stringify(queryParams);\n const { signal } = requestOptions;\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n { method: 'GET' },\n { appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(), signal }\n );\n\n return response && response.blob();\n}\n\nexport async function put(path, content, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams);\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'PUT',\n headers: JSON_HEADERS,\n body: JSON.stringify(content),\n },\n { apiUrl, appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(), signal }\n );\n\n return response && response.json();\n}\n\nexport async function patch(path, content, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams);\n\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'PATCH',\n headers: JSON_HEADERS,\n body: JSON.stringify(content),\n },\n {\n apiUrl,\n appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(),\n signal,\n }\n );\n\n return response && response.json();\n}\n\nexport async function del(path, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const query = queryString.stringify(queryParams);\n const response = await request(\n query ? `${path}?${query}` : path,\n {\n method: 'DELETE',\n headers: JSON_HEADERS,\n },\n {\n apiUrl,\n appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(),\n signal,\n }\n );\n\n return response && response.json();\n}\n\nexport async function sendFormData(path, data, queryParams = {}, requestOptions = {}) {\n const query = queryString.stringify(queryParams);\n const { method = 'POST', signal } = requestOptions;\n const formData = new FormData();\n\n Object.entries(data).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(arrayValueEntity => {\n formData.append(key, arrayValueEntity);\n });\n } else {\n formData.append(key, value);\n }\n });\n\n const response = await request(\n query ? `${path}?${query}` : path,\n {\n method,\n headers: {\n Accept: 'application/json',\n },\n body: formData,\n },\n { appKey: getAppKeyFromXProps() || getAppKeyFromStackTrace(), signal }\n );\n\n return response && response.json();\n}\n"],"names":["HTTP_ERROR_MESSAGES","HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS","APIException","response","json","_classCallCheck","this","status","statusText","message","errorBody","_createClass","key","value","_this$errorBody","_this$errorBody$error","errors","login","_this$errorBody2","_this$errorBody2$erro","_this$errorBody2$erro2","includes","_this$errorBody3","_this$errorBody3$erro","_this$errorBody3$erro2","_this$errorBody4","_this$errorBody4$erro","_this$errorBody4$erro2","identity","baseUrl","CORVA_API_URLS","API","AUTH_HEADERS","getAuthorizationHeaders","JSON_HEADERS","_objectSpread","Accept","handleAuthenticationProblem","e","_e$isAuthenticationPr","isAuthenticationProblem","isTermsProblem","isLoginProblem","console","error","window","location","pathname","href","V1_ASSETS_REGEXP","_requestCore","_asyncToGenerator","_regeneratorRuntime","mark","path","config","overrides","_overrides$apiUrl","apiUrl","appKey","_args2","arguments","wrap","_context2","prev","next","length","undefined","test","cache","credentials","abrupt","fetch","attachHTTPHeaders","stop","_callee2","apply","requestCoreFunc","_errorHandler","request","_x4","requestMethod","isMethodToShowNotification","httpErrorMessage","exception","_context","sent","ok","t0","method","hideNotification","DISPLAY_HTTP_MESSAGES","_callee","_x","_x2","_x3","_post","_callee3","entity","requestOptions","_requestOptions$withH","withHeaders","_args3","_context3","headers","body","JSON","stringify","getAppKeyFromXProps","getAppKeyFromStackTrace","getWithHeaders","_x7","_getWithHeaders","queryParams","signal","qry","_args4","_context4","queryString","arrayFormat","t1","t2","data","_callee4","_get","dataAndHeaders","_args5","_context5","_callee5","_put","_callee7","content","_args7","_context7","_patch","_callee8","_args8","_context8","_del","query","_args9","_context9","concat","_callee9","_sendFormData","_callee10","_requestOptions$metho","formData","_args10","_context10","FormData","Object","entries","forEach","_ref","_ref2","_slicedToArray","Array","isArray","arrayValueEntity","append","_x14","_x8","_x12","_x13","_x5","_x6","_x10","_x11","_x15","_x16"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apiCore.js","sources":["../../../../src/clients/api/apiCore.js"],"sourcesContent":["import * as queryString from 'query-string';\n\nimport { attachHTTPHeaders, getAppKeyAndId, getAuthorizationHeaders } from '../utils';\nimport { CORVA_API_URLS } from '../constants';\n\nimport { DISPLAY_HTTP_MESSAGES } from './httpMessages';\n\nimport { apiRequestsRateLimiter } from '~/clients/api/rateLimiter';\n\nconst HTTP_ERROR_MESSAGES = {\n 400: 'Request Failed',\n 403: 'No Permission',\n 404: 'Not Found',\n};\n\nconst TOS_ERROR_MESSAGE = 'Please accept the latest terms of service';\nconst LOCKED_ERROR_MESSAGE = 'Account has been locked';\nconst INVALID_VERIFICATION_CODE_MESSAGE = 'Invalid verification code';\nconst MISSING_VERIFICATION_CODE_MESSAGE = 'Missing verification code';\n\nconst HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS = [\n // NOTE: Do not show error notifications for GET method. Because users may request a deleted item\n 'POST',\n 'PUT',\n 'PATCH',\n 'DELETE',\n];\n\nexport class APIException {\n constructor(response, json) {\n this.status = response.status;\n this.statusText = response.statusText;\n this.message = json.message || 'No Message';\n this.errorBody = json;\n }\n\n isAuthenticationProblem() {\n return this.status === 401;\n }\n\n isTermsProblem() {\n // FIXME: this.message === TOS_ERROR_MESSAGE is a hack. Back-end team should come\n // with another solution.\n return this.status === 401 && this.message === TOS_ERROR_MESSAGE;\n }\n\n isLoginProblem() {\n return this.status === 401 && this.errorBody?.errors?.login;\n }\n\n isLockedAccountProblem() {\n return this.status === 401 && this.errorBody?.errors?.login?.includes(LOCKED_ERROR_MESSAGE);\n }\n\n isInvalidVerificationCode() {\n return (\n this.status === 401 &&\n this.errorBody?.errors?.login?.includes(INVALID_VERIFICATION_CODE_MESSAGE)\n );\n }\n\n isMissingVerificationCode() {\n return (\n this.status === 401 &&\n this.errorBody?.errors?.identity?.includes(MISSING_VERIFICATION_CODE_MESSAGE)\n );\n }\n}\n\nexport const baseUrl = CORVA_API_URLS.API;\n\nconst AUTH_HEADERS = getAuthorizationHeaders();\nconst JSON_HEADERS = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n ...AUTH_HEADERS,\n};\n\nexport function handleAuthenticationProblem(e) {\n if (e.isAuthenticationProblem?.() && !e.isTermsProblem() && !e.isLoginProblem()) {\n console.error('Problem with user');\n // NOTE: Redirect to login page\n if (window.location.pathname !== '/login') window.location.href = '/login';\n }\n}\n\nfunction errorHandlerDecorator(requestCoreFunc) {\n return async function errorHandler(path, config, overrides) {\n const response = await requestCoreFunc(path, config, overrides);\n\n const { status } = response;\n\n if (response.ok) {\n return status === 204 // NOTE: No content\n ? null\n : response;\n }\n\n // NOTE: Handle Error response logic\n let json;\n try {\n json = await response.json();\n } catch (e) {\n json = {};\n }\n const requestMethod = config.method;\n const isMethodToShowNotification =\n !overrides.hideNotification &&\n HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS.includes(requestMethod);\n\n const httpErrorMessage = DISPLAY_HTTP_MESSAGES[json.message] || HTTP_ERROR_MESSAGES[status];\n\n if (isMethodToShowNotification && httpErrorMessage) {\n console.error(httpErrorMessage);\n }\n\n const exception = new APIException(response, json);\n handleAuthenticationProblem(exception);\n\n throw exception;\n };\n}\n\nconst V1_ASSETS_REGEXP = /^\\/v1\\/assets.*/;\n\nasync function requestCore(path, config = {}, overrides = {}) {\n const { apiUrl = baseUrl, appKey, appInstanceId } = overrides;\n\n if (appKey && appInstanceId) {\n await apiRequestsRateLimiter.acquire(appKey, appInstanceId);\n }\n\n // temporary enable cache for the heaviest request\n if (V1_ASSETS_REGEXP.test(path)) {\n config.cache = 'reload'; // eslint-disable-line no-param-reassign\n }\n\n config.credentials = 'include'; // eslint-disable-line no-param-reassign\n\n return fetch(`${apiUrl}${path}`, attachHTTPHeaders({ config, appKey, ...AUTH_HEADERS }));\n}\n\nconst request = errorHandlerDecorator(requestCore);\n\n/**\n * The post method is most-often utilized to **create** new resources.\n * @async\n * @param {string} path - path to resource.\n * @param {Object=} entity - API entity to create\n * @returns {Promise<*>}\n */\nexport async function post(path, entity, requestOptions = {}) {\n const { apiUrl, withHeaders = false } = requestOptions;\n const response = await request(\n path,\n {\n method: 'POST',\n headers: JSON_HEADERS,\n body: JSON.stringify(entity),\n },\n { apiUrl, ...getAppKeyAndId() }\n );\n\n if (withHeaders) return response;\n\n return response && response.json();\n}\n\nexport async function getWithHeaders(path, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams, { arrayFormat: 'bracket' });\n const { appKey, ...rest } = getAppKeyAndId() || {};\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'GET',\n signal,\n },\n { apiUrl, appKey: requestOptions.appKey || appKey, ...rest }\n );\n\n return {\n data: response && (await response.json()),\n headers: response && response.headers,\n };\n}\n\n/**\n * The get method is used to **read** (or retrieve) a representation of a resource\n * @async\n * @param {string} path - path to resource.\n * @param {Object=} queryParams - Object with query params such as per_page, sort, asset_id, etc.\n * @param {Object=} requestOptions - Additional options for request. For example: apiUrl, signal etc.\n * @returns {Promise<*>}\n */\nexport async function get(path, queryParams = {}, requestOptions = {}) {\n const { appKey, ...rest } = getAppKeyAndId() || {};\n const dataAndHeaders = await getWithHeaders(path, queryParams, {\n ...requestOptions,\n appKey: requestOptions.appKey || appKey,\n ...rest,\n });\n return dataAndHeaders.data;\n}\n\nexport async function getFile(path, queryParams = {}, requestOptions = {}) {\n const qry = queryString.stringify(queryParams);\n const { signal } = requestOptions;\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n { method: 'GET' },\n { ...getAppKeyAndId(), signal }\n );\n\n return response && response.blob();\n}\n\nexport async function put(path, content, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams);\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'PUT',\n headers: JSON_HEADERS,\n body: JSON.stringify(content),\n },\n { apiUrl, ...getAppKeyAndId(), signal }\n );\n\n return response && response.json();\n}\n\nexport async function patch(path, content, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const qry = queryString.stringify(queryParams);\n\n const response = await request(\n `${path}${qry ? '?' : ''}${qry}`,\n {\n method: 'PATCH',\n headers: JSON_HEADERS,\n body: JSON.stringify(content),\n },\n {\n apiUrl,\n ...getAppKeyAndId(),\n signal,\n }\n );\n\n return response && response.json();\n}\n\nexport async function del(path, queryParams = {}, requestOptions = {}) {\n const { apiUrl, signal } = requestOptions;\n const query = queryString.stringify(queryParams);\n const response = await request(\n query ? `${path}?${query}` : path,\n {\n method: 'DELETE',\n headers: JSON_HEADERS,\n },\n {\n apiUrl,\n ...getAppKeyAndId(),\n signal,\n }\n );\n\n return response && response.json();\n}\n\nexport async function sendFormData(path, data, queryParams = {}, requestOptions = {}) {\n const query = queryString.stringify(queryParams);\n const { method = 'POST', signal } = requestOptions;\n const formData = new FormData();\n\n Object.entries(data).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach(arrayValueEntity => {\n formData.append(key, arrayValueEntity);\n });\n } else {\n formData.append(key, value);\n }\n });\n\n const response = await request(\n query ? `${path}?${query}` : path,\n {\n method,\n headers: {\n Accept: 'application/json',\n },\n body: formData,\n },\n { ...getAppKeyAndId(), signal }\n );\n\n return response && response.json();\n}\n"],"names":["HTTP_ERROR_MESSAGES","HTTP_METHODS_TO_SHOW_ERROR_NOTIFICATIONS","APIException","response","json","_classCallCheck","this","status","statusText","message","errorBody","_createClass","key","value","_this$errorBody","_this$errorBody$error","errors","login","_this$errorBody2","_this$errorBody2$erro","_this$errorBody2$erro2","includes","_this$errorBody3","_this$errorBody3$erro","_this$errorBody3$erro2","_this$errorBody4","_this$errorBody4$erro","_this$errorBody4$erro2","identity","baseUrl","CORVA_API_URLS","API","AUTH_HEADERS","getAuthorizationHeaders","JSON_HEADERS","_objectSpread","Accept","handleAuthenticationProblem","e","_e$isAuthenticationPr","isAuthenticationProblem","isTermsProblem","isLoginProblem","console","error","window","location","pathname","href","V1_ASSETS_REGEXP","_requestCore","_asyncToGenerator","_regeneratorRuntime","mark","path","config","overrides","_overrides$apiUrl","apiUrl","appKey","appInstanceId","_args2","arguments","wrap","_context2","prev","next","length","undefined","apiRequestsRateLimiter","acquire","test","cache","credentials","abrupt","fetch","attachHTTPHeaders","stop","_callee2","apply","requestCoreFunc","_errorHandler","request","_x4","requestMethod","isMethodToShowNotification","httpErrorMessage","exception","_context","sent","ok","t0","method","hideNotification","DISPLAY_HTTP_MESSAGES","_callee","_x","_x2","_x3","_post","_callee3","entity","requestOptions","_requestOptions$withH","withHeaders","_args3","_context3","headers","body","JSON","stringify","getAppKeyAndId","getWithHeaders","_x7","_getWithHeaders","queryParams","signal","qry","_ref","rest","_args4","_context4","queryString","arrayFormat","_objectWithoutProperties","_excluded","t1","t2","data","_callee4","_get","_ref2","dataAndHeaders","_args5","_context5","_excluded2","_callee5","_put","_callee7","content","_args7","_context7","_patch","_callee8","_args8","_context8","_del","query","_args9","_context9","concat","_callee9","_sendFormData","_callee10","_requestOptions$metho","formData","_args10","_context10","FormData","Object","entries","forEach","_ref3","_ref4","_slicedToArray","Array","isArray","arrayValueEntity","append","_x14","_x8","_x12","_x13","_x5","_x6","_x10","_x11","_x15","_x16"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.DEFAULT_CONFIG={defaults:{maxTokens:35,refillRate:10,queueTimeout:3e4},overrides:{"corva.treatment_plot_plus.ui":{maxTokens:60,refillRate:30}}},exports.IDLE_CLEANUP_AFTER_MS=6e4;
|
|
2
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/classCallCheck"),t=require("@babel/runtime/helpers/createClass"),r=require("@babel/runtime/helpers/defineProperty"),i=require("./constants.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=u(e),n=u(t),o=u(r);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){o.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var c=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a.default(this,e),o.default(this,"buckets",new Map),o.default(this,"config",void 0),this.config={defaults:s(s({},i.DEFAULT_CONFIG.defaults),t.defaults),overrides:s({},t.overrides)}}return n.default(e,[{key:"getOrCreateBucket",value:function(e,t,r){var i=this.buckets.get(e);if(!i){var u=s(s({},this.config.defaults),this.config.overrides[t]),a=u.maxTokens,n=u.refillRate,o=u.queueTimeout,l=u.maxQueueSize,c={appKey:t,appInstanceId:r,tokens:a,maxTokens:a,refillRate:n,queueTimeout:o,lastRefill:Date.now(),lastActivity:Date.now(),queue:[],refillTimer:null,maxQueueSize:l};return this.buckets.set(e,c),this.startRefillTimer(e,c),c}return i}},{key:"refill",value:function(e){var t=Date.now(),r=(t-e.lastRefill)/1e3*e.refillRate;r>0&&(e.tokens=Math.min(e.maxTokens,e.tokens+r),e.lastRefill=t)}},{key:"startRefillTimer",value:function(e,t){var r=this;t.refillTimer=setInterval((function(){r.refill(t),r.drainQueue(t),r.cleanupIdleIfNeeded(e,t)}),200)}},{key:"drainQueue",value:function(e){for(;e.queue.length>0&&e.tokens>=1;){e.tokens-=1,e.lastActivity=Date.now();var t=e.queue.shift();clearTimeout(null==t?void 0:t.timeoutId),null==t||t.resolve()}}},{key:"cleanupIdleIfNeeded",value:function(e,t){t.queue.length>0||Date.now()-t.lastActivity>=i.IDLE_CLEANUP_AFTER_MS&&(this.destroyBucket(t),this.buckets.delete(e))}},{key:"destroyBucket",value:function(e){e.refillTimer&&clearInterval(e.refillTimer),e.queue.forEach((function(e){clearTimeout(e.timeoutId),e.reject(new Error("[RateLimiter] Destroyed while request was queued"))})),e.queue=[]}},{key:"acquire",value:function(e,t){var r,i,u="".concat(e,"|").concat(t),a=this.getOrCreateBucket(u,e,String(t));if(this.refill(a),a.tokens>=1)return a.tokens-=1,a.lastActivity=Date.now(),Promise.resolve();var n=a.queue.length+1;return null===(r=(i=window)[Symbol.for("corvaAPI.rateLimiterReport")])||void 0===r||r.call(i,{message:"[RateLimiter] Rate limit reached",bucket:{id:u,appKey:a.appKey,appInstanceId:a.appInstanceId,maxTokens:a.maxTokens,queueLength:n,queueTimeout:a.queueTimeout,refillRate:a.refillRate}}),void 0!==a.maxQueueSize&&n>a.maxQueueSize?Promise.reject(new Error('[RateLimiter] Queue size limit exceeded for "'.concat(u,'". Limit: ').concat(a.maxQueueSize))):Promise.resolve()}},{key:"updateConfig",value:function(e){this.config=s(s({},this.config),{},{defaults:s(s({},this.config.defaults),e.defaults),overrides:s(s({},this.config.overrides),e.overrides)})}},{key:"destroy",value:function(){this.buckets.forEach(this.destroyBucket),this.buckets.clear()}}]),e}(),f=new c;exports.RateLimiter=c,exports.apiRequestsRateLimiter=f;
|
|
2
|
+
//# sourceMappingURL=rateLimiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimiter.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("uuid"),n=require("lodash"),r=require("./clientStorage/index.js"),o=require("./jsonApi/index.js"),i=require("./subscriptions.js"),c=require("./api/apiCore.js"),s=require("./constants.js"),u=require("./corvaUrls.js"),a=require("./subscriptions/constants.js"),p=require("./subscriptions/socket-client.v2.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),t=require("uuid"),n=require("lodash"),r=require("./clientStorage/index.js"),o=require("./jsonApi/index.js"),i=require("./subscriptions.js"),c=require("./api/apiCore.js"),s=require("./constants.js"),u=require("./corvaUrls.js"),a=require("./subscriptions/constants.js"),p=require("./subscriptions/socket-client.v2.js"),d=require("./sso/index.js"),l=require("./utils.js");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=v(e);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){f.default(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var A={get:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.get(e,t,n)},getWithHeaders:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.getWithHeaders(e,t,n)},put:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return c.put(e,t,n,r)},patch:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return c.patch(e,t,n,r)},post:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.post(e,t,n)},del:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.del(e,t,n)}},b={get:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.get(e,t,h({apiUrl:s.CORVA_API_URLS.DATA_API},n))},put:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return c.put(e,t,n,h({apiUrl:s.CORVA_API_URLS.DATA_API},r))},patch:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return c.patch(e,t,n,h({apiUrl:s.CORVA_API_URLS.DATA_API},r))},post:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.post(e,t,h({apiUrl:s.CORVA_API_URLS.DATA_API},n))},del:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.del(e,t,h({apiUrl:s.CORVA_API_URLS.DATA_API},n))}};function j(){if(window.xprops){var e,n,r,o,i,c=(null===(e=window.xprops)||void 0===e||null===(n=e.app)||void 0===n||null===(r=n.app)||void 0===r?void 0:r.id)||"unknown-app-id",s=(null===(o=window.xprops)||void 0===o||null===(i=o.app)||void 0===i?void 0:i.id)||"unknown-instance-id";return"".concat(c,":").concat(s,":").concat(t.v4())}return"non-dc-app:".concat(t.v4())}var P={subscribe:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.onDataReceive,o=window[Symbol.for("socket")]||{},i=o.subscribe,c=o.unsubscribe,s=o.socket;if(!s)return console.error("Socket is not initialized!"),n.noop;var u=j(),a=h(h({},e),{},{collection:e.collection||e.dataset,appInstanceId:u}),p=r&&function(e){return e.appInstanceId===u&&r(e)};return i(a),p&&s.on("data",p),function(){p&&s.off("data",p),c(a)}},onConnectionChange:function(e){var t=(window[Symbol.for("socket")]||{}).socket;if(!t)return function(){};var n=function(){return e({status:"connected"})},r=function(t){return e({status:"disconnected",reason:t})},o=function(){return e({status:"reconnecting"})},i=function(t){return e({status:"error",reason:(null==t?void 0:t.message)||String(t)})};return t.on("connect",n),t.on("disconnect",r),t.on("reconnect",o),t.on("connect_error",i),function(){t.off("connect",n),t.off("disconnect",r),t.off("reconnect",o),t.off("connect_error",i)}}},O=a.handleSubscriptionsVersion(P,p.socketClientV2);exports.clientStorage=r,exports.jsonApi=o,exports.subscriptions=i,exports.corvaUrls=u,exports.sso=d,exports.attachHTTPHeaders=l.attachHTTPHeaders,exports.getAppKeyAndId=l.getAppKeyAndId,exports.getAuthorizationHeaders=l.getAuthorizationHeaders,exports.getAuthorizationToken=l.getAuthorizationToken,exports.corvaAPI=A,exports.corvaDataAPI=b,exports.socketClient=O;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("../constants/mobile.js");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?o(Object(t),!0).forEach((function(r){n.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):o(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var i=/corva\.ai\/(.+?)\/packages/,p=/app\/(.+?)\/.*\.chunk\.js/,c=window.self!==window.top;var u=function(){try{var e=sessionStorage.getItem(r.MOBILE_AUTH_TOKEN_STORAGE_KEY);if(e)return e;var t=c?window.parent.location.href:window.location.href;return new URL(t).searchParams.get("token")}catch(e){return null}};exports.attachHTTPHeaders=function(e){var r=e.config,t=e.appKey,n=e.Authorization,o=a({},r.headers||{});return t&&(o["x-corva-app"]=t),n&&(o.Authorization=n),a(a({},r),{},{headers:o})},exports.getAppKeyAndId=function(){var e,r,t,n,o,a,c,u=null===(e=window)||void 0===e||null===(r=e.xprops)||void 0===r||null===(t=r.app)||void 0===t||null===(n=t.app)||void 0===n?void 0:n.app_key;if(u)return{appKey:u,appInstanceId:String(null===(o=window)||void 0===o||null===(a=o.xprops)||void 0===a||null===(c=a.app)||void 0===c?void 0:c.id)};var s=Error.stackTraceLimit;Error.stackTraceLimit=300;var l=new Error,d=l.stack.match(i)||l.stack.match(p);return Error.stackTraceLimit=s,d?{appKey:d[1].replace("/app/","."),appInstanceId:"nonisolated"}:void 0},exports.getAuthorizationHeaders=function(){var e=u();return e?{Authorization:"Bearer ".concat(e)}:{}},exports.getAuthorizationToken=u;
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/clients/utils.js"],"sourcesContent":["import { MOBILE_AUTH_TOKEN_STORAGE_KEY } from '~/constants/mobile';\n\n// NOTE: Non-greedy regexp to find the app key from filename\nconst DEVCENTER_APP_KEY_EXTRACTOR_REGEXP = /corva\\.ai\\/(.+?)\\/packages/;\nconst PLATFORM_APP_KEY_EXTRACTOR_REGEXP = /app\\/(.+?)\\/.*\\.chunk\\.js/;\n\nconst isInsideIframe = window.self !== window.top;\n\nexport
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/clients/utils.js"],"sourcesContent":["import { MOBILE_AUTH_TOKEN_STORAGE_KEY } from '~/constants/mobile';\n\n// NOTE: Non-greedy regexp to find the app key from filename\nconst DEVCENTER_APP_KEY_EXTRACTOR_REGEXP = /corva\\.ai\\/(.+?)\\/packages/;\nconst PLATFORM_APP_KEY_EXTRACTOR_REGEXP = /app\\/(.+?)\\/.*\\.chunk\\.js/;\n\nconst isInsideIframe = window.self !== window.top;\n\nexport const getAppKeyAndId = () => {\n const xpropsAppKey = window?.xprops?.app?.app?.app_key;\n\n if (xpropsAppKey) {\n return {\n appKey: xpropsAppKey,\n appInstanceId: String(window?.xprops?.app?.id),\n };\n } else {\n const prevStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = 300;\n\n const error = new Error();\n const match =\n error.stack.match(DEVCENTER_APP_KEY_EXTRACTOR_REGEXP) ||\n error.stack.match(PLATFORM_APP_KEY_EXTRACTOR_REGEXP);\n\n Error.stackTraceLimit = prevStackTraceLimit;\n\n if (match) {\n return {\n appKey: match[1].replace('/app/', '.'),\n appInstanceId: 'nonisolated',\n };\n }\n }\n\n return undefined;\n};\n\nexport function attachHTTPHeaders({ config, appKey, Authorization }) {\n const headers = { ...(config.headers || {}) };\n if (appKey) headers['x-corva-app'] = appKey;\n if (Authorization) headers.Authorization = Authorization;\n\n return { ...config, headers };\n}\n\nexport const getAuthorizationToken = () => {\n try {\n const mobileAuthToken = sessionStorage.getItem(MOBILE_AUTH_TOKEN_STORAGE_KEY);\n if (mobileAuthToken) return mobileAuthToken;\n\n const url = isInsideIframe ? window.parent.location.href : window.location.href; // Get the current URL\n const params = new URL(url).searchParams; // Parse the URL query parameters\n return params.get('token'); // Extract the 'token' parameter\n } catch (error) {\n return null;\n }\n};\n\nexport const getAuthorizationHeaders = () => {\n const token = getAuthorizationToken();\n return token ? { Authorization: `Bearer ${token}` } : {};\n};\n"],"names":["DEVCENTER_APP_KEY_EXTRACTOR_REGEXP","PLATFORM_APP_KEY_EXTRACTOR_REGEXP","isInsideIframe","window","self","top","getAuthorizationToken","mobileAuthToken","sessionStorage","getItem","MOBILE_AUTH_TOKEN_STORAGE_KEY","url","parent","location","href","URL","searchParams","get","error","_ref","config","appKey","Authorization","headers","_objectSpread","_window","_window$xprops","_window$xprops$app","_window$xprops$app$ap","_window2","_window2$xprops","_window2$xprops$app","xpropsAppKey","xprops","app","app_key","appInstanceId","String","id","prevStackTraceLimit","Error","stackTraceLimit","match","stack","replace","token"],"mappings":"yzBAGA,IAAMA,EAAqC,6BACrCC,EAAoC,4BAEpCC,EAAiBC,OAAOC,OAASD,OAAOE,IAwCjCC,IAAAA,EAAwB,WACnC,IACE,IAAMC,EAAkBC,eAAeC,QAAQC,EAA6BA,+BAC5E,GAAIH,EAAiB,OAAOA,EAE5B,IAAMI,EAAMT,EAAiBC,OAAOS,OAAOC,SAASC,KAAOX,OAAOU,SAASC,KAE3E,OADe,IAAIC,IAAIJ,GAAKK,aACdC,IAAI,QAGpB,CAFE,MAAOC,GACP,OAAO,IACT,CACF,4BAnBO,SAA8DC,GAAA,IAAjCC,IAAAA,OAAQC,IAAAA,OAAQC,IAAAA,cAC5CC,OAAgBH,EAAOG,SAAW,CAAA,GAIxC,OAHIF,IAAQE,EAAQ,eAAiBF,GACjCC,IAAeC,EAAQD,cAAgBA,GAE3CE,EAAAA,EAAA,CAAA,EAAYJ,GAAM,CAAA,EAAA,CAAEG,QAAAA,GACtB,yBApC8B,WAAM,IAAAE,EAAAC,EAAAC,EAAAC,EAGhBC,EAAAC,EAAAC,EAFZC,EAAqB,QAATP,EAAGtB,cAAM,IAAAsB,GAAQ,QAARC,EAAND,EAAQQ,cAAM,IAAAP,GAAd,QAAcC,EAAdD,EAAgBQ,WAAhB,IAAAP,GAAwB,QAAxBC,EAAAD,EAAqBO,WAAG,IAAAN,OAAlB,EAANA,EAA0BO,QAE/C,GAAIH,EACF,MAAO,CACLX,OAAQW,EACRI,cAAeC,OAAO,QAAAlC,EAAAA,cAAA,IAAA0B,GAAc,QAAdC,EAAAD,EAAQI,cAAM,IAAAH,GAAd,QAAcC,EAAdD,EAAgBI,WAAhB,IAAAH,OAAA,EAAAA,EAAqBO,KAG7C,IAAMC,EAAsBC,MAAMC,gBAClCD,MAAMC,gBAAkB,IAExB,IAAMvB,EAAQ,IAAIsB,MACZE,EACJxB,EAAMyB,MAAMD,MAAM1C,IAClBkB,EAAMyB,MAAMD,MAAMzC,GAIpB,OAFAuC,MAAMC,gBAAkBF,EAEpBG,EACK,CACLrB,OAAQqB,EAAM,GAAGE,QAAQ,QAAS,KAClCR,cAAe,oBAHnB,CASJ,kCAuBuC,WACrC,IAAMS,EAAQvC,IACd,OAAOuC,EAAQ,CAAEvB,+BAAyBuB,IAAY,EACxD"}
|
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/objectWithoutProperties"),t=require("react"),o=require("classnames"),i=require("react-router-dom"),a=require("lodash"),s=require("query-string"),u=require("prop-types"),p=require("./IsolatedPage.js"),l=require("./constants.js"),d=require("./DevCenterIsolatedApp.module.css.js"),c=require("../AppContext.js"),f=require("../../../permissions/PermissionsContext.js");require("../../../permissions/constants/index.js"),require("../../../permissions/withPermissionsHOC.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../../clients/jsonApi/index.js"),require("../../../permissions/ProvidePermissions.js");var v=require("../../../utils/index.js");require("../AppHeader/AppHeader.js"),require("../AppSideBar/AppSideBar.js"),require("../AppsDataProvider/AppsDataProvider.js");var C=require("../DevCenterAppContainer/DevCenterAppContainer.js");require("../NavigationBar/NavigationBar.js"),require("../SideBar/SideBar.js"),require("../AppSettingsPopover/AppSettingsPopover.js"),require("../AppFilterPanelLayout/AppFilterPanelLayout.js"),require("../DevCenterRouterContext/DevCenterRouterContext.js"),require("../DevCenterRouterContext/UniversalLink/UniversalLink.js");var b=require("react/jsx-runtime");require("./DevCenterIsolatedAppPage.js");var m=require("../DevCenterAppContainer/utils.js"),A=require("../../../utils/mobileDetect.js"),g=require("../../../utils/devcenter.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=j(e),q=j(n),I=j(r),M=j(o),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),n=require("@babel/runtime/helpers/slicedToArray"),r=require("@babel/runtime/helpers/objectWithoutProperties"),t=require("react"),o=require("classnames"),i=require("react-router-dom"),a=require("lodash"),s=require("query-string"),u=require("prop-types"),p=require("./IsolatedPage.js"),l=require("./constants.js"),d=require("./DevCenterIsolatedApp.module.css.js"),c=require("../AppContext.js"),f=require("../../../permissions/PermissionsContext.js");require("../../../permissions/constants/index.js"),require("../../../permissions/withPermissionsHOC.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../../clients/jsonApi/index.js"),require("../../../permissions/ProvidePermissions.js");var v=require("../../../utils/index.js");require("../AppHeader/AppHeader.js"),require("../AppSideBar/AppSideBar.js"),require("../AppsDataProvider/AppsDataProvider.js");var C=require("../DevCenterAppContainer/DevCenterAppContainer.js");require("../NavigationBar/NavigationBar.js"),require("../SideBar/SideBar.js"),require("../AppSettingsPopover/AppSettingsPopover.js"),require("../AppFilterPanelLayout/AppFilterPanelLayout.js"),require("../DevCenterRouterContext/DevCenterRouterContext.js"),require("../DevCenterRouterContext/UniversalLink/UniversalLink.js");var b=require("react/jsx-runtime");require("./DevCenterIsolatedAppPage.js");var m=require("../DevCenterAppContainer/utils.js"),A=require("../../../utils/mobileDetect.js"),g=require("../../../utils/devcenter.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=j(e),q=j(n),I=j(r),M=j(o),x=j(s),y=j(u),P=["isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","trackApiRateLimiterException"];function E(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function R(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?E(Object(r),!0).forEach((function(n){h.default(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function D(e){var n,r,o,i,a,s,u,j=e.isIsolationFeatureEnabled,h=e.onAppFullscreenTransparentMode,y=e.onIsMaximizedChange,E=e.onInnerContainerMouseEnter,D=e.onInnerContainerMouseLeave,w=e.onAppContainerClick,O=e.setInnerContainerRefFn,L=e.trackApiRateLimiterException,S=I.default(e,P),T=t.useMemo((function(){return g.createDevCenterRouter(S.history)}),[null===(n=S.history)||void 0===n?void 0:n.location]),k=g.isCorvaApp(null==S||null===(r=S.app)||void 0===r?void 0:r.app)&&!g.isIsolationEnabledInPackageManifest(null==S||null===(o=S.app)||void 0===o?void 0:o.package)||!j,F=k?C:p.IsolatedPage,_=null===(i=S.app)||void 0===i||null===(a=i.app)||void 0===a?void 0:a.app_key,z=m.getAppVersion(S.app),U="".concat(_,"-").concat(z),B=t.useRef(),N=t.useRef(),W=t.useRef(),H=t.useRef(!1),V=t.useRef(!1),G=g.isAppMaximized(x.default.parse(null===(s=S.history)||void 0===s||null===(u=s.location)||void 0===u?void 0:u.search),S.app.id),J=t.useRef(G);J.current=G;var K=t.useState(v.getUserUnits()),Q=q.default(K,2),X=Q[0],Y=Q[1];t.useEffect((function(){var e=v.subscribeForUserUnitsUpdates((function(e){return Y(e)}));return function(){return e()}}),[]);var Z=t.useContext(c),$=f.default();function ee(){h({appId:S.app.id,isModeEnabled:!1}),document.body.classList.remove("dc-isolated-app__body-overflow",d.compensateScroll)}var ne=t.useCallback((function(e){var n,r,t,o,i,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!j||k||J.current&&!H.current||H.current===e){var s;a&&V.current!==a&&(V.current=a,null===(s=N.current)||void 0===s||s.classList.add(d.containerMaximizedTransparentModal))}else{var u,c=e?"add":"remove";if(null===(n=N.current)||void 0===n||n.classList[c](d.containerMaximizedTransparent),a||"remove"===c)null===(u=N.current)||void 0===u||u.classList[c](d.containerMaximizedTransparentModal);B.current=null===(r=N.current)||void 0===r||null===(t=r.querySelector("[".concat(p.APP_IFRAME_ATTRIBUTE,"]")))||void 0===t||null===(o=t.contentWindow)||void 0===o?void 0:o.document;var f=null===(i=B.current)||void 0===i?void 0:i.getElementById(l.ISOLATED_PAGE_APP_CONTAINER_ID);if(f){if(e){var v=W.current.getBoundingClientRect(),C=v.top,b=v.left,m=v.width,A=v.height;f.setAttribute("style","\n top: ".concat(C,"px;\n left: ").concat(b,"px;\n width: ").concat(m,"px;\n height: ").concat(A,"px;\n position: absolute;\n ")),h({appId:S.app.id,isModeEnabled:!0});var g=window.innerWidth!==document.body.clientWidth;document.body.classList.add("dc-isolated-app__body-overflow",g&&d.compensateScroll)}else f.setAttribute("style",""),ee();H.current=e,V.current=a}}}),[j,k,J]);t.useEffect((function(){return ee}),[]),t.useEffect((function(){G&&H.current&&ne(!1)}),[G]);var re=t.useCallback((function(e){N.current=e,O(e)}),[]);return b.jsx("div",{className:M.default("dc-isolated-app",d.fixedSizeContainer),ref:W,children:b.jsx("div",{ref:re,onMouseEnter:E,onMouseLeave:D,"data-testid":"".concat("DevCenter_AppContainer","_").concat(S.app.app.name),className:M.default(d.container,A.isInsideNewMobileApp&&d.newMobileAppContainer,G&&d.containerMaximized),children:b.jsx(F,R(R({},S),{},{appContextValue:Z,devCenterRouter:T,globalNotificationToastsAPI:window[Symbol.for("notificationToasts")],globalMixpanelEventTracker:window[Symbol.for("logToMixpanel")],onAppContainerClick:w,onIsMaximizedChange:y,permissionsContextValue:$,setIsFullscreenModalMode:ne,userUnits:X,trackApiRateLimiterException:L}),U)})})}D.propTypes={app:y.default.shape({id:y.default.number,app:y.default.shape({name:y.default.string})}).isRequired,currentUser:y.default.shape({}).isRequired,isIsolationFeatureEnabled:y.default.bool,onAppContainerClick:y.default.func,onAppFullscreenTransparentMode:y.default.func,onAppRemove:y.default.func,onInnerContainerMouseEnter:y.default.func,onInnerContainerMouseLeave:y.default.func,onIsMaximizedChange:y.default.func,onSettingChange:y.default.func,onSettingsChange:y.default.func,setInnerContainerRefFn:y.default.func,updateCurrentDashboardAppLastAnnotation:y.default.func},D.defaultProps={isIsolationFeatureEnabled:!1,onAppContainerClick:a.noop,onAppFullscreenTransparentMode:a.noop,onAppRemove:void 0,onInnerContainerMouseEnter:a.noop,onInnerContainerMouseLeave:a.noop,onIsMaximizedChange:a.noop,onSettingChange:a.noop,onSettingsChange:a.noop,setInnerContainerRefFn:a.noop,updateCurrentDashboardAppLastAnnotation:a.noop};var w=i.withRouter(D);exports.DevCenterIsolatedApp=w;
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedApp.js.map
|
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router-dom';\nimport { noop } from 'lodash';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\n\nimport { IsolatedPage, APP_IFRAME_ATTRIBUTE } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.history),\n [props.history?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(\n queryString.parse(props.history?.location?.search),\n props.app.id\n );\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: undefined,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$history","_props$app","_props$app2","_props$app3","_props$app3$app","_props$history2","_props$history2$locat","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","createDevCenterRouter","history","location","isNonIsolatedApp","isCorvaApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","queryString","parse","search","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","jsx","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","undefined","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedApp.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedApp.js"],"sourcesContent":["import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { withRouter } from 'react-router-dom';\nimport { noop } from 'lodash';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\n\nimport { APP_IFRAME_ATTRIBUTE, IsolatedPage } from './IsolatedPage';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\n\nimport styles from './DevCenterIsolatedApp.module.css';\n\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { usePermissionsContext } from '~/permissions';\nimport { devcenter as devCenterUtils, getUserUnits, subscribeForUserUnitsUpdates } from '~/utils';\nimport { DevCenterAppContainer } from '~/components/DevCenter';\nimport { getAppVersion } from '~/components/DevCenter/DevCenterAppContainer/utils';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nconst PAGE_NAME = 'DevCenter_AppContainer';\n\nfunction DevCenterIsolatedAppComponent({\n isIsolationFeatureEnabled,\n onAppFullscreenTransparentMode,\n onIsMaximizedChange,\n onInnerContainerMouseEnter,\n onInnerContainerMouseLeave,\n onAppContainerClick,\n setInnerContainerRefFn,\n trackApiRateLimiterException,\n ...props\n}) {\n const devCenterRouter = useMemo(\n () => devCenterUtils.createDevCenterRouter(props.history),\n [props.history?.location]\n );\n\n const isNonIsolatedApp =\n (devCenterUtils.isCorvaApp(props?.app?.app) &&\n !devCenterUtils.isIsolationEnabledInPackageManifest(props?.app?.package)) ||\n !isIsolationFeatureEnabled;\n\n const DCAppComponent = isNonIsolatedApp ? DevCenterAppContainer : IsolatedPage;\n\n // Key to force iframe recreation when app version changes.\n // This ensures global dependencies are re-initialized for the new version.\n const appKey = props.app?.app?.app_key;\n const appVersion = getAppVersion(props.app);\n const iframeKey = `${appKey}-${appVersion}`;\n\n const appIframeDocument = useRef();\n const containerRef = useRef();\n const fixedSizeContainerRef = useRef();\n const fullscreenModeRef = useRef(false);\n const fullscreenModalModeRef = useRef(false);\n\n const isAppMaximized = devCenterUtils.isAppMaximized(\n queryString.parse(props.history?.location?.search),\n props.app.id\n );\n\n // save to ref to not re-create setIsFullscreenModalMode callback on change and reduce the amoount of DC apps re-renders\n const isAppMaximizedRef = useRef(isAppMaximized);\n isAppMaximizedRef.current = isAppMaximized;\n\n const [userUnits, setUserUnits] = useState(getUserUnits());\n\n useEffect(() => {\n const unsubscribeFn = subscribeForUserUnitsUpdates(newUserUnits => setUserUnits(newUserUnits));\n\n return () => unsubscribeFn();\n }, []);\n\n const appContextValue = useContext(AppContext);\n const permissionsContextValue = usePermissionsContext();\n\n /*\n What is fullscreen modal mode?\n\n Our apps, are shown in isolated iFrames. Because of it, when an app has some modal\n and opens it - it's opened inside of its iframe, instead of opening at the center of the screen.\n\n To make app modals & other elements be opened at the center of the screen, as if they are not inside of an iframe,\n we use some hacks.\n\n When the app wants to open a fullscreen element, we make its iframe fullscreen, but with transparent background,\n and we set width/height & position of that app iframe to inner app container that is located inside of the iframe.\n So when iframe's fullscreen element is opened, it looks like it's a part of the platform, and the app which shows the element, looks like\n usual, not in fullscreen\n\n So the platform provides this setIsFullscreenModalMode function to DC apps.\n When DC app wants to open a modal that should be opened at the center of the screen - it needs to\n call setIsFullscreenModalMode(true) first. And when it closes the modal - setIsFullscreenModalMode(false)\n\n Two things are important about this\n - all these styles that make this invisible background work should be applied at once\n - enter and exit from the mode, shouldn't trigger even a single re-render, as it may impact\n some elements inside the DC app\n\n There's a second parameter to `setIsFullscreenModalMode`: `isModal`. It should be used when a fullscreen overlay is displayed\n (Modal, for instance) that should cover everything on screen.\n\n What it does - it basically sets the stretched element's z-index to a very high value, so it covers every other UI element in CWF\n */\n\n function handleAppFullscreenTransparentModeExit() {\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: false });\n document.body.classList.remove('dc-isolated-app__body-overflow', styles.compensateScroll);\n }\n\n const setIsFullscreenModalMode = useCallback(\n function setIsFullscreenModalMode(nextIsFullscreenModalModeValue, isModal = false) {\n // When an app is already in fullscreen mode, no need to use this\n // invisible fullscreen mode to make elements take the whole screen\n\n if (\n !isIsolationFeatureEnabled ||\n isNonIsolatedApp ||\n (isAppMaximizedRef.current && !fullscreenModeRef.current) ||\n fullscreenModeRef.current === nextIsFullscreenModalModeValue\n ) {\n // Adding modal class if modal is opened when non-modal is already open\n if (isModal && fullscreenModalModeRef.current !== isModal) {\n fullscreenModalModeRef.current = isModal;\n containerRef.current?.classList.add(styles.containerMaximizedTransparentModal);\n }\n\n return;\n }\n\n const classesEditMethod = nextIsFullscreenModalModeValue ? 'add' : 'remove';\n\n containerRef.current?.classList[classesEditMethod](styles.containerMaximizedTransparent);\n\n if (isModal || classesEditMethod === 'remove') {\n containerRef.current?.classList[classesEditMethod](\n styles.containerMaximizedTransparentModal\n );\n }\n\n appIframeDocument.current = containerRef.current?.querySelector(\n `[${APP_IFRAME_ATTRIBUTE}]`\n )?.contentWindow?.document;\n\n const isolatedPageAppContainer = appIframeDocument.current?.getElementById(\n ISOLATED_PAGE_APP_CONTAINER_ID\n );\n\n if (!isolatedPageAppContainer) {\n return;\n }\n\n if (nextIsFullscreenModalModeValue) {\n const { top, left, width, height } = fixedSizeContainerRef.current.getBoundingClientRect();\n\n // We need to directly set inner iFrame container sizes together with DC platform styles\n // as passing this as props and using some effect inside of an iframe\n // results in a slight delay, which looks like a quick layout jump\n isolatedPageAppContainer.setAttribute(\n 'style',\n `\n top: ${top}px;\n left: ${left}px;\n width: ${width}px;\n height: ${height}px;\n position: absolute;\n `\n );\n onAppFullscreenTransparentMode({ appId: props.app.id, isModeEnabled: true });\n const isBodyScrollVisible = window.innerWidth !== document.body.clientWidth;\n document.body.classList.add(\n 'dc-isolated-app__body-overflow',\n isBodyScrollVisible && styles.compensateScroll\n );\n } else {\n isolatedPageAppContainer.setAttribute('style', '');\n handleAppFullscreenTransparentModeExit();\n }\n fullscreenModeRef.current = nextIsFullscreenModalModeValue;\n fullscreenModalModeRef.current = isModal;\n },\n [isIsolationFeatureEnabled, isNonIsolatedApp, isAppMaximizedRef]\n );\n\n useEffect(() => {\n return handleAppFullscreenTransparentModeExit;\n }, []);\n\n useEffect(() => {\n if (isAppMaximized && fullscreenModeRef.current) {\n setIsFullscreenModalMode(false);\n }\n }, [isAppMaximized]);\n\n /**\n * This should be the same function as calling react-intersection-observer's ref setter actually triggers re-render.\n * Which in its turn causes infinite re-render loop.\n */\n const setContainerRefs = useCallback(node => {\n containerRef.current = node;\n setInnerContainerRefFn(node);\n }, []);\n\n return (\n <div\n className={classNames('dc-isolated-app', styles.fixedSizeContainer)}\n ref={fixedSizeContainerRef}\n >\n <div\n ref={setContainerRefs}\n onMouseEnter={onInnerContainerMouseEnter}\n onMouseLeave={onInnerContainerMouseLeave}\n data-testid={`${PAGE_NAME}_${props.app.app.name}`}\n className={classNames(\n styles.container,\n isInsideNewMobileApp && styles.newMobileAppContainer,\n isAppMaximized && styles.containerMaximized\n )}\n >\n <DCAppComponent\n key={iframeKey}\n {...props}\n appContextValue={appContextValue}\n devCenterRouter={devCenterRouter}\n globalNotificationToastsAPI={window[Symbol.for('notificationToasts')]}\n globalMixpanelEventTracker={window[Symbol.for('logToMixpanel')]}\n onAppContainerClick={onAppContainerClick}\n onIsMaximizedChange={onIsMaximizedChange}\n permissionsContextValue={permissionsContextValue}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n userUnits={userUnits}\n trackApiRateLimiterException={trackApiRateLimiterException}\n />\n </div>\n </div>\n );\n}\n\nDevCenterIsolatedAppComponent.propTypes = {\n app: PropTypes.shape({\n id: PropTypes.number,\n app: PropTypes.shape({\n name: PropTypes.string,\n }),\n }).isRequired,\n currentUser: PropTypes.shape({}).isRequired,\n isIsolationFeatureEnabled: PropTypes.bool,\n onAppContainerClick: PropTypes.func,\n onAppFullscreenTransparentMode: PropTypes.func,\n onAppRemove: PropTypes.func,\n onInnerContainerMouseEnter: PropTypes.func,\n onInnerContainerMouseLeave: PropTypes.func,\n onIsMaximizedChange: PropTypes.func,\n onSettingChange: PropTypes.func,\n onSettingsChange: PropTypes.func,\n setInnerContainerRefFn: PropTypes.func,\n updateCurrentDashboardAppLastAnnotation: PropTypes.func,\n};\n\nDevCenterIsolatedAppComponent.defaultProps = {\n isIsolationFeatureEnabled: false,\n onAppContainerClick: noop,\n onAppFullscreenTransparentMode: noop,\n onAppRemove: undefined,\n onInnerContainerMouseEnter: noop,\n onInnerContainerMouseLeave: noop,\n onIsMaximizedChange: noop,\n onSettingChange: noop,\n onSettingsChange: noop,\n setInnerContainerRefFn: noop,\n updateCurrentDashboardAppLastAnnotation: noop,\n};\n\nexport const DevCenterIsolatedApp = withRouter(DevCenterIsolatedAppComponent);\n"],"names":["DevCenterIsolatedAppComponent","_ref","_props$history","_props$app","_props$app2","_props$app3","_props$app3$app","_props$history2","_props$history2$locat","isIsolationFeatureEnabled","onAppFullscreenTransparentMode","onIsMaximizedChange","onInnerContainerMouseEnter","onInnerContainerMouseLeave","onAppContainerClick","setInnerContainerRefFn","trackApiRateLimiterException","props","_objectWithoutProperties","_excluded","devCenterRouter","useMemo","devCenterUtils","createDevCenterRouter","history","location","isNonIsolatedApp","isCorvaApp","app","package","DCAppComponent","DevCenterAppContainer","IsolatedPage","appKey","app_key","appVersion","getAppVersion","iframeKey","concat","appIframeDocument","useRef","containerRef","fixedSizeContainerRef","fullscreenModeRef","fullscreenModalModeRef","isAppMaximized","queryString","parse","search","id","isAppMaximizedRef","current","_useState","useState","getUserUnits","_useState2","_slicedToArray","userUnits","setUserUnits","useEffect","unsubscribeFn","subscribeForUserUnitsUpdates","newUserUnits","appContextValue","useContext","AppContext","permissionsContextValue","usePermissionsContext","handleAppFullscreenTransparentModeExit","appId","isModeEnabled","document","body","classList","remove","styles","compensateScroll","setIsFullscreenModalMode","useCallback","nextIsFullscreenModalModeValue","_containerRef$current2","_containerRef$current4","_containerRef$current5","_containerRef$current6","_appIframeDocument$cu","isModal","_containerRef$current","add","containerMaximizedTransparentModal","_containerRef$current3","classesEditMethod","containerMaximizedTransparent","querySelector","APP_IFRAME_ATTRIBUTE","contentWindow","isolatedPageAppContainer","getElementById","ISOLATED_PAGE_APP_CONTAINER_ID","_fixedSizeContainerRe","getBoundingClientRect","top","left","width","height","setAttribute","isBodyScrollVisible","window","innerWidth","clientWidth","setContainerRefs","node","_jsx","className","classNames","fixedSizeContainer","ref","children","jsx","onMouseEnter","onMouseLeave","PAGE_NAME","name","container","isInsideNewMobileApp","newMobileAppContainer","containerMaximized","_objectSpread","globalNotificationToastsAPI","Symbol","for","globalMixpanelEventTracker","propTypes","PropTypes","shape","number","string","isRequired","currentUser","bool","func","onAppRemove","onSettingChange","onSettingsChange","updateCurrentDashboardAppLastAnnotation","defaultProps","noop","undefined","DevCenterIsolatedApp","withRouter"],"mappings":"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"}
|
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/objectWithoutProperties"),o=require("react"),r=require("prop-types"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/objectWithoutProperties"),o=require("react"),r=require("prop-types"),i=require("@material-ui/core"),n=require("classnames"),t=require("moment-timezone"),c=require("react-router-dom"),u=require("./effects/useXProps.js"),a=require("./constants.js"),l=require("./utils/replaceUndefinedValuesWithNull.js"),p=require("./utils/dashboardCapturing.js"),d=require("../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js"),m=require("../DevCenterAppContainer/DevCenterAppContainer.js"),j=require("react/jsx-runtime");require("@icon-park/react/es/all");var q=require("../../../icons/IconParkProvider.js");require("../../../icons/customIcons/icons/AddMessage.js"),require("../../../icons/customIcons/icons/Attention.js"),require("../../../icons/customIcons/icons/Collapse.js"),require("../../../icons/customIcons/icons/Dashboard.js"),require("../../../icons/customIcons/icons/Expand.js"),require("../../../icons/customIcons/icons/FolderClosed.js"),require("../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../icons/customIcons/icons/FolderOpened.js"),require("../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../icons/customIcons/icons/Search.js"),require("../../../icons/customIcons/icons/SearchOne.js"),require("../../../icons/customIcons/icons/Wellhub.js"),require("../../../icons/customIcons/icons/MultiRuler.js"),require("../../../icons/customIcons/icons/Checkbox.js"),require("../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../icons/customIcons/icons/Radio.js"),require("../../../icons/customIcons/icons/RadioChecked.js"),require("../../../icons/customIcons/icons/SimulFrac.js"),require("../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../icons/customIcons/icons/CautionFilled.js"),require("../../../icons/customIcons/icons/MoreApp.js"),require("../../../icons/customIcons/icons/Pad.js"),require("../../../icons/customIcons/icons/DrilloutUnit.js"),require("../../../icons/customIcons/icons/FracFleet.js"),require("../../../icons/customIcons/icons/Global.js"),require("../../../icons/customIcons/icons/Program.js"),require("../../../icons/customIcons/icons/Rig.js"),require("../../../icons/customIcons/icons/Well.js"),require("../../../icons/customIcons/icons/Gap.js"),require("../../../icons/customIcons/icons/Pin.js"),require("../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../icons/customIcons/icons/Archive.js"),require("../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../icons/customIcons/icons/Unarchive.js"),require("../../../icons/customIcons/icons/Archived.js"),require("../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../icons/customIcons/icons/CloudDelete.js"),require("../../../icons/customIcons/icons/Lasso.js"),require("../../../icons/customIcons/icons/Radius.js");var I=require("../../../hocs/withMUIProvidersHOC.js");require("../../../hocs/withAssetEditorLockHOC.js");var f=require("../AppContext.js"),C=require("../../../constants/theme.js"),h=require("../../../CLI/hocs/constants.js"),g=require("../../../utils/themeVariables.js"),b=require("../../../CLI/hocs/utils.js"),v=require("../../../permissions/PermissionsContext.js"),P=require("../../../utils/index.js");function A(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../styles/iconPark.global.css.js"),require("../../../styles/index.global.css.js"),require("../../../styles/reactVirtualized.global.css.js"),require("../../../styles/emojiMart.global.css.js"),require("../../../styles/mapbox.global.css.js"),require("../../../styles/lightbox.global.css.js"),require("../../../styles/generatedThemesVariables.global.css.js"),require("../../../styles/customScrollbars.global.css.js");var E=A(e),x=A(s),y=A(r),O=A(n),S=A(t),L=["appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException"];function D(e,s){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);s&&(r=r.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),o.push.apply(o,r)}return o}function w(e){for(var s=1;s<arguments.length;s++){var o=null!=arguments[s]?arguments[s]:{};s%2?D(Object(o),!0).forEach((function(s){E.default(e,s,o[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):D(Object(o)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(o,s))}))}return e}var k=I(m),R=i.makeStyles((function(){return{"@global":{body:{backgroundColor:"transparent",overflow:"hidden"}}}}));function T(e){var s,r,i,n,t,m,I=e.CLIAppComponent,A=e.CLIAppSettings,E=e.containerReportClassName;R();var y=u.useXProps(),D=y.appContextValue,T=y.globalMixpanelEventTracker,M=y.globalNotificationToastsAPI,F=y.onSettingChange,U=y.onSettingsChange,V=y.permissionsContextValue,N=y.timezone,H=y.userUnits,_=y.trackApiRateLimiterException,G=x.default(y,L),W=G.location.pathname.startsWith("/reports/")||b.isPDFReportView,z=null==G||null===(s=G.app)||void 0===s?void 0:s.id,K=localStorage.getItem(h.LOCAL_STORAGE_APP_THEME_KEY)||(null===(r=G.currentUser)||void 0===r||null===(i=r.settings)||void 0===i||null===(n=i.uiSettings)||void 0===n?void 0:n.theme)||C.THEMES.DARK,X=!W&&K!==C.THEMES.LIGHT;o.useEffect((function(){g.setThemeVariables(X)}),[X]),o.useEffect((function(){window[Symbol.for("notificationToasts")]=M,window[Symbol.for("logToMixpanel")]=T,window[Symbol.for("corvaAPI.rateLimiterReport")]=_}),[M,T,_]);var Y=o.useRef(!0);return(Y.current||W)&&(Y.current=!1,P.updateUserUnits({userUnits:H})),o.useEffect((function(){return N&&S.default.tz.setDefault(N),function(){return S.default.tz.setDefault(null)}}),[N]),o.useEffect((function(){var e=p.getDashboardCapturingHandler(z);return window.addEventListener("message",e),function(){return window.removeEventListener("message",e)}}),[z]),j.jsx(c.MemoryRouter,{initialEntries:[((null===(t=G.location)||void 0===t?void 0:t.pathname)||"/")+((null===(m=G.location)||void 0===m?void 0:m.search)||"")],children:j.jsx(v.PermissionsContext.Provider,{value:V,children:j.jsx(f.Provider,{value:D,children:j.jsx(d.IsInsideIsolatedDcAppProvider,{value:!0,children:j.jsx(q.IconParkProvider,{children:j.jsx("div",{id:a.ISOLATED_PAGE_APP_CONTAINER_ID,className:O.default(W&&E),children:j.jsx(k,w(w({},G),{},{theme:X?C.THEMES.DARK:C.THEMES.LIGHT,onSettingsChange:function(e){return U(l.replaceUndefinedValuesWithNull(e))},onSettingChange:function(e,s){return F(e,l.replaceUndefinedValuesWithNull(s))},CLIAppComponent:I,CLIAppSettings:A,trackApiRateLimiterException:_}))})})})})})})}T.propTypes={CLIAppComponent:y.default.func,CLIAppSettings:y.default.func,containerReportClassName:y.default.string},T.defaultProps={CLIAppComponent:null,CLIAppSettings:null,containerReportClassName:null},exports.DevCenterIsolatedAppPage=T;
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedAppPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { useXProps } from './effects/useXProps';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\n\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IconParkProvider } from '~/icons';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { THEMES } from '~/constants/theme';\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { setThemeVariables } from '~/utils/themeVariables';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport { updateUserUnits } from '~/utils';\nimport '~/styles/globalStyles';\n\nconst DevCenterAppContainerWithMUI = withMUIProvidersHOC(DevCenterAppContainer);\n\n/**\n * It's important to keep these global styles in js, to apply only\n * when the component is actually used, if moved to CSS - they'll be\n * applied to whatever somehow imports the code\n */\nconst useStyles = makeStyles(() => ({\n '@global': {\n body: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n },\n}));\n\n/**\n * Root component that is rendered inside of app's iframe.\n * Receives CLIAppComponent, CLIAppSettings when used\n * in local development\n */\nexport function DevCenterIsolatedAppPage({\n CLIAppComponent,\n CLIAppSettings,\n containerReportClassName,\n}) {\n useStyles();\n\n const {\n appContextValue,\n globalMixpanelEventTracker,\n globalNotificationToastsAPI,\n onSettingChange,\n onSettingsChange,\n permissionsContextValue,\n timezone,\n userUnits,\n ...xProps\n } = useXProps();\n const isReportsPage = xProps.location.pathname.startsWith('/reports/') || isPDFReportView;\n const appId = xProps?.app?.id;\n\n // Force light theme for PDF reports view\n const selectedTheme =\n localStorage.getItem(LOCAL_STORAGE_APP_THEME_KEY) ||\n xProps.currentUser?.settings?.uiSettings?.theme ||\n THEMES.DARK;\n const isDarkTheme = !isReportsPage && selectedTheme !== THEMES.LIGHT;\n\n useEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n useEffect(() => {\n window[Symbol.for('notificationToasts')] = globalNotificationToastsAPI;\n window[Symbol.for('logToMixpanel')] = globalMixpanelEventTracker;\n }, [globalNotificationToastsAPI, globalMixpanelEventTracker]);\n\n const isFirstRenderRef = useRef(true);\n if (isFirstRenderRef.current || isReportsPage) {\n isFirstRenderRef.current = false;\n updateUserUnits({ userUnits });\n }\n\n useEffect(() => {\n if (timezone) moment.tz.setDefault(timezone);\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n useEffect(() => {\n const dashboardCapturingHandler = getDashboardCapturingHandler(appId);\n window.addEventListener('message', dashboardCapturingHandler);\n return () => window.removeEventListener('message', dashboardCapturingHandler);\n }, [appId]);\n\n return (\n <MemoryRouter\n initialEntries={[(xProps.location?.pathname || '/') + (xProps.location?.search || '')]}\n >\n <PermissionsContext.Provider value={permissionsContextValue}>\n <AppContext.Provider value={appContextValue}>\n <IsInsideIsolatedDcAppProvider value>\n <IconParkProvider>\n <div\n id={ISOLATED_PAGE_APP_CONTAINER_ID}\n className={classNames(isReportsPage && containerReportClassName)}\n >\n <DevCenterAppContainerWithMUI\n {...xProps}\n theme={isDarkTheme ? THEMES.DARK : THEMES.LIGHT}\n // zoid serializes passed arguments using JSON.stringify.\n // All undefined values are removed as they are not valid JSON values\n // so we replace undefined values with null to not drop them\n // Any future cb function that passes arbitrary objects as args\n // also should be wrapped in this mapper\n // ⚠️⚠️⚠️ When refactoring this to referentially stable callbacks, remove `useStableCallback` from\n // /src/componentsV2/AppCommonsProvider/AppCommonsProvider.tsx\n onSettingsChange={nextSettings =>\n onSettingsChange(replaceUndefinedValuesWithNull(nextSettings))\n }\n onSettingChange={(key, value) =>\n onSettingChange(key, replaceUndefinedValuesWithNull(value))\n }\n CLIAppComponent={CLIAppComponent}\n CLIAppSettings={CLIAppSettings}\n />\n </div>\n </IconParkProvider>\n </IsInsideIsolatedDcAppProvider>\n </AppContext.Provider>\n </PermissionsContext.Provider>\n </MemoryRouter>\n );\n}\n\nDevCenterIsolatedAppPage.propTypes = {\n CLIAppComponent: PropTypes.func,\n CLIAppSettings: PropTypes.func,\n containerReportClassName: PropTypes.string,\n};\n\nDevCenterIsolatedAppPage.defaultProps = {\n CLIAppComponent: null,\n CLIAppSettings: null,\n containerReportClassName: null,\n};\n"],"names":["DevCenterAppContainerWithMUI","withMUIProvidersHOC","DevCenterAppContainer","useStyles","makeStyles","body","backgroundColor","overflow","DevCenterIsolatedAppPage","_ref","_xProps$app","_xProps$currentUser","_xProps$currentUser$s","_xProps$currentUser$s2","_xProps$location","_xProps$location2","CLIAppComponent","CLIAppSettings","containerReportClassName","_useXProps","useXProps","appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","xProps","_objectWithoutProperties","_excluded","isReportsPage","location","pathname","startsWith","isPDFReportView","appId","app","id","selectedTheme","localStorage","getItem","LOCAL_STORAGE_APP_THEME_KEY","currentUser","settings","uiSettings","theme","THEMES","DARK","isDarkTheme","LIGHT","useEffect","setThemeVariables","window","Symbol","for","isFirstRenderRef","useRef","current","updateUserUnits","moment","tz","setDefault","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","search","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","jsx","ISOLATED_PAGE_APP_CONTAINER_ID","className","classNames","_objectSpread","nextSettings","replaceUndefinedValuesWithNull","key","propTypes","PropTypes","func","string","defaultProps"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { useXProps } from './effects/useXProps';\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\n\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IconParkProvider } from '~/icons';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport { THEMES } from '~/constants/theme';\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { setThemeVariables } from '~/utils/themeVariables';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport { updateUserUnits } from '~/utils';\nimport '~/styles/globalStyles';\n\nconst DevCenterAppContainerWithMUI = withMUIProvidersHOC(DevCenterAppContainer);\n\n/**\n * It's important to keep these global styles in js, to apply only\n * when the component is actually used, if moved to CSS - they'll be\n * applied to whatever somehow imports the code\n */\nconst useStyles = makeStyles(() => ({\n '@global': {\n body: {\n backgroundColor: 'transparent',\n overflow: 'hidden',\n },\n },\n}));\n\n/**\n * Root component that is rendered inside of app's iframe.\n * Receives CLIAppComponent, CLIAppSettings when used\n * in local development\n */\nexport function DevCenterIsolatedAppPage({\n CLIAppComponent,\n CLIAppSettings,\n containerReportClassName,\n}) {\n useStyles();\n\n const {\n appContextValue,\n globalMixpanelEventTracker,\n globalNotificationToastsAPI,\n onSettingChange,\n onSettingsChange,\n permissionsContextValue,\n timezone,\n userUnits,\n trackApiRateLimiterException,\n ...xProps\n } = useXProps();\n const isReportsPage = xProps.location.pathname.startsWith('/reports/') || isPDFReportView;\n const appId = xProps?.app?.id;\n\n // Force light theme for PDF reports view\n const selectedTheme =\n localStorage.getItem(LOCAL_STORAGE_APP_THEME_KEY) ||\n xProps.currentUser?.settings?.uiSettings?.theme ||\n THEMES.DARK;\n const isDarkTheme = !isReportsPage && selectedTheme !== THEMES.LIGHT;\n\n useEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n useEffect(() => {\n window[Symbol.for('notificationToasts')] = globalNotificationToastsAPI;\n window[Symbol.for('logToMixpanel')] = globalMixpanelEventTracker;\n window[Symbol.for('corvaAPI.rateLimiterReport')] = trackApiRateLimiterException;\n }, [globalNotificationToastsAPI, globalMixpanelEventTracker, trackApiRateLimiterException]);\n\n const isFirstRenderRef = useRef(true);\n if (isFirstRenderRef.current || isReportsPage) {\n isFirstRenderRef.current = false;\n updateUserUnits({ userUnits });\n }\n\n useEffect(() => {\n if (timezone) moment.tz.setDefault(timezone);\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n useEffect(() => {\n const dashboardCapturingHandler = getDashboardCapturingHandler(appId);\n window.addEventListener('message', dashboardCapturingHandler);\n return () => window.removeEventListener('message', dashboardCapturingHandler);\n }, [appId]);\n\n return (\n <MemoryRouter\n initialEntries={[(xProps.location?.pathname || '/') + (xProps.location?.search || '')]}\n >\n <PermissionsContext.Provider value={permissionsContextValue}>\n <AppContext.Provider value={appContextValue}>\n <IsInsideIsolatedDcAppProvider value>\n <IconParkProvider>\n <div\n id={ISOLATED_PAGE_APP_CONTAINER_ID}\n className={classNames(isReportsPage && containerReportClassName)}\n >\n <DevCenterAppContainerWithMUI\n {...xProps}\n theme={isDarkTheme ? THEMES.DARK : THEMES.LIGHT}\n // zoid serializes passed arguments using JSON.stringify.\n // All undefined values are removed as they are not valid JSON values\n // so we replace undefined values with null to not drop them\n // Any future cb function that passes arbitrary objects as args\n // also should be wrapped in this mapper\n // ⚠️⚠️⚠️ When refactoring this to referentially stable callbacks, remove `useStableCallback` from\n // /src/componentsV2/AppCommonsProvider/AppCommonsProvider.tsx\n onSettingsChange={nextSettings =>\n onSettingsChange(replaceUndefinedValuesWithNull(nextSettings))\n }\n onSettingChange={(key, value) =>\n onSettingChange(key, replaceUndefinedValuesWithNull(value))\n }\n CLIAppComponent={CLIAppComponent}\n CLIAppSettings={CLIAppSettings}\n trackApiRateLimiterException={trackApiRateLimiterException}\n />\n </div>\n </IconParkProvider>\n </IsInsideIsolatedDcAppProvider>\n </AppContext.Provider>\n </PermissionsContext.Provider>\n </MemoryRouter>\n );\n}\n\nDevCenterIsolatedAppPage.propTypes = {\n CLIAppComponent: PropTypes.func,\n CLIAppSettings: PropTypes.func,\n containerReportClassName: PropTypes.string,\n};\n\nDevCenterIsolatedAppPage.defaultProps = {\n CLIAppComponent: null,\n CLIAppSettings: null,\n containerReportClassName: null,\n};\n"],"names":["DevCenterAppContainerWithMUI","withMUIProvidersHOC","DevCenterAppContainer","useStyles","makeStyles","body","backgroundColor","overflow","DevCenterIsolatedAppPage","_ref","_xProps$app","_xProps$currentUser","_xProps$currentUser$s","_xProps$currentUser$s2","_xProps$location","_xProps$location2","CLIAppComponent","CLIAppSettings","containerReportClassName","_useXProps","useXProps","appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException","xProps","_objectWithoutProperties","_excluded","isReportsPage","location","pathname","startsWith","isPDFReportView","appId","app","id","selectedTheme","localStorage","getItem","LOCAL_STORAGE_APP_THEME_KEY","currentUser","settings","uiSettings","theme","THEMES","DARK","isDarkTheme","LIGHT","useEffect","setThemeVariables","window","Symbol","for","isFirstRenderRef","useRef","current","updateUserUnits","moment","tz","setDefault","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","search","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","jsx","ISOLATED_PAGE_APP_CONTAINER_ID","className","classNames","_objectSpread","nextSettings","replaceUndefinedValuesWithNull","key","propTypes","PropTypes","func","string","defaultProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("@babel/runtime/helpers/slicedToArray"),t=require("react/jsx-runtime"),n=require("react"),i=require("classnames"),s=require("lodash"),o=require("../AppCommonsProvider/AppCommonsContext.js"),a=require("../AppSizeProvider/AppSizeProvider.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("@babel/runtime/helpers/slicedToArray"),t=require("react/jsx-runtime"),n=require("react"),i=require("classnames"),s=require("lodash"),o=require("../AppCommonsProvider/AppCommonsContext.js"),a=require("../AppSizeProvider/AppSizeProvider.js"),d=require("../AppSettings/AppSettingsPinningContext.js"),c=require("../utils.js"),u=require("./AppContainer.constants.js"),l=require("./Content.js"),p=require("./AppContainer.scss.js");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=f(e),b=f(r),m=f(i);function v(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function h(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?v(Object(t),!0).forEach((function(r){j.default(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):v(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}var P=n.forwardRef((function(e,r){var i=e.footer,f=e.testId,j=e.className,v=e.header,P=e.children,g=e.elementsClassNames,O=e.settingsInitiallyPinned,y=e.settingsPinningEnabled,A=n.useState(),C=b.default(A,2),q=C[0],x=C[1],w=n.useRef(null);n.useEffect((function(){var e=s.debounce((function(){requestAnimationFrame((function(){if(w.current){var e=w.current,r=e.clientWidth,t=e.clientHeight;x({width:r,height:t})}}))}),200,{leading:!0}),r=new ResizeObserver(e);return w.current&&r.observe(w.current),function(){r.disconnect(),e.cancel()}}),[]);var S=o.useAppCommons(),z=S.maximized,E=S.appHeadersV3Enabled;return t.jsx("div",h(h({className:m.default(p.root,j),"data-testid":f,ref:r},c.AppContainerFinderProps),{},{children:t.jsx(a.AppSizeContext.Provider,{value:q,children:t.jsxs(d.AppSettingsPinningProvider,{initiallyPinned:O,pinningEnabled:y,children:[v&&t.jsx("div",{className:m.default(p.header,z&&!E&&p.headerMaximized,null==g?void 0:g.header),"data-testid":u.AppContainerTestIds.HeaderTestId,children:v}),t.jsx(l.Content,{dimensions:q,className:null==g?void 0:g.content,ref:w,children:P}),i&&!E&&t.jsx("div",{className:m.default(p.footer,null==g?void 0:g.footer),"data-testid":u.AppContainerTestIds.FooterTestId,children:i})]})})}))}));exports.AppContainer=P;
|
|
2
2
|
//# sourceMappingURL=AppContainer.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("classnames"),t=require("react"),a=require("lodash"),i=require("../Header/Header.js"),d=require("../TextEndTruncated/TextEndTruncated.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("classnames"),t=require("react"),a=require("lodash"),i=require("../Header/Header.js"),d=require("../TextEndTruncated/TextEndTruncated.js"),o=require("../../utils/devcenter.js"),n=require("../../constants/segment.js"),r=require("../AppCommonsProvider/AppCommonsContext.js"),l=require("./AppBadge/AppBadge.js"),p=require("./AppAssets/AppAssets.js"),c=require("./PadMode/PadMode.js"),u=require("./AppHeader.constants.js"),m=require("./V3/AppHeaderV3.js"),g=require("./AppHeader.scss.js");function A(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=A(s);exports.AppHeader=function(s){var A=s.className,j=s.testId,h=s.logo,v=s.children,x=s.padModeDisabled,f=s.padModeWells,N=s.onPadModeChange,q=s.elementsClassNames,M=s.title,S=s.asset,T=s.dqData,H=s.lastUpdate,b=s.additionalActions,w=s.showComments,P=s.titleControls,E=s.titleControlsPosition,I=void 0===E?"right":E,y=s.disableSettings,B=s.showAssetChips,D=void 0===B||B,V=s.additionalControls,O=s.rightSideContent,F=s.disableAssetSelector,L=s.titleMenuActions,U=s.responsivenessConfig,W=r.useAppCommons(),_=W.app,G=W.well,k=W.fracFleet,z=W.wells,J=W.onSettingChange,K=W.appSettings,Q=void 0===K?{}:K,R=W.appHeadersV3Enabled,X=W.appName,Y=f||z,Z=o.getAppSegment(_),$=!(x||Z!==n.SEGMENTS.COMPLETION||G||a.isEmpty(Y)||!k),ee=t.useMemo((function(){return N?function(e,s){return N(s)}:J}),[N,J]);return R?e.jsx(m.AppHeaderV3,{testId:j,className:A,elementsClassNames:q,logo:h,title:M,padModeDisabled:x,padModeWells:f,asset:S,dqData:T,lastUpdate:H,additionalActions:b,showComments:w,titleControls:P,disableSettings:y,showAssetChips:D,additionalControls:V||v,disableAssetSelector:F,titleMenuActions:L,titleControlsPosition:I,responsivenessConfig:U}):e.jsxs("div",{className:C.default(g.root,A),"data-testid":j,children:[e.jsxs(i.Header,{className:C.default(g.logoTitleBadgeContainer,null==q?void 0:q.title),appearance:"appName",children:[h&&e.jsx("div",{className:g.logoContainer,children:"string"==typeof h?e.jsx("img",{className:g.logo,src:h,alt:"Logo"}):h}),e.jsx(d.TextEndTruncated,{className:g.appName,testId:u.AppHeaderTestIds.AppTitleTestId,children:M||X}),e.jsx(l.AppBadge,{app:_})]}),(v||V||$)&&e.jsxs("div",{className:C.default(g.additional,null==q?void 0:q.additional),children:[$&&e.jsx(c.PadMode,{app:_,appSettings:Q,fracFleet:k,onSettingChange:ee,well:G,wells:Y}),V||v]}),e.jsx("div",{className:C.default(g.assetChips,null==q?void 0:q.chips),children:e.jsx(p.AppAssets,{forceNarrow:$||!!v})}),O&&e.jsx("div",{className:g.rightSideContent,children:O})]})};
|
|
2
2
|
//# sourceMappingURL=AppHeader.js.map
|