@corva/ui 3.77.0-19 → 3.77.0-20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/cjs-bundle/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
  2. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
  3. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
  4. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
  5. package/cjs-bundle/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
  6. package/cjs-bundle/components/AssetEditorV2/components/SecondaryAssetSelect.js +1 -1
  7. package/cjs-bundle/components/AssetEditorV2/components/SecondaryAssetSelect.js.map +1 -1
  8. package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js +1 -1
  9. package/cjs-bundle/components/AssetEditorV2/components/SelectItem.js.map +1 -1
  10. package/cjs-bundle/components/AssetEditorV2/constants.js.map +1 -1
  11. package/cjs-bundle/components/AssetEditorV2/effects/assetResponse.js +2 -0
  12. package/cjs-bundle/components/AssetEditorV2/effects/assetResponse.js.map +1 -0
  13. package/cjs-bundle/components/AssetEditorV2/effects/index.js +1 -1
  14. package/cjs-bundle/components/AssetEditorV2/effects/index.js.map +1 -1
  15. package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
  16. package/cjs-bundle/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
  17. package/cjs-bundle/components/AssetEditorV2/index.js +1 -1
  18. package/cjs-bundle/components/AssetEditorV2/index.js.map +1 -1
  19. package/cjs-bundle/components/AssetEditorV2/utils/index.js +1 -1
  20. package/cjs-bundle/components/AssetEditorV2/utils/index.js.map +1 -1
  21. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
  22. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
  23. package/cjs-bundle/components/Search/Search.js.map +1 -1
  24. package/cjs-bundle/hocs/withAssetEditorLockHOC.js +1 -1
  25. package/cjs-bundle/hocs/withAssetEditorLockHOC.js.map +1 -1
  26. package/components/AssetEditorV2/__tests__/AssetEditorV2.test.d.ts +2 -0
  27. package/components/AssetEditorV2/__tests__/AssetEditorV2.test.d.ts.map +1 -0
  28. package/components/AssetEditorV2/__tests__/consumerTypes.test.d.ts +2 -0
  29. package/components/AssetEditorV2/__tests__/consumerTypes.test.d.ts.map +1 -0
  30. package/components/AssetEditorV2/components/MultipleAssetsToggle.d.ts +17 -6
  31. package/components/AssetEditorV2/components/MultipleAssetsToggle.d.ts.map +1 -1
  32. package/components/AssetEditorV2/components/MultipleAssetsToggle.js.map +1 -1
  33. package/components/AssetEditorV2/components/PrimaryAssetSelect.d.ts +30 -39
  34. package/components/AssetEditorV2/components/PrimaryAssetSelect.d.ts.map +1 -1
  35. package/components/AssetEditorV2/components/PrimaryAssetSelect.js +1 -1
  36. package/components/AssetEditorV2/components/PrimaryAssetSelect.js.map +1 -1
  37. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.d.ts +4 -41
  38. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.d.ts.map +1 -1
  39. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js +1 -1
  40. package/components/AssetEditorV2/components/PrimaryAssetSelectV2.js.map +1 -1
  41. package/components/AssetEditorV2/components/SecondaryAssetSelect.d.ts +22 -18
  42. package/components/AssetEditorV2/components/SecondaryAssetSelect.d.ts.map +1 -1
  43. package/components/AssetEditorV2/components/SecondaryAssetSelect.js +1 -1
  44. package/components/AssetEditorV2/components/SecondaryAssetSelect.js.map +1 -1
  45. package/components/AssetEditorV2/components/SelectItem.d.ts +10 -1
  46. package/components/AssetEditorV2/components/SelectItem.d.ts.map +1 -1
  47. package/components/AssetEditorV2/components/SelectItem.js +1 -1
  48. package/components/AssetEditorV2/components/SelectItem.js.map +1 -1
  49. package/components/AssetEditorV2/components/__tests__/AssetSelectors.test.d.ts +2 -0
  50. package/components/AssetEditorV2/components/__tests__/AssetSelectors.test.d.ts.map +1 -0
  51. package/components/AssetEditorV2/components/__tests__/MultipleAssetsToggle.test.d.ts.map +1 -1
  52. package/components/AssetEditorV2/components/__tests__/SelectItem.test.d.ts.map +1 -1
  53. package/components/AssetEditorV2/components/index.d.ts.map +1 -1
  54. package/components/AssetEditorV2/constants.d.ts +2 -9
  55. package/components/AssetEditorV2/constants.d.ts.map +1 -1
  56. package/components/AssetEditorV2/constants.js.map +1 -1
  57. package/components/AssetEditorV2/effects/__tests__/assetResponse.test.d.ts +2 -0
  58. package/components/AssetEditorV2/effects/__tests__/assetResponse.test.d.ts.map +1 -0
  59. package/components/AssetEditorV2/effects/__tests__/useLegacyPrimaryAssetSelectData.test.d.ts +2 -0
  60. package/components/AssetEditorV2/effects/__tests__/useLegacyPrimaryAssetSelectData.test.d.ts.map +1 -0
  61. package/components/AssetEditorV2/effects/__tests__/usePrimaryAssetSelectData.test.d.ts +2 -0
  62. package/components/AssetEditorV2/effects/__tests__/usePrimaryAssetSelectData.test.d.ts.map +1 -0
  63. package/components/AssetEditorV2/effects/assetResponse.d.ts +4 -0
  64. package/components/AssetEditorV2/effects/assetResponse.d.ts.map +1 -0
  65. package/components/AssetEditorV2/effects/assetResponse.js +2 -0
  66. package/components/AssetEditorV2/effects/assetResponse.js.map +1 -0
  67. package/components/AssetEditorV2/effects/index.d.ts +34 -28
  68. package/components/AssetEditorV2/effects/index.d.ts.map +1 -1
  69. package/components/AssetEditorV2/effects/index.js +1 -1
  70. package/components/AssetEditorV2/effects/index.js.map +1 -1
  71. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.d.ts +21 -17
  72. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.d.ts.map +1 -1
  73. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js +1 -1
  74. package/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js.map +1 -1
  75. package/components/AssetEditorV2/index.d.ts +36 -67
  76. package/components/AssetEditorV2/index.d.ts.map +1 -1
  77. package/components/AssetEditorV2/index.js +1 -1
  78. package/components/AssetEditorV2/index.js.map +1 -1
  79. package/components/AssetEditorV2/types.d.ts +82 -0
  80. package/components/AssetEditorV2/types.d.ts.map +1 -0
  81. package/components/AssetEditorV2/utils/__tests__/utils.test.d.ts.map +1 -1
  82. package/components/AssetEditorV2/utils/index.d.ts +23 -19
  83. package/components/AssetEditorV2/utils/index.d.ts.map +1 -1
  84. package/components/AssetEditorV2/utils/index.js +1 -1
  85. package/components/AssetEditorV2/utils/index.js.map +1 -1
  86. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.d.ts.map +1 -1
  87. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js +1 -1
  88. package/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.js.map +1 -1
  89. package/components/Drillstring/BHAComponentDetail/constants.d.ts +2 -2
  90. package/components/Search/Search.d.ts +6 -3
  91. package/components/Search/Search.d.ts.map +1 -1
  92. package/components/Search/Search.js.map +1 -1
  93. package/components/index.d.ts +1 -0
  94. package/components/index.d.ts.map +1 -1
  95. package/hocs/__tests__/withAssetEditorLockHOC.test.d.ts +2 -0
  96. package/hocs/__tests__/withAssetEditorLockHOC.test.d.ts.map +1 -0
  97. package/hocs/withAssetEditorLockHOC.d.ts +11 -1
  98. package/hocs/withAssetEditorLockHOC.d.ts.map +1 -1
  99. package/hocs/withAssetEditorLockHOC.js +1 -1
  100. package/hocs/withAssetEditorLockHOC.js.map +1 -1
  101. package/mcp-server/server.mjs +294 -64
  102. package/package.json +1 -1
  103. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"usePrimaryAssetSelectData.js","sources":["../../../../../src/components/AssetEditorV2/effects/usePrimaryAssetSelectData.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { isEmpty, map, uniqBy } from 'lodash';\n\nimport { formatAsset, getRequestOptions, sortAsset } from '../utils';\n\nimport { jsonApi } from '~/clients';\nimport { jsonaDataFormatter } from '~/utils/jsonaDataFormatter';\nimport { PER_PAGE } from '~/components/AssetEditor/constants';\nimport { ASSET_TYPES } from '~/constants';\n\nexport function usePrimaryAssetSelectData({\n appKey,\n assetType,\n company,\n groups,\n isRequiredAssetId,\n parentAssetId,\n parentAssetType,\n searchValue,\n assetFields,\n currentValue,\n setCurrentOption,\n scrollPage,\n onActiveAssetIdChange,\n isDrillingPlatformApp,\n}) {\n const [assets, setAssets] = useState([]);\n const [loading, setLoading] = useState(false);\n const prevCompany = useRef(null);\n const prevAssetType = useRef(null);\n const prevSearchValue = useRef(null);\n const prevScrollPage = useRef(null);\n\n const assetFieldsByAssetType =\n assetType === ASSET_TYPES.pad.type\n ? [...assetFields, 'pad.active', 'pad.parent_frac_fleet_id']\n : assetFields;\n\n const loadAssets = async (group, shouldAppend = false) => {\n try {\n const currentAssetType = group?.type || assetType;\n setLoading(true);\n const requestParams = { per_page: PER_PAGE, page: scrollPage };\n if (parentAssetType && parentAssetId) requestParams[parentAssetType] = parentAssetId;\n if (company && company !== 'all') requestParams.company = company;\n if (searchValue) requestParams.search = searchValue;\n if (appKey) requestParams.app_key = appKey;\n\n prevCompany.current = company;\n const requestPromise = jsonApi.mapAssetGetRequest(currentAssetType)({\n ...getRequestOptions(currentAssetType, assetFieldsByAssetType),\n ...requestParams,\n });\n\n const response = await requestPromise;\n const deserializedResponse = jsonaDataFormatter.deserialize(response);\n\n const responseAssets = map(deserializedResponse, asset =>\n formatAsset({\n asset,\n group: group?.name,\n isRequiredAssetId,\n isPrimaryAsset: true,\n isDrillingPlatformApp,\n })\n ).sort(sortAsset);\n\n if (prevCompany.current === company) {\n if (shouldAppend) {\n setAssets(prevState => uniqBy([...prevState, ...responseAssets], 'id'));\n } else {\n setAssets(responseAssets);\n }\n }\n } catch (e) {\n console.error(e);\n } finally {\n setLoading(false);\n }\n };\n\n const loadCurrentOption = async () => {\n let response = await jsonApi.mapAssetGetRequest(assetType)({\n ...getRequestOptions(assetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n if (isEmpty(response.data)) {\n // NOTE: Try fetch current option from v2/assets\n response = await jsonApi.getAssets({\n ...getRequestOptions(assetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n }\n const deserializedResponse = jsonaDataFormatter.deserialize(response);\n\n const formattedAsset = formatAsset({\n asset: deserializedResponse[0],\n isPrimaryAsset: true,\n isRequiredAssetId,\n isDrillingPlatformApp,\n });\n\n setCurrentOption(formattedAsset);\n if (assetType === ASSET_TYPES.rig.type) {\n const activeWellId = isDrillingPlatformApp\n ? Number(response?.included?.[0]?.id)\n : formattedAsset?.activeWellId || null;\n onActiveAssetIdChange(activeWellId);\n } else if (assetType === ASSET_TYPES.intervention_unit.type) {\n const activeWellId = formattedAsset?.activeWellId || null;\n onActiveAssetIdChange(activeWellId);\n }\n };\n\n useEffect(() => {\n if (company) {\n setAssets([]);\n }\n }, [company]);\n\n useEffect(() => {\n // Check if searchValue changed - if so, reset assets and don't append\n const searchValueChanged = prevSearchValue.current !== searchValue;\n const scrollPageChanged = prevScrollPage.current !== scrollPage;\n // Only append for pagination: searchValue didn't change AND scrollPage increased\n const isPagination =\n !searchValueChanged &&\n scrollPageChanged &&\n scrollPage > 1 &&\n (prevScrollPage.current || 0) < scrollPage;\n\n if (searchValueChanged) {\n prevSearchValue.current = searchValue;\n }\n if (scrollPageChanged) {\n prevScrollPage.current = scrollPage;\n }\n\n if (groups) {\n groups.forEach(group => {\n loadAssets(group, isPagination);\n });\n return;\n }\n if (!!assetType && !!prevAssetType.current && prevAssetType.current !== assetType) {\n setAssets([]);\n }\n prevAssetType.current = assetType;\n loadAssets(null, isPagination);\n }, [\n assetType,\n parentAssetType,\n parentAssetId,\n company,\n appKey,\n groups?.length,\n searchValue,\n scrollPage,\n ]);\n\n useEffect(() => {\n if (currentValue) {\n loadCurrentOption();\n }\n }, []);\n\n return { assets, loading };\n}\n"],"names":["_ref","_ref2","_ref3","appKey","assetType","company","groups","isRequiredAssetId","parentAssetId","parentAssetType","searchValue","assetFields","currentValue","setCurrentOption","scrollPage","onActiveAssetIdChange","isDrillingPlatformApp","useState","_useState2","_slicedToArray","_useState","assets","setAssets","_useState4","_useState3","loading","setLoading","prevCompany","useRef","prevAssetType","prevSearchValue","prevScrollPage","assetFieldsByAssetType","ASSET_TYPES","pad","type","concat","_toConsumableArray","loadAssets","_asyncToGenerator","_regeneratorRuntime","mark","group","shouldAppend","currentAssetType","requestParams","requestPromise","response","deserializedResponse","responseAssets","_args","arguments","wrap","_context","prev","next","per_page","PER_PAGE","page","search","app_key","current","jsonApi","_objectSpread","getRequestOptions","sent","jsonaDataFormatter","deserialize","map","asset","formatAsset","name","isPrimaryAsset","sort","sortAsset","prevState","uniqBy","t0","console","error","finish","stop","_callee","_x","apply","this","loadCurrentOption","_callee2","formattedAsset","_response","_response$included","_response$included$","activeWellId","_activeWellId","_context2","ids","isEmpty","data","getAssets","rig","Number","included","id","intervention_unit","useEffect","searchValueChanged","scrollPageChanged","isPagination","forEach","length"],"mappings":"4xEAUO,SAeJA,GAAA,IAaeC,EA2CUC,EAtE1BC,IAAAA,OACAC,IAAAA,UACAC,IAAAA,QACAC,IAAAA,OACAC,IAAAA,kBACAC,IAAAA,cACAC,IAAAA,gBACAC,IAAAA,YACAC,IAAAA,YACAC,IAAAA,aACAC,IAAAA,iBACAC,IAAAA,WACAC,IAAAA,sBACAC,IAAAA,sBAE4BC,EAAAA,EAAQA,SAAC,IAAGC,EAAAC,EAAAA,QAAAC,EAAA,GAAjCC,EAAMH,EAAA,GAAEI,EAASJ,EAAA,GACMD,EAAAA,EAAQA,UAAC,GAAMM,EAAAJ,EAAAA,QAAAK,EAAA,GAAtCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GACpBI,EAAcC,SAAO,MACrBC,EAAgBD,SAAO,MACvBE,EAAkBF,SAAO,MACzBG,EAAiBH,SAAO,MAExBI,EACJ5B,IAAc6B,EAAAA,YAAYC,IAAIC,KAAI,GAAAC,OAAAC,EAAAA,QAC1B1B,GAAa,CAAA,aAAc,6BAC/BA,EAEA2B,GAAUrC,EAAAsC,EAAAA,QAAAC,EAAAA,QAAAC,MAAG,WAAOC,GAAK,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,UAAA,OAAAX,UAAAY,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAczB,OAd2BZ,kCAAoBU,EAAAC,KAAA,EAE3CV,GAAmBF,eAAAA,EAAOP,OAAQ/B,EACxCsB,GAAW,GACLmB,EAAgB,CAAEW,SAAUC,EAAQA,SAAEC,KAAM5C,GAC9CL,GAAmBD,IAAeqC,EAAcpC,GAAmBD,GACnEH,GAAuB,QAAZA,IAAmBwC,EAAcxC,QAAUA,GACtDK,IAAamC,EAAcc,OAASjD,GACpCP,IAAQ0C,EAAce,QAAUzD,GAEpCwB,EAAYkC,QAAUxD,EAChByC,EAAiBgB,EAAAA,mBAA2BlB,EAA3BkB,CAA4CC,EAAAA,EAAA,CAAA,EAC9DC,EAAiBA,kBAACpB,EAAkBZ,IACpCa,IACHQ,EAAAE,KAAA,GAEqBT,EAAc,KAAA,GAA/BC,EAAQM,EAAAY,KACRjB,EAAuBkB,EAAkBA,mBAACC,YAAYpB,GAEtDE,EAAiBmB,EAAGA,IAACpB,GAAsB,SAAAqB,GAAK,OACpDC,cAAY,CACVD,MAAAA,EACA3B,MAAOA,aAAAA,EAAAA,EAAO6B,KACdhE,kBAAAA,EACAiE,gBAAgB,EAChBxD,sBAAAA,GACA,IACFyD,KAAKC,EAAAA,WAEH/C,EAAYkC,UAAYxD,GAExBiB,EADEqB,EACQ,SAAAgC,GAAS,OAAIC,SAAWD,GAAAA,OAAAA,UAAAA,aAAc1B,IAAiB,OAEvDA,GAEbI,EAAAE,KAAA,GAAA,MAAA,KAAA,GAAAF,EAAAC,KAAA,GAAAD,EAAAwB,GAAAxB,EAAA,MAAA,GAEDyB,QAAQC,MAAQ1B,EAAAwB,IAAC,KAAA,GAEC,OAFDxB,EAAAC,KAAA,GAEjB5B,GAAW,GAAO2B,EAAA2B,OAAA,IAAA,KAAA,GAAA,IAAA,MAAA,OAAA3B,EAAA4B,OAAA,GAAAC,EAAA,KAAA,CAAA,CAAA,EAAA,GAAA,GAAA,KAErB,KAAA,SAzCeC,GAAA,OAAAlF,EAAAmF,MAAAC,KAAAlC,UAAA,GA2CVmC,GAAoBpF,EAAAqC,EAAA,QAAAC,EAAA,QAAAC,MAAA,SAAA8C,IAAA,IAAAxC,EAAAC,EAAAwC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAArD,UAAAY,MAAA,SAAA0C,GAAA,OAAA,OAAAA,EAAAxC,KAAAwC,EAAAvC,MAAA,KAAA,EAAA,OAAAuC,EAAAvC,KAAA,EACHO,qBAA2B1D,EAA3B0D,CAChBE,EAAAA,EAAAA,GAAAA,EAAAA,kBAAkB5D,EAAW4B,IAAuB,CAAA,EAAA,CACvD+D,IAAKnF,KACL,KAAA,EAHU,GAARmC,EAAQ+C,EAAA7B,MAIR+B,EAAOA,QAACjD,EAASkD,MAAK,CAAAH,EAAAvC,KAAA,EAAA,KAAA,CAAA,OAAAuC,EAAAvC,KAAA,EAEPO,EAAiBoC,UAAAnC,EAAAA,EAAA,CAAA,EAC7BC,EAAiBA,kBAAC5D,EAAW4B,IAAuB,GAAA,CACvD+D,IAAKnF,KACL,KAAA,EAHFmC,EAAQ+C,EAAA7B,KAAA,KAAA,EAKJjB,EAAuBkB,EAAkBA,mBAACC,YAAYpB,GAEtDyC,EAAiBlB,EAAAA,YAAY,CACjCD,MAAOrB,EAAqB,GAC5BwB,gBAAgB,EAChBjE,kBAAAA,EACAS,sBAAAA,IAGFH,EAAiB2E,GACbpF,IAAc6B,EAAAA,YAAYkE,IAAIhE,MAC1ByD,EAAe5E,EACjBoF,OAAe,QAATX,EAAC1C,SAAQ,IAAA0C,GAAR,QAAQC,EAARD,EAAUY,gBAAV,IAAAX,GAAA,QAAAC,EAAAD,EAAqB,UAArB,IAAAC,OAAQ,EAARA,EAAyBW,KAChCd,aAAc,EAAdA,EAAgBI,eAAgB,KACpC7E,EAAsB6E,IACbxF,IAAc6B,cAAYsE,kBAAkBpE,OAC/CyD,GAAeJ,eAAAA,EAAgBI,eAAgB,KACrD7E,EAAsB6E,IACvB,KAAA,GAAA,IAAA,MAAA,OAAAE,EAAAb,OAAA,GAAAM,EACF,KAAA,WA/BsB,OAAArF,EAAAkF,MAAAC,KAAAlC,UAAA,GAqFvB,OApDAqD,EAAAA,WAAU,WACJnG,GACFiB,EAAU,GAEd,GAAG,CAACjB,IAEJmG,EAAAA,WAAU,WAER,IAAMC,EAAqB3E,EAAgB+B,UAAYnD,EACjDgG,EAAoB3E,EAAe8B,UAAY/C,EAE/C6F,GACHF,GACDC,GACA5F,EAAa,IACZiB,EAAe8B,SAAW,GAAK/C,EAE9B2F,IACF3E,EAAgB+B,QAAUnD,GAExBgG,IACF3E,EAAe8B,QAAU/C,GAGvBR,EACFA,EAAOsG,SAAQ,SAAAlE,GACbJ,EAAWI,EAAOiE,EACpB,KAGIvG,GAAeyB,EAAcgC,SAAWhC,EAAcgC,UAAYzD,GACtEkB,EAAU,IAEZO,EAAcgC,QAAUzD,EACxBkC,EAAW,KAAMqE,MAChB,CACDvG,EACAK,EACAD,EACAH,EACAF,EACAG,aAAAA,EAAAA,EAAQuG,OACRnG,EACAI,IAGF0F,EAAAA,WAAU,WACJ5F,GACF0E,GAEH,GAAE,IAEI,CAAEjE,OAAAA,EAAQI,QAAAA,EACnB"}
1
+ {"version":3,"file":"usePrimaryAssetSelectData.js","sources":["../../../../../src/components/AssetEditorV2/effects/usePrimaryAssetSelectData.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { isEmpty, uniqBy } from 'lodash';\n\nimport { AssetGroup, AssetId, AssetOption, AssetSelection } from '../types';\nimport { DEFAULT_ASSET_TYPE } from '../constants';\nimport { formatAsset, getRequestOptions, isAssetOption, sortAsset } from '../utils';\n\nimport { jsonApi } from '~/clients';\nimport { PER_PAGE } from '~/components/AssetEditor/constants';\nimport { ASSET_TYPES } from '~/constants';\n\nimport { deserializeAssetResponse, getFirstIncludedId, getResponseData } from './assetResponse';\n\ntype QueryParams = Record<string, unknown>;\n\ntype UsePrimaryAssetSelectDataParams = {\n appKey?: string | null;\n assetType?: string | null;\n company?: AssetId | null;\n groups?: AssetGroup[];\n isRequiredAssetId?: boolean;\n parentAssetId?: AssetId | null;\n parentAssetType?: string | null;\n searchValue?: string;\n assetFields?: string[];\n currentValue?: AssetId | null;\n selectedGroup?: AssetGroup | null;\n setCurrentOption: (selection: AssetSelection) => void;\n scrollPage: number;\n onActiveAssetIdChange: (id: number | null) => void;\n isDrillingPlatformApp?: boolean;\n};\n\nexport const usePrimaryAssetSelectData = ({\n appKey,\n assetType,\n company,\n groups,\n isRequiredAssetId,\n parentAssetId,\n parentAssetType,\n searchValue,\n assetFields = [],\n currentValue,\n setCurrentOption,\n scrollPage,\n onActiveAssetIdChange,\n isDrillingPlatformApp,\n}: UsePrimaryAssetSelectDataParams): { assets: AssetOption[]; loading: boolean } => {\n const [assets, setAssets] = useState<AssetOption[]>([]);\n const [loading, setLoading] = useState(false);\n const prevCompany = useRef<AssetId | null | undefined>(null);\n const prevAssetType = useRef<string | null>(null);\n const prevSearchValue = useRef<string | null | undefined>(null);\n const prevScrollPage = useRef<number | null>(null);\n const requestAssetType = assetType || DEFAULT_ASSET_TYPE;\n\n const assetFieldsByAssetType =\n requestAssetType === ASSET_TYPES.pad.type\n ? [...assetFields, 'pad.active', 'pad.parent_frac_fleet_id']\n : assetFields;\n\n const loadAssets = async (group?: AssetGroup | null, shouldAppend = false) => {\n try {\n const currentAssetType = group?.type || requestAssetType;\n setLoading(true);\n\n const requestParams: QueryParams = { per_page: PER_PAGE, page: scrollPage };\n\n if (parentAssetType && parentAssetId) requestParams[parentAssetType] = parentAssetId;\n if (company && company !== 'all') requestParams.company = company;\n if (searchValue) requestParams.search = searchValue;\n if (appKey) requestParams.app_key = appKey;\n\n prevCompany.current = company;\n\n const response: unknown = await jsonApi.mapAssetGetRequest(currentAssetType)({\n ...getRequestOptions(currentAssetType, assetFieldsByAssetType),\n ...requestParams,\n });\n\n const responseAssets = deserializeAssetResponse(response)\n .map(asset =>\n formatAsset({\n asset,\n group: group?.name,\n isRequiredAssetId,\n isPrimaryAsset: true,\n isDrillingPlatformApp,\n })\n )\n .filter(isAssetOption)\n .sort(sortAsset);\n\n if (prevCompany.current === company) {\n if (shouldAppend) {\n setAssets(prevState => uniqBy([...prevState, ...responseAssets], 'id'));\n } else {\n setAssets(responseAssets);\n }\n }\n } catch (error) {\n console.error(error);\n } finally {\n setLoading(false);\n }\n };\n\n const loadCurrentOption = async () => {\n let response: unknown = await jsonApi.mapAssetGetRequest(requestAssetType)({\n ...getRequestOptions(requestAssetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n\n if (isEmpty(getResponseData(response))) {\n // Try to fetch the current option from v2/assets.\n response = await jsonApi.getAssets({\n ...getRequestOptions(requestAssetType, assetFieldsByAssetType),\n ids: currentValue,\n });\n }\n\n const formattedAsset = formatAsset({\n asset: deserializeAssetResponse(response)[0],\n isPrimaryAsset: true,\n isRequiredAssetId,\n isDrillingPlatformApp,\n });\n\n setCurrentOption(formattedAsset);\n\n if (requestAssetType === ASSET_TYPES.rig.type) {\n const activeWellId = isDrillingPlatformApp\n ? getFirstIncludedId(response)\n : formattedAsset?.activeWellId || null;\n\n onActiveAssetIdChange(activeWellId);\n } else if (requestAssetType === ASSET_TYPES.intervention_unit.type) {\n onActiveAssetIdChange(formattedAsset?.activeWellId || null);\n }\n };\n\n useEffect(() => {\n if (company) {\n setAssets([]);\n }\n }, [company]);\n\n useEffect(() => {\n // Reset assets instead of appending when the search value changes.\n const isSearchValueChanged = prevSearchValue.current !== searchValue;\n const isScrollPageChanged = prevScrollPage.current !== scrollPage;\n const isPagination =\n !isSearchValueChanged &&\n isScrollPageChanged &&\n scrollPage > 1 &&\n (prevScrollPage.current || 0) < scrollPage;\n\n if (isSearchValueChanged) {\n prevSearchValue.current = searchValue;\n }\n\n if (isScrollPageChanged) {\n prevScrollPage.current = scrollPage;\n }\n\n if (groups) {\n groups.forEach(group => {\n loadAssets(group, isPagination);\n });\n\n return;\n }\n\n if (prevAssetType.current && prevAssetType.current !== requestAssetType) {\n setAssets([]);\n }\n\n prevAssetType.current = requestAssetType;\n loadAssets(null, isPagination);\n }, [\n assetType,\n parentAssetType,\n parentAssetId,\n company,\n appKey,\n groups?.length,\n searchValue,\n scrollPage,\n ]);\n\n useEffect(() => {\n if (currentValue) {\n loadCurrentOption();\n }\n }, []);\n\n return { assets, loading };\n};\n"],"names":["_ref","appKey","assetType","company","groups","isRequiredAssetId","parentAssetId","parentAssetType","searchValue","_ref$assetFields","assetFields","currentValue","setCurrentOption","scrollPage","onActiveAssetIdChange","isDrillingPlatformApp","useState","_useState2","_slicedToArray","_useState","assets","setAssets","_useState4","_useState3","loading","setLoading","prevCompany","useRef","prevAssetType","prevSearchValue","prevScrollPage","requestAssetType","DEFAULT_ASSET_TYPE","assetFieldsByAssetType","ASSET_TYPES","pad","type","concat","_toConsumableArray","loadAssets","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","group","shouldAppend","currentAssetType","requestParams","response","responseAssets","_args","arguments","wrap","_context","prev","next","per_page","PER_PAGE","page","search","app_key","current","jsonApi","_objectSpread","getRequestOptions","sent","deserializeAssetResponse","map","asset","formatAsset","name","isPrimaryAsset","filter","isAssetOption","sort","sortAsset","prevState","uniqBy","t0","console","error","finish","stop","_callee","_x","apply","this","loadCurrentOption","_ref3","_callee2","formattedAsset","activeWellId","_context2","ids","isEmpty","getResponseData","getAssets","rig","getFirstIncludedId","intervention_unit","useEffect","isSearchValueChanged","isScrollPageChanged","isPagination","forEach","length"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),a=require("react"),r=require("prop-types"),l=require("lodash"),n=require("classnames"),i=require("@material-ui/core"),u=require("./components/PrimaryAssetSelect.js"),d=require("./components/SecondaryAssetSelect.js");require("./components/SelectItem.js");var o=require("./components/MultipleAssetsToggle.js"),c=require("./components/PrimaryAssetSelectV2.js"),p=require("./constants.js"),f=require("./utils/index.js");require("../../constants/goals.js");var y=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 A=require("../../constants/assetTypes.js");require("../../constants/corvaCompanyId.js"),require("../GradientManager/configuration/constants.js");var m=require("react/jsx-runtime");function g(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var S=g(e),b=g(t),v=g(s),T=g(r),j=g(n);function h(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function q(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?h(Object(s),!0).forEach((function(t){b.default(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):h(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}var I=i.makeStyles({title:{fontWeight:400,fontSize:20,margin:"24px 0 16px"}}),E=function(e){var t=e.appKey,s=e.appType,r=e.className,n=e.company,i=e.defaultValue,g=e.secondaryDefaultValue,T=e.disabled,h=e.isHiddenTitle,E=e.isNullable,P=e.label,_=e.onSettingsChange,C=e.primaryAssetFields,O=e.secondaryAssetFields,D=e.isExtendedSelect,F=e.isRequiredAssetId,N=e.settings,V=e.isVisibleMultipleAssetsToggle,x=e.assetsLimit,R=e.isDisabledSecondaryAssetSelect,w=e.isDrillingPlatformApp,G=e.secondaryAssetHelpText,L=e.onChange,Y=e.elementsClassNames,H=l.get(s,["primaryAsset","assetType","type"]),K=l.get(s,["primaryAsset","assetType","id"]),M=l.get(s,["primaryAsset","assetType","label"]),k=l.get(s,["primaryAsset","groups"]),U=l.get(s,["secondaryAsset"],!1),W=l.get(s,["secondaryAsset","assetType","type"]),z=l.get(s,["secondaryAsset","assetType","id"]),B=l.get(s,["secondaryAsset","assetType","label"]),J=l.get(N,K),Q=J?Number(J):null,X=l.get(N,z)?Number(l.get(N,z)):g||null,Z=a.useState({id:Q||i}),$=v.default(Z,2),ee=$[0],te=$[1],se=a.useState(X),ae=v.default(se,2),re=ae[0],le=ae[1],ne=a.useState(!1),ie=v.default(ne,2),ue=ie[0],de=ie[1],oe=a.useState(),ce=v.default(oe,2),pe=ce[0],fe=ce[1],ye=a.useState(!1),Ae=v.default(ye,2),me=Ae[0],ge=Ae[1],Se=a.useRef(!1),be=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];_.apply(void 0,t.concat([Se.current]))},ve=I(),Te=H===A.ASSET_TYPES.rig.type||H===A.ASSET_TYPES.intervention_unit.type?c:u,je=w&&null!=ee&&ee.assetId?null==ee?void 0:ee.assetId:null==ee?void 0:ee.id,he=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};te(t),le(null),de(!1);var s=(e={},b.default(e,K,null),b.default(e,z,null),b.default(e,"assets",null),e);be(s)},qe=U&&(me?Boolean(ee.length)&&!ue:(null==ee?void 0:ee.id)&&!ue);return a.useEffect((function(){l.isEmpty(N)&&he(me&&[])}),[N]),m.jsxs("div",{className:j.default(ve.main,r),children:[!h&&m.jsx("div",{className:j.default(ve.title,Y.title),children:"Asset"}),V&&m.jsx(o,{onChange:function(e){Se.current=!!e,ge(e),he(e&&[])},className:Y.multiAssetSwitch,checked:me}),m.jsx("div",{className:Y.primaryAssetSelect,children:m.jsx(Te,{appKey:t,assetType:H,company:n,currentOption:ee,currentValue:null==ee?void 0:ee.id,"data-testid":"".concat("DC_AppSettingsAssetEditor","_primaryAssetEditorAutocomplete"),isSecondaryAssetPresent:U,defaultValue:i,disableClearable:!E,disabled:T,isNullable:E,isRequiredAssetId:F,label:P,multiple:me,onChange:function(e){if(L({primary:e}),me)!function(e){var t,s;if(!(e.length>x)){var a=(null===(t=e[0])||void 0===t?void 0:t.group)===y.PAD_GROUP.name,r=(null===(s=e[0])||void 0===s?void 0:s.group)===y.FRAC_FLEET_GROUP.name,l=1===e.length&&a,n=1===e.length&&r;if(l?(de(!0),fe(y.PAD_GROUP)):n&&fe(y.FRAC_FLEET_GROUP),a){te(e);var i=null==e?void 0:e.reduce((function(e,t){var s=t.parentFracFleetId,a=t.id,r={fracFleetId:s,padId:a};return D&&(r.assetId=s,r.replacedPadId=a),s?[].concat(S.default(e),[r]):e}),[]);be({assets:i})}else{te(e);var u=e.reduce((function(e,t){var s=b.default({},"".concat(t.type,"Id"),t.id);return F&&(s.assetId=t.assetId),D&&(s.assetId=t.assetId||t.id),[].concat(S.default(e),[s])}),[]);be({assets:u})}}}(e);else{var t=e.id,s=e.type,a=e.parentFracFleetId;if(t)if(s!==A.ASSET_TYPES.pad.type){te(e),le(null);var r=b.default({},K,t);F&&(r.assetId=e.assetId),z&&(r[z]=null),be(r),de(!1)}else{var l;te(e),de(!0),le(t);var n=(l={},b.default(l,A.ASSET_TYPES.frac_fleet.id,Number(a)),b.default(l,A.ASSET_TYPES.pad.id,t),l);be(n)}}},setCurrentOption:te,selectedGroup:pe,onGroupChange:function(e){fe(e),he(me&&[])},onGroupReset:function(){fe(null),he(me&&[])},groups:k,onInputReset:he,onActiveAssetIdChange:function(e){te((function(t){return q(q({},t),{},{activeWellId:e})}))},isDrillingPlatformApp:w,assetFields:f.getPrimaryAssetFields(H,C,w)})}),qe&&m.jsxs("div",{className:Y.secondaryAssetSelect,children:[G,m.jsx(d.default,{assetFields:W===A.ASSET_TYPES.pad.type?[].concat(S.default(O),["pad.active","pad.current"]):O,activeWellId:null==ee?void 0:ee.activeWellId,appKey:t,assetType:W,company:n,currentValue:re,"data-testid":"".concat("DC_AppSettingsAssetEditor","_secondaryAutoComplete"),defaultValue:me?p.ACTIVE_ASSETS_ID:p.ACTIVE_ASSET_ID,disabled:me||R||T,isDrillingPlatformApp:w,isNullable:E,isRequiredAssetId:F,onChange:function(e){var t=e.id,s=e.assetId,a=e.name;L({secondary:{name:a}}),le(t);var r=t===p.ACTIVE_ASSET_ID?null:t,l=b.default({},z,r);F&&W===A.ASSET_TYPES.well.type?be(q(q({},l),{},{replacedAssetId:w?r:s})):be(l)},parentAssetId:je,parentAssetType:w?"parent_asset_id":H,primaryAssetLabel:M,secondaryAssetLabel:B})]})]})};E.defaultProps={assetsLimit:null,label:"Choose An Asset",isNullable:!1,defaultValue:void 0,secondaryDefaultValue:void 0,isHiddenTitle:!1,appKey:null,isVisibleMultipleAssetsToggle:!1,isDisabledSecondaryAssetSelect:!1,primaryAssetFields:[],secondaryAssetFields:[],secondaryAssetHelpText:null,onChange:l.noop,elementsClassNames:{}},E.propTypes={assetsLimit:T.default.number,settings:T.default.shape({}).isRequired,appType:T.default.shape({}).isRequired,defaultValue:T.default.any,secondaryDefaultValue:T.default.any,onSettingsChange:T.default.func.isRequired,label:T.default.string,isNullable:T.default.bool,isHiddenTitle:T.default.bool,appKey:T.default.string,isVisibleMultipleAssetsToggle:T.default.bool,isDisabledSecondaryAssetSelect:T.default.bool,primaryAssetFields:T.default.arrayOf(T.default.shape({})),secondaryAssetFields:T.default.arrayOf(T.default.shape({})),secondaryAssetHelpText:T.default.oneOfType([T.default.element,T.default.string]),onChange:T.default.func,elementsClassNames:T.default.shape({title:T.default.string,multiAssetSwitch:T.default.string,primaryAssetSelect:T.default.string,secondaryAssetSelect:T.default.string})},module.exports=E;
1
+ "use strict";var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),r=require("react"),a=require("lodash"),n=require("classnames"),i=require("@material-ui/core");require("../../constants/goals.js");var l=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 u=require("../../constants/assetTypes.js");require("../../constants/corvaCompanyId.js"),require("../GradientManager/configuration/constants.js");var o=require("./components/PrimaryAssetSelect.js"),d=require("./components/SecondaryAssetSelect.js");require("./components/SelectItem.js");var c=require("./components/MultipleAssetsToggle.js"),p=require("./components/PrimaryAssetSelectV2.js"),f=require("./constants.js"),y=require("./utils/index.js"),A=require("react/jsx-runtime");function v(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=v(e),S=v(t),g=v(s),b=v(n);function j(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,r)}return s}function T(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?j(Object(s),!0).forEach((function(t){S.default(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):j(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}var I=i.makeStyles({title:{fontWeight:400,fontSize:20,margin:"24px 0 16px"}}),E=[],P={};module.exports=function(e){var t,s=e.appKey,n=void 0===s?null:s,i=e.appType,v=e.className,j=e.company,q=e.defaultValue,h=void 0===q?null:q,_=e.secondaryDefaultValue,O=void 0===_?null:_,C=e.disabled,D=e.isHiddenTitle,F=void 0!==D&&D,x=e.isNullable,N=void 0!==x&&x,R=e.label,V=void 0===R?"Choose An Asset":R,w=e.onSettingsChange,G=e.primaryAssetFields,Y=void 0===G?E:G,L=e.secondaryAssetFields,k=void 0===L?E:L,U=e.isExtendedSelect,W=e.isRequiredAssetId,K=e.settings,M=e.isVisibleMultipleAssetsToggle,H=void 0!==M&&M,z=e.assetsLimit,B=void 0===z?null:z,J=e.isDisabledSecondaryAssetSelect,Q=void 0!==J&&J,X=e.isDrillingPlatformApp,Z=e.secondaryAssetHelpText,$=void 0===Z?null:Z,ee=e.onChange,te=void 0===ee?a.noop:ee,se=e.elementsClassNames,re=void 0===se?P:se,ae=i.primaryAsset.assetType,ne=null===(t=i.secondaryAsset)||void 0===t?void 0:t.assetType,ie=null==ae?void 0:ae.type,le=null==ae?void 0:ae.id,ue=null==ae?void 0:ae.label,oe=i.primaryAsset.groups,de=!!ne,ce=null==ne?void 0:ne.type,pe=null==ne?void 0:ne.id,fe=null==ne?void 0:ne.label,ye=le?K[le]:null,Ae=pe?K[pe]:null,ve=ye?Number(ye):null,me=Ae?Number(Ae):O||null,Se=r.useState({id:ve||h}),ge=g.default(Se,2),be=ge[0],je=ge[1],Te=r.useState(me),Ie=g.default(Te,2),Ee=Ie[0],Pe=Ie[1],qe=r.useState(!1),he=g.default(qe,2),_e=he[0],Oe=he[1],Ce=r.useState(null),De=g.default(Ce,2),Fe=De[0],xe=De[1],Ne=r.useState(!1),Re=g.default(Ne,2),Ve=Re[0],we=Re[1],Ge=r.useRef(!1),Ye=function(e){w(e,Ge.current)},Le=I(),ke=ie===u.ASSET_TYPES.rig.type||ie===u.ASSET_TYPES.intervention_unit.type?p:o,Ue=Array.isArray(be)?null:be,We=X&&null!=Ue&&Ue.assetId?Ue.assetId:null==Ue?void 0:Ue.id,Ke=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ge.current;je(e?[]:null),Pe(null),Oe(!1);var t={assets:null};le&&(t[le]=null),pe&&(t[pe]=null),Ye(t)},Me=de&&(Ve?Array.isArray(be)&&!!be.length&&!_e:(null==Ue?void 0:Ue.id)&&!_e);return r.useEffect((function(){a.isEmpty(K)&&Ke()}),[K]),A.jsxs("div",{className:v,children:[!F&&A.jsx("div",{className:b.default(Le.title,re.title),children:"Asset"}),H&&A.jsx(c,{onChange:function(e){Ge.current=!!e,we(e),Ke(e)},className:re.multiAssetSwitch,checked:Ve}),A.jsx("div",{className:re.primaryAssetSelect,children:A.jsx(ke,{appKey:n,assetType:ie,company:j,currentOption:be,currentValue:null==Ue?void 0:Ue.id,"data-testid":"".concat("DC_AppSettingsAssetEditor","_primaryAssetEditorAutocomplete"),isSecondaryAssetPresent:de,defaultValue:h,disableClearable:!N,disabled:C,isNullable:N,isRequiredAssetId:W,label:V,multiple:Ve,onChange:function(e){if(te({primary:e}),Ve)Array.isArray(e)&&function(e){var t,s;if(!(e.length>Number(B))){var r=(null===(t=e[0])||void 0===t?void 0:t.group)===l.PAD_GROUP.name,a=(null===(s=e[0])||void 0===s?void 0:s.group)===l.FRAC_FLEET_GROUP.name,n=1===e.length&&r,i=1===e.length&&a;if(n?(Oe(!0),xe(l.PAD_GROUP)):i&&xe(l.FRAC_FLEET_GROUP),r){je(e);var u=e.reduce((function(e,t){var s=t.parentFracFleetId,r=t.id,a={fracFleetId:s,padId:r};return U&&(a.assetId=s,a.replacedPadId=r),s?[].concat(m.default(e),[a]):e}),[]);Ye({assets:u})}else{je(e);var o=e.reduce((function(e,t){var s=S.default({},"".concat(t.type,"Id"),t.id);return W&&(s.assetId=t.assetId),U&&(s.assetId=t.assetId||t.id),[].concat(m.default(e),[s])}),[]);Ye({assets:o})}}}(e);else if(e&&!Array.isArray(e)&&le){var t=e.id,s=e.type,r=e.parentFracFleetId;if(t)if(s!==u.ASSET_TYPES.pad.type){je(e),Pe(null);var a=S.default({},le,t);W&&(a.assetId=e.assetId),pe&&(a[pe]=null),Ye(a),Oe(!1)}else{var n;je(e),Oe(!0),Pe(t);var i=(n={},S.default(n,u.ASSET_TYPES.frac_fleet.id,Number(r)),S.default(n,u.ASSET_TYPES.pad.id,t),n);Ye(i)}}},setCurrentOption:je,selectedGroup:Fe,onGroupChange:function(e){xe(e),Ke()},onGroupReset:function(){xe(null),Ke()},groups:oe,onInputReset:Ke,onActiveAssetIdChange:function(e){je((function(t){return Array.isArray(t)?t:T(T({},t),{},{activeWellId:e})}))},isDrillingPlatformApp:X,assetFields:y.getPrimaryAssetFields({primaryAssetType:ie,assetFields:Y,isDrillingPlatformApp:X})})}),Me&&A.jsxs("div",{className:re.secondaryAssetSelect,children:[$,A.jsx(d.default,{assetFields:ce===u.ASSET_TYPES.pad.type?[].concat(m.default(k),["pad.active","pad.current"]):k,activeWellId:null==Ue?void 0:Ue.activeWellId,appKey:n,assetType:ce,company:j,currentValue:Ee,"data-testid":"".concat("DC_AppSettingsAssetEditor","_secondaryAutoComplete"),defaultValue:Ve?f.ACTIVE_ASSETS_ID:f.ACTIVE_ASSET_ID,disabled:Ve||Q||C,isDrillingPlatformApp:X,isNullable:N,isRequiredAssetId:W,onChange:function(e){var t=e.id,s=e.assetId,r=e.name;if(pe){te({secondary:{name:r}}),Pe(t);var a=t===f.ACTIVE_ASSET_ID?null:t,n=S.default({},pe,a);W&&ce===u.ASSET_TYPES.well.type?Ye(T(T({},n),{},{replacedAssetId:X?a:s})):Ye(n)}},parentAssetId:We,parentAssetType:X?"parent_asset_id":ie,primaryAssetLabel:ue,secondaryAssetLabel:fe})]})]})};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/AssetEditorV2/index.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { get, isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\n\nconst AppSettingsAssetEditor = ({\n appKey,\n appType,\n className,\n company,\n defaultValue,\n secondaryDefaultValue,\n disabled,\n isHiddenTitle,\n isNullable,\n label,\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields,\n secondaryAssetFields,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle,\n assetsLimit,\n isDisabledSecondaryAssetSelect,\n isDrillingPlatformApp,\n secondaryAssetHelpText,\n onChange,\n elementsClassNames,\n}) => {\n const primaryAssetType = get(appType, ['primaryAsset', 'assetType', 'type']);\n const primaryAssetIdType = get(appType, ['primaryAsset', 'assetType', 'id']);\n const primaryAssetLabel = get(appType, ['primaryAsset', 'assetType', 'label']);\n const primaryAssetSelectGroups = get(appType, ['primaryAsset', 'groups']);\n\n const isSecondaryAssetPresent = get(appType, ['secondaryAsset'], false);\n\n const secondaryAssetType = get(appType, ['secondaryAsset', 'assetType', 'type']);\n const secondaryAssetIdType = get(appType, ['secondaryAsset', 'assetType', 'id']);\n const secondaryAssetLabel = get(appType, ['secondaryAsset', 'assetType', 'label']);\n\n const currentValue = get(settings, primaryAssetIdType);\n const initialPrimaryAssetId = currentValue ? Number(currentValue) : null;\n const initialSecondaryAssetId = get(settings, secondaryAssetIdType)\n ? Number(get(settings, secondaryAssetIdType))\n : secondaryDefaultValue || null;\n const [primaryAsset, setPrimaryAsset] = useState({ id: initialPrimaryAssetId || defaultValue });\n\n const [secondaryAssetId, setSecondaryAssetId] = useState(initialSecondaryAssetId);\n const [isPadSelectedAsPrimaryAsset, setIsPadSelectedAsPrimaryAsset] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState();\n const [isMultipleAssets, setIsMultipleAssets] = useState(false);\n const isMultipleAssetsRef = useRef(false);\n const onSettingsChange = (...args) => {\n propsOnSettingsChange(...args, isMultipleAssetsRef.current);\n };\n\n const styles = useStyles();\n\n const PrimaryAssetSelectComponent =\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ? PrimaryAssetSelectV2\n : PrimaryAssetSelect;\n\n const parentAssetId =\n isDrillingPlatformApp && primaryAsset?.assetId ? primaryAsset?.assetId : primaryAsset?.id;\n\n const onSecondaryAssetChange = ({ id, assetId, name }) => {\n onChange({ secondary: { name } });\n setSecondaryAssetId(id);\n const secondaryAssetId = id === ACTIVE_ASSET_ID ? null : id;\n const assetSettings = { [secondaryAssetIdType]: secondaryAssetId };\n\n if (isRequiredAssetId && secondaryAssetType === ASSET_TYPES.well.type) {\n onSettingsChange({\n ...assetSettings,\n replacedAssetId: isDrillingPlatformApp ? secondaryAssetId : assetId,\n });\n return;\n }\n\n onSettingsChange(assetSettings);\n };\n\n const onMultipleAssetChange = selected => {\n if (selected.length > assetsLimit) return;\n\n const isPadSelected = selected[0]?.group === PAD_GROUP.name;\n const isFracFleetSelected = selected[0]?.group === FRAC_FLEET_GROUP.name;\n const isFirstPadSelected = selected.length === 1 && isPadSelected;\n const isFirstFracFleetSelected = selected.length === 1 && isFracFleetSelected;\n\n if (isFirstPadSelected) {\n setIsPadSelectedAsPrimaryAsset(true);\n setSelectedGroup(PAD_GROUP);\n } else if (isFirstFracFleetSelected) {\n setSelectedGroup(FRAC_FLEET_GROUP);\n }\n\n if (isPadSelected) {\n setPrimaryAsset(selected);\n const assetsSetting = selected?.reduce((acc, { parentFracFleetId, id }) => {\n const settings = {\n fracFleetId: parentFracFleetId,\n padId: id,\n };\n\n if (isExtendedSelect) {\n settings.assetId = parentFracFleetId;\n settings.replacedPadId = id;\n }\n return parentFracFleetId ? [...acc, settings] : acc;\n }, []);\n\n onSettingsChange({\n assets: assetsSetting,\n });\n return;\n }\n\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce((acc, asset) => {\n const settings = { [`${asset.type}Id`]: asset.id };\n if (isRequiredAssetId) {\n settings.assetId = asset.assetId;\n }\n if (isExtendedSelect) {\n settings.assetId = asset.assetId || asset.id;\n }\n return [...acc, settings];\n }, []);\n onSettingsChange({\n assets: assetsSetting,\n });\n };\n\n const onPrimaryAssetChange = selected => {\n onChange({ primary: selected });\n if (isMultipleAssets) {\n onMultipleAssetChange(selected);\n return;\n }\n const { id, type, parentFracFleetId } = selected;\n if (!id) return;\n if (type === ASSET_TYPES.pad.type) {\n setPrimaryAsset(selected);\n setIsPadSelectedAsPrimaryAsset(true);\n setSecondaryAssetId(id);\n const assetSetting = {\n [ASSET_TYPES.frac_fleet.id]: Number(parentFracFleetId),\n [ASSET_TYPES.pad.id]: id,\n };\n onSettingsChange(assetSetting);\n return;\n }\n\n setPrimaryAsset(selected);\n setSecondaryAssetId(null);\n const assetSetting = { [primaryAssetIdType]: id };\n if (isRequiredAssetId) assetSetting.assetId = selected.assetId;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n setIsPadSelectedAsPrimaryAsset(false);\n };\n\n const handlePrimaryAssetReset = (defaultValue = {}) => {\n setPrimaryAsset(defaultValue);\n setSecondaryAssetId(null);\n\n setIsPadSelectedAsPrimaryAsset(false);\n const assetSetting = {\n [primaryAssetIdType]: null,\n [secondaryAssetIdType]: null,\n assets: null,\n };\n onSettingsChange(assetSetting);\n };\n\n const handleMultipleAssetsChange = checked => {\n isMultipleAssetsRef.current = !!checked;\n setIsMultipleAssets(checked);\n handlePrimaryAssetReset(checked && []);\n };\n\n const handleGroupChange = newGroup => {\n setSelectedGroup(newGroup);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const handleGroupReset = () => {\n setSelectedGroup(null);\n handlePrimaryAssetReset(isMultipleAssets && []);\n };\n\n const secondaryAssetSelectIsVisible =\n isSecondaryAssetPresent &&\n (isMultipleAssets\n ? Boolean(primaryAsset.length) && !isPadSelectedAsPrimaryAsset\n : primaryAsset?.id && !isPadSelectedAsPrimaryAsset);\n\n useEffect(() => {\n if (isEmpty(settings)) {\n handlePrimaryAssetReset(isMultipleAssets && []);\n }\n }, [settings]);\n\n return (\n <div className={classNames(styles.main, className)}>\n {!isHiddenTitle && (\n <div className={classNames(styles.title, elementsClassNames.title)}>Asset</div>\n )}\n {isVisibleMultipleAssetsToggle && (\n <MultipleAssetsToggle\n onChange={handleMultipleAssetsChange}\n className={elementsClassNames.multiAssetSwitch}\n checked={isMultipleAssets}\n />\n )}\n <div className={elementsClassNames.primaryAssetSelect}>\n <PrimaryAssetSelectComponent\n appKey={appKey}\n assetType={primaryAssetType}\n company={company}\n currentOption={primaryAsset}\n currentValue={primaryAsset?.id}\n data-testid={`${PAGE_NAME}_primaryAssetEditorAutocomplete`}\n isSecondaryAssetPresent={isSecondaryAssetPresent}\n defaultValue={defaultValue}\n disableClearable={!isNullable}\n disabled={disabled}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n label={label}\n multiple={isMultipleAssets}\n onChange={onPrimaryAssetChange}\n setCurrentOption={setPrimaryAsset}\n selectedGroup={selectedGroup}\n onGroupChange={handleGroupChange}\n onGroupReset={handleGroupReset}\n groups={primaryAssetSelectGroups}\n onInputReset={handlePrimaryAssetReset}\n onActiveAssetIdChange={activeAssetId => {\n setPrimaryAsset(primaryAsset => ({ ...primaryAsset, activeWellId: activeAssetId }));\n }}\n isDrillingPlatformApp={isDrillingPlatformApp}\n assetFields={getPrimaryAssetFields(\n primaryAssetType,\n primaryAssetFields,\n isDrillingPlatformApp\n )}\n />\n </div>\n {secondaryAssetSelectIsVisible && (\n <div className={elementsClassNames.secondaryAssetSelect}>\n {secondaryAssetHelpText}\n <SecondaryAssetSelect\n assetFields={\n secondaryAssetType === ASSET_TYPES.pad.type\n ? [...secondaryAssetFields, 'pad.active', 'pad.current']\n : secondaryAssetFields\n }\n activeWellId={primaryAsset?.activeWellId}\n appKey={appKey}\n assetType={secondaryAssetType}\n company={company}\n currentValue={secondaryAssetId}\n data-testid={`${PAGE_NAME}_secondaryAutoComplete`}\n defaultValue={isMultipleAssets ? ACTIVE_ASSETS_ID : ACTIVE_ASSET_ID}\n disabled={isMultipleAssets || isDisabledSecondaryAssetSelect || disabled}\n isDrillingPlatformApp={isDrillingPlatformApp}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n onChange={onSecondaryAssetChange}\n parentAssetId={parentAssetId}\n parentAssetType={isDrillingPlatformApp ? PARENT_ASSET_ID : primaryAssetType}\n primaryAssetLabel={primaryAssetLabel}\n secondaryAssetLabel={secondaryAssetLabel}\n />\n </div>\n )}\n </div>\n );\n};\n\nAppSettingsAssetEditor.defaultProps = {\n assetsLimit: null,\n label: 'Choose An Asset',\n isNullable: false,\n defaultValue: undefined,\n secondaryDefaultValue: undefined,\n isHiddenTitle: false,\n appKey: null,\n isVisibleMultipleAssetsToggle: false,\n isDisabledSecondaryAssetSelect: false,\n primaryAssetFields: [],\n secondaryAssetFields: [],\n secondaryAssetHelpText: null,\n onChange: noop,\n elementsClassNames: {},\n};\n\nAppSettingsAssetEditor.propTypes = {\n assetsLimit: PropTypes.number,\n settings: PropTypes.shape({}).isRequired,\n appType: PropTypes.shape({}).isRequired,\n defaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n secondaryDefaultValue: PropTypes.any, // eslint-disable-line react/forbid-prop-types\n onSettingsChange: PropTypes.func.isRequired,\n label: PropTypes.string,\n isNullable: PropTypes.bool,\n isHiddenTitle: PropTypes.bool,\n appKey: PropTypes.string,\n isVisibleMultipleAssetsToggle: PropTypes.bool,\n isDisabledSecondaryAssetSelect: PropTypes.bool,\n primaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetFields: PropTypes.arrayOf(PropTypes.shape({})),\n secondaryAssetHelpText: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\n onChange: PropTypes.func,\n elementsClassNames: PropTypes.shape({\n title: PropTypes.string,\n multiAssetSwitch: PropTypes.string,\n primaryAssetSelect: PropTypes.string,\n secondaryAssetSelect: PropTypes.string,\n }),\n};\n\nexport default AppSettingsAssetEditor;\n"],"names":["useStyles","makeStyles","title","fontWeight","fontSize","margin","AppSettingsAssetEditor","_ref","appKey","appType","className","company","defaultValue","secondaryDefaultValue","disabled","isHiddenTitle","isNullable","label","propsOnSettingsChange","onSettingsChange","primaryAssetFields","secondaryAssetFields","isExtendedSelect","isRequiredAssetId","settings","isVisibleMultipleAssetsToggle","assetsLimit","isDisabledSecondaryAssetSelect","isDrillingPlatformApp","secondaryAssetHelpText","onChange","elementsClassNames","primaryAssetType","get","primaryAssetIdType","primaryAssetLabel","primaryAssetSelectGroups","isSecondaryAssetPresent","secondaryAssetType","secondaryAssetIdType","secondaryAssetLabel","currentValue","initialPrimaryAssetId","Number","initialSecondaryAssetId","_useState","useState","id","_useState2","_slicedToArray","primaryAsset","setPrimaryAsset","_useState4","_useState3","secondaryAssetId","setSecondaryAssetId","_useState6","_useState5","isPadSelectedAsPrimaryAsset","setIsPadSelectedAsPrimaryAsset","_useState7","_useState8","selectedGroup","setSelectedGroup","_useState10","_useState9","isMultipleAssets","setIsMultipleAssets","isMultipleAssetsRef","useRef","_len","arguments","length","args","Array","_key","concat","current","styles","PrimaryAssetSelectComponent","ASSET_TYPES","rig","type","intervention_unit","PrimaryAssetSelectV2","PrimaryAssetSelect","parentAssetId","assetId","handlePrimaryAssetReset","_assetSetting4","undefined","assetSetting","_defineProperty","secondaryAssetSelectIsVisible","Boolean","useEffect","isEmpty","_jsxs","classNames","main","children","_jsx","jsx","MultipleAssetsToggle","checked","multiAssetSwitch","primaryAssetSelect","assetType","currentOption","disableClearable","multiple","selected","primary","_selected$","_selected$2","isPadSelected","group","PAD_GROUP","name","isFracFleetSelected","FRAC_FLEET_GROUP","isFirstPadSelected","isFirstFracFleetSelected","assetsSetting","reduce","acc","_ref3","parentFracFleetId","fracFleetId","padId","replacedPadId","assets","asset","onMultipleAssetChange","pad","_assetSetting2","frac_fleet","setCurrentOption","onGroupChange","newGroup","onGroupReset","groups","onInputReset","onActiveAssetIdChange","activeAssetId","_objectSpread","activeWellId","assetFields","getPrimaryAssetFields","jsxs","secondaryAssetSelect","SecondaryAssetSelect","_toConsumableArray","ACTIVE_ASSETS_ID","ACTIVE_ASSET_ID","_ref2","secondary","assetSettings","well","replacedAssetId","parentAssetType","defaultProps","noop","propTypes","PropTypes","number","shape","isRequired","any","func","string","bool","arrayOf","oneOfType","element"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/AssetEditorV2/index.tsx"],"sourcesContent":["import { FC, ReactNode, useEffect, useRef, useState } from 'react';\nimport { isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport { makeStyles } from '@material-ui/core';\n\nimport { ASSET_TYPES } from '~/constants';\nimport { FRAC_FLEET_GROUP, PAD_GROUP } from '~/constants/segment';\n\nimport { PrimaryAssetSelect, PrimaryAssetSelectV2, SecondaryAssetSelect } from './components';\nimport { ACTIVE_ASSET_ID, ACTIVE_ASSETS_ID } from './constants';\nimport MultipleAssetsToggle from './components/MultipleAssetsToggle';\nimport { getPrimaryAssetFields } from './utils';\nimport {\n AssetEditorAppType,\n AssetEditorChange,\n AssetGroup,\n AssetId,\n AssetOption,\n AssetSelection,\n AssetSelectionSettings,\n AssetSettings,\n AssetSettingsChangeHandler,\n AssetSettingsPatch,\n PrimaryAssetChange,\n SecondaryAssetChange,\n} from './types';\n\nexport type {\n AssetEditorAppType,\n AssetEditorChange,\n AssetSettings,\n AssetSettingsChangeHandler,\n AssetSettingsPatch,\n} from './types';\n\ntype AppSettingsAssetEditorProps = {\n appType: AssetEditorAppType;\n settings: AssetSettings;\n onSettingsChange: AssetSettingsChangeHandler;\n appKey?: string | null;\n className?: string;\n company?: AssetId | null;\n defaultValue?: AssetId | null;\n secondaryDefaultValue?: AssetId | null;\n disabled?: boolean;\n isHiddenTitle?: boolean;\n isNullable?: boolean;\n label?: string;\n primaryAssetFields?: string[];\n secondaryAssetFields?: string[];\n isExtendedSelect?: boolean;\n isRequiredAssetId?: boolean;\n isVisibleMultipleAssetsToggle?: boolean;\n assetsLimit?: number | null;\n isDisabledSecondaryAssetSelect?: boolean;\n isDrillingPlatformApp?: boolean;\n secondaryAssetHelpText?: ReactNode;\n onChange?: (change: AssetEditorChange) => void;\n elementsClassNames?: {\n title?: string;\n multiAssetSwitch?: string;\n primaryAssetSelect?: string;\n secondaryAssetSelect?: string;\n };\n /** @deprecated Retained for WorkflowEditRow compatibility; has no effect. */\n isWorkflowsEditModal?: boolean;\n};\n\nexport type AppSettingsAssetEditorV2Props = AppSettingsAssetEditorProps;\n\nconst useStyles = makeStyles({\n title: { fontWeight: 400, fontSize: 20, margin: '24px 0 16px' },\n});\n\nconst PAGE_NAME = 'DC_AppSettingsAssetEditor';\nconst PARENT_ASSET_ID = 'parent_asset_id';\nconst DEFAULT_ASSET_FIELDS: string[] = [];\nconst DEFAULT_ELEMENT_CLASS_NAMES: NonNullable<AppSettingsAssetEditorProps['elementsClassNames']> =\n {};\n\nconst AppSettingsAssetEditor: FC<AppSettingsAssetEditorProps> = ({\n appKey = null,\n appType,\n className,\n company,\n defaultValue = null,\n secondaryDefaultValue = null,\n disabled,\n isHiddenTitle = false,\n isNullable = false,\n label = 'Choose An Asset',\n onSettingsChange: propsOnSettingsChange,\n primaryAssetFields = DEFAULT_ASSET_FIELDS,\n secondaryAssetFields = DEFAULT_ASSET_FIELDS,\n isExtendedSelect,\n isRequiredAssetId,\n settings,\n isVisibleMultipleAssetsToggle = false,\n assetsLimit = null,\n isDisabledSecondaryAssetSelect = false,\n isDrillingPlatformApp,\n secondaryAssetHelpText = null,\n onChange = noop,\n elementsClassNames = DEFAULT_ELEMENT_CLASS_NAMES,\n}) => {\n const primaryDescriptor = appType.primaryAsset.assetType;\n const secondaryDescriptor = appType.secondaryAsset?.assetType;\n const primaryAssetType = primaryDescriptor?.type;\n const primaryAssetIdType = primaryDescriptor?.id;\n const primaryAssetLabel = primaryDescriptor?.label;\n const primaryAssetSelectGroups = appType.primaryAsset.groups;\n const isSecondaryAssetPresent = !!secondaryDescriptor;\n const secondaryAssetType = secondaryDescriptor?.type;\n const secondaryAssetIdType = secondaryDescriptor?.id;\n const secondaryAssetLabel = secondaryDescriptor?.label;\n\n const currentValue = primaryAssetIdType ? settings[primaryAssetIdType] : null;\n const currentSecondaryValue = secondaryAssetIdType ? settings[secondaryAssetIdType] : null;\n const initialPrimaryAssetId = currentValue ? Number(currentValue) : null;\n const initialSecondaryAssetId = currentSecondaryValue\n ? Number(currentSecondaryValue)\n : secondaryDefaultValue || null;\n const [primaryAsset, setPrimaryAsset] = useState<AssetSelection>({\n id: initialPrimaryAssetId || defaultValue,\n });\n const [secondaryAssetId, setSecondaryAssetId] = useState<AssetId | null>(initialSecondaryAssetId);\n const [isPadSelectedAsPrimaryAsset, setIsPadSelectedAsPrimaryAsset] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState<AssetGroup | null>(null);\n const [isMultipleAssets, setIsMultipleAssets] = useState(false);\n const isMultipleAssetsRef = useRef(false);\n\n const onSettingsChange = (settingsPatch: AssetSettingsPatch) => {\n propsOnSettingsChange(settingsPatch, isMultipleAssetsRef.current);\n };\n\n const styles = useStyles();\n\n const PrimaryAssetSelectComponent =\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ? PrimaryAssetSelectV2\n : PrimaryAssetSelect;\n\n const primaryOption = Array.isArray(primaryAsset) ? null : primaryAsset;\n const parentAssetId =\n isDrillingPlatformApp && primaryOption?.assetId ? primaryOption.assetId : primaryOption?.id;\n\n const onSecondaryAssetChange = ({ id, assetId, name }: SecondaryAssetChange) => {\n if (!secondaryAssetIdType) return;\n\n onChange({ secondary: { name } });\n setSecondaryAssetId(id);\n const selectedAssetId = id === ACTIVE_ASSET_ID ? null : id;\n const assetSettings = { [secondaryAssetIdType]: selectedAssetId };\n\n if (isRequiredAssetId && secondaryAssetType === ASSET_TYPES.well.type) {\n onSettingsChange({\n ...assetSettings,\n replacedAssetId: isDrillingPlatformApp ? selectedAssetId : assetId,\n });\n return;\n }\n\n onSettingsChange(assetSettings);\n };\n\n const onMultipleAssetChange = (selected: AssetOption[]) => {\n // The legacy null limit allows no selections; explicit limits opt into multiple assets.\n if (selected.length > Number(assetsLimit)) return;\n\n const isPadSelected = selected[0]?.group === PAD_GROUP.name;\n const isFracFleetSelected = selected[0]?.group === FRAC_FLEET_GROUP.name;\n const isFirstPadSelected = selected.length === 1 && isPadSelected;\n const isFirstFracFleetSelected = selected.length === 1 && isFracFleetSelected;\n\n if (isFirstPadSelected) {\n setIsPadSelectedAsPrimaryAsset(true);\n setSelectedGroup(PAD_GROUP);\n } else if (isFirstFracFleetSelected) {\n setSelectedGroup(FRAC_FLEET_GROUP);\n }\n\n if (isPadSelected) {\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce<AssetSelectionSettings[]>(\n (acc, { parentFracFleetId, id }) => {\n const assetSettings: AssetSelectionSettings = {\n fracFleetId: parentFracFleetId,\n padId: id,\n };\n\n if (isExtendedSelect) {\n assetSettings.assetId = parentFracFleetId;\n assetSettings.replacedPadId = id;\n }\n return parentFracFleetId ? [...acc, assetSettings] : acc;\n },\n []\n );\n\n onSettingsChange({\n assets: assetsSetting,\n });\n return;\n }\n\n setPrimaryAsset(selected);\n const assetsSetting = selected.reduce<AssetSelectionSettings[]>((acc, asset) => {\n const assetSettings: AssetSelectionSettings = { [`${asset.type}Id`]: asset.id };\n if (isRequiredAssetId) {\n assetSettings.assetId = asset.assetId;\n }\n if (isExtendedSelect) {\n assetSettings.assetId = asset.assetId || asset.id;\n }\n return [...acc, assetSettings];\n }, []);\n onSettingsChange({\n assets: assetsSetting,\n });\n };\n\n const onPrimaryAssetChange = (selected: PrimaryAssetChange) => {\n onChange({ primary: selected });\n if (isMultipleAssets) {\n if (Array.isArray(selected)) onMultipleAssetChange(selected);\n return;\n }\n\n if (!selected || Array.isArray(selected) || !primaryAssetIdType) return;\n\n const { id, type, parentFracFleetId } = selected;\n if (!id) return;\n if (type === ASSET_TYPES.pad.type) {\n setPrimaryAsset(selected);\n setIsPadSelectedAsPrimaryAsset(true);\n setSecondaryAssetId(id);\n const assetSetting = {\n [ASSET_TYPES.frac_fleet.id]: Number(parentFracFleetId),\n [ASSET_TYPES.pad.id]: id,\n };\n onSettingsChange(assetSetting);\n return;\n }\n\n setPrimaryAsset(selected);\n setSecondaryAssetId(null);\n const assetSetting: AssetSettingsPatch = { [primaryAssetIdType]: id };\n if (isRequiredAssetId) assetSetting.assetId = selected.assetId;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n setIsPadSelectedAsPrimaryAsset(false);\n };\n\n const handlePrimaryAssetReset = (isMultiple = isMultipleAssetsRef.current) => {\n setPrimaryAsset(isMultiple ? [] : null);\n setSecondaryAssetId(null);\n\n setIsPadSelectedAsPrimaryAsset(false);\n const assetSetting: AssetSettingsPatch = { assets: null };\n if (primaryAssetIdType) assetSetting[primaryAssetIdType] = null;\n if (secondaryAssetIdType) assetSetting[secondaryAssetIdType] = null;\n onSettingsChange(assetSetting);\n };\n\n const handleMultipleAssetsChange = (checked: boolean) => {\n isMultipleAssetsRef.current = !!checked;\n setIsMultipleAssets(checked);\n handlePrimaryAssetReset(checked);\n };\n\n const handleGroupChange = (newGroup: AssetGroup | null) => {\n setSelectedGroup(newGroup);\n handlePrimaryAssetReset();\n };\n\n const handleGroupReset = () => {\n setSelectedGroup(null);\n handlePrimaryAssetReset();\n };\n\n const secondaryAssetSelectIsVisible =\n isSecondaryAssetPresent &&\n (isMultipleAssets\n ? Array.isArray(primaryAsset) && !!primaryAsset.length && !isPadSelectedAsPrimaryAsset\n : primaryOption?.id && !isPadSelectedAsPrimaryAsset);\n\n useEffect(() => {\n if (isEmpty(settings)) {\n handlePrimaryAssetReset();\n }\n }, [settings]);\n\n return (\n <div className={className}>\n {!isHiddenTitle && (\n <div className={classNames(styles.title, elementsClassNames.title)}>Asset</div>\n )}\n {isVisibleMultipleAssetsToggle && (\n <MultipleAssetsToggle\n onChange={handleMultipleAssetsChange}\n className={elementsClassNames.multiAssetSwitch}\n checked={isMultipleAssets}\n />\n )}\n <div className={elementsClassNames.primaryAssetSelect}>\n <PrimaryAssetSelectComponent\n appKey={appKey}\n assetType={primaryAssetType}\n company={company}\n currentOption={primaryAsset}\n currentValue={primaryOption?.id}\n data-testid={`${PAGE_NAME}_primaryAssetEditorAutocomplete`}\n isSecondaryAssetPresent={isSecondaryAssetPresent}\n defaultValue={defaultValue}\n disableClearable={!isNullable}\n disabled={disabled}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n label={label}\n multiple={isMultipleAssets}\n onChange={onPrimaryAssetChange}\n setCurrentOption={setPrimaryAsset}\n selectedGroup={selectedGroup}\n onGroupChange={handleGroupChange}\n onGroupReset={handleGroupReset}\n groups={primaryAssetSelectGroups}\n onInputReset={handlePrimaryAssetReset}\n onActiveAssetIdChange={activeAssetId => {\n setPrimaryAsset(current =>\n Array.isArray(current) ? current : { ...current, activeWellId: activeAssetId }\n );\n }}\n isDrillingPlatformApp={isDrillingPlatformApp}\n assetFields={getPrimaryAssetFields({\n primaryAssetType,\n assetFields: primaryAssetFields,\n isDrillingPlatformApp,\n })}\n />\n </div>\n {secondaryAssetSelectIsVisible && (\n <div className={elementsClassNames.secondaryAssetSelect}>\n {secondaryAssetHelpText}\n <SecondaryAssetSelect\n assetFields={\n secondaryAssetType === ASSET_TYPES.pad.type\n ? [...secondaryAssetFields, 'pad.active', 'pad.current']\n : secondaryAssetFields\n }\n activeWellId={primaryOption?.activeWellId}\n appKey={appKey}\n assetType={secondaryAssetType}\n company={company}\n currentValue={secondaryAssetId}\n data-testid={`${PAGE_NAME}_secondaryAutoComplete`}\n defaultValue={isMultipleAssets ? ACTIVE_ASSETS_ID : ACTIVE_ASSET_ID}\n disabled={isMultipleAssets || isDisabledSecondaryAssetSelect || disabled}\n isDrillingPlatformApp={isDrillingPlatformApp}\n isNullable={isNullable}\n isRequiredAssetId={isRequiredAssetId}\n onChange={onSecondaryAssetChange}\n parentAssetId={parentAssetId}\n parentAssetType={isDrillingPlatformApp ? PARENT_ASSET_ID : primaryAssetType}\n primaryAssetLabel={primaryAssetLabel}\n secondaryAssetLabel={secondaryAssetLabel}\n />\n </div>\n )}\n </div>\n );\n};\n\nexport default AppSettingsAssetEditor;\n"],"names":["useStyles","makeStyles","title","fontWeight","fontSize","margin","DEFAULT_ASSET_FIELDS","DEFAULT_ELEMENT_CLASS_NAMES","_ref","_appType$secondaryAss","_ref$appKey","appKey","appType","className","company","_ref$defaultValue","defaultValue","_ref$secondaryDefault","secondaryDefaultValue","disabled","_ref$isHiddenTitle","isHiddenTitle","_ref$isNullable","isNullable","_ref$label","label","propsOnSettingsChange","onSettingsChange","_ref$primaryAssetFiel","primaryAssetFields","_ref$secondaryAssetFi","secondaryAssetFields","isExtendedSelect","isRequiredAssetId","settings","_ref$isVisibleMultipl","isVisibleMultipleAssetsToggle","_ref$assetsLimit","assetsLimit","_ref$isDisabledSecond","isDisabledSecondaryAssetSelect","isDrillingPlatformApp","_ref$secondaryAssetHe","secondaryAssetHelpText","_ref$onChange","onChange","noop","_ref$elementsClassNam","elementsClassNames","primaryDescriptor","primaryAsset","assetType","secondaryDescriptor","secondaryAsset","primaryAssetType","type","primaryAssetIdType","id","primaryAssetLabel","primaryAssetSelectGroups","groups","isSecondaryAssetPresent","secondaryAssetType","secondaryAssetIdType","secondaryAssetLabel","currentValue","currentSecondaryValue","initialPrimaryAssetId","Number","initialSecondaryAssetId","_useState","useState","_useState2","_slicedToArray","setPrimaryAsset","_useState4","_useState3","secondaryAssetId","setSecondaryAssetId","_useState6","_useState5","isPadSelectedAsPrimaryAsset","setIsPadSelectedAsPrimaryAsset","_useState8","_useState7","selectedGroup","setSelectedGroup","_useState10","_useState9","isMultipleAssets","setIsMultipleAssets","isMultipleAssetsRef","useRef","settingsPatch","current","styles","PrimaryAssetSelectComponent","ASSET_TYPES","rig","intervention_unit","PrimaryAssetSelectV2","PrimaryAssetSelect","primaryOption","Array","isArray","parentAssetId","assetId","handlePrimaryAssetReset","isMultiple","arguments","length","undefined","assetSetting","assets","secondaryAssetSelectIsVisible","useEffect","isEmpty","_jsxs","children","_jsx","classNames","jsx","MultipleAssetsToggle","checked","multiAssetSwitch","primaryAssetSelect","currentOption","concat","disableClearable","multiple","selected","primary","_selected$","_selected$2","isPadSelected","group","PAD_GROUP","name","isFracFleetSelected","FRAC_FLEET_GROUP","isFirstPadSelected","isFirstFracFleetSelected","assetsSetting","reduce","acc","_ref3","parentFracFleetId","assetSettings","fracFleetId","padId","replacedPadId","asset","onMultipleAssetChange","pad","_defineProperty","_assetSetting2","frac_fleet","setCurrentOption","onGroupChange","newGroup","onGroupReset","onInputReset","onActiveAssetIdChange","activeAssetId","_objectSpread","activeWellId","assetFields","getPrimaryAssetFields","jsxs","secondaryAssetSelect","SecondaryAssetSelect","_toConsumableArray","ACTIVE_ASSETS_ID","ACTIVE_ASSET_ID","_ref2","secondary","selectedAssetId","well","replacedAssetId","parentAssetType"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray");require("lodash");var t=require("../constants.js");require("../../../constants/goals.js"),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 r=require("../../../constants/assetTypes.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../constants/corvaCompanyId.js"),require("../../GradientManager/configuration/constants.js");var n=s(e);exports.formatAsset=function(e){var s=e.asset,n=e.group,a=void 0===n?null:n,i=e.activeWellId,l=void 0===i?null:i,o=e.isRequiredAssetId,u=e.isPrimaryAsset,c=e.isDrillingPlatformApp;if(!s)return null;var d,p,S,v={id:+s.assetId||+s.id,type:s.type,name:s.name};(o&&(v.id=+s.id,v.assetId=+s.assetId),a&&(v.group=a),s.type===r.ASSET_TYPES.rig.type)&&(v.activeWellId=Number(null===(d=s.activeWell)||void 0===d?void 0:d.id)||null,c&&(v.activeWellId=Number(null===(p=s.activeWell)||void 0===p?void 0:p.assetId)||null));"interventionUnit"===s.type&&(v.activeWellId=Number(null===(S=s.activeWell)||void 0===S?void 0:S.id)||null);return s.type!==r.ASSET_TYPES.well.type&&s.type!==t.DEFAULT_ASSET_TYPE||(v.status=Number(s.id)===l?t.ACTIVE_STATUS:null),s.type===r.ASSET_TYPES.pad.type&&(v.parentFracFleetId=s.parentFracFleetId,v.status=s.active&&s.current?t.ACTIVE_STATUS:null,u&&!s.parentFracFleetId&&(v.status=null)),v},exports.getPrimaryAssetFields=function(e,t,s){var a=n.default(t);return e!==r.ASSET_TYPES.rig.type&&e!==r.ASSET_TYPES.intervention_unit.type||a.push("".concat(e,".active_well")),s?[].concat(n.default(a),["rig.active_child"]):a},exports.getRequestOptions=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{sort:"name",order:"asc",fields:["".concat(e,".name"),"".concat(e,".status")].concat(n.default(t))}},exports.getSearchPlaceholder=function(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=r?t.ASSET_TYPE_SEARCH_PLACEHOLDERS:t.ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY;return s[e]||"Search..."},exports.sortAsset=function(e){return e.status===t.ACTIVE_STATUS?-1:1};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/typeof"),r=require("../constants.js");require("../../../constants/goals.js"),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 n=require("../../../constants/assetTypes.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../../constants/corvaCompanyId.js"),require("lodash"),require("../../GradientManager/configuration/constants.js");var a=s(e),i=s(t),u=function(e){return"object"===i.default(e)&&null!==e&&!Array.isArray(e)},o=function(e){return"string"==typeof e?e:void 0},l=function(e,t){var r=e.activeWell;return u(r)?r[t]:void 0};exports.formatAsset=function(e){var t=e.asset,s=e.group,a=void 0===s?null:s,i=e.activeWellId,c=void 0===i?null:i,d=e.isRequiredAssetId,p=e.isPrimaryAsset,S=e.isDrillingPlatformApp;if(!u(t))return null;var f=o(t.type),A={id:Number(t.assetId)||Number(t.id),type:f,name:o(t.name)};return d&&(A.id=Number(t.id),A.assetId=Number(t.assetId)),a&&(A.group=a),f===n.ASSET_TYPES.rig.type&&(A.activeWellId=Number(l(t,"id"))||null,S&&(A.activeWellId=Number(l(t,"assetId"))||null)),"interventionUnit"===f&&(A.activeWellId=Number(l(t,"id"))||null),f!==n.ASSET_TYPES.well.type&&f!==r.DEFAULT_ASSET_TYPE||(A.status=Number(t.id)===c?r.ACTIVE_STATUS:null),f===n.ASSET_TYPES.pad.type&&(A.parentFracFleetId=function(e){if("number"==typeof e||"string"==typeof e||null===e)return e}(t.parentFracFleetId),A.status=t.active&&t.current?r.ACTIVE_STATUS:null,p&&!t.parentFracFleetId&&(A.status=null)),A},exports.getPrimaryAssetFields=function(e){var t=e.primaryAssetType,r=e.assetFields,s=e.isDrillingPlatformApp,i=a.default(r);return t!==n.ASSET_TYPES.rig.type&&t!==n.ASSET_TYPES.intervention_unit.type||i.push("".concat(t,".active_well")),s?[].concat(a.default(i),["rig.active_child"]):i},exports.getRequestOptions=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{sort:"name",order:"asc",fields:["".concat(e,".name"),"".concat(e,".status")].concat(a.default(t))}},exports.getSearchPlaceholder=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=t?r.ASSET_TYPE_SEARCH_PLACEHOLDERS:r.ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY;return e&&n[e]||"Search..."},exports.isAssetOption=function(e){return Boolean(e)},exports.sortAsset=function(e){return e.status===r.ACTIVE_STATUS?-1:1};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/AssetEditorV2/utils/index.js"],"sourcesContent":["import { isEmpty } from 'lodash';\n\nimport {\n ACTIVE_STATUS,\n ASSET_TYPE_SEARCH_PLACEHOLDERS,\n ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY,\n DEFAULT_ASSET_TYPE,\n} from '../constants';\n\nimport { ASSET_TYPES } from '~/constants';\n\nexport const mapAssetIdPath = assetType => {\n switch (assetType) {\n case 'rig':\n case 'well':\n return ['attributes', 'asset_id'];\n case 'frac_fleet':\n case 'pad':\n default:\n return ['id'];\n }\n};\n\nexport const getPadFracFleetId = (fracFleets = []) => {\n const currentFracFleet = fracFleets.find(fracFleet => fracFleet === fracFleet.current)?.id;\n const lastCurrentFracFleet = fracFleets.reduce((a, b) => {\n return new Date(a.lastCurrentAt) > new Date(b.lastCurrentAt) ? a : b;\n }, {});\n\n if (!isEmpty(currentFracFleet)) {\n return currentFracFleet.fracFleet?.id;\n }\n return lastCurrentFracFleet.fracFleet?.id;\n};\n\nexport const getRequestOptions = (assetType, assetFields = []) => ({\n sort: 'name',\n order: 'asc',\n fields: [`${assetType}.name`, `${assetType}.status`, ...assetFields],\n});\n\nexport const formatAsset = ({\n asset,\n group = null,\n activeWellId = null,\n isRequiredAssetId,\n isPrimaryAsset,\n isDrillingPlatformApp,\n}) => {\n if (!asset) return null;\n\n const formattedAsset = {\n id: +asset.assetId || +asset.id,\n type: asset.type,\n name: asset.name,\n };\n\n if (isRequiredAssetId) {\n formattedAsset.id = +asset.id;\n formattedAsset.assetId = +asset.assetId;\n }\n\n if (group) {\n formattedAsset.group = group;\n }\n if (asset.type === ASSET_TYPES.rig.type) {\n formattedAsset.activeWellId = Number(asset.activeWell?.id) || null;\n if (isDrillingPlatformApp) {\n formattedAsset.activeWellId = Number(asset.activeWell?.assetId) || null;\n }\n }\n // NOTE: we use deserializer which transform keys and values to camelCase\n if (asset.type === 'interventionUnit') {\n formattedAsset.activeWellId = Number(asset.activeWell?.id) || null;\n }\n if (asset.type === ASSET_TYPES.well.type || asset.type === DEFAULT_ASSET_TYPE) {\n formattedAsset.status = Number(asset.id) === activeWellId ? ACTIVE_STATUS : null;\n }\n if (asset.type === ASSET_TYPES.pad.type) {\n formattedAsset.parentFracFleetId = asset.parentFracFleetId;\n\n formattedAsset.status = asset.active && asset.current ? ACTIVE_STATUS : null;\n\n if (isPrimaryAsset && !asset.parentFracFleetId) {\n formattedAsset.status = null;\n }\n }\n return formattedAsset;\n};\n\nexport const sortAsset = curr => (curr.status === ACTIVE_STATUS ? -1 : 1);\n\nexport const getPrimaryAssetFields = (primaryAssetType, assetFields, isDrillingPlatformApp) => {\n const customAssetFields = [...assetFields];\n if (\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ) {\n customAssetFields.push(`${primaryAssetType}.active_well`);\n }\n\n if (isDrillingPlatformApp) return [...customAssetFields, 'rig.active_child'];\n\n return customAssetFields;\n};\n\nexport const getSearchPlaceholder = (assetType, isSecondaryAssetPresent = true) => {\n const assetPlacehoders = isSecondaryAssetPresent\n ? ASSET_TYPE_SEARCH_PLACEHOLDERS\n : ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY;\n return assetPlacehoders[assetType] || 'Search...';\n};\n"],"names":["_ref","asset","_ref$group","group","_ref$activeWellId","activeWellId","isRequiredAssetId","isPrimaryAsset","isDrillingPlatformApp","_asset$activeWell","_asset$activeWell2","_asset$activeWell3","formattedAsset","id","assetId","type","name","ASSET_TYPES","rig","Number","activeWell","well","DEFAULT_ASSET_TYPE","status","ACTIVE_STATUS","pad","parentFracFleetId","active","current","primaryAssetType","assetFields","customAssetFields","intervention_unit","push","assetType","sort","order","fields","isSecondaryAssetPresent","assetPlacehoders","ASSET_TYPE_SEARCH_PLACEHOLDERS","ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY","curr"],"mappings":"o1BAyC2B,SAOrBA,GAAA,IANJC,IAAAA,MAAKC,EAAAF,EACLG,MAAAA,aAAQ,KAAID,EAAAE,EAAAJ,EACZK,aAAAA,aAAe,KAAID,EACnBE,IAAAA,kBACAC,IAAAA,eACAC,IAAAA,sBAEA,IAAKP,EAAO,OAAO,KAEnB,IAcyCQ,EAEZC,EAKUC,EArBjCC,EAAiB,CACrBC,IAAKZ,EAAMa,UAAYb,EAAMY,GAC7BE,KAAMd,EAAMc,KACZC,KAAMf,EAAMe,OAGVV,IACFM,EAAeC,IAAMZ,EAAMY,GAC3BD,EAAeE,SAAWb,EAAMa,SAG9BX,IACFS,EAAeT,MAAQA,GAErBF,EAAMc,OAASE,cAAYC,IAAIH,QACjCH,EAAeP,aAAec,OAAO,QAAAlB,EAAAA,EAAMmB,kBAAN,IAAAX,OAAA,EAAAA,EAAkBI,KAAO,KAC1DL,IACFI,EAAeP,aAAec,OAAO,QAAAlB,EAAAA,EAAMmB,kBAAN,IAAAV,OAAA,EAAAA,EAAkBI,UAAY,OAIpD,qBAAfb,EAAMc,OACRH,EAAeP,aAAec,OAAO,QAAAlB,EAAAA,EAAMmB,kBAAN,IAAAT,OAAA,EAAAA,EAAkBE,KAAO,MAchE,OAZIZ,EAAMc,OAASE,cAAYI,KAAKN,MAAQd,EAAMc,OAASO,uBACzDV,EAAeW,OAASJ,OAAOlB,EAAMY,MAAQR,EAAemB,EAAaA,cAAG,MAE1EvB,EAAMc,OAASE,cAAYQ,IAAIV,OACjCH,EAAec,kBAAoBzB,EAAMyB,kBAEzCd,EAAeW,OAAStB,EAAM0B,QAAU1B,EAAM2B,QAAUJ,EAAaA,cAAG,KAEpEjB,IAAmBN,EAAMyB,oBAC3Bd,EAAeW,OAAS,OAGrBX,CACT,gCAIqC,SAACiB,EAAkBC,EAAatB,GACnE,IAAMuB,EAAwBD,UAAAA,GAQ9B,OANED,IAAqBZ,EAAWA,YAACC,IAAIH,MACrCc,IAAqBZ,EAAWA,YAACe,kBAAkBjB,MAEnDgB,EAAkBE,KAAQJ,GAAAA,OAAAA,EAA+B,iBAGvDrB,EAAkCuB,GAAAA,OAAAA,EAAAA,QAAAA,IAAmB,qBAElDA,CACT,4BArEiC,SAACG,GAAS,IAAEJ,yDAAc,GAAE,MAAM,CACjEK,KAAM,OACNC,MAAO,MACPC,OAAYH,CAAAA,GAAAA,OAAAA,EAAqBA,SAAAA,GAAAA,OAAAA,+BAAuBJ,IACzD,+BAmEmC,SAACI,GAA8C,IAAnCI,6DACxCC,EAAmBD,EACrBE,EAA8BA,+BAC9BC,8CACJ,OAAOF,EAAiBL,IAAc,WACxC,oBArByB,SAAAQ,GAAI,OAAKA,EAAKnB,SAAWC,EAAaA,eAAI,EAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/AssetEditorV2/utils/index.ts"],"sourcesContent":["import {\n ACTIVE_STATUS,\n ASSET_TYPE_SEARCH_PLACEHOLDERS,\n ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY,\n DEFAULT_ASSET_TYPE,\n} from '../constants';\nimport { AssetId, AssetOption } from '../types';\n\nimport { ASSET_TYPES } from '~/constants';\n\ntype FormatAssetParams = {\n asset: unknown;\n group?: string | null;\n activeWellId?: AssetId | null;\n isRequiredAssetId?: boolean;\n isPrimaryAsset?: boolean;\n isDrillingPlatformApp?: boolean;\n};\n\ntype GetPrimaryAssetFieldsParams = {\n primaryAssetType?: string | null;\n assetFields: string[];\n isDrillingPlatformApp?: boolean;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst getString = (value: unknown): string | undefined =>\n typeof value === 'string' ? value : undefined;\n\nconst getAssetId = (value: unknown): AssetId | null | undefined => {\n if (typeof value === 'number' || typeof value === 'string' || value === null) return value;\n\n return undefined;\n};\n\nconst getActiveWellValue = (asset: Record<string, unknown>, key: string): unknown => {\n const activeWell = asset.activeWell;\n\n return isRecord(activeWell) ? activeWell[key] : undefined;\n};\n\nexport const mapAssetIdPath = (assetType: string): string[] => {\n switch (assetType) {\n case 'rig':\n case 'well':\n return ['attributes', 'asset_id'];\n case 'frac_fleet':\n case 'pad':\n default:\n return ['id'];\n }\n};\n\nexport const getRequestOptions = (assetType: string, assetFields: string[] = []) => ({\n sort: 'name',\n order: 'asc',\n fields: [`${assetType}.name`, `${assetType}.status`, ...assetFields],\n});\n\nexport const formatAsset = ({\n asset,\n group = null,\n activeWellId = null,\n isRequiredAssetId,\n isPrimaryAsset,\n isDrillingPlatformApp,\n}: FormatAssetParams): AssetOption | null => {\n if (!isRecord(asset)) return null;\n\n const type = getString(asset.type);\n const formattedAsset: AssetOption = {\n id: Number(asset.assetId) || Number(asset.id),\n type,\n name: getString(asset.name),\n };\n\n if (isRequiredAssetId) {\n formattedAsset.id = Number(asset.id);\n formattedAsset.assetId = Number(asset.assetId);\n }\n\n if (group) {\n formattedAsset.group = group;\n }\n\n if (type === ASSET_TYPES.rig.type) {\n formattedAsset.activeWellId = Number(getActiveWellValue(asset, 'id')) || null;\n\n if (isDrillingPlatformApp) {\n formattedAsset.activeWellId = Number(getActiveWellValue(asset, 'assetId')) || null;\n }\n }\n\n // The deserializer transforms keys and values to camelCase.\n if (type === 'interventionUnit') {\n formattedAsset.activeWellId = Number(getActiveWellValue(asset, 'id')) || null;\n }\n\n if (type === ASSET_TYPES.well.type || type === DEFAULT_ASSET_TYPE) {\n formattedAsset.status = Number(asset.id) === activeWellId ? ACTIVE_STATUS : null;\n }\n\n if (type === ASSET_TYPES.pad.type) {\n formattedAsset.parentFracFleetId = getAssetId(asset.parentFracFleetId);\n formattedAsset.status = asset.active && asset.current ? ACTIVE_STATUS : null;\n\n if (isPrimaryAsset && !asset.parentFracFleetId) {\n formattedAsset.status = null;\n }\n }\n\n return formattedAsset;\n};\n\nexport const isAssetOption = (asset: AssetOption | null): asset is AssetOption => Boolean(asset);\n\nexport const sortAsset = (asset: AssetOption): number => (asset.status === ACTIVE_STATUS ? -1 : 1);\n\nexport const getPrimaryAssetFields = ({\n primaryAssetType,\n assetFields,\n isDrillingPlatformApp,\n}: GetPrimaryAssetFieldsParams): string[] => {\n const customAssetFields = [...assetFields];\n\n if (\n primaryAssetType === ASSET_TYPES.rig.type ||\n primaryAssetType === ASSET_TYPES.intervention_unit.type\n ) {\n customAssetFields.push(`${primaryAssetType}.active_well`);\n }\n\n if (isDrillingPlatformApp) return [...customAssetFields, 'rig.active_child'];\n\n return customAssetFields;\n};\n\nexport const getSearchPlaceholder = (\n assetType?: string | null,\n isSecondaryAssetPresent = true\n): string => {\n const assetPlaceholders = isSecondaryAssetPresent\n ? ASSET_TYPE_SEARCH_PLACEHOLDERS\n : ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY;\n\n return (assetType && assetPlaceholders[assetType]) || 'Search...';\n};\n"],"names":["isRecord","value","_typeof","Array","isArray","getString","undefined","getActiveWellValue","asset","key","activeWell","_ref","_ref$group","group","_ref$activeWellId","activeWellId","isRequiredAssetId","isPrimaryAsset","isDrillingPlatformApp","type","formattedAsset","id","Number","assetId","name","ASSET_TYPES","rig","well","DEFAULT_ASSET_TYPE","status","ACTIVE_STATUS","pad","parentFracFleetId","getAssetId","active","current","_ref2","primaryAssetType","assetFields","customAssetFields","intervention_unit","push","assetType","sort","order","fields","isSecondaryAssetPresent","assetPlaceholders","ASSET_TYPE_SEARCH_PLACEHOLDERS","ASSET_TYPE_SEARCH_PLACEHOLDERS_NO_SECONDARY","Boolean"],"mappings":"82BAyBMA,EAAW,SAACC,GAAc,MACb,WAAjBC,EAAOD,QAAAA,IAAgC,OAAVA,IAAmBE,MAAMC,QAAQH,EAAM,EAEhEI,EAAY,SAACJ,GAAc,MACd,iBAAVA,EAAqBA,OAAQK,CAAS,EAQzCC,EAAqB,SAACC,EAAgCC,GAC1D,IAAMC,EAAaF,EAAME,WAEzB,OAAOV,EAASU,GAAcA,EAAWD,QAAOH,CAClD,sBAoB2B,SAOkBK,GAAA,IAN3CH,IAAAA,MAAKI,EAAAD,EACLE,MAAAA,aAAQ,KAAID,EAAAE,EAAAH,EACZI,aAAAA,aAAe,KAAID,EACnBE,IAAAA,kBACAC,IAAAA,eACAC,IAAAA,sBAEA,IAAKlB,EAASQ,GAAQ,OAAO,KAE7B,IAAMW,EAAOd,EAAUG,EAAMW,MACvBC,EAA8B,CAClCC,GAAIC,OAAOd,EAAMe,UAAYD,OAAOd,EAAMa,IAC1CF,KAAAA,EACAK,KAAMnB,EAAUG,EAAMgB,OAsCxB,OAnCIR,IACFI,EAAeC,GAAKC,OAAOd,EAAMa,IACjCD,EAAeG,QAAUD,OAAOd,EAAMe,UAGpCV,IACFO,EAAeP,MAAQA,GAGrBM,IAASM,EAAAA,YAAYC,IAAIP,OAC3BC,EAAeL,aAAeO,OAAOf,EAAmBC,EAAO,QAAU,KAErEU,IACFE,EAAeL,aAAeO,OAAOf,EAAmBC,EAAO,aAAe,OAKrE,qBAATW,IACFC,EAAeL,aAAeO,OAAOf,EAAmBC,EAAO,QAAU,MAGvEW,IAASM,EAAAA,YAAYE,KAAKR,MAAQA,IAASS,EAAAA,qBAC7CR,EAAeS,OAASP,OAAOd,EAAMa,MAAQN,EAAee,EAAaA,cAAG,MAG1EX,IAASM,EAAAA,YAAYM,IAAIZ,OAC3BC,EAAeY,kBA1EA,SAAC/B,GAClB,GAAqB,iBAAVA,GAAuC,iBAAVA,GAAgC,OAAVA,EAAgB,OAAOA,CAGvF,CAsEuCgC,CAAWzB,EAAMwB,mBACpDZ,EAAeS,OAASrB,EAAM0B,QAAU1B,EAAM2B,QAAUL,EAAaA,cAAG,KAEpEb,IAAmBT,EAAMwB,oBAC3BZ,EAAeS,OAAS,OAIrBT,CACT,gCAMqC,SAIQgB,GAAA,IAH3CC,IAAAA,iBACAC,IAAAA,YACApB,IAAAA,sBAEMqB,EAAwBD,UAAAA,GAS9B,OANED,IAAqBZ,EAAWA,YAACC,IAAIP,MACrCkB,IAAqBZ,EAAWA,YAACe,kBAAkBrB,MAEnDoB,EAAkBE,KAAQJ,GAAAA,OAAAA,EAA+B,iBAGvDnB,EAAkCqB,GAAAA,OAAAA,EAAAA,QAAAA,IAAmB,qBAElDA,CACT,4BAlFiC,SAACG,GAAiB,IAAEJ,yDAAwB,GAAE,MAAM,CACnFK,KAAM,OACNC,MAAO,MACPC,OAAYH,CAAAA,GAAAA,OAAAA,EAAqBA,SAAAA,GAAAA,OAAAA,+BAAuBJ,IACzD,+BAgFmC,SAClCI,GAEW,IADXI,6DAEMC,EAAoBD,EACtBE,EAA8BA,+BAC9BC,8CAEJ,OAAQP,GAAaK,EAAkBL,IAAe,WACxD,wBAhC6B,SAAClC,GAAyB,OAA2B0C,QAAQ1C,EAAM,oBAEvE,SAACA,GAAkB,OAAcA,EAAMqB,SAAWC,EAAaA,eAAI,EAAI,CAAC"}
@@ -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"),i=require("react"),n=require("lodash"),o=require("@material-ui/core"),r=require("@material-ui/icons"),t=require("../../../../EmptyState/EmptyState.js"),c=require("../../utils.js"),u=require("./components/RemoveAppButton.js"),a=require("./components/SettingsAccordion.js"),l=require("./styles.js");require("@babel/runtime/helpers/objectWithoutProperties"),require("@material-ui/pickers"),require("@date-io/moment"),require("moment"),require("../../../../../config/theme/index.js");var p=require("react/jsx-runtime"),d=require("../../../../../hocs/withAssetEditorLockHOC.js"),m=require("../../../../ErrorBoundary/ErrorBoundary.js"),j=require("../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js"),q=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/DragOne.js"),require("../../../../../icons/customIcons/icons/Attention.js"),require("../../../../../icons/customIcons/icons/Collapse.js"),require("../../../../../icons/customIcons/icons/Dashboard.js"),require("../../../../../icons/customIcons/icons/Expand.js"),require("../../../../../icons/customIcons/icons/FolderClosed.js"),require("../../../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../../../icons/customIcons/icons/FolderOpened.js"),require("../../../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../../../icons/customIcons/icons/Search.js"),require("../../../../../icons/customIcons/icons/SearchOne.js"),require("../../../../../icons/customIcons/icons/Wellhub.js"),require("../../../../../icons/customIcons/icons/MultiRuler.js"),require("../../../../../icons/customIcons/icons/Checkbox.js"),require("../../../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../../../icons/customIcons/icons/Radio.js"),require("../../../../../icons/customIcons/icons/RadioChecked.js"),require("../../../../../icons/customIcons/icons/SimulFrac.js"),require("../../../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../../../icons/customIcons/icons/CautionFilled.js"),require("../../../../../icons/customIcons/icons/InfoRounded.js"),require("../../../../../icons/customIcons/icons/FlameFilled.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/PinOne.js"),require("../../../../../icons/customIcons/icons/PinOneCrossed.js"),require("../../../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../../../icons/customIcons/icons/Archive.js"),require("../../../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../../../icons/customIcons/icons/Unarchive.js"),require("../../../../../icons/customIcons/icons/Archived.js"),require("../../../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../../../icons/customIcons/icons/CloudDelete.js"),require("../../../../../icons/customIcons/icons/Lasso.js"),require("../../../../../icons/customIcons/icons/Radius.js"),require("../../../../../icons/customIcons/icons/ErrorOps.js"),require("../../../../../icons/customIcons/icons/DataTypeOps.js"),require("../../../../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../../../../icons/customIcons/icons/CalibrationOps.js"),require("../../../../../icons/customIcons/icons/CriticalOps.js"),require("../../../../../icons/customIcons/icons/Company.js"),require("../../../../../icons/customIcons/icons/ArchiveOne.js"),require("../../../../../icons/customIcons/icons/ParseBotFusion.js"),require("../../../../../icons/customIcons/icons/Connect.js"),require("../../../../../icons/customIcons/icons/PuzzleOne.js"),require("../../../../../icons/customIcons/icons/Feed.js"),require("../../../../../icons/customIcons/icons/Prompt.js"),require("../../../../../icons/customIcons/icons/Companies.js"),require("../../../../../icons/customIcons/icons/ClipboardAi.js"),require("../../../../../icons/customIcons/icons/Key.js"),require("../../../../../icons/customIcons/icons/AtSignCrossed.js"),require("../../../../../icons/customIcons/icons/MappingManual.js"),require("../../../../../icons/customIcons/icons/Mapping.js"),require("../../../../../icons/customIcons/icons/Metrics.js"),require("../../../../../icons/customIcons/icons/Drops.js"),require("../../../../../icons/customIcons/icons/ClipboardSearch.js"),require("../../../../../icons/customIcons/icons/Template.js"),require("../../../../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../../../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../../../../icons/customIcons/icons/UnitConversion.js"),require("../../../../../icons/customIcons/icons/NPT.js"),require("../../../../../icons/customIcons/icons/GuidedFrac.js");var I=require("../../../../Modal/Modal.js"),v=require("../../../../../constants/devcenter.js");require("../../../../../constants/goals.js");var g=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 f=require("../../../../../constants/assetTypes.js");require("../../../../../constants/corvaCompanyId.js"),require("../../../../GradientManager/configuration/constants.js");var h=require("../../../../AssetEditorV2/index.js"),S=require("../../../../AppVersionsSelect/AppVersionsSelect.js"),C=require("../../../../DisabledSettingsMessage/DisabledSettingsMessage.js"),b=require("../../../../ConfirmationDialog.js");require("../../../../UserMention/utils/index.js"),require("../../../../../utils/convert.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../../../../utils/casing/validation.js"),require("lodash/mean"),require("../../../../../constants/streamSourceType.js"),require("lodash/get"),require("file-saver");var y=require("../../../../../utils/devcenter.js");require("../../../../../utils/drillstring/conversion.js"),require("lodash/set"),require("lodash/cloneDeep"),require("@babel/runtime/helpers/toConsumableArray"),require("lodash/isNumber"),require("lodash/has"),require("../../../../../utils/ga.js"),require("../../../../../utils/goalsConfig/goalsConfig.js"),require("../../../../../utils/lasParser.js"),require("../../../../../utils/main.js"),require("../../../../../utils/metrics/metricsConfig.js");var A=require("../../../../../utils/mobileDetect.js");require("../../../../../utils/feed.js"),require("../../../../../utils/reports.js");var x=require("../../../../../utils/notificationToasts.js");require("@babel/runtime/helpers/typeof"),require("../../../../../utils/dashboardReports.js"),require("../../../../../utils/env.js"),require("file-extension"),require("image-extensions"),require("video-extensions"),require("../../../../../utils/jsonaDataFormatter.js"),require("../../../../../utils/bha.js"),require("jsona"),require("../../../../../clients/jsonApi/index.js"),require("../../../../../utils/charts/Styles.scss.js"),require("../../../../../utils/getSingleAsset.js");var O=require("../../../../AppIcon/AppIcon.js"),E=require("../../../../../permissions/usePermissions.js"),P=require("../../../../../permissions/constants/index.js");require("../../../../../permissions/withPermissionsHOC.js"),require("../../../../../permissions/ProvidePermissions.js"),require("../../../../../permissions/PermissionsContext.js");var k=require("../../../../../componentsV2/HideInNativeApp/index.js"),D=require("../../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants.js");function N(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var M=N(e),T=N(s);function R(e,s){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),i.push.apply(i,n)}return i}function w(e){for(var s=1;s<arguments.length;s++){var i=null!=arguments[s]?arguments[s]:{};s%2?R(Object(i),!0).forEach((function(s){M.default(e,s,i[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):R(Object(i)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(i,s))}))}return e}var F="DC_appSettings",B=function(){return null},V=d(h),_=h,G=C,L=g.SEGMENT_TO_ASSET_TYPE,H=function(){return null};exports.PAGE_NAME=F,exports.default=function(e){var s,d,h,C,N,R,U=e.AppSettingsComponent,z=void 0===U?H:U,W=e.app,K=e.appData,Y=e.appName,Z=e.currentUser,J=e.disableAppAssetSelection,Q=void 0!==J&&J,X=e.isMultiRig,$=e.isSettingsDialogHidden,ee=void 0!==$&&$,se=e.layoutEnvironment,ie=e.onAppRemove,ne=e.onCloneDashboard,oe=void 0===ne?n.noop:ne,re=e.onSettingsChange,te=e.openIntercom,ce=e.rigId,ue=e.toggleAppSettingsDialog,ae=y.getAppSegment(W),le=i.useState("string"==typeof ae?ae:g.SEGMENTS.DRILLING),pe=T.default(le,2),de=pe[0],me=pe[1],je=i.useState(!1),qe=T.default(je,2),Ie=qe[0],ve=qe[1],ge=i.useState(!0),fe=T.default(ge,2),he=fe[0],Se=fe[1],Ce=i.useState(""),be=T.default(Ce,2),ye=be[0],Ae=be[1],xe=i.useState((function(){var e,s,i=n.cloneDeep(null!==(e=W.settings)&&void 0!==e?e:{}),o="string"==typeof i.package?i.package:void 0,r="string"==typeof(null===(s=W.package)||void 0===s?void 0:s.version)?W.package.version:void 0;return w(w({},i),{},{package:o||r})})),Oe=T.default(xe,2),Ee=Oe[0],Pe=Oe[1],ke=i.useRef(ce),De=i.useRef(null),Ne=i.useRef(null),Me=E([P.PERMISSIONS.getCanReadAppPackages(W.app.id)]),Te=T.default(Me,1)[0],Re=Te.active,we=Te.loading,Fe=Array.isArray(W.segment)?W.segment.filter((function(e){return"string"==typeof e})):[],Be=Fe.length>1,Ve=de===g.SEGMENTS.COMPLETION,_e=L[de],Ge="asset"===(null==se?void 0:se.type),Le=W.id===v.DEV_CENTER_CLI_APP_ID,He=c.getIsSustainabilityApp(null==W||null===(s=W.app)||void 0===s?void 0:s.id),Ue=!(Q||A.isInsideNewMobileApp||X||Ge&&Ve),ze=!A.isInsideNewMobileApp&&!ee&&!!ie,We=we||Re||Boolean(null===(d=De.current)||void 0===d?void 0:d.clientHeight),Ke=Boolean(null===(h=Ne.current)||void 0===h?void 0:h.clientHeight),Ye=We&&Ke,Ze=Ge?V:_,Je="string"==typeof W.app.app_key?W.app.app_key:null,Qe="string"==typeof Ee.package?Ee.package:void 0,Xe=l.useStyles({isCompletionApp:Ve,isSustainabilityApp:He,isAccordionRequired:Ye,isRemoveButtonVisible:ze}),$e=function(e,s){return Pe((function(i){return w(w({},i),{},M.default({},e,s))}))},es=function(e){return Pe((function(s){return w(w({},s),e)}))};i.useEffect((function(){he||Se(!0)}),[he]),i.useEffect((function(){n.debounce(ve,200)(!0)}),[]);var ss=p.jsxs("div",{className:Xe.modalTitleContainer,children:[p.jsx(O.AppIcon,{className:Xe.appIcon,segment:[de],iconUrl:null==W||null===(C=W.app)||void 0===C||null===(N=C.icon)||void 0===N?void 0:N.url,height:48,width:48}),p.jsxs("div",{children:[p.jsx("div",{children:"".concat(Y," Settings")}),p.jsx(k.HideInNativeApp,{children:p.jsxs("div",{"data-testid":"".concat(F,"_appstoreLink"),className:Xe.appStoreButton,onClick:function(){var e,s;return window.open((s=null==W||null===(e=W.app)||void 0===e?void 0:e.id,"/app-store/app/".concat(s)),"_top")},children:["Open in Appstore ",p.jsx(r.ArrowForward,{className:Xe.arrowIcon})]})})]})]}),is=p.jsxs("div",{className:Xe.modalActions,children:[ze&&p.jsx(u.default,{appName:Y,onAppRemove:ie}),p.jsxs("div",{children:[p.jsx(q,{"data-testid":"".concat(F,"_cancel"),variation:"secondary",onClick:ue,children:"Cancel"}),ee&&p.jsx(q,{variation:"primary",onClick:function(){return oe()},children:"Copy Dashboard"}),!ee&&p.jsx(q,{"data-testid":"".concat(F,"_save"),className:Xe.saveButton,variation:"primary",onClick:function(){if(Ee.package||Le){if(Ue&&!Ge){var e,s,i,n,o=null==_e||null===(e=_e.primaryAsset)||void 0===e||null===(s=e.assetType)||void 0===s?void 0:s.id,r=null==_e||null===(i=_e.primaryAsset)||void 0===i||null===(n=i.assetType)||void 0===n?void 0:n.label;if(o&&!Ee[o])return void Ae("Please select ".concat(r))}re(Ee),x.showSuccessNotification("Successfully saved"),ue()}else Ae("Please select app version")},children:"Save"})]})]});return p.jsx(I,{actions:is,closeIconClassName:Xe.closeIcon,contentContainerClassName:Xe.modalContainer,modalTitleClassName:Xe.modalTitle,onClose:ue,open:!0,title:ss,children:p.jsxs(m,{ErrorView:j,openIntercom:te,children:[p.jsx(b,{open:!!ye,isShowCancel:!1,title:"Validation failed",text:ye,handleOk:function(){return Ae("")},classes:{confirmation:Xe.confirmationText}}),ee&&p.jsx(G,{}),!ee&&Ie&&!Ke&&!We&&p.jsx(t,{image:t.IMAGES.UnderConstruction,title:"No app settings"}),!ee&&p.jsxs(p.Fragment,{children:[p.jsxs(a.SettingsAccordion,{defaultExpanded:!0,className:Xe.assetAccordion,accordionDetailsRef:De,isAccordionRequired:Ye,summary:"Asset",children:[Be&&p.jsxs(o.FormControl,{className:Xe.segmentSelector,children:[p.jsx(o.InputLabel,{children:"Segment"}),p.jsx(o.Select,{value:de,onChange:function(e){var s=String(e.target.value);ke.current=null,Se(!1),me(s),Pe(w(w({package:Ee.package,segment:s},n.mapValues(n.keyBy(f.ASSET_TYPES,"id"),(function(){return null}))),{},{assets:null}))},children:Fe.map((function(e){return p.jsx(o.MenuItem,{className:Xe.segmentMenuItem,value:e,children:e},e)}))})]}),Ue&&he&&p.jsx(Ze,{appKey:Le?null:Je,appType:_e,defaultValue:ke.current,secondaryDefaultValue:+(null==K||null===(R=K.well)||void 0===R?void 0:R.id),isHiddenTitle:!0,isNullable:Ge,label:"Asset",onSettingsChange:es,settings:Ee}),p.jsx(S.default,{className:Xe.appVersionSelect,appId:W.app.id,value:Qe,onChange:function(e,s,i){return i&&D.isReact18Host()?es({package:e,react18AutoSwitchDisabled:!0}):$e("package",e)}})]}),p.jsx(m,{ErrorView:B,openIntercom:te,children:p.jsx(a.SettingsAccordion,{accordionDetailsRef:Ne,className:Xe.accordion,defaultExpanded:!0,isAccordionRequired:Ye,summary:"App Settings",children:z&&p.jsx(z,{app:W,appData:K,settings:Ee,onSettingChange:$e,onSettingsChange:es,layoutEnvironment:se,currentUser:Z})})})]})]})})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),i=require("react"),n=require("lodash"),o=require("@material-ui/core"),r=require("@material-ui/icons"),t=require("../../../../EmptyState/EmptyState.js"),c=require("../../utils.js"),u=require("./components/RemoveAppButton.js"),a=require("./components/SettingsAccordion.js"),l=require("./styles.js");require("@babel/runtime/helpers/objectWithoutProperties"),require("@material-ui/pickers"),require("@date-io/moment"),require("moment"),require("../../../../../config/theme/index.js");var p=require("react/jsx-runtime"),d=require("../../../../../hocs/withAssetEditorLockHOC.js"),m=require("../../../../ErrorBoundary/ErrorBoundary.js"),j=require("../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js"),q=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/DragOne.js"),require("../../../../../icons/customIcons/icons/Attention.js"),require("../../../../../icons/customIcons/icons/Collapse.js"),require("../../../../../icons/customIcons/icons/Dashboard.js"),require("../../../../../icons/customIcons/icons/Expand.js"),require("../../../../../icons/customIcons/icons/FolderClosed.js"),require("../../../../../icons/customIcons/icons/FolderClosedFilled.js"),require("../../../../../icons/customIcons/icons/FolderOpened.js"),require("../../../../../icons/customIcons/icons/GreaterOrEqual.js"),require("../../../../../icons/customIcons/icons/LessOrEqual.js"),require("../../../../../icons/customIcons/icons/Search.js"),require("../../../../../icons/customIcons/icons/SearchOne.js"),require("../../../../../icons/customIcons/icons/Wellhub.js"),require("../../../../../icons/customIcons/icons/MultiRuler.js"),require("../../../../../icons/customIcons/icons/Checkbox.js"),require("../../../../../icons/customIcons/icons/CheckboxChecked.js"),require("../../../../../icons/customIcons/icons/CheckboxIndeterminate.js"),require("../../../../../icons/customIcons/icons/Radio.js"),require("../../../../../icons/customIcons/icons/RadioChecked.js"),require("../../../../../icons/customIcons/icons/SimulFrac.js"),require("../../../../../icons/customIcons/icons/ZipperFrac.js"),require("../../../../../icons/customIcons/icons/CautionFilled.js"),require("../../../../../icons/customIcons/icons/InfoRounded.js"),require("../../../../../icons/customIcons/icons/FlameFilled.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/PinOne.js"),require("../../../../../icons/customIcons/icons/PinOneCrossed.js"),require("../../../../../icons/customIcons/icons/CloseOneFilled.js"),require("../../../../../icons/customIcons/icons/AttentionFilled.js"),require("../../../../../icons/customIcons/icons/CheckOneFilled.js"),require("../../../../../icons/customIcons/icons/Archive.js"),require("../../../../../icons/customIcons/icons/ArchiveCancel.js"),require("../../../../../icons/customIcons/icons/Unarchive.js"),require("../../../../../icons/customIcons/icons/Archived.js"),require("../../../../../icons/customIcons/icons/InterventionUnit.js"),require("../../../../../icons/customIcons/icons/CloudDelete.js"),require("../../../../../icons/customIcons/icons/Lasso.js"),require("../../../../../icons/customIcons/icons/Radius.js"),require("../../../../../icons/customIcons/icons/ErrorOps.js"),require("../../../../../icons/customIcons/icons/DataTypeOps.js"),require("../../../../../icons/customIcons/icons/FalsePositiveOps.js"),require("../../../../../icons/customIcons/icons/CalibrationOps.js"),require("../../../../../icons/customIcons/icons/CriticalOps.js"),require("../../../../../icons/customIcons/icons/Company.js"),require("../../../../../icons/customIcons/icons/ArchiveOne.js"),require("../../../../../icons/customIcons/icons/ParseBotFusion.js"),require("../../../../../icons/customIcons/icons/Connect.js"),require("../../../../../icons/customIcons/icons/PuzzleOne.js"),require("../../../../../icons/customIcons/icons/Feed.js"),require("../../../../../icons/customIcons/icons/Prompt.js"),require("../../../../../icons/customIcons/icons/Companies.js"),require("../../../../../icons/customIcons/icons/ClipboardAi.js"),require("../../../../../icons/customIcons/icons/Key.js"),require("../../../../../icons/customIcons/icons/AtSignCrossed.js"),require("../../../../../icons/customIcons/icons/MappingManual.js"),require("../../../../../icons/customIcons/icons/Mapping.js"),require("../../../../../icons/customIcons/icons/Metrics.js"),require("../../../../../icons/customIcons/icons/Drops.js"),require("../../../../../icons/customIcons/icons/ClipboardSearch.js"),require("../../../../../icons/customIcons/icons/Template.js"),require("../../../../../icons/customIcons/icons/ClipboardMetrics.js"),require("../../../../../icons/customIcons/icons/ClipboardBuilder.js"),require("../../../../../icons/customIcons/icons/UnitConversion.js"),require("../../../../../icons/customIcons/icons/NPT.js"),require("../../../../../icons/customIcons/icons/GuidedFrac.js");var I=require("../../../../Modal/Modal.js"),v=require("../../../../../constants/devcenter.js");require("../../../../../constants/goals.js");var g=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 f=require("../../../../../constants/assetTypes.js");require("../../../../../constants/corvaCompanyId.js"),require("../../../../GradientManager/configuration/constants.js");var h=require("../../../../AssetEditorV2/index.js"),S=require("../../../../AppVersionsSelect/AppVersionsSelect.js"),C=require("../../../../DisabledSettingsMessage/DisabledSettingsMessage.js"),b=require("../../../../ConfirmationDialog.js");require("../../../../UserMention/utils/index.js"),require("../../../../../utils/convert.js"),require("@babel/runtime/helpers/asyncToGenerator"),require("@babel/runtime/regenerator"),require("../../../../../utils/casing/validation.js"),require("lodash/mean"),require("../../../../../constants/streamSourceType.js"),require("lodash/get"),require("file-saver");var y=require("../../../../../utils/devcenter.js");require("../../../../../utils/drillstring/conversion.js"),require("lodash/set"),require("lodash/cloneDeep"),require("@babel/runtime/helpers/toConsumableArray"),require("lodash/isNumber"),require("lodash/has"),require("../../../../../utils/ga.js"),require("../../../../../utils/goalsConfig/goalsConfig.js"),require("../../../../../utils/lasParser.js"),require("../../../../../utils/main.js"),require("../../../../../utils/metrics/metricsConfig.js");var A=require("../../../../../utils/mobileDetect.js");require("../../../../../utils/feed.js"),require("../../../../../utils/reports.js");var x=require("../../../../../utils/notificationToasts.js");require("@babel/runtime/helpers/typeof"),require("../../../../../utils/dashboardReports.js"),require("../../../../../utils/env.js"),require("file-extension"),require("image-extensions"),require("video-extensions"),require("../../../../../utils/jsonaDataFormatter.js"),require("../../../../../utils/bha.js"),require("jsona"),require("../../../../../clients/jsonApi/index.js"),require("../../../../../utils/charts/Styles.scss.js"),require("../../../../../utils/getSingleAsset.js");var O=require("../../../../AppIcon/AppIcon.js"),E=require("../../../../../permissions/usePermissions.js"),P=require("../../../../../permissions/constants/index.js");require("../../../../../permissions/withPermissionsHOC.js"),require("../../../../../permissions/ProvidePermissions.js"),require("../../../../../permissions/PermissionsContext.js");var k=require("../../../../../componentsV2/HideInNativeApp/index.js"),D=require("../../../../../componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants.js");function N(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var M=N(e),T=N(s);function R(e,s){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),i.push.apply(i,n)}return i}function w(e){for(var s=1;s<arguments.length;s++){var i=null!=arguments[s]?arguments[s]:{};s%2?R(Object(i),!0).forEach((function(s){M.default(e,s,i[s])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):R(Object(i)).forEach((function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(i,s))}))}return e}var F="DC_appSettings",B=function(){return null},V=d(h),_=C,G=g.SEGMENT_TO_ASSET_TYPE,L=function(){return null};exports.PAGE_NAME=F,exports.default=function(e){var s,d,C,N,R,H,U=e.AppSettingsComponent,z=void 0===U?L:U,W=e.app,K=e.appData,Y=e.appName,Z=e.currentUser,J=e.disableAppAssetSelection,Q=void 0!==J&&J,X=e.isMultiRig,$=e.isSettingsDialogHidden,ee=void 0!==$&&$,se=e.layoutEnvironment,ie=e.onAppRemove,ne=e.onCloneDashboard,oe=void 0===ne?n.noop:ne,re=e.onSettingsChange,te=e.openIntercom,ce=e.rigId,ue=e.toggleAppSettingsDialog,ae=y.getAppSegment(W),le=i.useState("string"==typeof ae?ae:g.SEGMENTS.DRILLING),pe=T.default(le,2),de=pe[0],me=pe[1],je=i.useState(!1),qe=T.default(je,2),Ie=qe[0],ve=qe[1],ge=i.useState(!0),fe=T.default(ge,2),he=fe[0],Se=fe[1],Ce=i.useState(""),be=T.default(Ce,2),ye=be[0],Ae=be[1],xe=i.useState((function(){var e,s,i=n.cloneDeep(null!==(e=W.settings)&&void 0!==e?e:{}),o="string"==typeof i.package?i.package:void 0,r="string"==typeof(null===(s=W.package)||void 0===s?void 0:s.version)?W.package.version:void 0;return w(w({},i),{},{package:o||r})})),Oe=T.default(xe,2),Ee=Oe[0],Pe=Oe[1],ke=i.useRef(ce),De=i.useRef(null),Ne=i.useRef(null),Me=E([P.PERMISSIONS.getCanReadAppPackages(W.app.id)]),Te=T.default(Me,1)[0],Re=Te.active,we=Te.loading,Fe=Array.isArray(W.segment)?W.segment.filter((function(e){return"string"==typeof e})):[],Be=Fe.length>1,Ve=de===g.SEGMENTS.COMPLETION,_e=G[de],Ge="asset"===(null==se?void 0:se.type),Le=W.id===v.DEV_CENTER_CLI_APP_ID,He=c.getIsSustainabilityApp(null==W||null===(s=W.app)||void 0===s?void 0:s.id),Ue=!(Q||A.isInsideNewMobileApp||X||Ge&&Ve),ze=!A.isInsideNewMobileApp&&!ee&&!!ie,We=we||Re||Boolean(null===(d=De.current)||void 0===d?void 0:d.clientHeight),Ke=Boolean(null===(C=Ne.current)||void 0===C?void 0:C.clientHeight),Ye=We&&Ke,Ze=Ge?V:h,Je="string"==typeof W.app.app_key?W.app.app_key:null,Qe="string"==typeof Ee.package?Ee.package:void 0,Xe=l.useStyles({isCompletionApp:Ve,isSustainabilityApp:He,isAccordionRequired:Ye,isRemoveButtonVisible:ze}),$e=function(e,s){return Pe((function(i){return w(w({},i),{},M.default({},e,s))}))},es=function(e){return Pe((function(s){return w(w({},s),e)}))};i.useEffect((function(){he||Se(!0)}),[he]),i.useEffect((function(){n.debounce(ve,200)(!0)}),[]);var ss=p.jsxs("div",{className:Xe.modalTitleContainer,children:[p.jsx(O.AppIcon,{className:Xe.appIcon,segment:[de],iconUrl:null==W||null===(N=W.app)||void 0===N||null===(R=N.icon)||void 0===R?void 0:R.url,height:48,width:48}),p.jsxs("div",{children:[p.jsx("div",{children:"".concat(Y," Settings")}),p.jsx(k.HideInNativeApp,{children:p.jsxs("div",{"data-testid":"".concat(F,"_appstoreLink"),className:Xe.appStoreButton,onClick:function(){var e,s;return window.open((s=null==W||null===(e=W.app)||void 0===e?void 0:e.id,"/app-store/app/".concat(s)),"_top")},children:["Open in Appstore ",p.jsx(r.ArrowForward,{className:Xe.arrowIcon})]})})]})]}),is=p.jsxs("div",{className:Xe.modalActions,children:[ze&&p.jsx(u.default,{appName:Y,onAppRemove:ie}),p.jsxs("div",{children:[p.jsx(q,{"data-testid":"".concat(F,"_cancel"),variation:"secondary",onClick:ue,children:"Cancel"}),ee&&p.jsx(q,{variation:"primary",onClick:function(){return oe()},children:"Copy Dashboard"}),!ee&&p.jsx(q,{"data-testid":"".concat(F,"_save"),className:Xe.saveButton,variation:"primary",onClick:function(){if(Ee.package||Le){if(Ue&&!Ge){var e,s,i,n,o=null==_e||null===(e=_e.primaryAsset)||void 0===e||null===(s=e.assetType)||void 0===s?void 0:s.id,r=null==_e||null===(i=_e.primaryAsset)||void 0===i||null===(n=i.assetType)||void 0===n?void 0:n.label;if(o&&!Ee[o])return void Ae("Please select ".concat(r))}re(Ee),x.showSuccessNotification("Successfully saved"),ue()}else Ae("Please select app version")},children:"Save"})]})]});return p.jsx(I,{actions:is,closeIconClassName:Xe.closeIcon,contentContainerClassName:Xe.modalContainer,modalTitleClassName:Xe.modalTitle,onClose:ue,open:!0,title:ss,children:p.jsxs(m,{ErrorView:j,openIntercom:te,children:[p.jsx(b,{open:!!ye,isShowCancel:!1,title:"Validation failed",text:ye,handleOk:function(){return Ae("")},classes:{confirmation:Xe.confirmationText}}),ee&&p.jsx(_,{}),!ee&&Ie&&!Ke&&!We&&p.jsx(t,{image:t.IMAGES.UnderConstruction,title:"No app settings"}),!ee&&p.jsxs(p.Fragment,{children:[p.jsxs(a.SettingsAccordion,{defaultExpanded:!0,className:Xe.assetAccordion,accordionDetailsRef:De,isAccordionRequired:Ye,summary:"Asset",children:[Be&&p.jsxs(o.FormControl,{className:Xe.segmentSelector,children:[p.jsx(o.InputLabel,{children:"Segment"}),p.jsx(o.Select,{value:de,onChange:function(e){var s=String(e.target.value);ke.current=null,Se(!1),me(s),Pe(w(w({package:Ee.package,segment:s},n.mapValues(n.keyBy(f.ASSET_TYPES,"id"),(function(){return null}))),{},{assets:null}))},children:Fe.map((function(e){return p.jsx(o.MenuItem,{className:Xe.segmentMenuItem,value:e,children:e},e)}))})]}),Ue&&he&&_e&&p.jsx(Ze,{appKey:Le?null:Je,appType:_e,defaultValue:ke.current,secondaryDefaultValue:+(null==K||null===(H=K.well)||void 0===H?void 0:H.id),isHiddenTitle:!0,isNullable:Ge,label:"Asset",onSettingsChange:es,settings:Ee}),p.jsx(S.default,{className:Xe.appVersionSelect,appId:W.app.id,value:Qe,onChange:function(e,s,i){return i&&D.isReact18Host()?es({package:e,react18AutoSwitchDisabled:!0}):$e("package",e)}})]}),p.jsx(m,{ErrorView:B,openIntercom:te,children:p.jsx(a.SettingsAccordion,{accordionDetailsRef:Ne,className:Xe.accordion,defaultExpanded:!0,isAccordionRequired:Ye,summary:"App Settings",children:z&&p.jsx(z,{app:W,appData:K,settings:Ee,onSettingChange:$e,onSettingsChange:es,layoutEnvironment:se,currentUser:Z})})})]})]})})};
2
2
  //# sourceMappingURL=AppSettingsDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ComponentType, FC, ReactNode } from 'react';\nimport { cloneDeep, debounce, keyBy, mapValues, noop } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport type { SelectProps } from '@material-ui/core/Select';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport type {\n AppDataEntry,\n DevCenterAppResource,\n DevCenterCurrentUser,\n LayoutEnvironment,\n} from '../../types';\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';\nimport { HideInNativeApp } from '~/componentsV2/HideInNativeApp';\n// [REACT-18-MIGRATION-TAG] PLT-3099\nimport { isReact18Host } from '~/componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = (appId: number | string | undefined): string => `/app-store/app/${appId}`;\n\nconst AppSettingsErrorView = () => null;\n\nexport type AppSettings = {\n package?: string | null;\n padId?: number | string | null;\n segment?: string;\n} & Record<string, unknown>;\n\nexport type AppSettingsComponentProps = {\n app: DevCenterAppResource;\n appData: AppDataEntry;\n currentUser: DevCenterCurrentUser;\n layoutEnvironment?: LayoutEnvironment | null;\n onSettingChange: (name: string, value: unknown) => void;\n onSettingsChange: (settings: AppSettings) => void;\n settings: AppSettings;\n};\n\nexport type AppSettingsDialogProps = {\n AppSettingsComponent?: ComponentType<AppSettingsComponentProps> | null;\n app: DevCenterAppResource;\n appData: AppDataEntry;\n appName: string;\n currentUser: DevCenterCurrentUser;\n disableAppAssetSelection?: boolean;\n isMultiRig: boolean;\n isSettingsDialogHidden?: boolean;\n layoutEnvironment?: LayoutEnvironment | null;\n onAppRemove?: () => void;\n onCloneDashboard?: () => void;\n onSettingsChange: (settings: AppSettings) => void;\n openIntercom?: () => void;\n rigId?: number | string | null;\n toggleAppSettingsDialog: () => void;\n};\n\ntype AssetEditorAppType = {\n primaryAsset?: {\n assetType?: {\n id?: string;\n label?: string;\n };\n };\n};\n\ntype AssetEditorProps = {\n appKey: string | null;\n appType: AssetEditorAppType | undefined;\n defaultValue: number | string | null | undefined;\n secondaryDefaultValue: number;\n isHiddenTitle: boolean;\n isNullable: boolean;\n label: string;\n onSettingsChange: (settings: AppSettings) => void;\n settings: AppSettings;\n};\n\n/*\n * AS-KEEP — JavaScript boundary.\n *\n * `AssetEditorV2` and `DisabledSettingsMessage` are still `.js`. TypeScript infers their props\n * from `propTypes` alone and never reads `defaultProps`, so every defaulted prop comes back\n * required and the inferred type has no overlap with the subset this dialog supplies. Nothing\n * lower on the ladder reaches it: there is no value to narrow, no predicate to write, and\n * widening the contract would mean hand-writing a `.d.ts` for a module that is itself queued for\n * migration. The assertions stay here, at the boundary, and describe exactly what this dialog\n * passes — `AssetEditorProps` below is the real contract, checked at every call site.\n *\n * Delete both once `AssetEditorV2/index.js` and `DisabledSettingsMessage.js` are TypeScript.\n */\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor) as ComponentType<AssetEditorProps>;\n// TS cannot convert this one directly: with `defaultProps` ignored, the inferred type keeps\n// props this dialog never passes, so neither side overlaps. `unknown` is the only route.\nconst TypedAssetEditor = AssetEditor as unknown as ComponentType<AssetEditorProps>;\nconst OptionalDisabledSettingsMessage = DisabledSettingsMessage as ComponentType<{\n onCloneDashboard?: () => void;\n}>;\n\nconst ASSET_EDITOR_TYPES_BY_SEGMENT: Record<string, AssetEditorAppType> = SEGMENT_TO_ASSET_TYPE;\n\nconst DEFAULT_APP_SETTINGS_COMPONENT: ComponentType<AppSettingsComponentProps> = () => null;\n\nconst AppSettingsDialog: FC<AppSettingsDialogProps> = ({\n AppSettingsComponent = DEFAULT_APP_SETTINGS_COMPONENT,\n app,\n appData,\n appName,\n currentUser,\n disableAppAssetSelection = false,\n isMultiRig,\n isSettingsDialogHidden = false,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard = noop,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) => {\n const initialSegment = getAppSegment(app);\n\n const [appSegmentSetting, setAppSegmentSetting] = useState<string>(\n typeof initialSegment === 'string' ? initialSegment : SEGMENTS.DRILLING\n );\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [appSettings, setAppSettings] = useState<AppSettings>(() => {\n const settings: AppSettings = cloneDeep(app.settings ?? {});\n const settingsPackage = typeof settings.package === 'string' ? settings.package : undefined;\n const packageVersion =\n typeof app.package?.version === 'string' ? app.package.version : undefined;\n\n return {\n ...settings,\n package: settingsPackage || packageVersion,\n };\n });\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<number | string | null | undefined>(rigId);\n const platformAppSettingsRef = useRef<HTMLDivElement | null>(null);\n const customAppSettingsRef = useRef<HTMLDivElement | null>(null);\n\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const appSegments = Array.isArray(app.segment)\n ? app.segment.filter((segment): segment is string => typeof segment === 'string')\n : [];\n const hasSegmentSelector = appSegments.length > 1;\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = ASSET_EDITOR_TYPES_BY_SEGMENT[appSegmentSetting];\n const isAssetPage = layoutEnvironment?.type === 'asset';\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const isAssetSelectorVisible =\n !disableAppAssetSelection &&\n !isInsideNewMobileApp &&\n !isMultiRig &&\n !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && !!onAppRemove;\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 AssetEditorComponent = isAssetPage ? AssetEditorWithLock : TypedAssetEditor;\n const appKey = typeof app.app.app_key === 'string' ? app.app.app_key : null;\n const selectedPackage = typeof appSettings.package === 'string' ? appSettings.package : undefined;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const handleChangeAppSegment: SelectProps['onChange'] = event => {\n const nextSegment = String(event.target.value);\n\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 handleAppSettingChange = (name: string, value: unknown) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const handleAppSettingsChange = (newSettings: AppSettings) =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const handleSave = () => {\n if (!appSettings.package && !isCLIApp) {\n setValidationError('Please select app version');\n return;\n }\n\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset?.assetType?.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset?.assetType?.label;\n\n if (appTypeKey && !appSettings[appTypeKey]) {\n setValidationError(`Please select ${appTypeLabel}`);\n return;\n }\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n toggleAppSettingsDialog();\n };\n\n const handleAppVersionChange = (value: string, _appPackage: unknown, isUserChange: boolean) =>\n // [REACT-18-MIGRATION-TAG] PLT-3099: a genuine user pick on a React-18 host opts the app out\n // of the auto-switch; the auto-preselect must not (isUserChange).\n isUserChange && isReact18Host()\n ? handleAppSettingsChange({ package: value, react18AutoSwitchDisabled: true })\n : handleAppSettingChange('package', value);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle: ReactNode = (\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 <HideInNativeApp>\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 </HideInNativeApp>\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={handleSave}\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 && <OptionalDisabledSettingsMessage />}\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 {appSegments.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 : appKey}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={handleAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={selectedPackage}\n onChange={handleAppVersionChange}\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={handleAppSettingChange}\n onSettingsChange={handleAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </ErrorBoundary>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AppSettingsErrorView","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","TypedAssetEditor","OptionalDisabledSettingsMessage","DisabledSettingsMessage","ASSET_EDITOR_TYPES_BY_SEGMENT","SEGMENT_TO_ASSET_TYPE","DEFAULT_APP_SETTINGS_COMPONENT","_ref","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","_ref$AppSettingsCompo","AppSettingsComponent","app","appData","appName","currentUser","_ref$disableAppAssetS","disableAppAssetSelection","isMultiRig","_ref$isSettingsDialog","isSettingsDialogHidden","layoutEnvironment","onAppRemove","_ref$onCloneDashboard","onCloneDashboard","noop","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","initialSegment","getAppSegment","_useState","useState","SEGMENTS","DRILLING","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","_useState8","_useState7","validationError","setValidationError","_app$settings","_app$package","settings","cloneDeep","settingsPackage","package","undefined","packageVersion","version","_objectSpread","_useState10","_useState9","appSettings","setAppSettings","defaultRigId","useRef","platformAppSettingsRef","customAppSettingsRef","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","appSegments","Array","isArray","segment","filter","hasSegmentSelector","length","isCompletionSegment","COMPLETION","assetEditorAppType","isAssetPage","type","isCLIApp","DEV_CENTER_CLI_APP_ID","isSustainabilityApp","getIsSustainabilityApp","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","AssetEditorComponent","appKey","app_key","selectedPackage","styles","useStyles","isCompletionApp","handleAppSettingChange","name","value","prevSettings","_defineProperty","handleAppSettingsChange","newSettings","useEffect","debounce","debouncedSetIsMounted","modalTitle","_jsxs","jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","jsx","concat","HideInNativeApp","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","_assetEditorAppType$p","_assetEditorAppType$p2","_assetEditorAppType$p3","_assetEditorAppType$p4","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","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","event","nextSegment","String","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appType","defaultValue","secondaryDefaultValue","well","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","_appPackage","isUserChange","isReact18Host","react18AutoSwitchDisabled","accordion","onSettingChange"],"mappings":"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"}
1
+ {"version":3,"file":"AppSettingsDialog.js","sources":["../../../../../../../src/components/DevCenter/DevCenterAppContainer/components/AppSettingsDialog/AppSettingsDialog.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ComponentType, FC, ReactNode } from 'react';\nimport { cloneDeep, debounce, keyBy, mapValues, noop } from 'lodash';\nimport { FormControl, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport type { SelectProps } from '@material-ui/core/Select';\nimport { ArrowForward as ArrowIcon } from '@material-ui/icons';\n\nimport EmptyState from '../../../../EmptyState';\nimport type {\n AppDataEntry,\n DevCenterAppResource,\n DevCenterCurrentUser,\n LayoutEnvironment,\n} from '../../types';\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, { AssetEditorAppType } 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';\nimport { HideInNativeApp } from '~/componentsV2/HideInNativeApp';\n// [REACT-18-MIGRATION-TAG] PLT-3099\nimport { isReact18Host } from '~/componentsV2/AppHeader/V3/VersionSelect/VersionSelect.constants';\n\nexport const PAGE_NAME = 'DC_appSettings';\n\nconst getAppPageUrl = (appId: number | string | undefined): string => `/app-store/app/${appId}`;\n\nconst AppSettingsErrorView = () => null;\n\nexport type AppSettings = {\n package?: string | null;\n padId?: number | string | null;\n segment?: string;\n} & Record<string, unknown>;\n\nexport type AppSettingsComponentProps = {\n app: DevCenterAppResource;\n appData: AppDataEntry;\n currentUser: DevCenterCurrentUser;\n layoutEnvironment?: LayoutEnvironment | null;\n onSettingChange: (name: string, value: unknown) => void;\n onSettingsChange: (settings: AppSettings) => void;\n settings: AppSettings;\n};\n\nexport type AppSettingsDialogProps = {\n AppSettingsComponent?: ComponentType<AppSettingsComponentProps> | null;\n app: DevCenterAppResource;\n appData: AppDataEntry;\n appName: string;\n currentUser: DevCenterCurrentUser;\n disableAppAssetSelection?: boolean;\n isMultiRig: boolean;\n isSettingsDialogHidden?: boolean;\n layoutEnvironment?: LayoutEnvironment | null;\n onAppRemove?: () => void;\n onCloneDashboard?: () => void;\n onSettingsChange: (settings: AppSettings) => void;\n openIntercom?: () => void;\n rigId?: number | string | null;\n toggleAppSettingsDialog: () => void;\n};\n\nconst AssetEditorWithLock = withAssetEditorLockHOC(AssetEditor);\n\n/*\n * AS-KEEP — DisabledSettingsMessage is still JavaScript and declares a required\n * onCloneDashboard callback, although its rendering supports an omitted callback.\n * Remove this assertion when that component is migrated to TypeScript.\n */\nconst OptionalDisabledSettingsMessage = DisabledSettingsMessage as ComponentType<{\n onCloneDashboard?: () => void;\n}>;\n\nconst ASSET_EDITOR_TYPES_BY_SEGMENT: Partial<Record<string, AssetEditorAppType>> =\n SEGMENT_TO_ASSET_TYPE;\n\nconst DEFAULT_APP_SETTINGS_COMPONENT: ComponentType<AppSettingsComponentProps> = () => null;\n\nconst AppSettingsDialog: FC<AppSettingsDialogProps> = ({\n AppSettingsComponent = DEFAULT_APP_SETTINGS_COMPONENT,\n app,\n appData,\n appName,\n currentUser,\n disableAppAssetSelection = false,\n isMultiRig,\n isSettingsDialogHidden = false,\n layoutEnvironment,\n onAppRemove,\n onCloneDashboard = noop,\n onSettingsChange,\n openIntercom,\n rigId,\n toggleAppSettingsDialog,\n}) => {\n const initialSegment = getAppSegment(app);\n\n const [appSegmentSetting, setAppSegmentSetting] = useState<string>(\n typeof initialSegment === 'string' ? initialSegment : SEGMENTS.DRILLING\n );\n const [isMounted, setIsMounted] = useState(false);\n const [isAssetSelectorRendered, setIsAssetSelectorRendered] = useState(true);\n const [validationError, setValidationError] = useState('');\n const [appSettings, setAppSettings] = useState<AppSettings>(() => {\n const settings: AppSettings = cloneDeep(app.settings ?? {});\n const settingsPackage = typeof settings.package === 'string' ? settings.package : undefined;\n const packageVersion =\n typeof app.package?.version === 'string' ? app.package.version : undefined;\n\n return {\n ...settings,\n package: settingsPackage || packageVersion,\n };\n });\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<number | string | null | undefined>(rigId);\n const platformAppSettingsRef = useRef<HTMLDivElement | null>(null);\n const customAppSettingsRef = useRef<HTMLDivElement | null>(null);\n\n const [{ active: canReadAppPackages, loading: isPermissionsLoading }] = usePermissions([\n PERMISSIONS.getCanReadAppPackages(app.app.id),\n ]);\n\n const appSegments = Array.isArray(app.segment)\n ? app.segment.filter((segment): segment is string => typeof segment === 'string')\n : [];\n const hasSegmentSelector = appSegments.length > 1;\n const isCompletionSegment = appSegmentSetting === SEGMENTS.COMPLETION;\n const assetEditorAppType = ASSET_EDITOR_TYPES_BY_SEGMENT[appSegmentSetting];\n const isAssetPage = layoutEnvironment?.type === 'asset';\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n const isSustainabilityApp = getIsSustainabilityApp(app?.app?.id);\n\n const isAssetSelectorVisible =\n !disableAppAssetSelection &&\n !isInsideNewMobileApp &&\n !isMultiRig &&\n !(isAssetPage && isCompletionSegment);\n const isRemoveButtonVisible = !isInsideNewMobileApp && !isSettingsDialogHidden && !!onAppRemove;\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 AssetEditorComponent = isAssetPage ? AssetEditorWithLock : AssetEditor;\n const appKey = typeof app.app.app_key === 'string' ? app.app.app_key : null;\n const selectedPackage = typeof appSettings.package === 'string' ? appSettings.package : undefined;\n\n const styles = useStyles({\n isCompletionApp: isCompletionSegment,\n isSustainabilityApp,\n isAccordionRequired,\n isRemoveButtonVisible,\n });\n\n const handleChangeAppSegment: SelectProps['onChange'] = event => {\n const nextSegment = String(event.target.value);\n\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 handleAppSettingChange = (name: string, value: unknown) =>\n setAppSettings(prevSettings => ({\n ...prevSettings,\n [name]: value,\n }));\n\n const handleAppSettingsChange = (newSettings: AppSettings) =>\n setAppSettings(prevSettings => ({ ...prevSettings, ...newSettings }));\n\n const handleSave = () => {\n if (!appSettings.package && !isCLIApp) {\n setValidationError('Please select app version');\n return;\n }\n\n if (isAssetSelectorVisible && !isAssetPage) {\n const appTypeKey = assetEditorAppType?.primaryAsset?.assetType?.id;\n const appTypeLabel = assetEditorAppType?.primaryAsset?.assetType?.label;\n\n if (appTypeKey && !appSettings[appTypeKey]) {\n setValidationError(`Please select ${appTypeLabel}`);\n return;\n }\n }\n\n onSettingsChange(appSettings);\n showSuccessNotification('Successfully saved');\n toggleAppSettingsDialog();\n };\n\n const handleAppVersionChange = (value: string, _appPackage: unknown, isUserChange: boolean) =>\n // [REACT-18-MIGRATION-TAG] PLT-3099: a genuine user pick on a React-18 host opts the app out\n // of the auto-switch; the auto-preselect must not (isUserChange).\n isUserChange && isReact18Host()\n ? handleAppSettingsChange({ package: value, react18AutoSwitchDisabled: true })\n : handleAppSettingChange('package', value);\n\n useEffect(() => {\n if (!isAssetSelectorRendered) setIsAssetSelectorRendered(true);\n }, [isAssetSelectorRendered]);\n\n useEffect(() => {\n const debouncedSetIsMounted = debounce(setIsMounted, 200);\n debouncedSetIsMounted(true);\n }, []);\n\n const modalTitle: ReactNode = (\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 <HideInNativeApp>\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 </HideInNativeApp>\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={handleSave}\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 && <OptionalDisabledSettingsMessage />}\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 {appSegments.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 && assetEditorAppType && (\n <AssetEditorComponent\n appKey={isCLIApp ? null : appKey}\n appType={assetEditorAppType}\n defaultValue={defaultRigId.current}\n secondaryDefaultValue={+appData?.well?.id}\n isHiddenTitle\n isNullable={isAssetPage}\n label=\"Asset\"\n onSettingsChange={handleAppSettingsChange}\n settings={appSettings}\n />\n )}\n <AppVersionsSelect\n className={styles.appVersionSelect}\n appId={app.app.id}\n value={selectedPackage}\n onChange={handleAppVersionChange}\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={handleAppSettingChange}\n onSettingsChange={handleAppSettingsChange}\n layoutEnvironment={layoutEnvironment}\n currentUser={currentUser}\n />\n )}\n </SettingsAccordion>\n </ErrorBoundary>\n </>\n )}\n </ErrorBoundary>\n </Modal>\n );\n};\n\nexport default AppSettingsDialog;\n"],"names":["PAGE_NAME","AppSettingsErrorView","AssetEditorWithLock","withAssetEditorLockHOC","AssetEditor","OptionalDisabledSettingsMessage","DisabledSettingsMessage","ASSET_EDITOR_TYPES_BY_SEGMENT","SEGMENT_TO_ASSET_TYPE","DEFAULT_APP_SETTINGS_COMPONENT","_ref","_app$app","_platformAppSettingsR","_customAppSettingsRef","_app$app2","_app$app2$icon","_appData$well","_ref$AppSettingsCompo","AppSettingsComponent","app","appData","appName","currentUser","_ref$disableAppAssetS","disableAppAssetSelection","isMultiRig","_ref$isSettingsDialog","isSettingsDialogHidden","layoutEnvironment","onAppRemove","_ref$onCloneDashboard","onCloneDashboard","noop","onSettingsChange","openIntercom","rigId","toggleAppSettingsDialog","initialSegment","getAppSegment","_useState","useState","SEGMENTS","DRILLING","_useState2","_slicedToArray","appSegmentSetting","setAppSegmentSetting","_useState4","_useState3","isMounted","setIsMounted","_useState6","_useState5","isAssetSelectorRendered","setIsAssetSelectorRendered","_useState8","_useState7","validationError","setValidationError","_app$settings","_app$package","settings","cloneDeep","settingsPackage","package","undefined","packageVersion","version","_objectSpread","_useState10","_useState9","appSettings","setAppSettings","defaultRigId","useRef","platformAppSettingsRef","customAppSettingsRef","_usePermissions","usePermissions","PERMISSIONS","getCanReadAppPackages","id","_usePermissions2$","canReadAppPackages","active","isPermissionsLoading","loading","appSegments","Array","isArray","segment","filter","hasSegmentSelector","length","isCompletionSegment","COMPLETION","assetEditorAppType","isAssetPage","type","isCLIApp","DEV_CENTER_CLI_APP_ID","isSustainabilityApp","getIsSustainabilityApp","isAssetSelectorVisible","isInsideNewMobileApp","isRemoveButtonVisible","hasPlatformAppSettings","Boolean","current","clientHeight","hasCustomAppSettings","isAccordionRequired","AssetEditorComponent","appKey","app_key","selectedPackage","styles","useStyles","isCompletionApp","handleAppSettingChange","name","value","prevSettings","_defineProperty","handleAppSettingsChange","newSettings","useEffect","debounce","debouncedSetIsMounted","modalTitle","_jsxs","jsxs","className","modalTitleContainer","children","_jsx","AppIcon","appIcon","iconUrl","icon","url","height","width","jsx","concat","HideInNativeApp","appStoreButton","onClick","_app$app3","appId","window","open","ArrowIcon","arrowIcon","modalActions","RemoveAppButton","Button","variation","saveButton","_assetEditorAppType$p","_assetEditorAppType$p2","_assetEditorAppType$p3","_assetEditorAppType$p4","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","EmptyState","image","IMAGES","UnderConstruction","_Fragment","SettingsAccordion","defaultExpanded","assetAccordion","accordionDetailsRef","summary","FormControl","segmentSelector","InputLabel","Select","onChange","event","nextSegment","String","target","mapValues","keyBy","ASSET_TYPES","assets","map","segmentItem","MenuItem","segmentMenuItem","appType","defaultValue","secondaryDefaultValue","well","isHiddenTitle","isNullable","AppVersionsSelect","appVersionSelect","_appPackage","isUserChange","isReact18Host","react18AutoSwitchDisabled","accordion","onSettingChange"],"mappings":"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"}