@corva/ui 3.35.0-1 → 3.35.0-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
- package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
- package/cjs-bundle/componentsV2/AppInfoMessage/AppMessageWrapper.js +1 -1
- package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.d.ts.map +1 -1
- package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
- package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
- package/componentsV2/AppInfoMessage/AppMessageWrapper.js +1 -1
- package/package.json +1 -1
|
@@ -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/slicedToArray"),n=require("react"),i=require("prop-types"),o=require("lodash"),r=require("@material-ui/core"),t=require("@material-ui/icons"),c=require("../../../../EmptyState/EmptyState.js"),a=require("../../utils.js"),u=require("./components/RemoveAppButton.js"),l=require("./components/SettingsAccordion.js"),p=require("./styles.js");require("@babel/runtime/helpers/objectWithoutProperties"),require("@material-ui/pickers"),require("@date-io/moment"),require("moment"),require("../../../../../config/theme/index.js");var d=require("react/jsx-runtime"),m=require("../../../../../hocs/withAssetEditorLockHOC.js"),j=require("../../../../ErrorBoundary/ErrorBoundary.js"),q=require("../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js"),g=require("../../../../Button/components/Button/index.js");require("moment-timezone"),require("classnames"),require("../../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js"),require("../../../../Button/components/LiveButton/styles.js"),require("@icon-park/react/es/all"),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/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");var v=require("../../../../Modal/Modal.js"),f=require("../../../../../constants/devcenter.js");require("../../../../../constants/goals.js");var h=require("../../../../../constants/segment.js");require("../../../../../constants/alerts.js"),require("../../../../../constants/apps.js"),require("../../../../../constants/drillstring.js"),require("../../../../../constants/completion.js"),require("../../../../../constants/appPackages.js"),require("../../../../../constants/notifications.js"),require("../../../../../constants/feed.js"),require("../../../../../constants/bha.js");var I=require("../../../../../constants/assetTypes.js");require("../../../../../constants/corvaCompanyId.js"),require("../../../../GradientManager/configuration/constants.js");var S=require("../../../../AssetEditorV2/index.js"),A=require("../../../../AppVersionsSelect/AppVersionsSelect.js"),b=require("../../../../DisabledSettingsMessage/DisabledSettingsMessage.js"),C=require("../../../../ConfirmationDialog.js");require("../../../../../utils/index.js");var y=require("../../../../AppIcon/AppIcon.js"),x=require("../../../../../utils/devcenter.js"),E=require("../../../../../permissions/usePermissions.js"),P=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"),require("../../../../../permissions/PermissionsContext.js");var D=require("../../../../../utils/mobileDetect.js"),O=require("../../../../../utils/notificationToasts.js");function R(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var k=R(e),N=R(s);function w(e,s){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s&&(i=i.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),n.push.apply(n,i)}return n}function M(e){for(var s=1;s<arguments.length;s++){var n=null!=arguments[s]?arguments[s]:{};s%2?w(Object(n),!0).forEach((function(s){k.default(e,s,n[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))}))}return e}var T="DC_appSettings",B=m(S);function _(e){var s,i,m,R,w,_,F,V=e.AppSettingsComponent,G=e.app,H=e.appData,L=e.appName,U=e.currentUser,W=e.isMultiRig,Y=e.isSettingsDialogHidden,z=e.layoutEnvironment,K=e.onAppRemove,Z=e.onCloneDashboard,J=e.onSettingsChange,Q=e.openIntercom,X=e.rigId,$=e.toggleAppSettingsDialog,ee=(null==G||null===(s=G.segment)||void 0===s?void 0:s.length)>1,se=n.useState(x.getAppSegment(G)),ne=N.default(se,2),ie=ne[0],oe=ne[1],re=ie===h.SEGMENTS.COMPLETION,te=h.SEGMENT_TO_ASSET_TYPE[ie],ce=z&&"asset"===z.type,ae=E([P.PERMISSIONS.getCanReadAppPackages(G.app.id)]),ue=N.default(ae,1)[0],le=ue.active,pe=ue.loading,de=n.useState(!1),me=N.default(de,2),je=me[0],qe=me[1],ge=n.useState(!0),ve=N.default(ge,2),fe=ve[0],he=ve[1],Ie=!(D.isInsideNewMobileApp||W||ce&&re),Se=!D.isInsideNewMobileApp&&!Y&&K,Ae=n.useRef(X);n.useEffect((function(){fe||he(!0)}),[fe]);var be=n.useState((function(){var e;return M(M({},o.cloneDeep(G.settings)),{},{package:G.settings.package||(null==G||null===(e=G.package)||void 0===e?void 0:e.version)})})),Ce=N.default(be,2),ye=Ce[0],xe=Ce[1],Ee=a.getIsSustainabilityApp(null==G||null===(i=G.app)||void 0===i?void 0:i.id),Pe=n.useState(""),De=N.default(Pe,2),Oe=De[0],Re=De[1],ke=n.useRef(null),Ne=n.useRef(null),we=pe||le||Boolean(null===(m=ke.current)||void 0===m?void 0:m.clientHeight),Me=Boolean(null===(R=Ne.current)||void 0===R?void 0:R.clientHeight),Te=we&&Me,Be=p.useStyles({isCompletionApp:re,isSustainabilityApp:Ee,isAccordionRequired:Te,isRemoveButtonVisible:Se}),_e=G.id===f.DEV_CENTER_CLI_APP_ID,Fe=function(e,s){return xe((function(n){return M(M({},n),{},k.default({},e,s))}))},Ve=function(e){return xe((function(s){return M(M({},s),e)}))},Ge=ce?B:S;n.useEffect((function(){o.debounce(qe,200)(!0)}),[]);var He=d.jsxs("div",{className:Be.modalTitleContainer,children:[d.jsx(y.AppIcon,{className:Be.appIcon,segment:[ie],iconUrl:null==G||null===(w=G.app)||void 0===w||null===(_=w.icon)||void 0===_?void 0:_.url,height:48,width:48}),d.jsxs("div",{children:[d.jsx("div",{children:"".concat(L," Settings")}),!D.isInsideNewMobileApp&&d.jsxs("div",{"data-testid":"".concat(T,"_appstoreLink"),className:Be.appStoreButton,onClick:function(){var e,s;return window.open((s=null==G||null===(e=G.app)||void 0===e?void 0:e.id,"/app-store/app/".concat(s)),"_top")},children:["Open in Appstore ",d.jsx(t.ArrowForward,{className:Be.arrowIcon})]})]})]}),Le=d.jsxs("div",{className:Be.modalActions,children:[Se&&d.jsx(u.default,{appName:L,onAppRemove:K}),d.jsxs("div",{children:[d.jsx(g,{"data-testid":"".concat(T,"_cancel"),variation:"secondary",onClick:$,children:"Cancel"}),Y&&d.jsx(g,{variation:"primary",onClick:function(){return Z()},children:"Copy Dashboard"}),!Y&&d.jsx(g,{"data-testid":"".concat(T,"_save"),className:Be.saveButton,variation:"primary",onClick:function(){if(!ye.package&&!_e)return Re("Please select app version");if(Ie&&!ce){var e=null==te?void 0:te.primaryAsset.assetType.id,s=null==te?void 0:te.primaryAsset.assetType.label;if(e&&!ye[e])return Re("Please select ".concat(s))}return J(ye),O.showSuccessNotification("Successfully saved"),$()},children:"Save"})]})]});return d.jsx(v,{actions:Le,closeIconClassName:Be.closeIcon,contentContainerClassName:Be.modalContainer,modalTitleClassName:Be.modalTitle,onClose:$,open:!0,title:He,children:d.jsxs(j,{ErrorView:q,openIntercom:Q,children:[d.jsx(C,{open:!!Oe,isShowCancel:!1,title:"Validation failed",text:Oe,handleOk:function(){return Re("")},classes:{confirmation:Be.confirmationText}}),Y&&d.jsx(b,{}),!Y&&je&&!Me&&!we&&d.jsx(c,{image:c.IMAGES.UnderConstruction,title:"No app settings"}),!Y&&d.jsxs(d.Fragment,{children:[d.jsxs(l.SettingsAccordion,{defaultExpanded:!0,className:Be.assetAccordion,accordionDetailsRef:ke,isAccordionRequired:Te,summary:"Asset",children:[ee&&d.jsxs(r.FormControl,{className:Be.segmentSelector,children:[d.jsx(r.InputLabel,{children:"Segment"}),d.jsx(r.Select,{value:ie,onChange:function(e){var s=e.target.value;Ae.current=null,he(!1),oe(s),xe(M(M({package:ye.package,segment:s},o.mapValues(o.keyBy(I.ASSET_TYPES,"id"),(function(){return null}))),{},{assets:null}))},children:G.segment.map((function(e){return d.jsx(r.MenuItem,{className:Be.segmentMenuItem,value:e,children:e},e)}))})]}),Ie&&fe&&d.jsx(Ge,{appKey:_e?null:G.app.app_key,appType:te,defaultValue:Ae.current,secondaryDefaultValue:+(null==H||null===(F=H.well)||void 0===F?void 0:F.id),isHiddenMultipleAssetsToggle:!0,isHiddenTitle:!0,isNullable:ce,label:"Asset",onSettingsChange:Ve,settings:ye}),d.jsx(A.default,{className:Be.appVersionSelect,appId:G.app.id,value:ye.package,onChange:function(e){return Fe("package",e)}})]}),d.jsx(l.SettingsAccordion,{accordionDetailsRef:Ne,className:Be.accordion,defaultExpanded:!0,isAccordionRequired:Te,summary:"App Settings",children:V&&d.jsx(V,{app:G,appData:H,settings:ye,onSettingChange:Fe,onSettingsChange:Ve,layoutEnvironment:z,currentUser:U})})]})]})})}_.propTypes={AppSettingsComponent:i.func,app:i.shape({}).isRequired,appData:i.shape({}).isRequired,appName:i.string.isRequired,currentUser:i.shape({}).isRequired,isMultiRig:i.bool.isRequired,isSettingsDialogHidden:i.bool,layoutEnvironment:i.shape({}).isRequired,onAppRemove:i.func,onCloneDashboard:i.func,onSettingsChange:i.func.isRequired,toggleAppSettingsDialog:i.func.isRequired},_.defaultProps={AppSettingsComponent:function(){return null},isSettingsDialogHidden:!1,onAppRemove:void 0,onCloneDashboard:o.noop},exports.PAGE_NAME=T,exports.default=_;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),n=require("react"),i=require("prop-types"),r=require("lodash"),o=require("@material-ui/core"),t=require("@material-ui/icons"),c=require("../../../../EmptyState/EmptyState.js"),a=require("../../utils.js"),u=require("./components/RemoveAppButton.js"),l=require("./components/SettingsAccordion.js"),p=require("./styles.js");require("@babel/runtime/helpers/objectWithoutProperties"),require("@material-ui/pickers"),require("@date-io/moment"),require("moment"),require("../../../../../config/theme/index.js");var d=require("react/jsx-runtime"),m=require("../../../../../hocs/withAssetEditorLockHOC.js"),j=require("../../../../ErrorBoundary/ErrorBoundary.js"),q=require("../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js"),g=require("../../../../Button/components/Button/index.js");require("moment-timezone"),require("classnames"),require("../../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js"),require("../../../../Button/components/LiveButton/styles.js"),require("@icon-park/react/es/all"),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/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");var v=require("../../../../Modal/Modal.js"),f=require("../../../../../constants/devcenter.js");require("../../../../../constants/goals.js");var h=require("../../../../../constants/segment.js");require("../../../../../constants/alerts.js"),require("../../../../../constants/apps.js"),require("../../../../../constants/drillstring.js"),require("../../../../../constants/completion.js"),require("../../../../../constants/appPackages.js"),require("../../../../../constants/notifications.js"),require("../../../../../constants/feed.js"),require("../../../../../constants/bha.js");var I=require("../../../../../constants/assetTypes.js");require("../../../../../constants/corvaCompanyId.js"),require("../../../../GradientManager/configuration/constants.js");var S=require("../../../../AssetEditorV2/index.js"),A=require("../../../../AppVersionsSelect/AppVersionsSelect.js"),b=require("../../../../DisabledSettingsMessage/DisabledSettingsMessage.js"),C=require("../../../../ConfirmationDialog.js");require("../../../../../utils/index.js");var y=require("../../../../AppIcon/AppIcon.js"),x=require("../../../../../utils/devcenter.js"),E=require("../../../../../permissions/usePermissions.js"),P=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"),require("../../../../../permissions/PermissionsContext.js");var D=require("../../../../../utils/mobileDetect.js"),O=require("../../../../../utils/notificationToasts.js");function R(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var k=R(e),N=R(s);function w(e,s){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);s&&(i=i.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),n.push.apply(n,i)}return n}function M(e){for(var s=1;s<arguments.length;s++){var n=null!=arguments[s]?arguments[s]:{};s%2?w(Object(n),!0).forEach((function(s){k.default(e,s,n[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))}))}return e}var T="DC_appSettings",B=m(S),_=function(){return null};function F(e){var s,i,m,R,w,F,V,G=e.AppSettingsComponent,H=e.app,L=e.appData,U=e.appName,W=e.currentUser,Y=e.isMultiRig,z=e.isSettingsDialogHidden,K=e.layoutEnvironment,Z=e.onAppRemove,J=e.onCloneDashboard,Q=e.onSettingsChange,X=e.openIntercom,$=e.rigId,ee=e.toggleAppSettingsDialog,se=(null==H||null===(s=H.segment)||void 0===s?void 0:s.length)>1,ne=n.useState(x.getAppSegment(H)),ie=N.default(ne,2),re=ie[0],oe=ie[1],te=re===h.SEGMENTS.COMPLETION,ce=h.SEGMENT_TO_ASSET_TYPE[re],ae=K&&"asset"===K.type,ue=E([P.PERMISSIONS.getCanReadAppPackages(H.app.id)]),le=N.default(ue,1)[0],pe=le.active,de=le.loading,me=n.useState(!1),je=N.default(me,2),qe=je[0],ge=je[1],ve=n.useState(!0),fe=N.default(ve,2),he=fe[0],Ie=fe[1],Se=!(D.isInsideNewMobileApp||Y||ae&&te),Ae=!D.isInsideNewMobileApp&&!z&&Z,be=n.useRef($);n.useEffect((function(){he||Ie(!0)}),[he]);var Ce=n.useState((function(){var e;return M(M({},r.cloneDeep(H.settings)),{},{package:H.settings.package||(null==H||null===(e=H.package)||void 0===e?void 0:e.version)})})),ye=N.default(Ce,2),xe=ye[0],Ee=ye[1],Pe=a.getIsSustainabilityApp(null==H||null===(i=H.app)||void 0===i?void 0:i.id),De=n.useState(""),Oe=N.default(De,2),Re=Oe[0],ke=Oe[1],Ne=n.useRef(null),we=n.useRef(null),Me=de||pe||Boolean(null===(m=Ne.current)||void 0===m?void 0:m.clientHeight),Te=Boolean(null===(R=we.current)||void 0===R?void 0:R.clientHeight),Be=Me&&Te,_e=p.useStyles({isCompletionApp:te,isSustainabilityApp:Pe,isAccordionRequired:Be,isRemoveButtonVisible:Ae}),Fe=H.id===f.DEV_CENTER_CLI_APP_ID,Ve=function(e,s){return Ee((function(n){return M(M({},n),{},k.default({},e,s))}))},Ge=function(e){return Ee((function(s){return M(M({},s),e)}))},He=ae?B:S;n.useEffect((function(){r.debounce(ge,200)(!0)}),[]);var Le=d.jsxs("div",{className:_e.modalTitleContainer,children:[d.jsx(y.AppIcon,{className:_e.appIcon,segment:[re],iconUrl:null==H||null===(w=H.app)||void 0===w||null===(F=w.icon)||void 0===F?void 0:F.url,height:48,width:48}),d.jsxs("div",{children:[d.jsx("div",{children:"".concat(U," Settings")}),!D.isInsideNewMobileApp&&d.jsxs("div",{"data-testid":"".concat(T,"_appstoreLink"),className:_e.appStoreButton,onClick:function(){var e,s;return window.open((s=null==H||null===(e=H.app)||void 0===e?void 0:e.id,"/app-store/app/".concat(s)),"_top")},children:["Open in Appstore ",d.jsx(t.ArrowForward,{className:_e.arrowIcon})]})]})]}),Ue=d.jsxs("div",{className:_e.modalActions,children:[Ae&&d.jsx(u.default,{appName:U,onAppRemove:Z}),d.jsxs("div",{children:[d.jsx(g,{"data-testid":"".concat(T,"_cancel"),variation:"secondary",onClick:ee,children:"Cancel"}),z&&d.jsx(g,{variation:"primary",onClick:function(){return J()},children:"Copy Dashboard"}),!z&&d.jsx(g,{"data-testid":"".concat(T,"_save"),className:_e.saveButton,variation:"primary",onClick:function(){if(!xe.package&&!Fe)return ke("Please select app version");if(Se&&!ae){var e=null==ce?void 0:ce.primaryAsset.assetType.id,s=null==ce?void 0:ce.primaryAsset.assetType.label;if(e&&!xe[e])return ke("Please select ".concat(s))}return Q(xe),O.showSuccessNotification("Successfully saved"),ee()},children:"Save"})]})]});return d.jsx(v,{actions:Ue,closeIconClassName:_e.closeIcon,contentContainerClassName:_e.modalContainer,modalTitleClassName:_e.modalTitle,onClose:ee,open:!0,title:Le,children:d.jsxs(j,{ErrorView:q,openIntercom:X,children:[d.jsx(C,{open:!!Re,isShowCancel:!1,title:"Validation failed",text:Re,handleOk:function(){return ke("")},classes:{confirmation:_e.confirmationText}}),z&&d.jsx(b,{}),!z&&qe&&!Te&&!Me&&d.jsx(c,{image:c.IMAGES.UnderConstruction,title:"No app settings"}),!z&&d.jsxs(d.Fragment,{children:[d.jsxs(l.SettingsAccordion,{defaultExpanded:!0,className:_e.assetAccordion,accordionDetailsRef:Ne,isAccordionRequired:Be,summary:"Asset",children:[se&&d.jsxs(o.FormControl,{className:_e.segmentSelector,children:[d.jsx(o.InputLabel,{children:"Segment"}),d.jsx(o.Select,{value:re,onChange:function(e){var s=e.target.value;be.current=null,Ie(!1),oe(s),Ee(M(M({package:xe.package,segment:s},r.mapValues(r.keyBy(I.ASSET_TYPES,"id"),(function(){return null}))),{},{assets:null}))},children:H.segment.map((function(e){return d.jsx(o.MenuItem,{className:_e.segmentMenuItem,value:e,children:e},e)}))})]}),Se&&he&&d.jsx(He,{appKey:Fe?null:H.app.app_key,appType:ce,defaultValue:be.current,secondaryDefaultValue:+(null==L||null===(V=L.well)||void 0===V?void 0:V.id),isHiddenMultipleAssetsToggle:!0,isHiddenTitle:!0,isNullable:ae,label:"Asset",onSettingsChange:Ge,settings:xe}),d.jsx(A.default,{className:_e.appVersionSelect,appId:H.app.id,value:xe.package,onChange:function(e){return Ve("package",e)}})]}),d.jsx(j,{ErrorView:_,openIntercom:X,children:d.jsx(l.SettingsAccordion,{accordionDetailsRef:we,className:_e.accordion,defaultExpanded:!0,isAccordionRequired:Be,summary:"App Settings",children:G&&d.jsx(G,{app:H,appData:L,settings:xe,onSettingChange:Ve,onSettingsChange:Ge,layoutEnvironment:K,currentUser:W})})})]})]})})}F.propTypes={AppSettingsComponent:i.func,app:i.shape({}).isRequired,appData:i.shape({}).isRequired,appName:i.string.isRequired,currentUser:i.shape({}).isRequired,isMultiRig:i.bool.isRequired,isSettingsDialogHidden:i.bool,layoutEnvironment:i.shape({}).isRequired,onAppRemove:i.func,onCloneDashboard:i.func,onSettingsChange:i.func.isRequired,toggleAppSettingsDialog:i.func.isRequired},F.defaultProps={AppSettingsComponent:function(){return null},isSettingsDialogHidden:!1,onAppRemove:void 0,onCloneDashboard:r.noop},exports.PAGE_NAME=T,exports.default=F;
|
|
2
2
|
//# sourceMappingURL=AppSettingsDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport { func, shape, string, bool } from 'prop-types';\nimport { cloneDeep, debounce, noop, mapValues, keyBy } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport { getIsSustainabilityApp } from '../../utils';\n\nimport { RemoveAppButton, SettingsAccordion } from './components';\nimport { useStyles } from './styles';\n\nimport { withAssetEditorLockHOC } from '~/hocs';\nimport ErrorBoundary, { DevCenterAppErrorView } from '~/components/ErrorBoundary';\nimport Button from '~/components/Button';\nimport Modal from '~/components/Modal';\nimport { ASSET_TYPES, DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport AssetEditor from '~/components/AssetEditorV2';\nimport AppVersionsSelect from '~/components/AppVersionsSelect';\nimport { DisabledSettingsMessage } from '~/components/DisabledSettingsMessage';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { SEGMENT_TO_ASSET_TYPE, SEGMENTS } from '~/constants/segment';\nimport { showSuccessNotification } from '~/utils';\nimport AppIcon from '~/components/AppIcon';\nimport { getAppSegment } from '~/utils/devcenter';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = appId => `/app-store/app/${appId}`;\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor);\n\nfunction AppSettingsDialog({\n AppSettingsComponent,\n app,\n appData,\n appName,\n currentUser,\n isMultiRig,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) {\n const hasSegmentSelector = app?.segment?.length > 1;\n const [appSegmentSetting, setAppSegmentSetting] = useState(getAppSegment(app));\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = SEGMENT_TO_ASSET_TYPE[appSegmentSetting];\n const isAssetPage = layoutEnvironment && layoutEnvironment.type === 'asset';\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const isAssetSelectorVisible =\n !isInsideNewMobileApp && !isMultiRig && !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && onAppRemove;\n\n // NOTE: Keep in ref to have a way to reset default value\n // of asset selector when changing app segment\n const defaultRigId = useRef(rigId);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n const [appSettings, setAppSettings] = useState(() => ({\n ...cloneDeep(app.settings),\n package: app.settings.package || app?.package?.version,\n }));\n\n const handleChangeAppSegment = ({ target: { value: nextSegment } }) => {\n defaultRigId.current = null;\n setIsAssetSelectorRendered(false);\n\n setAppSegmentSetting(nextSegment);\n setAppSettings({\n package: appSettings.package,\n segment: nextSegment,\n // NOTE: we need to reset asset ids when segment is changed\n ...mapValues(keyBy(ASSET_TYPES, 'id'), () => null),\n assets: null,\n });\n };\n\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const [validationError, setValidationError] = useState('');\n const platformAppSettingsRef = useRef(null);\n const customAppSettingsRef = useRef(null);\n\n const hasPlatformAppSettings =\n isPermissionsLoading ||\n canReadAppPackages ||\n Boolean(platformAppSettingsRef.current?.clientHeight);\n const hasCustomAppSettings = Boolean(customAppSettingsRef.current?.clientHeight);\n const isAccordionRequired = hasPlatformAppSettings && hasCustomAppSettings;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n\n const onSave = () => {\n const isNoPackageError = !appSettings.package && !isCLIApp;\n if (isNoPackageError) return setValidationError('Please select app version');\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset.assetType.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset.assetType.label;\n if (appTypeKey && !appSettings[appTypeKey])\n return setValidationError(`Please select ${appTypeLabel}`);\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n return toggleAppSettingsDialog();\n };\n\n const onAppSettingChange = (name, value) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const onAppSettingsChange = newSettings =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const AssetEditorComponent = isAssetPage ? AssetEditorWithLock : AssetEditor;\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle = (\n <div className={styles.modalTitleContainer}>\n <AppIcon\n className={styles.appIcon}\n segment={[appSegmentSetting]}\n iconUrl={app?.app?.icon?.url}\n height={48}\n width={48}\n />\n <div>\n <div>{`${appName} Settings`}</div>\n {!isInsideNewMobileApp && (\n <div\n data-testid={`${PAGE_NAME}_appstoreLink`}\n className={styles.appStoreButton}\n onClick={() => window.open(getAppPageUrl(app?.app?.id), '_top')}\n >\n Open in Appstore <ArrowIcon className={styles.arrowIcon} />\n </div>\n )}\n </div>\n </div>\n );\n\n const modalActions = (\n <div className={styles.modalActions}>\n {isRemoveButtonVisible && <RemoveAppButton appName={appName} onAppRemove={onAppRemove} />}\n <div>\n <Button\n data-testid={`${PAGE_NAME}_cancel`}\n variation=\"secondary\"\n onClick={toggleAppSettingsDialog}\n >\n Cancel\n </Button>\n {isSettingsDialogHidden && (\n <Button variation=\"primary\" onClick={() => onCloneDashboard()}>\n Copy Dashboard\n </Button>\n )}\n {!isSettingsDialogHidden && (\n <Button\n data-testid={`${PAGE_NAME}_save`}\n className={styles.saveButton}\n variation=\"primary\"\n onClick={onSave}\n >\n Save\n </Button>\n )}\n </div>\n </div>\n );\n\n return (\n <Modal\n actions={modalActions}\n closeIconClassName={styles.closeIcon}\n contentContainerClassName={styles.modalContainer}\n modalTitleClassName={styles.modalTitle}\n onClose={toggleAppSettingsDialog}\n open\n title={modalTitle}\n >\n <ErrorBoundary ErrorView={DevCenterAppErrorView} openIntercom={openIntercom}>\n <ConfirmationDialog\n open={!!validationError}\n isShowCancel={false}\n title=\"Validation failed\"\n text={validationError}\n handleOk={() => setValidationError('')}\n classes={{ confirmation: styles.confirmationText }}\n />\n {isSettingsDialogHidden && <DisabledSettingsMessage />}\n {!isSettingsDialogHidden &&\n isMounted &&\n !hasCustomAppSettings &&\n !hasPlatformAppSettings && (\n <EmptyState image={EmptyState.IMAGES.UnderConstruction} title=\"No app settings\" />\n )}\n {!isSettingsDialogHidden && (\n <>\n <SettingsAccordion\n defaultExpanded\n className={styles.assetAccordion}\n accordionDetailsRef={platformAppSettingsRef}\n isAccordionRequired={isAccordionRequired}\n summary=\"Asset\"\n >\n {hasSegmentSelector && (\n <FormControl className={styles.segmentSelector}>\n <InputLabel>Segment</InputLabel>\n <Select value={appSegmentSetting} onChange={handleChangeAppSegment}>\n {app.segment.map(segmentItem => (\n <MenuItem\n className={styles.segmentMenuItem}\n key={segmentItem}\n value={segmentItem}\n >\n {segmentItem}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n {isAssetSelectorVisible && isAssetSelectorRendered && (\n <AssetEditorComponent\n appKey={isCLIApp ? null : app.app.app_key}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenMultipleAssetsToggle\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={onAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={appSettings.package}\n onChange={val => onAppSettingChange('package', val)}\n />\n </SettingsAccordion>\n <SettingsAccordion\n accordionDetailsRef={customAppSettingsRef}\n className={styles.accordion}\n defaultExpanded\n isAccordionRequired={isAccordionRequired}\n summary=\"App Settings\"\n >\n {AppSettingsComponent && (\n <AppSettingsComponent\n app={app}\n appData={appData}\n settings={appSettings}\n onSettingChange={onAppSettingChange}\n onSettingsChange={onAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n}\n\nAppSettingsDialog.propTypes = {\n AppSettingsComponent: func,\n app: shape({}).isRequired,\n appData: shape({}).isRequired,\n appName: string.isRequired,\n currentUser: shape({}).isRequired,\n isMultiRig: bool.isRequired,\n isSettingsDialogHidden: bool,\n layoutEnvironment: shape({}).isRequired,\n onAppRemove: func,\n onCloneDashboard: func,\n onSettingsChange: func.isRequired,\n toggleAppSettingsDialog: func.isRequired,\n};\n\nAppSettingsDialog.defaultProps = {\n AppSettingsComponent: () => null,\n isSettingsDialogHidden: false,\n onAppRemove: undefined,\n onCloneDashboard: noop,\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","AppSettingsDialog","_ref","_app$segment","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","AppSettingsComponent","app","appData","appName","currentUser","isMultiRig","isSettingsDialogHidden","layoutEnvironment","onAppRemove","onCloneDashboard","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","hasSegmentSelector","segment","length","_useState","useState","getAppSegment","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","isCompletionSegment","SEGMENTS","COMPLETION","assetEditorAppType","SEGMENT_TO_ASSET_TYPE","isAssetPage","type","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","defaultRigId","useRef","useEffect","_useState7","_app$package","_objectSpread","cloneDeep","settings","package","version","_useState8","appSettings","setAppSettings","isSustainabilityApp","getIsSustainabilityApp","_useState10","_useState9","validationError","setValidationError","platformAppSettingsRef","customAppSettingsRef","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","styles","useStyles","isCompletionApp","isCLIApp","DEV_CENTER_CLI_APP_ID","onAppSettingChange","name","value","prevSettings","_defineProperty","onAppSettingsChange","newSettings","AssetEditorComponent","debounce","debouncedSetIsMounted","modalTitle","_jsxs","jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","jsx","concat","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","appTypeKey","primaryAsset","assetType","appTypeLabel","label","showSuccessNotification","Modal","actions","closeIconClassName","closeIcon","contentContainerClassName","modalContainer","modalTitleClassName","onClose","title","ErrorBoundary","ErrorView","DevCenterAppErrorView","ConfirmationDialog","isShowCancel","text","handleOk","classes","confirmation","confirmationText","DisabledSettingsMessage","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","_ref2","nextSegment","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appKey","app_key","appType","defaultValue","secondaryDefaultValue","well","isHiddenMultipleAssetsToggle","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","val","accordion","onSettingChange","propTypes","func","shape","isRequired","string","bool","defaultProps","undefined","noop"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { bool, func, shape, string } from 'prop-types';\nimport { cloneDeep, debounce, keyBy, mapValues, noop } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport { getIsSustainabilityApp } from '../../utils';\n\nimport { RemoveAppButton, SettingsAccordion } from './components';\nimport { useStyles } from './styles';\n\nimport { withAssetEditorLockHOC } from '~/hocs';\nimport ErrorBoundary, { DevCenterAppErrorView } from '~/components/ErrorBoundary';\nimport Button from '~/components/Button';\nimport Modal from '~/components/Modal';\nimport { ASSET_TYPES, DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport AssetEditor from '~/components/AssetEditorV2';\nimport AppVersionsSelect from '~/components/AppVersionsSelect';\nimport { DisabledSettingsMessage } from '~/components/DisabledSettingsMessage';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { SEGMENT_TO_ASSET_TYPE, SEGMENTS } from '~/constants/segment';\nimport { showSuccessNotification } from '~/utils';\nimport AppIcon from '~/components/AppIcon';\nimport { getAppSegment } from '~/utils/devcenter';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = appId => `/app-store/app/${appId}`;\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor);\n\nconst AppSettingsErrorView = () => null;\n\nfunction AppSettingsDialog({\n AppSettingsComponent,\n app,\n appData,\n appName,\n currentUser,\n isMultiRig,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) {\n const hasSegmentSelector = app?.segment?.length > 1;\n const [appSegmentSetting, setAppSegmentSetting] = useState(getAppSegment(app));\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = SEGMENT_TO_ASSET_TYPE[appSegmentSetting];\n const isAssetPage = layoutEnvironment && layoutEnvironment.type === 'asset';\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const isAssetSelectorVisible =\n !isInsideNewMobileApp && !isMultiRig && !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && onAppRemove;\n\n // NOTE: Keep in ref to have a way to reset default value\n // of asset selector when changing app segment\n const defaultRigId = useRef(rigId);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n const [appSettings, setAppSettings] = useState(() => ({\n ...cloneDeep(app.settings),\n package: app.settings.package || app?.package?.version,\n }));\n\n const handleChangeAppSegment = ({ target: { value: nextSegment } }) => {\n defaultRigId.current = null;\n setIsAssetSelectorRendered(false);\n\n setAppSegmentSetting(nextSegment);\n setAppSettings({\n package: appSettings.package,\n segment: nextSegment,\n // NOTE: we need to reset asset ids when segment is changed\n ...mapValues(keyBy(ASSET_TYPES, 'id'), () => null),\n assets: null,\n });\n };\n\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const [validationError, setValidationError] = useState('');\n const platformAppSettingsRef = useRef(null);\n const customAppSettingsRef = useRef(null);\n\n const hasPlatformAppSettings =\n isPermissionsLoading ||\n canReadAppPackages ||\n Boolean(platformAppSettingsRef.current?.clientHeight);\n const hasCustomAppSettings = Boolean(customAppSettingsRef.current?.clientHeight);\n const isAccordionRequired = hasPlatformAppSettings && hasCustomAppSettings;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n\n const onSave = () => {\n const isNoPackageError = !appSettings.package && !isCLIApp;\n if (isNoPackageError) return setValidationError('Please select app version');\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset.assetType.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset.assetType.label;\n if (appTypeKey && !appSettings[appTypeKey])\n return setValidationError(`Please select ${appTypeLabel}`);\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n return toggleAppSettingsDialog();\n };\n\n const onAppSettingChange = (name, value) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const onAppSettingsChange = newSettings =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const AssetEditorComponent = isAssetPage ? AssetEditorWithLock : AssetEditor;\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle = (\n <div className={styles.modalTitleContainer}>\n <AppIcon\n className={styles.appIcon}\n segment={[appSegmentSetting]}\n iconUrl={app?.app?.icon?.url}\n height={48}\n width={48}\n />\n <div>\n <div>{`${appName} Settings`}</div>\n {!isInsideNewMobileApp && (\n <div\n data-testid={`${PAGE_NAME}_appstoreLink`}\n className={styles.appStoreButton}\n onClick={() => window.open(getAppPageUrl(app?.app?.id), '_top')}\n >\n Open in Appstore <ArrowIcon className={styles.arrowIcon} />\n </div>\n )}\n </div>\n </div>\n );\n\n const modalActions = (\n <div className={styles.modalActions}>\n {isRemoveButtonVisible && <RemoveAppButton appName={appName} onAppRemove={onAppRemove} />}\n <div>\n <Button\n data-testid={`${PAGE_NAME}_cancel`}\n variation=\"secondary\"\n onClick={toggleAppSettingsDialog}\n >\n Cancel\n </Button>\n {isSettingsDialogHidden && (\n <Button variation=\"primary\" onClick={() => onCloneDashboard()}>\n Copy Dashboard\n </Button>\n )}\n {!isSettingsDialogHidden && (\n <Button\n data-testid={`${PAGE_NAME}_save`}\n className={styles.saveButton}\n variation=\"primary\"\n onClick={onSave}\n >\n Save\n </Button>\n )}\n </div>\n </div>\n );\n\n return (\n <Modal\n actions={modalActions}\n closeIconClassName={styles.closeIcon}\n contentContainerClassName={styles.modalContainer}\n modalTitleClassName={styles.modalTitle}\n onClose={toggleAppSettingsDialog}\n open\n title={modalTitle}\n >\n <ErrorBoundary ErrorView={DevCenterAppErrorView} openIntercom={openIntercom}>\n <ConfirmationDialog\n open={!!validationError}\n isShowCancel={false}\n title=\"Validation failed\"\n text={validationError}\n handleOk={() => setValidationError('')}\n classes={{ confirmation: styles.confirmationText }}\n />\n {isSettingsDialogHidden && <DisabledSettingsMessage />}\n {!isSettingsDialogHidden &&\n isMounted &&\n !hasCustomAppSettings &&\n !hasPlatformAppSettings && (\n <EmptyState image={EmptyState.IMAGES.UnderConstruction} title=\"No app settings\" />\n )}\n {!isSettingsDialogHidden && (\n <>\n <SettingsAccordion\n defaultExpanded\n className={styles.assetAccordion}\n accordionDetailsRef={platformAppSettingsRef}\n isAccordionRequired={isAccordionRequired}\n summary=\"Asset\"\n >\n {hasSegmentSelector && (\n <FormControl className={styles.segmentSelector}>\n <InputLabel>Segment</InputLabel>\n <Select value={appSegmentSetting} onChange={handleChangeAppSegment}>\n {app.segment.map(segmentItem => (\n <MenuItem\n className={styles.segmentMenuItem}\n key={segmentItem}\n value={segmentItem}\n >\n {segmentItem}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n {isAssetSelectorVisible && isAssetSelectorRendered && (\n <AssetEditorComponent\n appKey={isCLIApp ? null : app.app.app_key}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenMultipleAssetsToggle\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={onAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={appSettings.package}\n onChange={val => onAppSettingChange('package', val)}\n />\n </SettingsAccordion>\n <ErrorBoundary ErrorView={AppSettingsErrorView} openIntercom={openIntercom}>\n <SettingsAccordion\n accordionDetailsRef={customAppSettingsRef}\n className={styles.accordion}\n defaultExpanded\n isAccordionRequired={isAccordionRequired}\n summary=\"App Settings\"\n >\n {AppSettingsComponent && (\n <AppSettingsComponent\n app={app}\n appData={appData}\n settings={appSettings}\n onSettingChange={onAppSettingChange}\n onSettingsChange={onAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </ErrorBoundary>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n}\n\nAppSettingsDialog.propTypes = {\n AppSettingsComponent: func,\n app: shape({}).isRequired,\n appData: shape({}).isRequired,\n appName: string.isRequired,\n currentUser: shape({}).isRequired,\n isMultiRig: bool.isRequired,\n isSettingsDialogHidden: bool,\n layoutEnvironment: shape({}).isRequired,\n onAppRemove: func,\n onCloneDashboard: func,\n onSettingsChange: func.isRequired,\n toggleAppSettingsDialog: func.isRequired,\n};\n\nAppSettingsDialog.defaultProps = {\n AppSettingsComponent: () => null,\n isSettingsDialogHidden: false,\n onAppRemove: undefined,\n onCloneDashboard: noop,\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","AppSettingsErrorView","AppSettingsDialog","_ref","_app$segment","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","AppSettingsComponent","app","appData","appName","currentUser","isMultiRig","isSettingsDialogHidden","layoutEnvironment","onAppRemove","onCloneDashboard","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","hasSegmentSelector","segment","length","_useState","useState","getAppSegment","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","isCompletionSegment","SEGMENTS","COMPLETION","assetEditorAppType","SEGMENT_TO_ASSET_TYPE","isAssetPage","type","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","defaultRigId","useRef","useEffect","_useState7","_app$package","_objectSpread","cloneDeep","settings","package","version","_useState8","appSettings","setAppSettings","isSustainabilityApp","getIsSustainabilityApp","_useState10","_useState9","validationError","setValidationError","platformAppSettingsRef","customAppSettingsRef","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","styles","useStyles","isCompletionApp","isCLIApp","DEV_CENTER_CLI_APP_ID","onAppSettingChange","name","value","prevSettings","_defineProperty","onAppSettingsChange","newSettings","AssetEditorComponent","debounce","debouncedSetIsMounted","modalTitle","_jsxs","jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","jsx","concat","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","appTypeKey","primaryAsset","assetType","appTypeLabel","label","showSuccessNotification","Modal","actions","closeIconClassName","closeIcon","contentContainerClassName","modalContainer","modalTitleClassName","onClose","title","ErrorBoundary","ErrorView","DevCenterAppErrorView","ConfirmationDialog","isShowCancel","text","handleOk","classes","confirmation","confirmationText","DisabledSettingsMessage","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","_ref2","nextSegment","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appKey","app_key","appType","defaultValue","secondaryDefaultValue","well","isHiddenMultipleAssetsToggle","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","val","accordion","onSettingChange","propTypes","func","shape","isRequired","string","bool","defaultProps","undefined","noop"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("../AppContainer/AppContainer.js");require("../AppContainer/AppContainer.constants.js");var p=require("../AppHeader/AppHeader.js");require("../AppHeader/AppHeader.constants.js");exports.AppMessageWrapper=function(s){var n=s.children,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("../AppContainer/AppContainer.js");require("../AppContainer/AppContainer.constants.js");var p=require("../AppHeader/AppHeader.js");require("../AppHeader/AppHeader.constants.js");exports.AppMessageWrapper=function(s){var n=s.children,t=s.showHeader,a=void 0===t||t,o=s.logo;return e.jsx(r.AppContainer,{header:a?e.jsx(p.AppHeader,{logo:o,showComments:!1,showAssetChips:!1,disableSettings:!0}):void 0,children:n})};
|
|
2
2
|
//# sourceMappingURL=AppMessageWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppSettingsDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"names":[],"mappings":"AA4BA,yCAA0C;;
|
|
1
|
+
{"version":3,"file":"AppSettingsDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"names":[],"mappings":"AA4BA,yCAA0C;;AAO1C;;;;;;;;;;;;;;;gBAuQC;;;;;;;;;;;;;;;;;QAkBuB,4CAAU;;;;;;qBA3TQ,YAAY;qBAAZ,YAAY;qBACM,QAAQ"}
|
package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import o from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import{useState as s,useRef as t,useEffect as i}from"react";import{func as e,shape as r,string as c,bool as a}from"prop-types";import{cloneDeep as p,debounce as m,noop as l,mapValues as u,keyBy as d}from"lodash";import{FormControl as j,InputLabel as g,Select as f,MenuItem as v}from"@material-ui/core";import{ArrowForward as h}from"@material-ui/icons";import I from"../../../../EmptyState/EmptyState.js";import{getIsSustainabilityApp as C}from"../../utils.js";import y from"./components/RemoveAppButton.js";import{SettingsAccordion as b}from"./components/SettingsAccordion.js";import{useStyles as A}from"./styles.js";import"@babel/runtime/helpers/objectWithoutProperties";import"@material-ui/pickers";import"@date-io/moment";import"moment";import"../../../../../config/theme/index.js";import{jsxs as S,jsx as k,Fragment as D}from"react/jsx-runtime";import O from"../../../../../hocs/withAssetEditorLockHOC.js";import P from"../../../../ErrorBoundary/ErrorBoundary.js";import R from"../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import E from"../../../../Button/components/Button/index.js";import"moment-timezone";import"classnames";import"../../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../../../../Button/components/LiveButton/styles.js";import"@icon-park/react/es/all";import"../../../../../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/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 N from"../../../../Modal/Modal.js";import{DEV_CENTER_CLI_APP_ID as x}from"../../../../../constants/devcenter.js";import"../../../../../constants/goals.js";import{SEGMENTS as w,SEGMENT_TO_ASSET_TYPE as B}from"../../../../../constants/segment.js";import"../../../../../constants/alerts.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/completion.js";import"../../../../../constants/appPackages.js";import"../../../../../constants/notifications.js";import"../../../../../constants/feed.js";import"../../../../../constants/bha.js";import{ASSET_TYPES as T}from"../../../../../constants/assetTypes.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import M from"../../../../AssetEditorV2/index.js";import q from"../../../../AppVersionsSelect/AppVersionsSelect.js";import F from"../../../../DisabledSettingsMessage/DisabledSettingsMessage.js";import V from"../../../../ConfirmationDialog.js";import"../../../../../utils/index.js";import{AppIcon as H}from"../../../../AppIcon/AppIcon.js";import{getAppSegment as U}from"../../../../../utils/devcenter.js";import L from"../../../../../permissions/usePermissions.js";import{PERMISSIONS as G}from"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../../clients/jsonApi/index.js";import"../../../../../permissions/ProvidePermissions.js";import"../../../../../permissions/PermissionsContext.js";import{isInsideNewMobileApp as _}from"../../../../../utils/mobileDetect.js";import{showSuccessNotification as W}from"../../../../../utils/notificationToasts.js";function z(o,n){var s=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable}))),s.push.apply(s,t)}return s}function K(n){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{};s%2?z(Object(t),!0).forEach((function(s){o(n,s,t[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):z(Object(t)).forEach((function(o){Object.defineProperty(n,o,Object.getOwnPropertyDescriptor(t,o))}))}return n}var Z="DC_appSettings",J=O(M);function Q(e){var r,c,a,l,O,z,Q,X=e.AppSettingsComponent,Y=e.app,$=e.appData,oo=e.appName,no=e.currentUser,so=e.isMultiRig,to=e.isSettingsDialogHidden,io=e.layoutEnvironment,eo=e.onAppRemove,ro=e.onCloneDashboard,co=e.onSettingsChange,ao=e.openIntercom,po=e.rigId,mo=e.toggleAppSettingsDialog,lo=(null==Y||null===(r=Y.segment)||void 0===r?void 0:r.length)>1,uo=s(U(Y)),jo=n(uo,2),go=jo[0],fo=jo[1],vo=go===w.COMPLETION,ho=B[go],Io=io&&"asset"===io.type,Co=L([G.getCanReadAppPackages(Y.app.id)]),yo=n(Co,1)[0],bo=yo.active,Ao=yo.loading,So=s(!1),ko=n(So,2),Do=ko[0],Oo=ko[1],Po=s(!0),Ro=n(Po,2),Eo=Ro[0],No=Ro[1],xo=!(_||so||Io&&vo),wo=!_&&!to&&eo,Bo=t(po);i((function(){Eo||No(!0)}),[Eo]);var To=s((function(){var o;return K(K({},p(Y.settings)),{},{package:Y.settings.package||(null==Y||null===(o=Y.package)||void 0===o?void 0:o.version)})})),Mo=n(To,2),qo=Mo[0],Fo=Mo[1],Vo=C(null==Y||null===(c=Y.app)||void 0===c?void 0:c.id),Ho=s(""),Uo=n(Ho,2),Lo=Uo[0],Go=Uo[1],_o=t(null),Wo=t(null),zo=Ao||bo||Boolean(null===(a=_o.current)||void 0===a?void 0:a.clientHeight),Ko=Boolean(null===(l=Wo.current)||void 0===l?void 0:l.clientHeight),Zo=zo&&Ko,Jo=A({isCompletionApp:vo,isSustainabilityApp:Vo,isAccordionRequired:Zo,isRemoveButtonVisible:wo}),Qo=Y.id===x,Xo=function(n,s){return Fo((function(t){return K(K({},t),{},o({},n,s))}))},Yo=function(o){return Fo((function(n){return K(K({},n),o)}))},$o=Io?J:M;i((function(){m(Oo,200)(!0)}),[]);var on=S("div",{className:Jo.modalTitleContainer,children:[k(H,{className:Jo.appIcon,segment:[go],iconUrl:null==Y||null===(O=Y.app)||void 0===O||null===(z=O.icon)||void 0===z?void 0:z.url,height:48,width:48}),S("div",{children:[k("div",{children:"".concat(oo," Settings")}),!_&&S("div",{"data-testid":"".concat(Z,"_appstoreLink"),className:Jo.appStoreButton,onClick:function(){var o,n;return window.open((n=null==Y||null===(o=Y.app)||void 0===o?void 0:o.id,"/app-store/app/".concat(n)),"_top")},children:["Open in Appstore ",k(h,{className:Jo.arrowIcon})]})]})]}),nn=S("div",{className:Jo.modalActions,children:[wo&&k(y,{appName:oo,onAppRemove:eo}),S("div",{children:[k(E,{"data-testid":"".concat(Z,"_cancel"),variation:"secondary",onClick:mo,children:"Cancel"}),to&&k(E,{variation:"primary",onClick:function(){return ro()},children:"Copy Dashboard"}),!to&&k(E,{"data-testid":"".concat(Z,"_save"),className:Jo.saveButton,variation:"primary",onClick:function(){if(!qo.package&&!Qo)return Go("Please select app version");if(xo&&!Io){var o=null==ho?void 0:ho.primaryAsset.assetType.id,n=null==ho?void 0:ho.primaryAsset.assetType.label;if(o&&!qo[o])return Go("Please select ".concat(n))}return co(qo),W("Successfully saved"),mo()},children:"Save"})]})]});return k(N,{actions:nn,closeIconClassName:Jo.closeIcon,contentContainerClassName:Jo.modalContainer,modalTitleClassName:Jo.modalTitle,onClose:mo,open:!0,title:on,children:S(P,{ErrorView:R,openIntercom:ao,children:[k(V,{open:!!Lo,isShowCancel:!1,title:"Validation failed",text:Lo,handleOk:function(){return Go("")},classes:{confirmation:Jo.confirmationText}}),to&&k(F,{}),!to&&Do&&!Ko&&!zo&&k(I,{image:I.IMAGES.UnderConstruction,title:"No app settings"}),!to&&S(D,{children:[S(b,{defaultExpanded:!0,className:Jo.assetAccordion,accordionDetailsRef:_o,isAccordionRequired:Zo,summary:"Asset",children:[lo&&S(j,{className:Jo.segmentSelector,children:[k(g,{children:"Segment"}),k(f,{value:go,onChange:function(o){var n=o.target.value;Bo.current=null,No(!1),fo(n),Fo(K(K({package:qo.package,segment:n},u(d(T,"id"),(function(){return null}))),{},{assets:null}))},children:Y.segment.map((function(o){return k(v,{className:Jo.segmentMenuItem,value:o,children:o},o)}))})]}),xo&&Eo&&k($o,{appKey:Qo?null:Y.app.app_key,appType:ho,defaultValue:Bo.current,secondaryDefaultValue:+(null==$||null===(Q=$.well)||void 0===Q?void 0:Q.id),isHiddenMultipleAssetsToggle:!0,isHiddenTitle:!0,isNullable:Io,label:"Asset",onSettingsChange:Yo,settings:qo}),k(q,{className:Jo.appVersionSelect,appId:Y.app.id,value:qo.package,onChange:function(o){return Xo("package",o)}})]}),k(b,{accordionDetailsRef:Wo,className:Jo.accordion,defaultExpanded:!0,isAccordionRequired:Zo,summary:"App Settings",children:X&&k(X,{app:Y,appData:$,settings:qo,onSettingChange:Xo,onSettingsChange:Yo,layoutEnvironment:io,currentUser:no})})]})]})})}Q.propTypes={AppSettingsComponent:e,app:r({}).isRequired,appData:r({}).isRequired,appName:c.isRequired,currentUser:r({}).isRequired,isMultiRig:a.isRequired,isSettingsDialogHidden:a,layoutEnvironment:r({}).isRequired,onAppRemove:e,onCloneDashboard:e,onSettingsChange:e.isRequired,toggleAppSettingsDialog:e.isRequired},Q.defaultProps={AppSettingsComponent:function(){return null},isSettingsDialogHidden:!1,onAppRemove:void 0,onCloneDashboard:l};export{Z as PAGE_NAME,Q as default};
|
|
1
|
+
import o from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import{useState as s,useRef as t,useEffect as i}from"react";import{func as e,shape as r,string as c,bool as a}from"prop-types";import{cloneDeep as p,debounce as m,noop as l,mapValues as u,keyBy as d}from"lodash";import{FormControl as j,InputLabel as g,Select as f,MenuItem as v}from"@material-ui/core";import{ArrowForward as h}from"@material-ui/icons";import I from"../../../../EmptyState/EmptyState.js";import{getIsSustainabilityApp as C}from"../../utils.js";import y from"./components/RemoveAppButton.js";import{SettingsAccordion as b}from"./components/SettingsAccordion.js";import{useStyles as A}from"./styles.js";import"@babel/runtime/helpers/objectWithoutProperties";import"@material-ui/pickers";import"@date-io/moment";import"moment";import"../../../../../config/theme/index.js";import{jsxs as S,jsx as k,Fragment as D}from"react/jsx-runtime";import O from"../../../../../hocs/withAssetEditorLockHOC.js";import P from"../../../../ErrorBoundary/ErrorBoundary.js";import R from"../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import E from"../../../../Button/components/Button/index.js";import"moment-timezone";import"classnames";import"../../../../Button/components/LiveButton/components/LiveButtonStateIndicator/index.js";import"../../../../Button/components/LiveButton/styles.js";import"@icon-park/react/es/all";import"../../../../../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/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 N from"../../../../Modal/Modal.js";import{DEV_CENTER_CLI_APP_ID as w}from"../../../../../constants/devcenter.js";import"../../../../../constants/goals.js";import{SEGMENTS as x,SEGMENT_TO_ASSET_TYPE as B}from"../../../../../constants/segment.js";import"../../../../../constants/alerts.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/completion.js";import"../../../../../constants/appPackages.js";import"../../../../../constants/notifications.js";import"../../../../../constants/feed.js";import"../../../../../constants/bha.js";import{ASSET_TYPES as T}from"../../../../../constants/assetTypes.js";import"../../../../../constants/corvaCompanyId.js";import"../../../../GradientManager/configuration/constants.js";import M from"../../../../AssetEditorV2/index.js";import q from"../../../../AppVersionsSelect/AppVersionsSelect.js";import F from"../../../../DisabledSettingsMessage/DisabledSettingsMessage.js";import V from"../../../../ConfirmationDialog.js";import"../../../../../utils/index.js";import{AppIcon as H}from"../../../../AppIcon/AppIcon.js";import{getAppSegment as U}from"../../../../../utils/devcenter.js";import L from"../../../../../permissions/usePermissions.js";import{PERMISSIONS as G}from"../../../../../permissions/constants/index.js";import"../../../../../permissions/withPermissionsHOC.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"../../../../../clients/jsonApi/index.js";import"../../../../../permissions/ProvidePermissions.js";import"../../../../../permissions/PermissionsContext.js";import{isInsideNewMobileApp as _}from"../../../../../utils/mobileDetect.js";import{showSuccessNotification as W}from"../../../../../utils/notificationToasts.js";function z(o,n){var s=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable}))),s.push.apply(s,t)}return s}function K(n){for(var s=1;s<arguments.length;s++){var t=null!=arguments[s]?arguments[s]:{};s%2?z(Object(t),!0).forEach((function(s){o(n,s,t[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):z(Object(t)).forEach((function(o){Object.defineProperty(n,o,Object.getOwnPropertyDescriptor(t,o))}))}return n}var Z="DC_appSettings",J=O(M),Q=function(){return null};function X(e){var r,c,a,l,O,z,X,Y=e.AppSettingsComponent,$=e.app,oo=e.appData,no=e.appName,so=e.currentUser,to=e.isMultiRig,io=e.isSettingsDialogHidden,eo=e.layoutEnvironment,ro=e.onAppRemove,co=e.onCloneDashboard,ao=e.onSettingsChange,po=e.openIntercom,mo=e.rigId,lo=e.toggleAppSettingsDialog,uo=(null==$||null===(r=$.segment)||void 0===r?void 0:r.length)>1,jo=s(U($)),go=n(jo,2),fo=go[0],vo=go[1],ho=fo===x.COMPLETION,Io=B[fo],Co=eo&&"asset"===eo.type,yo=L([G.getCanReadAppPackages($.app.id)]),bo=n(yo,1)[0],Ao=bo.active,So=bo.loading,ko=s(!1),Do=n(ko,2),Oo=Do[0],Po=Do[1],Ro=s(!0),Eo=n(Ro,2),No=Eo[0],wo=Eo[1],xo=!(_||to||Co&&ho),Bo=!_&&!io&&ro,To=t(mo);i((function(){No||wo(!0)}),[No]);var Mo=s((function(){var o;return K(K({},p($.settings)),{},{package:$.settings.package||(null==$||null===(o=$.package)||void 0===o?void 0:o.version)})})),qo=n(Mo,2),Fo=qo[0],Vo=qo[1],Ho=C(null==$||null===(c=$.app)||void 0===c?void 0:c.id),Uo=s(""),Lo=n(Uo,2),Go=Lo[0],_o=Lo[1],Wo=t(null),zo=t(null),Ko=So||Ao||Boolean(null===(a=Wo.current)||void 0===a?void 0:a.clientHeight),Zo=Boolean(null===(l=zo.current)||void 0===l?void 0:l.clientHeight),Jo=Ko&&Zo,Qo=A({isCompletionApp:ho,isSustainabilityApp:Ho,isAccordionRequired:Jo,isRemoveButtonVisible:Bo}),Xo=$.id===w,Yo=function(n,s){return Vo((function(t){return K(K({},t),{},o({},n,s))}))},$o=function(o){return Vo((function(n){return K(K({},n),o)}))},on=Co?J:M;i((function(){m(Po,200)(!0)}),[]);var nn=S("div",{className:Qo.modalTitleContainer,children:[k(H,{className:Qo.appIcon,segment:[fo],iconUrl:null==$||null===(O=$.app)||void 0===O||null===(z=O.icon)||void 0===z?void 0:z.url,height:48,width:48}),S("div",{children:[k("div",{children:"".concat(no," Settings")}),!_&&S("div",{"data-testid":"".concat(Z,"_appstoreLink"),className:Qo.appStoreButton,onClick:function(){var o,n;return window.open((n=null==$||null===(o=$.app)||void 0===o?void 0:o.id,"/app-store/app/".concat(n)),"_top")},children:["Open in Appstore ",k(h,{className:Qo.arrowIcon})]})]})]}),sn=S("div",{className:Qo.modalActions,children:[Bo&&k(y,{appName:no,onAppRemove:ro}),S("div",{children:[k(E,{"data-testid":"".concat(Z,"_cancel"),variation:"secondary",onClick:lo,children:"Cancel"}),io&&k(E,{variation:"primary",onClick:function(){return co()},children:"Copy Dashboard"}),!io&&k(E,{"data-testid":"".concat(Z,"_save"),className:Qo.saveButton,variation:"primary",onClick:function(){if(!Fo.package&&!Xo)return _o("Please select app version");if(xo&&!Co){var o=null==Io?void 0:Io.primaryAsset.assetType.id,n=null==Io?void 0:Io.primaryAsset.assetType.label;if(o&&!Fo[o])return _o("Please select ".concat(n))}return ao(Fo),W("Successfully saved"),lo()},children:"Save"})]})]});return k(N,{actions:sn,closeIconClassName:Qo.closeIcon,contentContainerClassName:Qo.modalContainer,modalTitleClassName:Qo.modalTitle,onClose:lo,open:!0,title:nn,children:S(P,{ErrorView:R,openIntercom:po,children:[k(V,{open:!!Go,isShowCancel:!1,title:"Validation failed",text:Go,handleOk:function(){return _o("")},classes:{confirmation:Qo.confirmationText}}),io&&k(F,{}),!io&&Oo&&!Zo&&!Ko&&k(I,{image:I.IMAGES.UnderConstruction,title:"No app settings"}),!io&&S(D,{children:[S(b,{defaultExpanded:!0,className:Qo.assetAccordion,accordionDetailsRef:Wo,isAccordionRequired:Jo,summary:"Asset",children:[uo&&S(j,{className:Qo.segmentSelector,children:[k(g,{children:"Segment"}),k(f,{value:fo,onChange:function(o){var n=o.target.value;To.current=null,wo(!1),vo(n),Vo(K(K({package:Fo.package,segment:n},u(d(T,"id"),(function(){return null}))),{},{assets:null}))},children:$.segment.map((function(o){return k(v,{className:Qo.segmentMenuItem,value:o,children:o},o)}))})]}),xo&&No&&k(on,{appKey:Xo?null:$.app.app_key,appType:Io,defaultValue:To.current,secondaryDefaultValue:+(null==oo||null===(X=oo.well)||void 0===X?void 0:X.id),isHiddenMultipleAssetsToggle:!0,isHiddenTitle:!0,isNullable:Co,label:"Asset",onSettingsChange:$o,settings:Fo}),k(q,{className:Qo.appVersionSelect,appId:$.app.id,value:Fo.package,onChange:function(o){return Yo("package",o)}})]}),k(P,{ErrorView:Q,openIntercom:po,children:k(b,{accordionDetailsRef:zo,className:Qo.accordion,defaultExpanded:!0,isAccordionRequired:Jo,summary:"App Settings",children:Y&&k(Y,{app:$,appData:oo,settings:Fo,onSettingChange:Yo,onSettingsChange:$o,layoutEnvironment:eo,currentUser:so})})})]})]})})}X.propTypes={AppSettingsComponent:e,app:r({}).isRequired,appData:r({}).isRequired,appName:c.isRequired,currentUser:r({}).isRequired,isMultiRig:a.isRequired,isSettingsDialogHidden:a,layoutEnvironment:r({}).isRequired,onAppRemove:e,onCloneDashboard:e,onSettingsChange:e.isRequired,toggleAppSettingsDialog:e.isRequired},X.defaultProps={AppSettingsComponent:function(){return null},isSettingsDialogHidden:!1,onAppRemove:void 0,onCloneDashboard:l};export{Z as PAGE_NAME,X as default};
|
|
2
2
|
//# sourceMappingURL=AppSettingsDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\nimport { func, shape, string, bool } from 'prop-types';\nimport { cloneDeep, debounce, noop, mapValues, keyBy } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport { getIsSustainabilityApp } from '../../utils';\n\nimport { RemoveAppButton, SettingsAccordion } from './components';\nimport { useStyles } from './styles';\n\nimport { withAssetEditorLockHOC } from '~/hocs';\nimport ErrorBoundary, { DevCenterAppErrorView } from '~/components/ErrorBoundary';\nimport Button from '~/components/Button';\nimport Modal from '~/components/Modal';\nimport { ASSET_TYPES, DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport AssetEditor from '~/components/AssetEditorV2';\nimport AppVersionsSelect from '~/components/AppVersionsSelect';\nimport { DisabledSettingsMessage } from '~/components/DisabledSettingsMessage';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { SEGMENT_TO_ASSET_TYPE, SEGMENTS } from '~/constants/segment';\nimport { showSuccessNotification } from '~/utils';\nimport AppIcon from '~/components/AppIcon';\nimport { getAppSegment } from '~/utils/devcenter';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = appId => `/app-store/app/${appId}`;\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor);\n\nfunction AppSettingsDialog({\n AppSettingsComponent,\n app,\n appData,\n appName,\n currentUser,\n isMultiRig,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) {\n const hasSegmentSelector = app?.segment?.length > 1;\n const [appSegmentSetting, setAppSegmentSetting] = useState(getAppSegment(app));\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = SEGMENT_TO_ASSET_TYPE[appSegmentSetting];\n const isAssetPage = layoutEnvironment && layoutEnvironment.type === 'asset';\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const isAssetSelectorVisible =\n !isInsideNewMobileApp && !isMultiRig && !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && onAppRemove;\n\n // NOTE: Keep in ref to have a way to reset default value\n // of asset selector when changing app segment\n const defaultRigId = useRef(rigId);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n const [appSettings, setAppSettings] = useState(() => ({\n ...cloneDeep(app.settings),\n package: app.settings.package || app?.package?.version,\n }));\n\n const handleChangeAppSegment = ({ target: { value: nextSegment } }) => {\n defaultRigId.current = null;\n setIsAssetSelectorRendered(false);\n\n setAppSegmentSetting(nextSegment);\n setAppSettings({\n package: appSettings.package,\n segment: nextSegment,\n // NOTE: we need to reset asset ids when segment is changed\n ...mapValues(keyBy(ASSET_TYPES, 'id'), () => null),\n assets: null,\n });\n };\n\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const [validationError, setValidationError] = useState('');\n const platformAppSettingsRef = useRef(null);\n const customAppSettingsRef = useRef(null);\n\n const hasPlatformAppSettings =\n isPermissionsLoading ||\n canReadAppPackages ||\n Boolean(platformAppSettingsRef.current?.clientHeight);\n const hasCustomAppSettings = Boolean(customAppSettingsRef.current?.clientHeight);\n const isAccordionRequired = hasPlatformAppSettings && hasCustomAppSettings;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n\n const onSave = () => {\n const isNoPackageError = !appSettings.package && !isCLIApp;\n if (isNoPackageError) return setValidationError('Please select app version');\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset.assetType.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset.assetType.label;\n if (appTypeKey && !appSettings[appTypeKey])\n return setValidationError(`Please select ${appTypeLabel}`);\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n return toggleAppSettingsDialog();\n };\n\n const onAppSettingChange = (name, value) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const onAppSettingsChange = newSettings =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const AssetEditorComponent = isAssetPage ? AssetEditorWithLock : AssetEditor;\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle = (\n <div className={styles.modalTitleContainer}>\n <AppIcon\n className={styles.appIcon}\n segment={[appSegmentSetting]}\n iconUrl={app?.app?.icon?.url}\n height={48}\n width={48}\n />\n <div>\n <div>{`${appName} Settings`}</div>\n {!isInsideNewMobileApp && (\n <div\n data-testid={`${PAGE_NAME}_appstoreLink`}\n className={styles.appStoreButton}\n onClick={() => window.open(getAppPageUrl(app?.app?.id), '_top')}\n >\n Open in Appstore <ArrowIcon className={styles.arrowIcon} />\n </div>\n )}\n </div>\n </div>\n );\n\n const modalActions = (\n <div className={styles.modalActions}>\n {isRemoveButtonVisible && <RemoveAppButton appName={appName} onAppRemove={onAppRemove} />}\n <div>\n <Button\n data-testid={`${PAGE_NAME}_cancel`}\n variation=\"secondary\"\n onClick={toggleAppSettingsDialog}\n >\n Cancel\n </Button>\n {isSettingsDialogHidden && (\n <Button variation=\"primary\" onClick={() => onCloneDashboard()}>\n Copy Dashboard\n </Button>\n )}\n {!isSettingsDialogHidden && (\n <Button\n data-testid={`${PAGE_NAME}_save`}\n className={styles.saveButton}\n variation=\"primary\"\n onClick={onSave}\n >\n Save\n </Button>\n )}\n </div>\n </div>\n );\n\n return (\n <Modal\n actions={modalActions}\n closeIconClassName={styles.closeIcon}\n contentContainerClassName={styles.modalContainer}\n modalTitleClassName={styles.modalTitle}\n onClose={toggleAppSettingsDialog}\n open\n title={modalTitle}\n >\n <ErrorBoundary ErrorView={DevCenterAppErrorView} openIntercom={openIntercom}>\n <ConfirmationDialog\n open={!!validationError}\n isShowCancel={false}\n title=\"Validation failed\"\n text={validationError}\n handleOk={() => setValidationError('')}\n classes={{ confirmation: styles.confirmationText }}\n />\n {isSettingsDialogHidden && <DisabledSettingsMessage />}\n {!isSettingsDialogHidden &&\n isMounted &&\n !hasCustomAppSettings &&\n !hasPlatformAppSettings && (\n <EmptyState image={EmptyState.IMAGES.UnderConstruction} title=\"No app settings\" />\n )}\n {!isSettingsDialogHidden && (\n <>\n <SettingsAccordion\n defaultExpanded\n className={styles.assetAccordion}\n accordionDetailsRef={platformAppSettingsRef}\n isAccordionRequired={isAccordionRequired}\n summary=\"Asset\"\n >\n {hasSegmentSelector && (\n <FormControl className={styles.segmentSelector}>\n <InputLabel>Segment</InputLabel>\n <Select value={appSegmentSetting} onChange={handleChangeAppSegment}>\n {app.segment.map(segmentItem => (\n <MenuItem\n className={styles.segmentMenuItem}\n key={segmentItem}\n value={segmentItem}\n >\n {segmentItem}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n {isAssetSelectorVisible && isAssetSelectorRendered && (\n <AssetEditorComponent\n appKey={isCLIApp ? null : app.app.app_key}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenMultipleAssetsToggle\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={onAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={appSettings.package}\n onChange={val => onAppSettingChange('package', val)}\n />\n </SettingsAccordion>\n <SettingsAccordion\n accordionDetailsRef={customAppSettingsRef}\n className={styles.accordion}\n defaultExpanded\n isAccordionRequired={isAccordionRequired}\n summary=\"App Settings\"\n >\n {AppSettingsComponent && (\n <AppSettingsComponent\n app={app}\n appData={appData}\n settings={appSettings}\n onSettingChange={onAppSettingChange}\n onSettingsChange={onAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n}\n\nAppSettingsDialog.propTypes = {\n AppSettingsComponent: func,\n app: shape({}).isRequired,\n appData: shape({}).isRequired,\n appName: string.isRequired,\n currentUser: shape({}).isRequired,\n isMultiRig: bool.isRequired,\n isSettingsDialogHidden: bool,\n layoutEnvironment: shape({}).isRequired,\n onAppRemove: func,\n onCloneDashboard: func,\n onSettingsChange: func.isRequired,\n toggleAppSettingsDialog: func.isRequired,\n};\n\nAppSettingsDialog.defaultProps = {\n AppSettingsComponent: () => null,\n isSettingsDialogHidden: false,\n onAppRemove: undefined,\n onCloneDashboard: noop,\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","AppSettingsDialog","_ref","_app$segment","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","AppSettingsComponent","app","appData","appName","currentUser","isMultiRig","isSettingsDialogHidden","layoutEnvironment","onAppRemove","onCloneDashboard","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","hasSegmentSelector","segment","length","_useState","useState","getAppSegment","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","isCompletionSegment","SEGMENTS","COMPLETION","assetEditorAppType","SEGMENT_TO_ASSET_TYPE","isAssetPage","type","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","defaultRigId","useRef","useEffect","_useState7","_app$package","_objectSpread","cloneDeep","settings","package","version","_useState8","appSettings","setAppSettings","isSustainabilityApp","getIsSustainabilityApp","_useState10","_useState9","validationError","setValidationError","platformAppSettingsRef","customAppSettingsRef","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","styles","useStyles","isCompletionApp","isCLIApp","DEV_CENTER_CLI_APP_ID","onAppSettingChange","name","value","prevSettings","_defineProperty","onAppSettingsChange","newSettings","AssetEditorComponent","debounce","debouncedSetIsMounted","modalTitle","_jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","concat","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","appTypeKey","primaryAsset","assetType","appTypeLabel","label","showSuccessNotification","Modal","actions","closeIconClassName","closeIcon","contentContainerClassName","modalContainer","modalTitleClassName","onClose","title","ErrorBoundary","ErrorView","DevCenterAppErrorView","ConfirmationDialog","isShowCancel","text","handleOk","classes","confirmation","confirmationText","DisabledSettingsMessage","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","_ref2","nextSegment","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appKey","app_key","appType","defaultValue","secondaryDefaultValue","well","isHiddenMultipleAssetsToggle","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","val","accordion","onSettingChange","propTypes","func","shape","isRequired","string","bool","defaultProps","undefined","noop"],"mappings":"6lMA4BO,IAAMA,EAAY,iBAGnBC,EAAsBC,EAAuBC,GAEnD,SAASC,EAeNC,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAdDC,IAAAA,qBACAC,IAAAA,IACAC,IAAAA,QACAC,KAAAA,QACAC,KAAAA,YACAC,KAAAA,WACAC,KAAAA,uBACAC,KAAAA,kBACAC,KAAAA,YACAC,KAAAA,iBACAC,KAAAA,iBACAC,KAAAA,aACAC,KAAAA,MACAC,KAAAA,wBAEMC,IAAqBb,SAAY,QAATR,EAAHQ,EAAKc,eAAO,IAAAtB,OAAT,EAAHA,EAAcuB,QAAS,EAClDC,GAAkDC,EAASC,EAAclB,IAAKmB,GAAAC,EAAAJ,GAAA,GAAvEK,GAAiBF,GAAA,GAAEG,GAAoBH,GAAA,GACxCI,GAAsBF,KAAsBG,EAASC,WACrDC,GAAqBC,EAAsBN,IAC3CO,GAActB,IAAgD,UAA3BA,GAAkBuB,KAC3DC,GAAwEC,EAAe,CACrFC,EAAYC,sBAAsBjC,EAAIA,IAAIkC,MAC1CC,GAAAf,EAAAU,GAAA,GAAA,GAFeM,MAARC,OAAqCC,MAATC,QAIHtB,GAAAA,GAAS,GAAMuB,GAAApB,EAAAqB,GAAA,GAA1CC,GAASF,GAAA,GAAEG,GAAYH,GAAA,GACgCvB,GAAAA,GAAS,GAAK2B,GAAAxB,EAAAyB,GAAA,GAArEC,GAAuBF,GAAA,GAAEG,GAA0BH,GAAA,GACpDI,KACHC,GAAyB7C,IAAgBwB,IAAeL,IACrD2B,IAAyBD,IAAyB5C,IAA0BE,GAI5E4C,GAAeC,EAAOzC,IAE5B0C,GAAU,WACHP,IAAyBC,IAA2B,EAC3D,GAAG,CAACD,KAEJ,IAAAQ,GAAsCrC,GAAS,WAAA,IAAAsC,EAAA,OAAAC,EAAAA,EAAA,GAC1CC,EAAUzD,EAAI0D,WAAS,GAAA,CAC1BC,QAAS3D,EAAI0D,SAASC,UAAW3D,SAAY,UAAZA,EAAK2D,eAAO,IAAAJ,SAAZA,EAAcK,UAAO,IACrDC,GAAAzC,EAAAkC,GAAA,GAHIQ,GAAWD,GAAA,GAAEE,GAAcF,GAAA,GAmB5BG,GAAsBC,EAAuBjE,SAAA,QAAAA,EAAAA,EAAKA,WAAL,IAAAP,OAAAO,EAAAP,EAAUyC,IAEfjB,GAAAA,EAAS,IAAGiD,GAAA9C,EAAA+C,GAAA,GAAnDC,GAAeF,GAAA,GAAEG,GAAkBH,GAAA,GACpCI,GAAyBlB,EAAO,MAChCmB,GAAuBnB,EAAO,MAE9BoB,GACJlC,IACAF,IACAqC,QAAQ,QAAAH,EAAAA,GAAuBI,eAAvB,IAAAhF,OAAA,EAAAA,EAAgCiF,cACpCC,GAAuBH,QAAoC,QAA5BF,EAAAA,GAAqBG,eAAO,IAAA/E,OAAA,EAA5BA,EAA8BgF,cAC7DE,GAAsBL,IAA0BI,GAEhDE,GAASC,EAAU,CACvBC,gBAAiBzD,GACjByC,oBAAAA,GACAa,oBAAAA,GACA3B,sBAAAA,KAGI+B,GAAWjF,EAAIkC,KAAOgD,EAiBtBC,GAAqB,SAACC,EAAMC,GAAK,OACrCtB,IAAe,SAAAuB,GAAY,OAAA9B,EAAAA,EAAA,CAAA,EACtB8B,GAAY,GAAAC,EAAA,CAAA,EACdH,EAAOC,GAAK,GACZ,EAECG,GAAsB,SAAAC,GAAW,OACrC1B,IAAe,SAAAuB,GAAY,OAAUA,EAAAA,EAAAA,CAAAA,EAAAA,GAAiBG,EAAW,GAAI,EAEjEC,GAAuB9D,GAAczC,EAAsBE,EAEjEgE,GAAU,WACsBsC,EAAShD,GAAc,IACrDiD,EAAsB,EACvB,GAAE,IAEH,IAAMC,GACJC,EAAA,MAAA,CAAKC,UAAWjB,GAAOkB,oBAAoBC,SAAA,CACzCC,EAACC,EAAO,CACNJ,UAAWjB,GAAOsB,QAClBtF,QAAS,CAACO,IACVgF,QAASrG,SAAA,QAAAA,EAAAA,EAAKA,WAAL,IAAAJ,GAAc,QAAdC,EAAAD,EAAU0G,YAAI,IAAAzG,OAAdG,EAAAH,EAAgB0G,IACzBC,OAAQ,GACRC,MAAO,KAETX,EAAA,MAAA,CAAAG,SACE,CAAAC,EAAA,MAAA,CAAAD,SAAA,GAAAS,OAASxG,GAAO,gBACd+C,GACA6C,EAAA,MAAA,CACE,cAAA,GAAAY,OAAgBxH,EAAyB,iBACzC6G,UAAWjB,GAAO6B,eAClBC,QAAS,WAAA,IAAAC,EAjICC,EAiID,OAAMC,OAAOC,MAjIZF,EAiI+B9G,SAAA,UAAAA,EAAKA,WAAL,IAAA6G,SAAAA,EAAU3E,GAjIpC,kBAAAwE,OAAsBI,IAiImB,OAAQ,EAAAb,SAAA,CAAA,oBAE/CC,EAACe,EAAS,CAAClB,UAAWjB,GAAOoC,qBAOlDC,GACJrB,EAAA,MAAA,CAAKC,UAAWjB,GAAOqC,aAAalB,SACjC/C,CAAAA,IAAyBgD,EAACkB,EAAe,CAAClH,QAASA,GAASK,YAAaA,KAC1EuF,EAAA,MAAA,CAAAG,SAAA,CACEC,EAACmB,EAAM,CACL,cAAA,GAAAX,OAAgBxH,EAAmB,WACnCoI,UAAU,YACVV,QAAShG,GAAwBqF,SAAA,WAIlC5F,IACC6F,EAACmB,EAAM,CAACC,UAAU,UAAUV,QAAS,WAAA,OAAMpG,IAAmB,EAAAyF,SAAA,oBAI9D5F,IACA6F,EAACmB,EAAM,CACL,cAAA,GAAAX,OAAgBxH,EAAiB,SACjC6G,UAAWjB,GAAOyC,WAClBD,UAAU,UACVV,QA5EK,WAEb,IAD0B9C,GAAYH,UAAYsB,GAC5B,OAAOZ,GAAmB,6BAChD,GAAIrB,KAA2BpB,GAAa,CAC1C,IAAM4F,EAAa9F,cAAkB,EAAlBA,GAAoB+F,aAAaC,UAAUxF,GACxDyF,EAAejG,cAAkB,EAAlBA,GAAoB+F,aAAaC,UAAUE,MAChE,GAAIJ,IAAe1D,GAAY0D,GAC7B,OAAOnD,GAAoCsD,iBAAAA,OAAAA,GAC/C,CAIA,OAFAlH,GAAiBqD,IACjB+D,EAAwB,sBACjBjH,MAgEiBqF,SAAA,eAS1B,OACEC,EAAC4B,EAAK,CACJC,QAASZ,GACTa,mBAAoBlD,GAAOmD,UAC3BC,0BAA2BpD,GAAOqD,eAClCC,oBAAqBtD,GAAOe,WAC5BwC,QAASzH,GACToG,MAAI,EACJsB,MAAOzC,GAAWI,SAElBH,EAACyC,EAAa,CAACC,UAAWC,EAAuB/H,aAAcA,GAAauF,SAAA,CAC1EC,EAACwC,EAAkB,CACjB1B,OAAQ5C,GACRuE,cAAc,EACdL,MAAM,oBACNM,KAAMxE,GACNyE,SAAU,WAAA,OAAMxE,GAAmB,GAAI,EACvCyE,QAAS,CAAEC,aAAcjE,GAAOkE,oBAEjC3I,IAA0B6F,EAAC+C,EAAuB,CAAA,IACjD5I,IACAqC,KACCkC,KACAJ,IACC0B,EAACgD,EAAU,CAACC,MAAOD,EAAWE,OAAOC,kBAAmBf,MAAM,qBAEhEjI,IACAyF,EAAAwD,EAAA,CAAArD,SAAA,CACEH,EAACyD,EAAiB,CAChBC,iBAAe,EACfzD,UAAWjB,GAAO2E,eAClBC,oBAAqBpF,GACrBO,oBAAqBA,GACrB8E,QAAQ,QAAO1D,SAEdpF,CAAAA,IACCiF,EAAC8D,EAAW,CAAC7D,UAAWjB,GAAO+E,gBAAgB5D,SAAA,CAC7CC,EAAC4D,EAAU,CAAA7D,SAAA,YACXC,EAAC6D,EAAM,CAAC1E,MAAOhE,GAAmB2I,SA/JnB,SAAwCC,GAAA,IAApBC,EAAWD,EAA5BE,OAAU9E,MAC1ClC,GAAauB,QAAU,KACvB3B,IAA2B,GAE3BzB,GAAqB4I,GACrBnG,GAAcP,EAAAA,EAAA,CACZG,QAASG,GAAYH,QACrB7C,QAASoJ,GAENE,EAAUC,EAAMC,EAAa,OAAO,WAAA,OAAM,SAAK,CAAA,EAAA,CAClDC,OAAQ,SAqJuEtE,SAChEjG,EAAIc,QAAQ0J,KAAI,SAAAC,GAAW,OAC1BvE,EAACwE,EAAQ,CACP3E,UAAWjB,GAAO6F,gBAElBtF,MAAOoF,EAAYxE,SAElBwE,GAHIA,WASdzH,IAA0BF,IACzBoD,EAACR,GAAoB,CACnBkF,OAAQ3F,GAAW,KAAOjF,EAAIA,IAAI6K,QAClCC,QAASpJ,GACTqJ,aAAc5H,GAAauB,QAC3BsG,wBAAwB/K,SAAa,QAANH,EAAPG,EAASgL,YAAI,IAAAnL,OAAN,EAAPA,EAAeoC,IACvCgJ,8BAA4B,EAC5BC,eAAa,EACbC,WAAYxJ,GACZgG,MAAM,QACNnH,iBAAkB+E,GAClB9B,SAAUI,KAGdoC,EAACmF,EAAiB,CAChBtF,UAAWjB,GAAOwG,iBAClBxE,MAAO9G,EAAIA,IAAIkC,GACfmD,MAAOvB,GAAYH,QACnBqG,SAAU,SAAAuB,GAAG,OAAIpG,GAAmB,UAAWoG,EAAI,OAGvDrF,EAACqD,EAAiB,CAChBG,oBAAqBnF,GACrBwB,UAAWjB,GAAO0G,UAClBhC,iBAAe,EACf3E,oBAAqBA,GACrB8E,QAAQ,eAAc1D,SAErBlG,GACCmG,EAACnG,EAAoB,CACnBC,IAAKA,EACLC,QAASA,EACTyD,SAAUI,GACV2H,gBAAiBtG,GACjB1E,iBAAkB+E,GAClBlF,kBAAmBA,GACnBH,YAAaA,cAS/B,CAEAb,EAAkBoM,UAAY,CAC5B3L,qBAAsB4L,EACtB3L,IAAK4L,EAAM,CAAE,GAAEC,WACf5L,QAAS2L,EAAM,CAAE,GAAEC,WACnB3L,QAAS4L,EAAOD,WAChB1L,YAAayL,EAAM,CAAE,GAAEC,WACvBzL,WAAY2L,EAAKF,WACjBxL,uBAAwB0L,EACxBzL,kBAAmBsL,EAAM,CAAE,GAAEC,WAC7BtL,YAAaoL,EACbnL,iBAAkBmL,EAClBlL,iBAAkBkL,EAAKE,WACvBjL,wBAAyB+K,EAAKE,YAGhCvM,EAAkB0M,aAAe,CAC/BjM,qBAAsB,WAAA,OAAM,IAAI,EAChCM,wBAAwB,EACxBE,iBAAa0L,EACbzL,iBAAkB0L"}
|
|
1
|
+
{"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { bool, func, shape, string } from 'prop-types';\nimport { cloneDeep, debounce, keyBy, mapValues, noop } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport { getIsSustainabilityApp } from '../../utils';\n\nimport { RemoveAppButton, SettingsAccordion } from './components';\nimport { useStyles } from './styles';\n\nimport { withAssetEditorLockHOC } from '~/hocs';\nimport ErrorBoundary, { DevCenterAppErrorView } from '~/components/ErrorBoundary';\nimport Button from '~/components/Button';\nimport Modal from '~/components/Modal';\nimport { ASSET_TYPES, DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport AssetEditor from '~/components/AssetEditorV2';\nimport AppVersionsSelect from '~/components/AppVersionsSelect';\nimport { DisabledSettingsMessage } from '~/components/DisabledSettingsMessage';\nimport ConfirmationDialog from '~/components/ConfirmationDialog';\nimport { SEGMENT_TO_ASSET_TYPE, SEGMENTS } from '~/constants/segment';\nimport { showSuccessNotification } from '~/utils';\nimport AppIcon from '~/components/AppIcon';\nimport { getAppSegment } from '~/utils/devcenter';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { isInsideNewMobileApp } from '~/utils/mobileDetect';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = appId => `/app-store/app/${appId}`;\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor);\n\nconst AppSettingsErrorView = () => null;\n\nfunction AppSettingsDialog({\n AppSettingsComponent,\n app,\n appData,\n appName,\n currentUser,\n isMultiRig,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) {\n const hasSegmentSelector = app?.segment?.length > 1;\n const [appSegmentSetting, setAppSegmentSetting] = useState(getAppSegment(app));\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = SEGMENT_TO_ASSET_TYPE[appSegmentSetting];\n const isAssetPage = layoutEnvironment && layoutEnvironment.type === 'asset';\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const isAssetSelectorVisible =\n !isInsideNewMobileApp && !isMultiRig && !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && onAppRemove;\n\n // NOTE: Keep in ref to have a way to reset default value\n // of asset selector when changing app segment\n const defaultRigId = useRef(rigId);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n const [appSettings, setAppSettings] = useState(() => ({\n ...cloneDeep(app.settings),\n package: app.settings.package || app?.package?.version,\n }));\n\n const handleChangeAppSegment = ({ target: { value: nextSegment } }) => {\n defaultRigId.current = null;\n setIsAssetSelectorRendered(false);\n\n setAppSegmentSetting(nextSegment);\n setAppSettings({\n package: appSettings.package,\n segment: nextSegment,\n // NOTE: we need to reset asset ids when segment is changed\n ...mapValues(keyBy(ASSET_TYPES, 'id'), () => null),\n assets: null,\n });\n };\n\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const [validationError, setValidationError] = useState('');\n const platformAppSettingsRef = useRef(null);\n const customAppSettingsRef = useRef(null);\n\n const hasPlatformAppSettings =\n isPermissionsLoading ||\n canReadAppPackages ||\n Boolean(platformAppSettingsRef.current?.clientHeight);\n const hasCustomAppSettings = Boolean(customAppSettingsRef.current?.clientHeight);\n const isAccordionRequired = hasPlatformAppSettings && hasCustomAppSettings;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n\n const onSave = () => {\n const isNoPackageError = !appSettings.package && !isCLIApp;\n if (isNoPackageError) return setValidationError('Please select app version');\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset.assetType.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset.assetType.label;\n if (appTypeKey && !appSettings[appTypeKey])\n return setValidationError(`Please select ${appTypeLabel}`);\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n return toggleAppSettingsDialog();\n };\n\n const onAppSettingChange = (name, value) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const onAppSettingsChange = newSettings =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const AssetEditorComponent = isAssetPage ? AssetEditorWithLock : AssetEditor;\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle = (\n <div className={styles.modalTitleContainer}>\n <AppIcon\n className={styles.appIcon}\n segment={[appSegmentSetting]}\n iconUrl={app?.app?.icon?.url}\n height={48}\n width={48}\n />\n <div>\n <div>{`${appName} Settings`}</div>\n {!isInsideNewMobileApp && (\n <div\n data-testid={`${PAGE_NAME}_appstoreLink`}\n className={styles.appStoreButton}\n onClick={() => window.open(getAppPageUrl(app?.app?.id), '_top')}\n >\n Open in Appstore <ArrowIcon className={styles.arrowIcon} />\n </div>\n )}\n </div>\n </div>\n );\n\n const modalActions = (\n <div className={styles.modalActions}>\n {isRemoveButtonVisible && <RemoveAppButton appName={appName} onAppRemove={onAppRemove} />}\n <div>\n <Button\n data-testid={`${PAGE_NAME}_cancel`}\n variation=\"secondary\"\n onClick={toggleAppSettingsDialog}\n >\n Cancel\n </Button>\n {isSettingsDialogHidden && (\n <Button variation=\"primary\" onClick={() => onCloneDashboard()}>\n Copy Dashboard\n </Button>\n )}\n {!isSettingsDialogHidden && (\n <Button\n data-testid={`${PAGE_NAME}_save`}\n className={styles.saveButton}\n variation=\"primary\"\n onClick={onSave}\n >\n Save\n </Button>\n )}\n </div>\n </div>\n );\n\n return (\n <Modal\n actions={modalActions}\n closeIconClassName={styles.closeIcon}\n contentContainerClassName={styles.modalContainer}\n modalTitleClassName={styles.modalTitle}\n onClose={toggleAppSettingsDialog}\n open\n title={modalTitle}\n >\n <ErrorBoundary ErrorView={DevCenterAppErrorView} openIntercom={openIntercom}>\n <ConfirmationDialog\n open={!!validationError}\n isShowCancel={false}\n title=\"Validation failed\"\n text={validationError}\n handleOk={() => setValidationError('')}\n classes={{ confirmation: styles.confirmationText }}\n />\n {isSettingsDialogHidden && <DisabledSettingsMessage />}\n {!isSettingsDialogHidden &&\n isMounted &&\n !hasCustomAppSettings &&\n !hasPlatformAppSettings && (\n <EmptyState image={EmptyState.IMAGES.UnderConstruction} title=\"No app settings\" />\n )}\n {!isSettingsDialogHidden && (\n <>\n <SettingsAccordion\n defaultExpanded\n className={styles.assetAccordion}\n accordionDetailsRef={platformAppSettingsRef}\n isAccordionRequired={isAccordionRequired}\n summary=\"Asset\"\n >\n {hasSegmentSelector && (\n <FormControl className={styles.segmentSelector}>\n <InputLabel>Segment</InputLabel>\n <Select value={appSegmentSetting} onChange={handleChangeAppSegment}>\n {app.segment.map(segmentItem => (\n <MenuItem\n className={styles.segmentMenuItem}\n key={segmentItem}\n value={segmentItem}\n >\n {segmentItem}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n )}\n {isAssetSelectorVisible && isAssetSelectorRendered && (\n <AssetEditorComponent\n appKey={isCLIApp ? null : app.app.app_key}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenMultipleAssetsToggle\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={onAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={appSettings.package}\n onChange={val => onAppSettingChange('package', val)}\n />\n </SettingsAccordion>\n <ErrorBoundary ErrorView={AppSettingsErrorView} openIntercom={openIntercom}>\n <SettingsAccordion\n accordionDetailsRef={customAppSettingsRef}\n className={styles.accordion}\n defaultExpanded\n isAccordionRequired={isAccordionRequired}\n summary=\"App Settings\"\n >\n {AppSettingsComponent && (\n <AppSettingsComponent\n app={app}\n appData={appData}\n settings={appSettings}\n onSettingChange={onAppSettingChange}\n onSettingsChange={onAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </ErrorBoundary>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n}\n\nAppSettingsDialog.propTypes = {\n AppSettingsComponent: func,\n app: shape({}).isRequired,\n appData: shape({}).isRequired,\n appName: string.isRequired,\n currentUser: shape({}).isRequired,\n isMultiRig: bool.isRequired,\n isSettingsDialogHidden: bool,\n layoutEnvironment: shape({}).isRequired,\n onAppRemove: func,\n onCloneDashboard: func,\n onSettingsChange: func.isRequired,\n toggleAppSettingsDialog: func.isRequired,\n};\n\nAppSettingsDialog.defaultProps = {\n AppSettingsComponent: () => null,\n isSettingsDialogHidden: false,\n onAppRemove: undefined,\n onCloneDashboard: noop,\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","AppSettingsErrorView","AppSettingsDialog","_ref","_app$segment","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","AppSettingsComponent","app","appData","appName","currentUser","isMultiRig","isSettingsDialogHidden","layoutEnvironment","onAppRemove","onCloneDashboard","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","hasSegmentSelector","segment","length","_useState","useState","getAppSegment","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","isCompletionSegment","SEGMENTS","COMPLETION","assetEditorAppType","SEGMENT_TO_ASSET_TYPE","isAssetPage","type","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","defaultRigId","useRef","useEffect","_useState7","_app$package","_objectSpread","cloneDeep","settings","package","version","_useState8","appSettings","setAppSettings","isSustainabilityApp","getIsSustainabilityApp","_useState10","_useState9","validationError","setValidationError","platformAppSettingsRef","customAppSettingsRef","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","styles","useStyles","isCompletionApp","isCLIApp","DEV_CENTER_CLI_APP_ID","onAppSettingChange","name","value","prevSettings","_defineProperty","onAppSettingsChange","newSettings","AssetEditorComponent","debounce","debouncedSetIsMounted","modalTitle","_jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","concat","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","appTypeKey","primaryAsset","assetType","appTypeLabel","label","showSuccessNotification","Modal","actions","closeIconClassName","closeIcon","contentContainerClassName","modalContainer","modalTitleClassName","onClose","title","ErrorBoundary","ErrorView","DevCenterAppErrorView","ConfirmationDialog","isShowCancel","text","handleOk","classes","confirmation","confirmationText","DisabledSettingsMessage","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","_ref2","nextSegment","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appKey","app_key","appType","defaultValue","secondaryDefaultValue","well","isHiddenMultipleAssetsToggle","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","val","accordion","onSettingChange","propTypes","func","shape","isRequired","string","bool","defaultProps","undefined","noop"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as r}from"react/jsx-runtime";import{AppContainer as
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{AppContainer as e}from"../AppContainer/AppContainer.js";import"../AppContainer/AppContainer.constants.js";import{AppHeader as o}from"../AppHeader/AppHeader.js";import"../AppHeader/AppHeader.constants.js";var p=function(p){var t=p.children,n=p.showHeader,i=void 0===n||n,s=p.logo;return r(e,{header:i?r(o,{logo:s,showComments:!1,showAssetChips:!1,disableSettings:!0}):void 0,children:t})};export{p as AppMessageWrapper};
|
|
2
2
|
//# sourceMappingURL=AppMessageWrapper.js.map
|