@corva/ui 3.61.0-3 → 3.61.0-4
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/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js.map +1 -1
- package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/effects/useXProps.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/components/DevCenter/IsolatedDevCenterAppContainer/effects/useXProps.d.ts +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/effects/useXProps.d.ts.map +1 -1
- package/components/DevCenter/IsolatedDevCenterAppContainer/effects/useXProps.js.map +1 -1
- package/mcp-server/server.mjs +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
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("@material-ui/core"),i=require("classnames"),r=require("moment-timezone"),n=require("prop-types"),c=require("react"),t=require("react-router-dom"),u=require("./constants.js"),a=require("./effects/useXProps.js"),l=require("./utils/dashboardCapturing.js"),p=require("./utils/replaceUndefinedValuesWithNull.js"),m=require("../../../CLI/hocs/constants.js"),j=require("../../../CLI/hocs/utils.js");require("uuid"),require("lodash"),require("@babel/runtime/helpers/toConsumableArray"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../clients/jsonApi/index.js"),require("../../../clients/subscriptions/constants.js"),require("../../../clients/subscriptions.v1.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js");var q=require("../../../clients/api/rateLimiter.js"),d=require("../AppContext.js"),I=require("../DevCenterAppContainer/DevCenterAppContainer.js"),C=require("../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js"),f=require("../../../constants/theme.js"),b=require("../../../hocs/withMUIProvidersHOC.js");require("../../../hocs/withAssetEditorLockHOC.js");var h=require("react/jsx-runtime");require("@icon-park/react/es/all");var g=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"),require("../../../icons/customIcons/icons/ErrorOps.js"),require("../../../icons/customIcons/icons/DataTypeOps.js"),require("../../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../../icons/customIcons/icons/CalibrationOps.js"),require("../../../icons/customIcons/icons/CriticalOps.js"),require("../../../icons/customIcons/icons/Company.js"),require("../../../icons/customIcons/icons/ArchiveOne.js"),require("../../../icons/customIcons/icons/ParseBotFusion.js"),require("../../../icons/customIcons/icons/Connect.js"),require("../../../icons/customIcons/icons/PuzzleOne.js"),require("../../../icons/customIcons/icons/Feed.js"),require("../../../icons/customIcons/icons/Prompt.js"),require("../../../icons/customIcons/icons/Companies.js"),require("../../../icons/customIcons/icons/ClipboardAi.js"),require("../../../icons/customIcons/icons/Key.js"),require("../../../icons/customIcons/icons/AtSignCrossed.js"),require("../../../icons/customIcons/icons/MappingManual.js"),require("../../../icons/customIcons/icons/Mapping.js"),require("../../../icons/customIcons/icons/Metrics.js"),require("../../../icons/customIcons/icons/Drops.js"),require("../../../icons/customIcons/icons/ClipboardSearch.js"),require("../../../icons/customIcons/icons/Template.js"),require("../../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../../icons/customIcons/icons/UnitConversion.js"),require("../../../icons/customIcons/icons/NPT.js");var v=require("../../../permissions/PermissionsContext.js");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
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/objectWithoutProperties"),o=require("@material-ui/core"),i=require("classnames"),r=require("moment-timezone"),n=require("prop-types"),c=require("react"),t=require("react-router-dom"),u=require("./constants.js"),a=require("./effects/useXProps.js"),l=require("./utils/dashboardCapturing.js"),p=require("./utils/replaceUndefinedValuesWithNull.js"),m=require("../../../CLI/hocs/constants.js"),j=require("../../../CLI/hocs/utils.js");require("uuid"),require("lodash"),require("@babel/runtime/helpers/toConsumableArray"),require("lodash/set"),require("lodash/get"),require("lodash/unset"),require("moment"),require("../../../clients/jsonApi/index.js"),require("../../../clients/subscriptions/constants.js"),require("../../../clients/subscriptions.v1.js"),require("../../../clients/subscriptions/subscriptions-client.factory.js"),require("../../../clients/api/apiCore.js"),require("../../../clients/constants.js"),require("../../../clients/sso/auth0.js"),require("../../../clients/sso/oauth2.js");var q=require("../../../clients/api/rateLimiter.js"),d=require("../AppContext.js"),I=require("../DevCenterAppContainer/DevCenterAppContainer.js"),C=require("../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js"),f=require("../../../constants/theme.js"),b=require("../../../hocs/withMUIProvidersHOC.js");require("../../../hocs/withAssetEditorLockHOC.js");var h=require("react/jsx-runtime");require("@icon-park/react/es/all");var g=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"),require("../../../icons/customIcons/icons/ErrorOps.js"),require("../../../icons/customIcons/icons/DataTypeOps.js"),require("../../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../../icons/customIcons/icons/CalibrationOps.js"),require("../../../icons/customIcons/icons/CriticalOps.js"),require("../../../icons/customIcons/icons/Company.js"),require("../../../icons/customIcons/icons/ArchiveOne.js"),require("../../../icons/customIcons/icons/ParseBotFusion.js"),require("../../../icons/customIcons/icons/Connect.js"),require("../../../icons/customIcons/icons/PuzzleOne.js"),require("../../../icons/customIcons/icons/Feed.js"),require("../../../icons/customIcons/icons/Prompt.js"),require("../../../icons/customIcons/icons/Companies.js"),require("../../../icons/customIcons/icons/ClipboardAi.js"),require("../../../icons/customIcons/icons/Key.js"),require("../../../icons/customIcons/icons/AtSignCrossed.js"),require("../../../icons/customIcons/icons/MappingManual.js"),require("../../../icons/customIcons/icons/Mapping.js"),require("../../../icons/customIcons/icons/Metrics.js"),require("../../../icons/customIcons/icons/Drops.js"),require("../../../icons/customIcons/icons/ClipboardSearch.js"),require("../../../icons/customIcons/icons/Template.js"),require("../../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../../icons/customIcons/icons/UnitConversion.js"),require("../../../icons/customIcons/icons/NPT.js");var v=require("../../../permissions/PermissionsContext.js");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 A=require("../../../utils/index.js"),P=require("../../../utils/themeVariables.js");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var E=y(e),O=y(s),L=y(i),x=y(r),S=y(n),D=["appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException"];function T(e,s){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s&&(i=i.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),o.push.apply(o,i)}return o}function R(e){for(var s=1;s<arguments.length;s++){var o=null!=arguments[s]?arguments[s]:{};s%2?T(Object(o),!0).forEach((function(s){E.default(e,s,o[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):T(Object(o)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(o,s))}))}return e}var k=b(I),M=o.makeStyles((function(){return{"@global":{body:{backgroundColor:"transparent",overflow:"hidden"}}}}));function w(e){var s,o,i,r,n,I,b=e.CLIAppComponent,y=e.CLIAppSettings,E=e.containerReportClassName;M();var S=a.useXProps(),T=S.appContextValue,w=S.globalMixpanelEventTracker,F=S.globalNotificationToastsAPI,N=S.onSettingChange,U=S.onSettingsChange,_=S.permissionsContextValue,V=S.timezone,H=S.userUnits,z=S.trackApiRateLimiterException,G=O.default(S,D),W=G.location.pathname.startsWith("/reports/")||j.isPDFReportView,K=null==G||null===(s=G.app)||void 0===s?void 0:s.id,B=localStorage.getItem(m.LOCAL_STORAGE_APP_THEME_KEY)||(null===(o=G.currentUser)||void 0===o||null===(i=o.settings)||void 0===i||null===(r=i.uiSettings)||void 0===r?void 0:r.theme)||f.THEMES.DARK,X=!W&&B!==f.THEMES.LIGHT;c.useLayoutEffect((function(){P.setThemeVariables(X)}),[X]),c.useLayoutEffect((function(){H&&A.updateUserUnits({userUnits:H})}),[H]),c.useLayoutEffect((function(){return V&&x.default.tz.setDefault(V),function(){return x.default.tz.setDefault(null)}}),[V]);var Y=c.useMemo((function(){return H?Object.keys(H).sort().map((function(e){return"".concat(e,":").concat(H[e])})).join("|"):u.ISOLATED_PAGE_APP_CONTAINER_ID}),[H]);return c.useEffect((function(){window[Symbol.for("notificationToasts")]=F,window[Symbol.for("logToMixpanel")]=w,window[Symbol.for("corvaAPI.rateLimiterReport")]=z}),[F,w,z]),c.useEffect((function(){q.apiRequestsRateLimiter.updateConfig(G.apiRateLimiterConfig)}),[G.apiRateLimiterConfig]),c.useEffect((function(){var e=l.getDashboardCapturingHandler(K);return window.addEventListener("message",e),function(){return window.removeEventListener("message",e)}}),[K]),h.jsx(t.MemoryRouter,{initialEntries:[((null===(n=G.location)||void 0===n?void 0:n.pathname)||"/")+((null===(I=G.location)||void 0===I?void 0:I.search)||"")],children:h.jsx(v.PermissionsContext.Provider,{value:_,children:h.jsx(d.Provider,{value:T,children:h.jsx(C.IsInsideIsolatedDcAppProvider,{value:!0,children:h.jsx(g.IconParkProvider,{children:h.jsx("div",{id:u.ISOLATED_PAGE_APP_CONTAINER_ID,className:L.default(W&&E),children:c.createElement(k,R(R({},G),{},{key:Y,theme:X?f.THEMES.DARK:f.THEMES.LIGHT,onSettingsChange:function(e){return U(p.replaceUndefinedValuesWithNull(e))},onSettingChange:function(e,s){return N(e,p.replaceUndefinedValuesWithNull(s))},CLIAppComponent:b,CLIAppSettings:y,trackApiRateLimiterException:z}))})})})})})})}w.propTypes={CLIAppComponent:S.default.func,CLIAppSettings:S.default.func,containerReportClassName:S.default.string},w.defaultProps={CLIAppComponent:null,CLIAppSettings:null,containerReportClassName:null},exports.DevCenterIsolatedAppPage=w;
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedAppPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { useEffect, useLayoutEffect } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { useXProps } from './effects/useXProps';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\n\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { apiRequestsRateLimiter } from '~/clients';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { THEMES } from '~/constants/theme';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport { IconParkProvider } from '~/icons';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport '~/styles/globalStyles';\nimport { updateUserUnits } from '~/utils';\nimport { setThemeVariables } from '~/utils/themeVariables';\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 useLayoutEffect(() => {\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 useEffect(() => {\n apiRequestsRateLimiter.updateConfig(xProps.apiRateLimiterConfig);\n }, [xProps.apiRateLimiterConfig]);\n\n // Apply userUnits before paint so that the first render (including PDF\n // reports) uses the correct unit system. useLayoutEffect runs synchronously\n // after DOM mutations but before the browser paints, and re-runs whenever\n // userUnits changes — fixing the production race where the iframe mounts\n // before the parent has finished loading the dashboard's unit_system.\n useLayoutEffect(() => {\n if (userUnits) {\n updateUserUnits({ userUnits });\n }\n }, [userUnits]);\n\n // Set the timezone before paint so that the first render (including PDF reports) uses the correct timezone.\n useLayoutEffect(() => {\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","useLayoutEffect","setThemeVariables","useEffect","window","Symbol","for","apiRequestsRateLimiter","updateConfig","apiRateLimiterConfig","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":"08NA0BA,IAAMA,EAA+BC,EAAoBC,GAOnDC,EAAYC,EAAUA,YAAC,WAAA,MAAO,CAClC,UAAW,CACTC,KAAM,CACJC,gBAAiB,cACjBC,SAAU,WAGf,IAOM,SAASC,EAIbC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAHDC,IAAAA,gBACAC,IAAAA,eACAC,IAAAA,yBAEAf,IAEA,IAAAgB,EAWIC,EAAAA,YAVFC,IAAAA,gBACAC,IAAAA,2BACAC,IAAAA,4BACAC,IAAAA,gBACAC,IAAAA,iBACAC,IAAAA,wBACAC,IAAAA,SACAC,IAAAA,UACAC,IAAAA,6BACGC,EAAMC,EAAA,QAAAZ,EAAAa,GAELC,EAAgBH,EAAOI,SAASC,SAASC,WAAW,cAAgBC,kBACpEC,EAAQR,SAAA,QAAAA,EAAAA,EAAQS,WAAR,IAAA7B,OAAAoB,EAAApB,EAAa8B,GAGrBC,EACJC,aAAaC,QAAQC,EAA2BA,uCAChDd,EAAAA,EAAOe,0BAAP,UAAAlC,EAAoBmC,gBAApB,IAAAlC,GAAwC,QAAxCC,EAAAD,EAA8BmC,kBAAU,IAAAlC,SAAxCA,EAA0CmC,QAC1CC,EAAMA,OAACC,KACHC,GAAelB,GAAiBQ,IAAkBQ,EAAAA,OAAOG,MAuC/D,OArCAC,EAAAA,iBAAgB,WACdC,EAAiBA,kBAACH,EACpB,GAAG,CAACA,IAEJI,EAAAA,WAAU,WACRC,OAAOC,OAAOC,IAAI,uBAAyBnC,EAC3CiC,OAAOC,OAAOC,IAAI,kBAAoBpC,EACtCkC,OAAOC,OAAOC,IAAI,+BAAiC7B,CACpD,GAAE,CAACN,EAA6BD,EAA4BO,IAE7D0B,EAAAA,WAAU,WACRI,EAAAA,uBAAuBC,aAAa9B,EAAO+B,qBAC7C,GAAG,CAAC/B,EAAO+B,uBAOXR,EAAAA,iBAAgB,WACVzB,GACFkC,kBAAgB,CAAElC,UAAAA,GAEtB,GAAG,CAACA,IAGJyB,EAAAA,iBAAgB,WAEd,OADI1B,GAAUoC,EAAM,QAACC,GAAGC,WAAWtC,GAC5B,WAAA,OAAMoC,UAAOC,GAAGC,WAAW,KAAK,CACzC,GAAG,CAACtC,IAEJ4B,EAAAA,WAAU,WACR,IAAMW,EAA4BC,+BAA6B7B,GAE/D,OADAkB,OAAOY,iBAAiB,UAAWF,GAC5B,WAAA,OAAMV,OAAOa,oBAAoB,UAAWH,EAA0B,CAC/E,GAAG,CAAC5B,IAGFgC,EAAAA,IAACC,EAAAA,aAAY,CACXC,eAAgB,GAAE,QAAA1D,EAAAgB,EAAOI,gBAAP,IAAApB,OAAA,EAAAA,EAAiBqB,WAAY,OAAuB,QAAfpB,EAAAe,EAAOI,gBAAQ,IAAAnB,OAAA,EAAfA,EAAiB0D,SAAU,KAAKC,SAEvFJ,EAAAA,IAACK,EAAkBA,mBAACC,SAAQ,CAACC,MAAOnD,EAAwBgD,SAC1DJ,EAAAA,IAACQ,EAAWF,SAAQ,CAACC,MAAOxD,EAAgBqD,SAC1CJ,MAACS,gCAA6B,CAACF,OAAK,EAAAH,SAClCJ,MAACU,mBAAgB,CAAAN,SACfJ,EAAAW,IAAA,MAAA,CACEzC,GAAI0C,EAA+BA,+BACnCC,UAAWC,EAAAA,QAAWnD,GAAiBf,GAA0BwD,SAEjEJ,EAAAA,IAACtE,EAA4BqF,EAAAA,EAAA,GACvBvD,GAAM,GAAA,CACVkB,MAAOG,EAAcF,EAAAA,OAAOC,KAAOD,EAAMA,OAACG,MAQ1C3B,iBAAkB,SAAA6D,GAAY,OAC5B7D,EAAiB8D,EAAAA,+BAA+BD,GACjD,EACD9D,gBAAiB,SAACgE,EAAKX,GAAK,OAC1BrD,EAAgBgE,EAAKD,iCAA+BV,GACrD,EACD7D,gBAAiBA,EACjBC,eAAgBA,EAChBY,6BAA8BA,gBAShD,CAEArB,EAAyBiF,UAAY,CACnCzE,gBAAiB0E,EAAS,QAACC,KAC3B1E,eAAgByE,EAAS,QAACC,KAC1BzE,yBAA0BwE,EAAS,QAACE,QAGtCpF,EAAyBqF,aAAe,CACtC7E,gBAAiB,KACjBC,eAAgB,KAChBC,yBAA0B"}
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { useEffect, useLayoutEffect, useMemo } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { useXProps } from './effects/useXProps';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\n\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { apiRequestsRateLimiter } from '~/clients';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { THEMES } from '~/constants/theme';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport { IconParkProvider } from '~/icons';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport '~/styles/globalStyles';\nimport { updateUserUnits } from '~/utils';\nimport { setThemeVariables } from '~/utils/themeVariables';\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 useLayoutEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n // Apply userUnits and/or timezone before paint so that the first render\n // (including PDF reports) uses the correct unit system.\n // useLayoutEffect runs synchronously after DOM mutations but before the browser paints,\n // and re-runs whenever userUnits changes — fixing the production race where the iframe mounts\n // before the parent has finished loading the dashboard's unit_system.\n useLayoutEffect(() => {\n if (userUnits) {\n updateUserUnits({ userUnits });\n }\n }, [userUnits]);\n\n useLayoutEffect(() => {\n if (timezone) {\n moment.tz.setDefault(timezone);\n }\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n // Stable, order-independent signature of userUnits used as the React key\n // to remount the DC app tree when the unit system actually changes.\n const appContainerKey = useMemo(() => {\n if (!userUnits) return ISOLATED_PAGE_APP_CONTAINER_ID;\n return Object.keys(userUnits)\n .sort()\n .map(k => `${k}:${userUnits[k]}`)\n .join('|');\n }, [userUnits]);\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 useEffect(() => {\n apiRequestsRateLimiter.updateConfig(xProps.apiRateLimiterConfig);\n }, [xProps.apiRateLimiterConfig]);\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 key={appContainerKey}\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","useLayoutEffect","setThemeVariables","updateUserUnits","moment","tz","setDefault","appContainerKey","useMemo","Object","keys","sort","map","k","concat","join","ISOLATED_PAGE_APP_CONTAINER_ID","useEffect","window","Symbol","for","apiRequestsRateLimiter","updateConfig","apiRateLimiterConfig","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","search","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","jsx","className","classNames","_createElement","_objectSpread","key","nextSettings","replaceUndefinedValuesWithNull","propTypes","PropTypes","func","string","defaultProps"],"mappings":"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"}
|
package/cjs-bundle/components/DevCenter/IsolatedDevCenterAppContainer/effects/useXProps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useXProps.js","sources":[
|
|
1
|
+
{"version":3,"file":"useXProps.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedAppPage.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"names":[],"mappings":"AA0CA;;;;GAIG;AACH;;;;
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedAppPage.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"names":[],"mappings":"AA0CA;;;;GAIG;AACH;;;;gBAqHC;;;;;;;;;;;;;;;;sBAjKqB,YAAY"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/objectWithoutProperties";import{makeStyles as i}from"@material-ui/core";import t from"classnames";import n from"moment-timezone";import c from"prop-types";import{useLayoutEffect as r,useEffect as
|
|
1
|
+
import o from"@babel/runtime/helpers/defineProperty";import s from"@babel/runtime/helpers/objectWithoutProperties";import{makeStyles as i}from"@material-ui/core";import t from"classnames";import n from"moment-timezone";import c from"prop-types";import{useLayoutEffect as r,useMemo as e,useEffect as m,createElement as p}from"react";import{MemoryRouter as a}from"react-router-dom";import{ISOLATED_PAGE_APP_CONTAINER_ID as l}from"./constants.js";import{useXProps as u}from"./effects/useXProps.js";import{getDashboardCapturingHandler as j}from"./utils/dashboardCapturing.js";import{replaceUndefinedValuesWithNull as I}from"./utils/replaceUndefinedValuesWithNull.js";import{LOCAL_STORAGE_APP_THEME_KEY as d}from"../../../CLI/hocs/constants.js";import{isPDFReportView as f}from"../../../CLI/hocs/utils.js";import"uuid";import"lodash";import"@babel/runtime/helpers/toConsumableArray";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../clients/jsonApi/index.js";import"../../../clients/subscriptions/constants.js";import"../../../clients/subscriptions.v1.js";import"../../../clients/subscriptions/subscriptions-client.factory.js";import"../../../clients/api/apiCore.js";import"../../../clients/constants.js";import"../../../clients/sso/auth0.js";import"../../../clients/sso/oauth2.js";import{apiRequestsRateLimiter as C}from"../../../clients/api/rateLimiter.js";import b from"../AppContext.js";import h from"../DevCenterAppContainer/DevCenterAppContainer.js";import{IsInsideIsolatedDcAppProvider as g}from"../DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider/IsInsideIsolatedDcAppProvider.js";import{THEMES as v}from"../../../constants/theme.js";import A from"../../../hocs/withMUIProvidersHOC.js";import"../../../hocs/withAssetEditorLockHOC.js";import{jsx as y}from"react/jsx-runtime";import"@icon-park/react/es/all";import{IconParkProvider as O}from"../../../icons/IconParkProvider.js";import"../../../icons/customIcons/icons/AddMessage.js";import"../../../icons/customIcons/icons/Attention.js";import"../../../icons/customIcons/icons/Collapse.js";import"../../../icons/customIcons/icons/Dashboard.js";import"../../../icons/customIcons/icons/Expand.js";import"../../../icons/customIcons/icons/FolderClosed.js";import"../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../icons/customIcons/icons/FolderOpened.js";import"../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../icons/customIcons/icons/LessOrEqual.js";import"../../../icons/customIcons/icons/Search.js";import"../../../icons/customIcons/icons/SearchOne.js";import"../../../icons/customIcons/icons/Wellhub.js";import"../../../icons/customIcons/icons/MultiRuler.js";import"../../../icons/customIcons/icons/Checkbox.js";import"../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../icons/customIcons/icons/Radio.js";import"../../../icons/customIcons/icons/RadioChecked.js";import"../../../icons/customIcons/icons/SimulFrac.js";import"../../../icons/customIcons/icons/ZipperFrac.js";import"../../../icons/customIcons/icons/CautionFilled.js";import"../../../icons/customIcons/icons/MoreApp.js";import"../../../icons/customIcons/icons/Pad.js";import"../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../icons/customIcons/icons/FracFleet.js";import"../../../icons/customIcons/icons/Global.js";import"../../../icons/customIcons/icons/Program.js";import"../../../icons/customIcons/icons/Rig.js";import"../../../icons/customIcons/icons/Well.js";import"../../../icons/customIcons/icons/Gap.js";import"../../../icons/customIcons/icons/Pin.js";import"../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../icons/customIcons/icons/AttentionFilled.js";import"../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../icons/customIcons/icons/Archive.js";import"../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../icons/customIcons/icons/Unarchive.js";import"../../../icons/customIcons/icons/Archived.js";import"../../../icons/customIcons/icons/InterventionUnit.js";import"../../../icons/customIcons/icons/CloudDelete.js";import"../../../icons/customIcons/icons/Lasso.js";import"../../../icons/customIcons/icons/Radius.js";import"../../../icons/customIcons/icons/ErrorOps.js";import"../../../icons/customIcons/icons/DataTypeOps.js";import"../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../icons/customIcons/icons/CalibrationOps.js";import"../../../icons/customIcons/icons/CriticalOps.js";import"../../../icons/customIcons/icons/Company.js";import"../../../icons/customIcons/icons/ArchiveOne.js";import"../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../icons/customIcons/icons/Connect.js";import"../../../icons/customIcons/icons/PuzzleOne.js";import"../../../icons/customIcons/icons/Feed.js";import"../../../icons/customIcons/icons/Prompt.js";import"../../../icons/customIcons/icons/Companies.js";import"../../../icons/customIcons/icons/ClipboardAi.js";import"../../../icons/customIcons/icons/Key.js";import"../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../icons/customIcons/icons/MappingManual.js";import"../../../icons/customIcons/icons/Mapping.js";import"../../../icons/customIcons/icons/Metrics.js";import"../../../icons/customIcons/icons/Drops.js";import"../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../icons/customIcons/icons/Template.js";import"../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../icons/customIcons/icons/UnitConversion.js";import"../../../icons/customIcons/icons/NPT.js";import{PermissionsContext as P}from"../../../permissions/PermissionsContext.js";import"../../../styles/iconPark.global.css.js";import"../../../styles/index.global.css.js";import"../../../styles/reactVirtualized.global.css.js";import"../../../styles/emojiMart.global.css.js";import"../../../styles/mapbox.global.css.js";import"../../../styles/lightbox.global.css.js";import"../../../styles/generatedThemesVariables.global.css.js";import"../../../styles/customScrollbars.global.css.js";import{updateUserUnits as L}from"../../../utils/index.js";import{setThemeVariables as x}from"../../../utils/themeVariables.js";var S=["appContextValue","globalMixpanelEventTracker","globalNotificationToastsAPI","onSettingChange","onSettingsChange","permissionsContextValue","timezone","userUnits","trackApiRateLimiterException"];function k(o,s){var i=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);s&&(t=t.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),i.push.apply(i,t)}return i}function w(s){for(var i=1;i<arguments.length;i++){var t=null!=arguments[i]?arguments[i]:{};i%2?k(Object(t),!0).forEach((function(i){o(s,i,t[i])})):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(t)):k(Object(t)).forEach((function(o){Object.defineProperty(s,o,Object.getOwnPropertyDescriptor(t,o))}))}return s}var D=A(h),R=i((function(){return{"@global":{body:{backgroundColor:"transparent",overflow:"hidden"}}}}));function E(o){var i,c,h,A,k,E,F=o.CLIAppComponent,M=o.CLIAppSettings,T=o.containerReportClassName;R();var U=u(),z=U.appContextValue,N=U.globalMixpanelEventTracker,V=U.globalNotificationToastsAPI,G=U.onSettingChange,W=U.onSettingsChange,H=U.permissionsContextValue,K=U.timezone,q=U.userUnits,B=U.trackApiRateLimiterException,X=s(U,S),Z=X.location.pathname.startsWith("/reports/")||f,J=null==X||null===(i=X.app)||void 0===i?void 0:i.id,Q=localStorage.getItem(d)||(null===(c=X.currentUser)||void 0===c||null===(h=c.settings)||void 0===h||null===(A=h.uiSettings)||void 0===A?void 0:A.theme)||v.DARK,Y=!Z&&Q!==v.LIGHT;r((function(){x(Y)}),[Y]),r((function(){q&&L({userUnits:q})}),[q]),r((function(){return K&&n.tz.setDefault(K),function(){return n.tz.setDefault(null)}}),[K]);var $=e((function(){return q?Object.keys(q).sort().map((function(o){return"".concat(o,":").concat(q[o])})).join("|"):l}),[q]);return m((function(){window[Symbol.for("notificationToasts")]=V,window[Symbol.for("logToMixpanel")]=N,window[Symbol.for("corvaAPI.rateLimiterReport")]=B}),[V,N,B]),m((function(){C.updateConfig(X.apiRateLimiterConfig)}),[X.apiRateLimiterConfig]),m((function(){var o=j(J);return window.addEventListener("message",o),function(){return window.removeEventListener("message",o)}}),[J]),y(a,{initialEntries:[((null===(k=X.location)||void 0===k?void 0:k.pathname)||"/")+((null===(E=X.location)||void 0===E?void 0:E.search)||"")],children:y(P.Provider,{value:H,children:y(b.Provider,{value:z,children:y(g,{value:!0,children:y(O,{children:y("div",{id:l,className:t(Z&&T),children:p(D,w(w({},X),{},{key:$,theme:Y?v.DARK:v.LIGHT,onSettingsChange:function(o){return W(I(o))},onSettingChange:function(o,s){return G(o,I(s))},CLIAppComponent:F,CLIAppSettings:M,trackApiRateLimiterException:B}))})})})})})})}E.propTypes={CLIAppComponent:c.func,CLIAppSettings:c.func,containerReportClassName:c.string},E.defaultProps={CLIAppComponent:null,CLIAppSettings:null,containerReportClassName:null};export{E as DevCenterIsolatedAppPage};
|
|
2
2
|
//# sourceMappingURL=DevCenterIsolatedAppPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { useEffect, useLayoutEffect } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { useXProps } from './effects/useXProps';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\n\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { apiRequestsRateLimiter } from '~/clients';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { THEMES } from '~/constants/theme';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport { IconParkProvider } from '~/icons';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport '~/styles/globalStyles';\nimport { updateUserUnits } from '~/utils';\nimport { setThemeVariables } from '~/utils/themeVariables';\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 useLayoutEffect(() => {\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 useEffect(() => {\n apiRequestsRateLimiter.updateConfig(xProps.apiRateLimiterConfig);\n }, [xProps.apiRateLimiterConfig]);\n\n // Apply userUnits before paint so that the first render (including PDF\n // reports) uses the correct unit system. useLayoutEffect runs synchronously\n // after DOM mutations but before the browser paints, and re-runs whenever\n // userUnits changes — fixing the production race where the iframe mounts\n // before the parent has finished loading the dashboard's unit_system.\n useLayoutEffect(() => {\n if (userUnits) {\n updateUserUnits({ userUnits });\n }\n }, [userUnits]);\n\n // Set the timezone before paint so that the first render (including PDF reports) uses the correct timezone.\n useLayoutEffect(() => {\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","useLayoutEffect","setThemeVariables","useEffect","window","Symbol","for","apiRequestsRateLimiter","updateConfig","apiRateLimiterConfig","updateUserUnits","moment","tz","setDefault","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","search","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","ISOLATED_PAGE_APP_CONTAINER_ID","className","classNames","_objectSpread","nextSettings","replaceUndefinedValuesWithNull","key","propTypes","PropTypes","func","string","defaultProps"],"mappings":"o5NA0BA,IAAMA,EAA+BC,EAAoBC,GAOnDC,EAAYC,GAAW,WAAA,MAAO,CAClC,UAAW,CACTC,KAAM,CACJC,gBAAiB,cACjBC,SAAU,WAGf,IAOM,SAASC,EAIbC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAHDC,IAAAA,gBACAC,IAAAA,eACAC,IAAAA,yBAEAf,IAEA,IAAAgB,EAWIC,IAVFC,IAAAA,gBACAC,IAAAA,2BACAC,IAAAA,4BACAC,IAAAA,gBACAC,IAAAA,iBACAC,IAAAA,wBACAC,IAAAA,SACAC,IAAAA,UACAC,IAAAA,6BACGC,EAAMC,EAAAZ,EAAAa,GAELC,EAAgBH,EAAOI,SAASC,SAASC,WAAW,cAAgBC,EACpEC,EAAQR,SAAA,QAAAA,EAAAA,EAAQS,WAAR,IAAA7B,OAAAoB,EAAApB,EAAa8B,GAGrBC,EACJC,aAAaC,QAAQC,aACrBd,EAAAA,EAAOe,0BAAP,UAAAlC,EAAoBmC,gBAApB,IAAAlC,GAAwC,QAAxCC,EAAAD,EAA8BmC,kBAAU,IAAAlC,SAAxCA,EAA0CmC,QAC1CC,EAAOC,KACHC,GAAelB,GAAiBQ,IAAkBQ,EAAOG,MAuC/D,OArCAC,GAAgB,WACdC,EAAkBH,EACpB,GAAG,CAACA,IAEJI,GAAU,WACRC,OAAOC,OAAOC,IAAI,uBAAyBnC,EAC3CiC,OAAOC,OAAOC,IAAI,kBAAoBpC,EACtCkC,OAAOC,OAAOC,IAAI,+BAAiC7B,CACpD,GAAE,CAACN,EAA6BD,EAA4BO,IAE7D0B,GAAU,WACRI,EAAuBC,aAAa9B,EAAO+B,qBAC7C,GAAG,CAAC/B,EAAO+B,uBAOXR,GAAgB,WACVzB,GACFkC,EAAgB,CAAElC,UAAAA,GAEtB,GAAG,CAACA,IAGJyB,GAAgB,WAEd,OADI1B,GAAUoC,EAAOC,GAAGC,WAAWtC,GAC5B,WAAA,OAAMoC,EAAOC,GAAGC,WAAW,KAAK,CACzC,GAAG,CAACtC,IAEJ4B,GAAU,WACR,IAAMW,EAA4BC,EAA6B7B,GAE/D,OADAkB,OAAOY,iBAAiB,UAAWF,GAC5B,WAAA,OAAMV,OAAOa,oBAAoB,UAAWH,EAA0B,CAC/E,GAAG,CAAC5B,IAGFgC,EAACC,EAAY,CACXC,eAAgB,GAAE,QAAA1D,EAAAgB,EAAOI,gBAAP,IAAApB,OAAA,EAAAA,EAAiBqB,WAAY,OAAuB,QAAfpB,EAAAe,EAAOI,gBAAQ,IAAAnB,OAAA,EAAfA,EAAiB0D,SAAU,KAAKC,SAEvFJ,EAACK,EAAmBC,SAAQ,CAACC,MAAOnD,EAAwBgD,SAC1DJ,EAACQ,EAAWF,SAAQ,CAACC,MAAOxD,EAAgBqD,SAC1CJ,EAACS,EAA6B,CAACF,OAAK,EAAAH,SAClCJ,EAACU,EAAgB,CAAAN,SACfJ,EAAA,MAAA,CACE9B,GAAIyC,EACJC,UAAWC,EAAWlD,GAAiBf,GAA0BwD,SAEjEJ,EAACtE,EAA4BoF,EAAAA,EAAA,GACvBtD,GAAM,GAAA,CACVkB,MAAOG,EAAcF,EAAOC,KAAOD,EAAOG,MAQ1C3B,iBAAkB,SAAA4D,GAAY,OAC5B5D,EAAiB6D,EAA+BD,GACjD,EACD7D,gBAAiB,SAAC+D,EAAKV,GAAK,OAC1BrD,EAAgB+D,EAAKD,EAA+BT,GACrD,EACD7D,gBAAiBA,EACjBC,eAAgBA,EAChBY,6BAA8BA,gBAShD,CAEArB,EAAyBgF,UAAY,CACnCxE,gBAAiByE,EAAUC,KAC3BzE,eAAgBwE,EAAUC,KAC1BxE,yBAA0BuE,EAAUE,QAGtCnF,EAAyBoF,aAAe,CACtC5E,gBAAiB,KACjBC,eAAgB,KAChBC,yBAA0B"}
|
|
1
|
+
{"version":3,"file":"DevCenterIsolatedAppPage.js","sources":["../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/DevCenterIsolatedAppPage.js"],"sourcesContent":["import { makeStyles } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment from 'moment-timezone';\nimport PropTypes from 'prop-types';\nimport { useEffect, useLayoutEffect, useMemo } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\n\nimport { ISOLATED_PAGE_APP_CONTAINER_ID } from './constants';\nimport { useXProps } from './effects/useXProps';\nimport { getDashboardCapturingHandler } from './utils/dashboardCapturing';\nimport { replaceUndefinedValuesWithNull } from './utils/replaceUndefinedValuesWithNull';\n\nimport { LOCAL_STORAGE_APP_THEME_KEY } from '~/CLI/hocs/constants';\nimport { isPDFReportView } from '~/CLI/hocs/utils';\nimport { apiRequestsRateLimiter } from '~/clients';\nimport AppContext from '~/components/DevCenter/AppContext';\nimport DevCenterAppContainer from '~/components/DevCenter/DevCenterAppContainer';\nimport { IsInsideIsolatedDcAppProvider } from '~/components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { THEMES } from '~/constants/theme';\nimport { withMUIProvidersHOC } from '~/hocs';\nimport { IconParkProvider } from '~/icons';\nimport { PermissionsContext } from '~/permissions/PermissionsContext';\nimport '~/styles/globalStyles';\nimport { updateUserUnits } from '~/utils';\nimport { setThemeVariables } from '~/utils/themeVariables';\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 useLayoutEffect(() => {\n setThemeVariables(isDarkTheme);\n }, [isDarkTheme]);\n\n // Apply userUnits and/or timezone before paint so that the first render\n // (including PDF reports) uses the correct unit system.\n // useLayoutEffect runs synchronously after DOM mutations but before the browser paints,\n // and re-runs whenever userUnits changes — fixing the production race where the iframe mounts\n // before the parent has finished loading the dashboard's unit_system.\n useLayoutEffect(() => {\n if (userUnits) {\n updateUserUnits({ userUnits });\n }\n }, [userUnits]);\n\n useLayoutEffect(() => {\n if (timezone) {\n moment.tz.setDefault(timezone);\n }\n return () => moment.tz.setDefault(null);\n }, [timezone]);\n\n // Stable, order-independent signature of userUnits used as the React key\n // to remount the DC app tree when the unit system actually changes.\n const appContainerKey = useMemo(() => {\n if (!userUnits) return ISOLATED_PAGE_APP_CONTAINER_ID;\n return Object.keys(userUnits)\n .sort()\n .map(k => `${k}:${userUnits[k]}`)\n .join('|');\n }, [userUnits]);\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 useEffect(() => {\n apiRequestsRateLimiter.updateConfig(xProps.apiRateLimiterConfig);\n }, [xProps.apiRateLimiterConfig]);\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 key={appContainerKey}\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","useLayoutEffect","setThemeVariables","updateUserUnits","moment","tz","setDefault","appContainerKey","useMemo","Object","keys","sort","map","k","concat","join","ISOLATED_PAGE_APP_CONTAINER_ID","useEffect","window","Symbol","for","apiRequestsRateLimiter","updateConfig","apiRateLimiterConfig","dashboardCapturingHandler","getDashboardCapturingHandler","addEventListener","removeEventListener","_jsx","MemoryRouter","initialEntries","search","children","PermissionsContext","Provider","value","AppContext","IsInsideIsolatedDcAppProvider","IconParkProvider","className","classNames","_createElement","_objectSpread","key","nextSettings","replaceUndefinedValuesWithNull","propTypes","PropTypes","func","string","defaultProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export function useXProps(): Record<string, any> | undefined;
|
|
1
|
+
export declare function useXProps(): Record<string, any> | undefined;
|
|
2
2
|
//# sourceMappingURL=useXProps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useXProps.d.ts","sourceRoot":"","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/effects/useXProps.
|
|
1
|
+
{"version":3,"file":"useXProps.d.ts","sourceRoot":"","sources":["../../../../../src/components/DevCenter/IsolatedDevCenterAppContainer/effects/useXProps.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,oCAUxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useXProps.js","sources":[
|
|
1
|
+
{"version":3,"file":"useXProps.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/mcp-server/server.mjs
CHANGED