@corva/ui 3.76.0-8 → 3.76.0-rc.0

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 (67) hide show
  1. package/MCP_README.md +86 -36
  2. package/README.md +8 -5
  3. package/cjs-bundle/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  4. package/cjs-bundle/componentsV2/AppCommonsProvider/AppCommonsContext.js.map +1 -1
  5. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.constants.js +1 -1
  6. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.constants.js.map +1 -1
  7. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
  8. package/cjs-bundle/componentsV2/AppHeader/V3/Actions/Actions.js.map +1 -1
  9. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
  10. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.js.map +1 -1
  11. package/cjs-bundle/componentsV2/AppHeader/V3/AppHeaderV3.scss.js +1 -1
  12. package/cjs-bundle/componentsV2/AppHeader/V3/useResponsivity.js +1 -1
  13. package/cjs-bundle/componentsV2/AppHeader/V3/useResponsivity.js.map +1 -1
  14. package/cjs-bundle/componentsV2/AppPanel/AppPanelDisplay.js +1 -1
  15. package/cjs-bundle/componentsV2/AppPanel/AppPanelDisplay.js.map +1 -1
  16. package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
  17. package/cjs-bundle/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
  18. package/cjs-bundle/componentsV2/DatePicker/utils.js +1 -1
  19. package/cjs-bundle/componentsV2/DatePicker/utils.js.map +1 -1
  20. package/cjs-bundle/componentsV2/Modal/Modal.js +1 -1
  21. package/cjs-bundle/componentsV2/Modal/Modal.js.map +1 -1
  22. package/cjs-bundle/componentsV2/TemplatesControl/Store/hooks/useInitialize.js +1 -1
  23. package/cjs-bundle/componentsV2/TemplatesControl/Store/hooks/useInitialize.js.map +1 -1
  24. package/cjs-bundle/effects/useDevCenterApp.js +1 -1
  25. package/cjs-bundle/effects/useDevCenterApp.js.map +1 -1
  26. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts +2 -9
  27. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.d.ts.map +1 -1
  28. package/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.js.map +1 -1
  29. package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts +19 -6
  30. package/componentsV2/AppCommonsProvider/AppCommonsContext.d.ts.map +1 -1
  31. package/componentsV2/AppCommonsProvider/AppCommonsContext.js.map +1 -1
  32. package/componentsV2/AppHeader/V3/Actions/Actions.constants.d.ts +1 -0
  33. package/componentsV2/AppHeader/V3/Actions/Actions.constants.d.ts.map +1 -1
  34. package/componentsV2/AppHeader/V3/Actions/Actions.constants.js +1 -1
  35. package/componentsV2/AppHeader/V3/Actions/Actions.constants.js.map +1 -1
  36. package/componentsV2/AppHeader/V3/Actions/Actions.d.ts.map +1 -1
  37. package/componentsV2/AppHeader/V3/Actions/Actions.js +1 -1
  38. package/componentsV2/AppHeader/V3/Actions/Actions.js.map +1 -1
  39. package/componentsV2/AppHeader/V3/AppHeaderV3.d.ts.map +1 -1
  40. package/componentsV2/AppHeader/V3/AppHeaderV3.js +1 -1
  41. package/componentsV2/AppHeader/V3/AppHeaderV3.js.map +1 -1
  42. package/componentsV2/AppHeader/V3/AppHeaderV3.scss.js +1 -1
  43. package/componentsV2/AppHeader/V3/useResponsivity.js +1 -1
  44. package/componentsV2/AppHeader/V3/useResponsivity.js.map +1 -1
  45. package/componentsV2/AppHeader/__tests__/AppHeaderEmbedded.test.d.ts +2 -0
  46. package/componentsV2/AppHeader/__tests__/AppHeaderEmbedded.test.d.ts.map +1 -0
  47. package/componentsV2/AppPanel/AppPanelDisplay.d.ts.map +1 -1
  48. package/componentsV2/AppPanel/AppPanelDisplay.js +1 -1
  49. package/componentsV2/AppPanel/AppPanelDisplay.js.map +1 -1
  50. package/componentsV2/DatePicker/TimePicker/TimePicker.js +1 -1
  51. package/componentsV2/DatePicker/TimePicker/TimePicker.js.map +1 -1
  52. package/componentsV2/DatePicker/utils.js +1 -1
  53. package/componentsV2/DatePicker/utils.js.map +1 -1
  54. package/componentsV2/Modal/Modal.d.ts.map +1 -1
  55. package/componentsV2/Modal/Modal.js +1 -1
  56. package/componentsV2/Modal/Modal.js.map +1 -1
  57. package/componentsV2/TemplatesControl/Store/hooks/useInitialize.d.ts.map +1 -1
  58. package/componentsV2/TemplatesControl/Store/hooks/useInitialize.js +1 -1
  59. package/componentsV2/TemplatesControl/Store/hooks/useInitialize.js.map +1 -1
  60. package/effects/useDevCenterApp.d.ts.map +1 -1
  61. package/effects/useDevCenterApp.js +1 -1
  62. package/effects/useDevCenterApp.js.map +1 -1
  63. package/mcp-server/server.mjs +11 -11
  64. package/package.json +1 -1
  65. package/styles/common.scss +0 -14
  66. package/styles/mixins.scss +0 -14
  67. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/componentsV2/DatePicker/utils.tsx"],"sourcesContent":["export type DatePickerType = 'date' | 'dateTime' | 'month';\n\nexport type DatePickerValue<IsRange extends boolean | undefined = false> = IsRange extends\n | undefined\n | false\n ? Date | undefined\n : [Date, Date] | undefined;\n\nexport type DatePickerChangeHandler<IsRange extends boolean | undefined = false> = (\n value: DatePickerValue<IsRange>\n) => void;\n\n// startDate - initial state, no start date selected\n// endDate - start done, no end date selected\nexport type RangeSelectionStep = 'startDate' | 'endDate';\n\nexport const DefaultFormatByType: Record<DatePickerType, string> = {\n date: 'DD MMM YYYY',\n dateTime: 'DD MMM YYYY hh:mm A',\n month: 'MMMM YYYY',\n};\n\nexport const DefaultFormatByTypeRange: Record<DatePickerType, string> = {\n date: 'DD/MM/YYYY',\n dateTime: 'DD/MM/YYYY hh:mm A',\n month: 'MMM YYYY',\n};\n\nexport const getDefaultFormat = (type: DatePickerType, range?: boolean) => {\n const map = range ? DefaultFormatByTypeRange : DefaultFormatByType;\n return map[type];\n};\n\nconst NumericLetters = ['D', 'M', 'Y', 'h', 'm', 's', 'S'];\nconst AllLetters = [...NumericLetters, 'A'];\nconst GetSeparatorRegex = new RegExp(`^([^${AllLetters.join('')}]+)`, 'gi');\n\n// These formats should be composed only of `AllLetters` as placeholders only\nexport const InputAutocompleteFormats: Record<DatePickerType, string> = {\n month: 'MM/YYYY',\n date: 'DD/MM/YYYY',\n dateTime: 'DD/MM/YYYY hh:mm A',\n};\n\nexport const InputParseFormats: Record<DatePickerType, string[]> = {\n month: [InputAutocompleteFormats.month, 'MMMM YYYY', 'MMM YYYY'],\n date: [InputAutocompleteFormats.date, 'D/M/YYYY'],\n dateTime: [InputAutocompleteFormats.dateTime, 'D/M/YYYY hh:mm A'],\n};\n\nconst isDigit = (symbol?: string) => symbol?.match(/\\d/);\n\nconst isInFormatSoFar = (format: string, value: string) => {\n if (value.length <= format.length) {\n const valueArr = value.split('');\n\n return valueArr.every((valueChar, pos) => {\n const formatChar = format[pos];\n\n if (NumericLetters.includes(formatChar)) {\n return isDigit(valueChar);\n }\n\n if (formatChar === 'A') {\n const lcChar = valueChar.toLocaleLowerCase();\n return lcChar === 'a' || lcChar === 'p';\n }\n\n return formatChar === valueChar;\n });\n }\n\n return false;\n};\n\nconst getSeparator = (format: string, startIndex: number) => {\n return format.substring(startIndex).match(GetSeparatorRegex)?.[0] || '';\n};\n\nexport const autocompleteValue = ({\n value,\n type,\n range,\n prevValue,\n}: {\n type: DatePickerType;\n range?: boolean;\n value: string;\n prevValue: string;\n}) => {\n const formatPart = InputAutocompleteFormats[type];\n const format = range ? `${formatPart} - ${formatPart}` : formatPart;\n\n const preparedValue = value.toLocaleLowerCase().replace(/([ap])m/gi, '$1');\n\n if (\n value.length <= prevValue.length ||\n !isInFormatSoFar(format, preparedValue) ||\n format.length <= preparedValue.length\n ) {\n return value;\n }\n\n // Only autocomplete if user types something\n // Check if conforms to format so far\n // Adding separators if needed\n const separator = getSeparator(format, preparedValue.length);\n\n return `${value}${separator}`;\n};\n\nexport const isSameMonth = (a?: Date, b?: Date) =>\n !!a && !!b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n\nexport const isSameDay = (a?: Date, b?: Date) => isSameMonth(a, b) && a?.getDate() === b?.getDate();\n\nexport const getMinDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a < b ? a : b;\n }\n\n return a || b;\n};\n\nexport const getMaxDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a > b ? a : b;\n }\n\n return a || b;\n};\n\nexport const MonthOptions = [\n { id: 1, title: 'Jan', fullTitle: 'January' },\n { id: 2, title: 'Feb', fullTitle: 'February' },\n { id: 3, title: 'Mar', fullTitle: 'March' },\n { id: 4, title: 'Apr', fullTitle: 'April' },\n { id: 5, title: 'May', fullTitle: 'May' },\n { id: 6, title: 'Jun', fullTitle: 'June' },\n { id: 7, title: 'Jul', fullTitle: 'July' },\n { id: 8, title: 'Aug', fullTitle: 'August' },\n { id: 9, title: 'Sep', fullTitle: 'September' },\n { id: 10, title: 'Oct', fullTitle: 'October' },\n { id: 11, title: 'Nov', fullTitle: 'November' },\n { id: 12, title: 'Dec', fullTitle: 'December' },\n];\n\nexport type DatePickerCalendarView = 'year' | 'month';\n\nexport const getDateWithSameTime = (date: Date, timeDate?: Date) =>\n new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n timeDate?.getHours() || 0,\n timeDate?.getMinutes() || 0,\n timeDate?.getSeconds() || 0\n );\n"],"names":["DefaultFormatByType","date","dateTime","month","DefaultFormatByTypeRange","NumericLetters","AllLetters","concat","GetSeparatorRegex","RegExp","join","InputAutocompleteFormats","InputParseFormats","isSameMonth","a","b","getFullYear","getMonth","id","title","fullTitle","_ref","value","type","range","prevValue","formatPart","format","preparedValue","toLocaleLowerCase","replace","length","split","every","valueChar","pos","symbol","formatChar","includes","match","lcChar","isInFormatSoFar","separator","startIndex","_format$substring$mat","substring","getSeparator","timeDate","Date","getDate","getHours","getMinutes","getSeconds"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/componentsV2/DatePicker/utils.tsx"],"sourcesContent":["export type DatePickerType = 'date' | 'dateTime' | 'month';\n\nexport type DatePickerValue<IsRange extends boolean | undefined = false> = IsRange extends\n | undefined\n | false\n ? Date | undefined\n : [Date, Date] | undefined;\n\nexport type DatePickerChangeHandler<IsRange extends boolean | undefined = false> = (\n value: DatePickerValue<IsRange>\n) => void;\n\n// startDate - initial state, no start date selected\n// endDate - start done, no end date selected\nexport type RangeSelectionStep = 'startDate' | 'endDate';\n\nexport const DefaultFormatByType: Record<DatePickerType, string> = {\n date: 'MMM DD YYYY',\n dateTime: 'MMM DD YYYY hh:mm A',\n month: 'MMMM YYYY',\n};\n\nexport const DefaultFormatByTypeRange: Record<DatePickerType, string> = {\n date: 'MM/DD/YYYY',\n dateTime: 'MM/DD/YYYY hh:mm A',\n month: 'MMM YYYY',\n};\n\nexport const getDefaultFormat = (type: DatePickerType, range?: boolean) => {\n const map = range ? DefaultFormatByTypeRange : DefaultFormatByType;\n return map[type];\n};\n\nconst NumericLetters = ['D', 'M', 'Y', 'h', 'm', 's', 'S'];\nconst AllLetters = [...NumericLetters, 'A'];\nconst GetSeparatorRegex = new RegExp(`^([^${AllLetters.join('')}]+)`, 'gi');\n\n// These formats should be composed only of `AllLetters` as placeholders only\nexport const InputAutocompleteFormats: Record<DatePickerType, string> = {\n month: 'MM/YYYY',\n date: 'MM/DD/YYYY',\n dateTime: 'MM/DD/YYYY hh:mm A',\n};\n\nexport const InputParseFormats: Record<DatePickerType, string[]> = {\n month: [InputAutocompleteFormats.month, 'MMMM YYYY', 'MMM YYYY'],\n date: [InputAutocompleteFormats.date, 'M/D/YYYY'],\n dateTime: [InputAutocompleteFormats.dateTime, 'M/D/YYYY hh:mm A'],\n};\n\nconst isDigit = (symbol?: string) => symbol?.match(/\\d/);\n\nconst isInFormatSoFar = (format: string, value: string) => {\n if (value.length <= format.length) {\n const valueArr = value.split('');\n\n return valueArr.every((valueChar, pos) => {\n const formatChar = format[pos];\n\n if (NumericLetters.includes(formatChar)) {\n return isDigit(valueChar);\n }\n\n if (formatChar === 'A') {\n const lcChar = valueChar.toLocaleLowerCase();\n return lcChar === 'a' || lcChar === 'p';\n }\n\n return formatChar === valueChar;\n });\n }\n\n return false;\n};\n\nconst getSeparator = (format: string, startIndex: number) => {\n return format.substring(startIndex).match(GetSeparatorRegex)?.[0] || '';\n};\n\nexport const autocompleteValue = ({\n value,\n type,\n range,\n prevValue,\n}: {\n type: DatePickerType;\n range?: boolean;\n value: string;\n prevValue: string;\n}) => {\n const formatPart = InputAutocompleteFormats[type];\n const format = range ? `${formatPart} - ${formatPart}` : formatPart;\n\n const preparedValue = value.toLocaleLowerCase().replace(/([ap])m/gi, '$1');\n\n if (\n value.length <= prevValue.length ||\n !isInFormatSoFar(format, preparedValue) ||\n format.length <= preparedValue.length\n ) {\n return value;\n }\n\n // Only autocomplete if user types something\n // Check if conforms to format so far\n // Adding separators if needed\n const separator = getSeparator(format, preparedValue.length);\n\n return `${value}${separator}`;\n};\n\nexport const isSameMonth = (a?: Date, b?: Date) =>\n !!a && !!b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();\n\nexport const isSameDay = (a?: Date, b?: Date) => isSameMonth(a, b) && a?.getDate() === b?.getDate();\n\nexport const getMinDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a < b ? a : b;\n }\n\n return a || b;\n};\n\nexport const getMaxDate = (a?: Date, b?: Date) => {\n if (a && b) {\n return a > b ? a : b;\n }\n\n return a || b;\n};\n\nexport const MonthOptions = [\n { id: 1, title: 'Jan', fullTitle: 'January' },\n { id: 2, title: 'Feb', fullTitle: 'February' },\n { id: 3, title: 'Mar', fullTitle: 'March' },\n { id: 4, title: 'Apr', fullTitle: 'April' },\n { id: 5, title: 'May', fullTitle: 'May' },\n { id: 6, title: 'Jun', fullTitle: 'June' },\n { id: 7, title: 'Jul', fullTitle: 'July' },\n { id: 8, title: 'Aug', fullTitle: 'August' },\n { id: 9, title: 'Sep', fullTitle: 'September' },\n { id: 10, title: 'Oct', fullTitle: 'October' },\n { id: 11, title: 'Nov', fullTitle: 'November' },\n { id: 12, title: 'Dec', fullTitle: 'December' },\n];\n\nexport type DatePickerCalendarView = 'year' | 'month';\n\nexport const getDateWithSameTime = (date: Date, timeDate?: Date) =>\n new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n timeDate?.getHours() || 0,\n timeDate?.getMinutes() || 0,\n timeDate?.getSeconds() || 0\n );\n"],"names":["DefaultFormatByType","date","dateTime","month","DefaultFormatByTypeRange","NumericLetters","AllLetters","concat","GetSeparatorRegex","RegExp","join","InputAutocompleteFormats","InputParseFormats","isSameMonth","a","b","getFullYear","getMonth","id","title","fullTitle","_ref","value","type","range","prevValue","formatPart","format","preparedValue","toLocaleLowerCase","replace","length","split","every","valueChar","pos","symbol","formatChar","includes","match","lcChar","isInFormatSoFar","separator","startIndex","_format$substring$mat","substring","getSeparator","timeDate","Date","getDate","getHours","getMinutes","getSeconds"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("@babel/runtime/helpers/objectWithoutProperties"),o=require("@material-ui/core"),n=require("react"),t=require("classnames"),s=require("../../effects/useDelayedDcFullscreenElemOpen.js"),c=require("../../components/DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js"),l=require("../../components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js"),i=require("../ModalWindow/ModalWindow.js"),u=require("./constants.js"),a=require("./Modal.scss.js"),p=require("react/jsx-runtime");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=d(e),O=d(r),j=d(t),b=["open","onClose","size","showCloseButton","closeOnBackdropClick","closeOnEscape"],v=["open"];function C(e,r){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),o.push.apply(o,n)}return o}function m(e){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?C(Object(o),!0).forEach((function(r){f.default(e,r,o[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):C(Object(o)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(o,r))}))}return e}var D=function(e){var r=e.open,t=e.onClose,s=e.size,c=void 0===s?"medium":s,l=e.showCloseButton,d=void 0===l||l,f=e.closeOnBackdropClick,v=void 0===f||f,C=e.closeOnEscape,D=void 0===C||C,y=O.default(e,b),P=n.useCallback((function(e,r){t&&("backdropClick"===r&&v&&t("backdropClick"),"escapeKeyDown"===r&&D&&t("escapeKey"))}),[t,v,D]),w=n.useCallback((function(){null==t||t("closeButtonClick")}),[t]);return p.jsx(o.Modal,{open:r,className:j.default(u.MODAL_ROOT_CLASS,a.root),onClose:P,children:p.jsx(i.ModalWindow,m(m({},y),{},{onClose:w,showCloseButton:d,size:c}))})},y=function(e){var r=e.open,o=O.default(e,v),n=s.useDelayedDcFullscreenElemOpen({isOpen:r},!0).delayedIsOpen;return p.jsx(c.IsInsideDcFullscreenElemProvider,{children:p.jsx(D,m({open:n},o))})};exports.Modal=function(e){var r=l.useIsInsideIsolatedDcApp(),o=c.useIsInsideDcFullscreenElem(),n=r&&!o?y:D;return p.jsx(n,m({},e))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/defineProperty"),r=require("@babel/runtime/helpers/objectWithoutProperties"),o=require("@material-ui/core"),n=require("react"),t=require("classnames"),s=require("../../effects/useDelayedDcFullscreenElemOpen.js"),c=require("../../components/DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider.js"),l=require("../../components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider.js"),i=require("../ModalWindow/ModalWindow.js"),u=require("./constants.js"),a=require("./Modal.scss.js"),p=require("react/jsx-runtime");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=d(e),O=d(r),b=d(t),j=["open","onClose","size","showCloseButton","closeOnBackdropClick","closeOnEscape"],v=["open"];function C(e,r){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),o.push.apply(o,n)}return o}function m(e){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?C(Object(o),!0).forEach((function(r){f.default(e,r,o[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):C(Object(o)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(o,r))}))}return e}var D=function(e){var r=e.open,t=e.onClose,s=e.size,c=void 0===s?"medium":s,l=e.showCloseButton,d=void 0===l||l,f=e.closeOnBackdropClick,v=void 0===f||f,C=e.closeOnEscape,D=void 0===C||C,y=O.default(e,j),P=n.useCallback((function(e,r){t&&("backdropClick"===r&&v&&t("backdropClick"),"escapeKeyDown"===r&&D&&t("escapeKey"))}),[t,v,D]),w=n.useCallback((function(){null==t||t("closeButtonClick")}),[t]);return p.jsx(o.Modal,{open:r,className:b.default(u.MODAL_ROOT_CLASS,a.root),onClose:P,disableEnforceFocus:!0,children:p.jsx(i.ModalWindow,m(m({},y),{},{onClose:w,showCloseButton:d,size:c}))})},y=function(e){var r=e.open,o=O.default(e,v),n=s.useDelayedDcFullscreenElemOpen({isOpen:r},!0).delayedIsOpen;return p.jsx(c.IsInsideDcFullscreenElemProvider,{children:p.jsx(D,m({open:n},o))})};exports.Modal=function(e){var r=l.useIsInsideIsolatedDcApp(),o=c.useIsInsideDcFullscreenElem(),n=r&&!o?y:D;return p.jsx(n,m({},e))};
2
2
  //# sourceMappingURL=Modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../../src/componentsV2/Modal/Modal.tsx"],"sourcesContent":["// TODO Move these hooks to better place so the imports won't be as hideous\nimport { Modal as MuiModal, ModalProps as MuiModalProps } from '@material-ui/core';\nimport { useCallback } from 'react';\nimport classNames from 'classnames';\n\nimport { useDelayedDcFullscreenElemOpen } from '../../effects/useDelayedDcFullscreenElemOpen';\nimport {\n IsInsideDcFullscreenElemProvider,\n useIsInsideDcFullscreenElem,\n} from '../../components/DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider';\nimport { useIsInsideIsolatedDcApp } from '../../components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { ModalWindow, ModalWindowProps } from '../ModalWindow';\n\nimport { MODAL_ROOT_CLASS } from './constants';\n\nimport styles from './Modal.scss';\n\nexport type ModalProps = Omit<ModalWindowProps, 'onClose'> & {\n open: boolean;\n onClose?: (reason: 'backdropClick' | 'escapeKey' | 'closeButtonClick') => void;\n closeOnBackdropClick?: boolean;\n closeOnEscape?: boolean;\n};\n\nconst ActualModal = ({\n open,\n onClose,\n size = 'medium',\n showCloseButton = true,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n ...restProps\n}: ModalProps) => {\n const modalCloseHandler = useCallback<Required<MuiModalProps>['onClose']>(\n (_event, reason) => {\n if (onClose) {\n if (reason === 'backdropClick' && closeOnBackdropClick) {\n onClose('backdropClick');\n }\n if (reason === 'escapeKeyDown' && closeOnEscape) {\n onClose('escapeKey');\n }\n }\n },\n [onClose, closeOnBackdropClick, closeOnEscape]\n );\n\n const closeButtonClickHandler = useCallback(() => {\n onClose?.('closeButtonClick');\n }, [onClose]);\n\n return (\n <MuiModal\n open={open}\n className={classNames(MODAL_ROOT_CLASS, styles.root)}\n onClose={modalCloseHandler}\n >\n <ModalWindow\n {...restProps}\n onClose={closeButtonClickHandler}\n showCloseButton={showCloseButton}\n size={size}\n />\n </MuiModal>\n );\n};\n\nconst DcModal = ({ open: openProp, ...otherProps }: ModalProps) => {\n const { delayedIsOpen } = useDelayedDcFullscreenElemOpen({ isOpen: openProp }, true);\n\n return (\n <IsInsideDcFullscreenElemProvider>\n <ActualModal open={delayedIsOpen} {...otherProps} />\n </IsInsideDcFullscreenElemProvider>\n );\n};\n\nexport const Modal = (props: ModalProps) => {\n const isInsideDcApp = useIsInsideIsolatedDcApp();\n const isInsideDcFullscreenElem = useIsInsideDcFullscreenElem();\n\n const ModalComponent = isInsideDcApp && !isInsideDcFullscreenElem ? DcModal : ActualModal;\n\n return <ModalComponent {...props} />;\n};\n"],"names":["ActualModal","_ref","open","onClose","_ref$size","size","_ref$showCloseButton","showCloseButton","_ref$closeOnBackdropC","closeOnBackdropClick","_ref$closeOnEscape","closeOnEscape","restProps","_objectWithoutProperties","_excluded","modalCloseHandler","useCallback","_event","reason","closeButtonClickHandler","_jsx","MuiModal","className","classNames","MODAL_ROOT_CLASS","styles","root","children","ModalWindow","_objectSpread","DcModal","_ref2","openProp","otherProps","_excluded2","delayedIsOpen","useDelayedDcFullscreenElemOpen","isOpen","IsInsideDcFullscreenElemProvider","props","isInsideDcApp","useIsInsideIsolatedDcApp","isInsideDcFullscreenElem","useIsInsideDcFullscreenElem","ModalComponent"],"mappings":"q8CAwBA,IAAMA,EAAc,SAQFC,GAAA,IAPhBC,IAAAA,KACAC,IAAAA,QAAOC,EAAAH,EACPI,KAAAA,aAAO,SAAQD,EAAAE,EAAAL,EACfM,gBAAAA,cAAsBD,EAAAE,EAAAP,EACtBQ,qBAAAA,cAA2BD,EAAAE,EAAAT,EAC3BU,cAAAA,cAAoBD,EACjBE,EAASC,EAAA,QAAAZ,EAAAa,GAENC,EAAoBC,EAAAA,aACxB,SAACC,EAAQC,GACHf,IACa,kBAAXe,GAA8BT,GAChCN,EAAQ,iBAEK,kBAAXe,GAA8BP,GAChCR,EAAQ,aAGb,GACD,CAACA,EAASM,EAAsBE,IAG5BQ,EAA0BH,EAAAA,aAAY,WAC1Cb,SAAAA,EAAU,mBACZ,GAAG,CAACA,IAEJ,OACEiB,EAAAA,IAACC,EAAAA,MAAQ,CACPnB,KAAMA,EACNoB,UAAWC,EAAU,QAACC,mBAAkBC,EAAOC,MAC/CvB,QAASY,EAAkBY,SAE3BP,EAAAA,IAACQ,EAAAA,YAAWC,EAAAA,EAAA,GACNjB,GAAS,GAAA,CACbT,QAASgB,EACTZ,gBAAiBA,EACjBF,KAAMA,MAId,EAEMyB,EAAU,SAAmDC,GAAA,IAA1CC,IAAN9B,KAAmB+B,EAAUpB,EAAA,QAAAkB,EAAAG,GACtCC,EAAkBC,EAAAA,+BAA+B,CAAEC,OAAQL,IAAY,GAAvEG,cAER,OACEf,EAAAA,IAACkB,EAAAA,iCAAgC,CAAAX,SAC/BP,EAAAA,IAACpB,EAAW6B,EAAA,CAAC3B,KAAMiC,GAAmBF,KAG5C,gBAEqB,SAACM,GACpB,IAAMC,EAAgBC,EAAAA,2BAChBC,EAA2BC,EAAAA,8BAE3BC,EAAiBJ,IAAkBE,EAA2BZ,EAAU9B,EAE9E,OAAOoB,EAAAA,IAACwB,EAAmBL,EAAAA,CAAAA,EAAAA,GAC7B"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../../src/componentsV2/Modal/Modal.tsx"],"sourcesContent":["// TODO Move these hooks to better place so the imports won't be as hideous\nimport { Modal as MuiModal, ModalProps as MuiModalProps } from '@material-ui/core';\nimport { useCallback } from 'react';\nimport classNames from 'classnames';\n\nimport { useDelayedDcFullscreenElemOpen } from '../../effects/useDelayedDcFullscreenElemOpen';\nimport {\n IsInsideDcFullscreenElemProvider,\n useIsInsideDcFullscreenElem,\n} from '../../components/DevCenter/DevCenterAppContainer/components/DcFullscreenElemsCoordinatorProvider/IsInsideDcFullscreenElemProvider';\nimport { useIsInsideIsolatedDcApp } from '../../components/DevCenter/DevCenterAppContainer/components/IsInsideIsolatedDcAppProvider';\nimport { ModalWindow, ModalWindowProps } from '../ModalWindow';\n\nimport { MODAL_ROOT_CLASS } from './constants';\n\nimport styles from './Modal.scss';\n\nexport type ModalProps = Omit<ModalWindowProps, 'onClose'> & {\n open: boolean;\n onClose?: (reason: 'backdropClick' | 'escapeKey' | 'closeButtonClick') => void;\n closeOnBackdropClick?: boolean;\n closeOnEscape?: boolean;\n};\n\nconst ActualModal = ({\n open,\n onClose,\n size = 'medium',\n showCloseButton = true,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n ...restProps\n}: ModalProps) => {\n const modalCloseHandler = useCallback<Required<MuiModalProps>['onClose']>(\n (_event, reason) => {\n if (onClose) {\n if (reason === 'backdropClick' && closeOnBackdropClick) {\n onClose('backdropClick');\n }\n if (reason === 'escapeKeyDown' && closeOnEscape) {\n onClose('escapeKey');\n }\n }\n },\n [onClose, closeOnBackdropClick, closeOnEscape]\n );\n\n const closeButtonClickHandler = useCallback(() => {\n onClose?.('closeButtonClick');\n }, [onClose]);\n\n return (\n <MuiModal\n open={open}\n className={classNames(MODAL_ROOT_CLASS, styles.root)}\n onClose={modalCloseHandler}\n disableEnforceFocus\n >\n <ModalWindow\n {...restProps}\n onClose={closeButtonClickHandler}\n showCloseButton={showCloseButton}\n size={size}\n />\n </MuiModal>\n );\n};\n\nconst DcModal = ({ open: openProp, ...otherProps }: ModalProps) => {\n const { delayedIsOpen } = useDelayedDcFullscreenElemOpen({ isOpen: openProp }, true);\n\n return (\n <IsInsideDcFullscreenElemProvider>\n <ActualModal open={delayedIsOpen} {...otherProps} />\n </IsInsideDcFullscreenElemProvider>\n );\n};\n\nexport const Modal = (props: ModalProps) => {\n const isInsideDcApp = useIsInsideIsolatedDcApp();\n const isInsideDcFullscreenElem = useIsInsideDcFullscreenElem();\n\n const ModalComponent = isInsideDcApp && !isInsideDcFullscreenElem ? DcModal : ActualModal;\n\n return <ModalComponent {...props} />;\n};\n"],"names":["ActualModal","_ref","open","onClose","_ref$size","size","_ref$showCloseButton","showCloseButton","_ref$closeOnBackdropC","closeOnBackdropClick","_ref$closeOnEscape","closeOnEscape","restProps","_objectWithoutProperties","_excluded","modalCloseHandler","useCallback","_event","reason","closeButtonClickHandler","_jsx","MuiModal","className","classNames","MODAL_ROOT_CLASS","styles","root","disableEnforceFocus","children","ModalWindow","_objectSpread","DcModal","_ref2","openProp","otherProps","_excluded2","delayedIsOpen","useDelayedDcFullscreenElemOpen","isOpen","IsInsideDcFullscreenElemProvider","props","isInsideDcApp","useIsInsideIsolatedDcApp","isInsideDcFullscreenElem","useIsInsideDcFullscreenElem","ModalComponent"],"mappings":"q8CAwBA,IAAMA,EAAc,SAQFC,GAAA,IAPhBC,IAAAA,KACAC,IAAAA,QAAOC,EAAAH,EACPI,KAAAA,aAAO,SAAQD,EAAAE,EAAAL,EACfM,gBAAAA,cAAsBD,EAAAE,EAAAP,EACtBQ,qBAAAA,cAA2BD,EAAAE,EAAAT,EAC3BU,cAAAA,cAAoBD,EACjBE,EAASC,EAAA,QAAAZ,EAAAa,GAENC,EAAoBC,EAAAA,aACxB,SAACC,EAAQC,GACHf,IACa,kBAAXe,GAA8BT,GAChCN,EAAQ,iBAEK,kBAAXe,GAA8BP,GAChCR,EAAQ,aAGb,GACD,CAACA,EAASM,EAAsBE,IAG5BQ,EAA0BH,EAAAA,aAAY,WAC1Cb,SAAAA,EAAU,mBACZ,GAAG,CAACA,IAEJ,OACEiB,EAAAA,IAACC,EAAAA,MAAQ,CACPnB,KAAMA,EACNoB,UAAWC,EAAU,QAACC,mBAAkBC,EAAOC,MAC/CvB,QAASY,EACTY,qBAAmB,EAAAC,SAEnBR,EAAAA,IAACS,EAAAA,YAAWC,EAAAA,EAAA,GACNlB,GAAS,GAAA,CACbT,QAASgB,EACTZ,gBAAiBA,EACjBF,KAAMA,MAId,EAEM0B,EAAU,SAAmDC,GAAA,IAA1CC,IAAN/B,KAAmBgC,EAAUrB,EAAA,QAAAmB,EAAAG,GACtCC,EAAkBC,EAAAA,+BAA+B,CAAEC,OAAQL,IAAY,GAAvEG,cAER,OACEhB,EAAAA,IAACmB,EAAAA,iCAAgC,CAAAX,SAC/BR,EAAAA,IAACpB,EAAW8B,EAAA,CAAC5B,KAAMkC,GAAmBF,KAG5C,gBAEqB,SAACM,GACpB,IAAMC,EAAgBC,EAAAA,2BAChBC,EAA2BC,EAAAA,8BAE3BC,EAAiBJ,IAAkBE,EAA2BZ,EAAU/B,EAE9E,OAAOoB,EAAAA,IAACyB,EAAmBL,EAAAA,CAAAA,EAAAA,GAC7B"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),n=require("@babel/runtime/regenerator"),i=require("react"),a=require("lodash"),u=require("../utils.js"),o=require("../Store.js"),l=require("./sharedHooks.js"),c=require("../../../../clients/jsonApi/index.js"),p=require("../../../../permissions/usePermissions.js"),f=require("../../../../permissions/constants/index.js");require("../../../../permissions/withPermissionsHOC.js"),require("../../../../permissions/ProvidePermissions.js"),require("../../../../permissions/PermissionsContext.js"),require("../../../../utils/index.js");var d=require("../../../../utils/notificationToasts.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var b=m(e),j=m(t),v=m(r),g=m(s),O=m(n);function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){v.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}exports.useInitialize=function(){var e=l.useGet("get"),t=l.useGet("set"),r=i.useState(!1),s=g.default(r,2),n=s[0],m=s[1],h=i.useState(),q=g.default(h,2),P=q[0],x=q[1],S={canPublish:f.PERMISSIONS.userCreate},w=p(S);i.useEffect((function(){var e=Object.entries(w).reduce((function(e,t){var r=g.default(t,2),s=r[0],n=r[1],i=n.loading,a=n.active;return{loaded:e.loaded&&!i,permissions:y(y({},e.permissions),{},v.default({},s,a))}}),{loaded:!0,permissions:{}}),r=e.loaded,s=e.permissions;r&&(t({permissions:s}),m(!0))}),[w,t]),i.useEffect((function(){var t=function(){var t=j.default(O.default.mark((function t(){var r,s,n;return O.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r=e(),s=r.appKey,t.t0=u.dataFormatter,t.next=5,c.getAppSettingsTemplates(s,{per_page:o.perPage,fields:o.baseFields});case 5:t.t1=t.sent,n=t.t0.deserialize.call(t.t0,t.t1),x(n),t.next=14;break;case 10:t.prev=10,t.t2=t.catch(0),d.showErrorNotification("Error loading app templates"),console.error(t.t2);case 14:case"end":return t.stop()}}),t,null,[[0,10]])})));return function(){return t.apply(this,arguments)}}();t()}),[e,t]),i.useEffect((function(){var r=function(){var r=j.default(O.default.mark((function r(){var s,i,o,l,c,p,f,d,m,j,v;return O.default.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(n&&P){r.next=2;break}return r.abrupt("return");case 2:return s=e(),i=s.currentTemplateId,o=s.templateSettings,l=s.onChange,c=s.hooks.getDefaultTemplate,r.next=5,u.processLoadedTemplates(e,P);case 5:if(p=r.sent,t(p),f=u.findTemplate(e,i),!(d=(null==c?void 0:c([].concat(b.default(e().presetTemplates),b.default(e().loadedTemplates)),{currentTemplateId:i,templateSettings:o,event:"loadList"}))||f)){r.next=16;break}return r.next=12,u.ensureTemplateSettings(e,t,d);case 12:m=r.sent,j=!f&&!!d,v=!a.isEqual(m.settings,null==f?void 0:f.settings),(j||v)&&l&&(t({templateSettings:m.settings}),l(m,"initialLoad"));case 16:t({isInitialized:!0});case 17:case"end":return r.stop()}}),r)})));return function(){return r.apply(this,arguments)}}();r()}),[P,e,n,t])};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/asyncToGenerator"),r=require("@babel/runtime/helpers/defineProperty"),s=require("@babel/runtime/helpers/slicedToArray"),n=require("@babel/runtime/regenerator"),i=require("react"),a=require("lodash"),u=require("../utils.js"),o=require("../Store.js"),l=require("./sharedHooks.js"),c=require("../../../../clients/jsonApi/index.js"),p=require("../../../../permissions/usePermissions.js"),f=require("../../../../permissions/constants/index.js");require("../../../../permissions/withPermissionsHOC.js"),require("../../../../permissions/ProvidePermissions.js"),require("../../../../permissions/PermissionsContext.js"),require("../../../../utils/index.js");var d=require("../../../../utils/notificationToasts.js");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var b=m(e),j=m(t),v=m(r),g=m(s),O=m(n);function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function q(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?h(Object(r),!0).forEach((function(t){v.default(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):h(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}exports.useInitialize=function(){var e=l.useGet("get"),t=l.useGet("set"),r=i.useState(!1),s=g.default(r,2),n=s[0],m=s[1],h=i.useState(),y=g.default(h,2),P=y[0],x=y[1],S={canPublish:f.PERMISSIONS.userCreate},w=p(S);i.useEffect((function(){var r=Object.entries(w).reduce((function(e,t){var r=g.default(t,2),s=r[0],n=r[1],i=n.loading,a=n.active;return{loaded:e.loaded&&!i,permissions:q(q({},e.permissions),{},v.default({},s,a))}}),{loaded:!0,permissions:{}}),s=r.loaded,n=r.permissions;s&&(a.isEqual(e().permissions,n)||t({permissions:n}),m(!0))}),[w,e,t]),i.useEffect((function(){var t=function(){var t=j.default(O.default.mark((function t(){var r,s,n;return O.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,r=e(),s=r.appKey,t.t0=u.dataFormatter,t.next=5,c.getAppSettingsTemplates(s,{per_page:o.perPage,fields:o.baseFields});case 5:t.t1=t.sent,n=t.t0.deserialize.call(t.t0,t.t1),x(n),t.next=14;break;case 10:t.prev=10,t.t2=t.catch(0),d.showErrorNotification("Error loading app templates"),console.error(t.t2);case 14:case"end":return t.stop()}}),t,null,[[0,10]])})));return function(){return t.apply(this,arguments)}}();t()}),[e,t]),i.useEffect((function(){var r=function(){var r=j.default(O.default.mark((function r(){var s,i,o,l,c,p,f,d,m,j,v;return O.default.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(n&&P){r.next=2;break}return r.abrupt("return");case 2:return s=e(),i=s.currentTemplateId,o=s.templateSettings,l=s.onChange,c=s.hooks.getDefaultTemplate,r.next=5,u.processLoadedTemplates(e,P);case 5:if(p=r.sent,t(p),f=u.findTemplate(e,i),!(d=(null==c?void 0:c([].concat(b.default(e().presetTemplates),b.default(e().loadedTemplates)),{currentTemplateId:i,templateSettings:o,event:"loadList"}))||f)){r.next=16;break}return r.next=12,u.ensureTemplateSettings(e,t,d);case 12:m=r.sent,j=!f&&!!d,v=!a.isEqual(m.settings,null==f?void 0:f.settings),(j||v)&&l&&(t({templateSettings:m.settings}),l(m,"initialLoad"));case 16:t({isInitialized:!0});case 17:case"end":return r.stop()}}),r)})));return function(){return r.apply(this,arguments)}}();r()}),[P,e,n,t])};
2
2
  //# sourceMappingURL=useInitialize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialize.js","sources":["../../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { isEqual } from 'lodash';\n\nimport { Store, Template, TemplateData } from '../../types';\nimport {\n dataFormatter,\n ensureTemplateSettings,\n findTemplate,\n processLoadedTemplates,\n} from '../utils';\nimport { baseFields, perPage } from '../Store';\n\nimport { useGet } from './sharedHooks';\n\nimport { getAppSettingsTemplates } from '~/clients/jsonApi';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { StringifiedPermission } from '~/permissions/utils';\nimport { showErrorNotification } from '~/utils';\n\nexport const useInitialize = <T extends TemplateData>() => {\n const get = useGet<T, 'get'>('get');\n const set = useGet<T, 'set'>('set');\n\n const [permissionsLoaded, setPermissionsLoaded] = useState(false);\n const [baseLoadedTemplates, setBaseLoadedTemplates] = useState<Template<T>[]>();\n\n const permissionMap: Record<keyof Store['permissions'], StringifiedPermission> = {\n canPublish: PERMISSIONS.userCreate,\n };\n\n const permissionRecordsMap = usePermissions(permissionMap);\n\n // Permissions\n useEffect(() => {\n const { loaded, permissions } = Object.entries(permissionRecordsMap).reduce(\n (acc, [key, { loading, active }]) => ({\n loaded: acc.loaded && !loading,\n permissions: {\n ...acc.permissions,\n [key]: active,\n },\n }),\n {\n loaded: true,\n permissions: {},\n } as {\n loaded: boolean;\n permissions: Record<keyof Store['permissions'], boolean>;\n }\n );\n\n if (loaded) {\n set({ permissions });\n setPermissionsLoaded(true);\n }\n }, [permissionRecordsMap, set]);\n\n // Data load\n useEffect(() => {\n const loader = async () => {\n try {\n const { appKey } = get();\n\n const templates = dataFormatter.deserialize(\n await getAppSettingsTemplates(appKey, {\n per_page: perPage,\n fields: baseFields,\n })\n ) as Template<T>[];\n\n setBaseLoadedTemplates(templates);\n } catch (e) {\n showErrorNotification('Error loading app templates');\n console.error(e);\n }\n };\n\n loader();\n }, [get, set]);\n\n useEffect(() => {\n const onLoadedEverything = async () => {\n if (!permissionsLoaded || !baseLoadedTemplates) {\n return;\n }\n\n const {\n currentTemplateId,\n templateSettings,\n onChange,\n hooks: { getDefaultTemplate },\n } = get();\n\n const templatesData = await processLoadedTemplates(get, baseLoadedTemplates);\n set(templatesData);\n\n // Handling currently selected template\n const currentTemplate = findTemplate(get, currentTemplateId);\n\n const selectedTemplate =\n getDefaultTemplate?.([...get().presetTemplates, ...get().loadedTemplates], {\n currentTemplateId,\n templateSettings,\n event: 'loadList',\n }) || currentTemplate;\n\n // Case when data from app is outdated (other app instance)\n if (selectedTemplate) {\n const templateWithSettings = await ensureTemplateSettings(get, set, selectedTemplate);\n\n const noInitialSelectedTemplate = !currentTemplate && !!selectedTemplate;\n const isOwnOutdatedTemplate = !isEqual(\n templateWithSettings.settings,\n currentTemplate?.settings\n );\n\n if ((noInitialSelectedTemplate || isOwnOutdatedTemplate) && onChange) {\n set({ templateSettings: templateWithSettings.settings });\n onChange(templateWithSettings, 'initialLoad');\n }\n }\n\n set({ isInitialized: true });\n };\n\n onLoadedEverything();\n }, [baseLoadedTemplates, get, permissionsLoaded, set]);\n};\n"],"names":["get","useGet","set","useState","_useState2","_slicedToArray","_useState","permissionsLoaded","setPermissionsLoaded","_useState3","_useState4","baseLoadedTemplates","setBaseLoadedTemplates","permissionMap","canPublish","PERMISSIONS","userCreate","permissionRecordsMap","usePermissions","useEffect","Object","entries","reduce","acc","_ref","_ref2","key","_ref2$","loading","active","loaded","permissions","loader","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_get","appKey","templates","wrap","_context","prev","next","t0","dataFormatter","getAppSettingsTemplates","per_page","perPage","fields","baseFields","t1","sent","deserialize","call","t2","showErrorNotification","console","error","stop","apply","this","arguments","onLoadedEverything","_ref4","_callee2","_get2","currentTemplateId","templateSettings","onChange","getDefaultTemplate","templatesData","currentTemplate","selectedTemplate","templateWithSettings","noInitialSelectedTemplate","isOwnOutdatedTemplate","_context2","abrupt","hooks","processLoadedTemplates","findTemplate","concat","_toConsumableArray","presetTemplates","loadedTemplates","event","ensureTemplateSettings","isEqual","settings","isInitialized"],"mappings":"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"}
1
+ {"version":3,"file":"useInitialize.js","sources":["../../../../../../src/componentsV2/TemplatesControl/Store/hooks/useInitialize.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { isEqual } from 'lodash';\n\nimport { Store, Template, TemplateData } from '../../types';\nimport {\n dataFormatter,\n ensureTemplateSettings,\n findTemplate,\n processLoadedTemplates,\n} from '../utils';\nimport { baseFields, perPage } from '../Store';\n\nimport { useGet } from './sharedHooks';\n\nimport { getAppSettingsTemplates } from '~/clients/jsonApi';\nimport { PERMISSIONS, usePermissions } from '~/permissions';\nimport { StringifiedPermission } from '~/permissions/utils';\nimport { showErrorNotification } from '~/utils';\n\nexport const useInitialize = <T extends TemplateData>() => {\n const get = useGet<T, 'get'>('get');\n const set = useGet<T, 'set'>('set');\n\n const [permissionsLoaded, setPermissionsLoaded] = useState(false);\n const [baseLoadedTemplates, setBaseLoadedTemplates] = useState<Template<T>[]>();\n\n const permissionMap: Record<keyof Store['permissions'], StringifiedPermission> = {\n canPublish: PERMISSIONS.userCreate,\n };\n\n const permissionRecordsMap = usePermissions(permissionMap);\n\n // Permissions\n useEffect(() => {\n const { loaded, permissions } = Object.entries(permissionRecordsMap).reduce(\n (acc, [key, { loading, active }]) => ({\n loaded: acc.loaded && !loading,\n permissions: {\n ...acc.permissions,\n [key]: active,\n },\n }),\n {\n loaded: true,\n permissions: {},\n } as {\n loaded: boolean;\n permissions: Record<keyof Store['permissions'], boolean>;\n }\n );\n\n if (loaded) {\n // usePermissions returns a fresh object every render, so this effect re-runs on every\n // render; writing unconditionally notified the store's subscribers each time, which\n // re-rendered and re-ran the effect until React gave up.\n if (!isEqual(get().permissions, permissions)) {\n set({ permissions });\n }\n setPermissionsLoaded(true);\n }\n }, [permissionRecordsMap, get, set]);\n\n // Data load\n useEffect(() => {\n const loader = async () => {\n try {\n const { appKey } = get();\n\n const templates = dataFormatter.deserialize(\n await getAppSettingsTemplates(appKey, {\n per_page: perPage,\n fields: baseFields,\n })\n ) as Template<T>[];\n\n setBaseLoadedTemplates(templates);\n } catch (e) {\n showErrorNotification('Error loading app templates');\n console.error(e);\n }\n };\n\n loader();\n }, [get, set]);\n\n useEffect(() => {\n const onLoadedEverything = async () => {\n if (!permissionsLoaded || !baseLoadedTemplates) {\n return;\n }\n\n const {\n currentTemplateId,\n templateSettings,\n onChange,\n hooks: { getDefaultTemplate },\n } = get();\n\n const templatesData = await processLoadedTemplates(get, baseLoadedTemplates);\n set(templatesData);\n\n // Handling currently selected template\n const currentTemplate = findTemplate(get, currentTemplateId);\n\n const selectedTemplate =\n getDefaultTemplate?.([...get().presetTemplates, ...get().loadedTemplates], {\n currentTemplateId,\n templateSettings,\n event: 'loadList',\n }) || currentTemplate;\n\n // Case when data from app is outdated (other app instance)\n if (selectedTemplate) {\n const templateWithSettings = await ensureTemplateSettings(get, set, selectedTemplate);\n\n const noInitialSelectedTemplate = !currentTemplate && !!selectedTemplate;\n const isOwnOutdatedTemplate = !isEqual(\n templateWithSettings.settings,\n currentTemplate?.settings\n );\n\n if ((noInitialSelectedTemplate || isOwnOutdatedTemplate) && onChange) {\n set({ templateSettings: templateWithSettings.settings });\n onChange(templateWithSettings, 'initialLoad');\n }\n }\n\n set({ isInitialized: true });\n };\n\n onLoadedEverything();\n }, [baseLoadedTemplates, get, permissionsLoaded, set]);\n};\n"],"names":["get","useGet","set","useState","_useState2","_slicedToArray","_useState","permissionsLoaded","setPermissionsLoaded","_useState3","_useState4","baseLoadedTemplates","setBaseLoadedTemplates","permissionMap","canPublish","PERMISSIONS","userCreate","permissionRecordsMap","usePermissions","useEffect","Object","entries","reduce","acc","_ref","_ref2","key","_ref2$","loading","active","loaded","permissions","isEqual","loader","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_get","appKey","templates","wrap","_context","prev","next","t0","dataFormatter","getAppSettingsTemplates","per_page","perPage","fields","baseFields","t1","sent","deserialize","call","t2","showErrorNotification","console","error","stop","apply","this","arguments","onLoadedEverything","_ref4","_callee2","_get2","currentTemplateId","templateSettings","onChange","getDefaultTemplate","templatesData","currentTemplate","selectedTemplate","templateWithSettings","noInitialSelectedTemplate","isOwnOutdatedTemplate","_context2","abrupt","hooks","processLoadedTemplates","findTemplate","concat","_toConsumableArray","presetTemplates","loadedTemplates","event","ensureTemplateSettings","settings","isInitialized"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var n=require("@babel/runtime/helpers/slicedToArray"),e=require("react"),t=require("../utils/devcenter.js");function o(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var i=o(n),r={},u={};module.exports=function(n){var o,p=n.CLIAppComponent,l=n.CLIAppSettings,c=n.app,a=n.version,s=c.app.app_key,d=process.env.REACT_APP_DEBUG_DC_APP_KEY===s,f=d?"http://127.0.0.1:3000/app.js":null==c||null===(o=c.package)||void 0===o?void 0:o.url,v=t.getAppIdentifier({appKey:s,version:a,isLocalDebugMode:d}),m=e.useState(!1),A=i.default(m,2),g=A[0],C=A[1],E=r[v],b=p||(null==E?void 0:E.component)||null,_=l||(null==E?void 0:E.settings)||null,h=function(){C(!1),(u[v]||[]).forEach((function(n){return n()})),delete u[v]};return e.useEffect((function(){v in u&&(C(!0),u[v].push((function(){C(!1)})))}),[]),e.useEffect((function(){if(!(!f||!v||b&&_||v in u)){if(!p&&!E||null!=E&&E.component){if(C(!0),!E||!E.script){var n=document.createElement("script");n.src=f,n.onload=function(){r[v]=window[v]&&window[v].default,h()},r[v]={component:null,script:n},setTimeout((function(){return document.body.appendChild(n)}))}var e=r[v].script;if(e.onload){var t=e.onload;e.onload=function(){t(),h()}}e.onabort=h,e.error=h}u[v]=[function(){return C(!1)}]}}),[f]),{isLoading:g,AppComponent:b,AppSettings:_}};
1
+ "use strict";var n=require("@babel/runtime/helpers/slicedToArray"),e=require("react"),t=require("../utils/devcenter.js");function o(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var r=o(n),i={},u={};module.exports=function(n){var o,l=n.CLIAppComponent,p=n.CLIAppSettings,c=n.app,a=n.version,s=c.app.app_key,d=process.env.REACT_APP_DEBUG_DC_APP_KEY===s,f=d?"http://127.0.0.1:3000/app.js":null==c||null===(o=c.package)||void 0===o?void 0:o.url,v=t.getAppIdentifier({appKey:s,version:a,isLocalDebugMode:d}),m=e.useState(null),A=r.default(m,2),g=A[0],C=A[1],E=i[v],b=l||(null==E?void 0:E.component)||null,_=p||(null==E?void 0:E.settings)||null,h=function(){C(null),(u[v]||[]).forEach((function(n){return n()})),delete u[v]};e.useEffect((function(){v in u&&(C(v),u[v].push((function(){C(null)})))}),[v]),e.useEffect((function(){if(!(!f||!v||b&&_||v in u)){if(!l&&!E||null!=E&&E.component){if(C(v),!E||!E.script){var n=document.createElement("script");n.src=f,n.onload=function(){var n;i[v]=(null===(n=window[v])||void 0===n?void 0:n.default)||{error:!0},h()},i[v]={component:null,script:n},setTimeout((function(){return document.body.appendChild(n)}))}var e=i[v].script;if(e.onload){var t=e.onload;e.onload=function(){t(),h()}}var o=function(){i[v]={error:!0},h()};e.onabort=o,e.onerror=o}u[v]=[function(){return C(null)}]}}),[v,f]);var y=g===v,L=!(!f||E&&!E.script);return{isLoading:!l&&(y||L),AppComponent:b,AppSettings:_}};
2
2
  //# sourceMappingURL=useDevCenterApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDevCenterApp.js","sources":["../../../src/effects/useDevCenterApp.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { getAppIdentifier } from '~/utils/devcenter';\n\nconst COMPONENTS = {};\nconst FINISH_LOADING_HANLDERS_BY_APP_NAME = {};\n\nconst LOCAL_DEBUG_URL = 'http://127.0.0.1:3000/app.js';\n\nconst useDevCenterApp = ({ CLIAppComponent, CLIAppSettings, app, version }) => {\n const appKey = app.app.app_key;\n\n const isLocalDebugMode = process.env.REACT_APP_DEBUG_DC_APP_KEY === appKey;\n const url = isLocalDebugMode ? LOCAL_DEBUG_URL : app?.package?.url;\n\n const appName = getAppIdentifier({ appKey, version, isLocalDebugMode });\n const [isLoading, setIsLoading] = useState(false);\n\n const appSource = COMPONENTS[appName];\n const AppComponent = CLIAppComponent || appSource?.component || null;\n const AppSettings = CLIAppSettings || appSource?.settings || null;\n\n const finishLoading = () => {\n setIsLoading(false);\n (FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] || []).forEach(handler => handler());\n delete FINISH_LOADING_HANLDERS_BY_APP_NAME[appName];\n };\n\n useEffect(() => {\n if (appName in FINISH_LOADING_HANLDERS_BY_APP_NAME) {\n setIsLoading(true);\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName].push(() => {\n setIsLoading(false);\n });\n }\n }, []);\n\n useEffect(() => {\n if (\n !url ||\n !appName ||\n (AppComponent && AppSettings) ||\n appName in FINISH_LOADING_HANLDERS_BY_APP_NAME\n )\n return;\n\n if ((!CLIAppComponent && !appSource) || appSource?.component) {\n setIsLoading(true);\n\n if (!appSource || !appSource.script) {\n const scriptFile = document.createElement('script');\n\n scriptFile.src = url;\n\n scriptFile.onload = () => {\n COMPONENTS[appName] = window[appName] && window[appName].default;\n finishLoading();\n };\n\n COMPONENTS[appName] = {\n component: null,\n script: scriptFile,\n };\n\n setTimeout(() => document.body.appendChild(scriptFile));\n }\n\n const { script } = COMPONENTS[appName];\n\n if (script.onload) {\n const loaderCallback = script.onload;\n script.onload = () => {\n loaderCallback();\n finishLoading();\n };\n }\n\n script.onabort = finishLoading;\n\n script.error = finishLoading;\n }\n\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] = [() => setIsLoading(false)];\n }, [url]);\n\n return {\n isLoading,\n AppComponent,\n AppSettings,\n };\n};\n\nexport default useDevCenterApp;\n"],"names":["COMPONENTS","FINISH_LOADING_HANLDERS_BY_APP_NAME","_ref","_app$package","CLIAppComponent","CLIAppSettings","app","version","appKey","app_key","isLocalDebugMode","process","env","REACT_APP_DEBUG_DC_APP_KEY","url","package","appName","getAppIdentifier","useState","_useState2","_slicedToArray","_useState","isLoading","setIsLoading","appSource","AppComponent","component","AppSettings","settings","finishLoading","forEach","handler","useEffect","push","script","scriptFile","document","createElement","src","onload","window","default","setTimeout","body","appendChild","loaderCallback","onabort","error"],"mappings":"4MAIMA,EAAa,CAAA,EACbC,EAAsC,CAAA,iBAIpB,SAAuDC,GAAA,IAAAC,EAApDC,IAAAA,gBAAiBC,IAAAA,eAAgBC,IAAAA,IAAKC,IAAAA,QACzDC,EAASF,EAAIA,IAAIG,QAEjBC,EAAmBC,QAAQC,IAAIC,6BAA+BL,EAC9DM,EAAMJ,EANU,+BAM2BJ,SAAY,UAAZA,EAAKS,eAAO,IAAAZ,SAAZA,EAAcW,IAEzDE,EAAUC,EAAAA,iBAAiB,CAAET,OAAAA,EAAQD,QAAAA,EAASG,iBAAAA,IAClBQ,EAAAA,EAAQA,UAAC,GAAMC,EAAAC,EAAAA,QAAAC,EAAA,GAA1CC,EAASH,EAAA,GAAEI,EAAYJ,EAAA,GAExBK,EAAYxB,EAAWgB,GACvBS,EAAerB,IAAmBoB,aAAS,EAATA,EAAWE,YAAa,KAC1DC,EAActB,IAAkBmB,aAAS,EAATA,EAAWI,WAAY,KAEvDC,EAAgB,WACpBN,GAAa,IACZtB,EAAoCe,IAAY,IAAIc,SAAQ,SAAAC,GAAO,OAAIA,cACjE9B,EAAoCe,IA4D7C,OAzDAgB,EAAAA,WAAU,WACJhB,KAAWf,IACbsB,GAAa,GACbtB,EAAoCe,GAASiB,MAAK,WAChDV,GAAa,EACf,IAEH,GAAE,IAEHS,EAAAA,WAAU,WACR,MACGlB,IACAE,GACAS,GAAgBE,GACjBX,KAAWf,GAJb,CAQA,IAAMG,IAAoBoB,GAAcA,SAAAA,EAAWE,UAAW,CAG5D,GAFAH,GAAa,IAERC,IAAcA,EAAUU,OAAQ,CACnC,IAAMC,EAAaC,SAASC,cAAc,UAE1CF,EAAWG,IAAMxB,EAEjBqB,EAAWI,OAAS,WAClBvC,EAAWgB,GAAWwB,OAAOxB,IAAYwB,OAAOxB,GAASyB,QACzDZ,KAGF7B,EAAWgB,GAAW,CACpBU,UAAW,KACXQ,OAAQC,GAGVO,YAAW,WAAA,OAAMN,SAASO,KAAKC,YAAYT,KAC7C,CAEA,IAAQD,EAAWlC,EAAWgB,GAAtBkB,OAER,GAAIA,EAAOK,OAAQ,CACjB,IAAMM,EAAiBX,EAAOK,OAC9BL,EAAOK,OAAS,WACdM,IACAhB,IAEJ,CAEAK,EAAOY,QAAUjB,EAEjBK,EAAOa,MAAQlB,CACjB,CAEA5B,EAAoCe,GAAW,CAAC,WAAA,OAAMO,GAAa,IAtCjE,CAuCJ,GAAG,CAACT,IAEG,CACLQ,UAAAA,EACAG,aAAAA,EACAE,YAAAA,EAEJ"}
1
+ {"version":3,"file":"useDevCenterApp.js","sources":["../../../src/effects/useDevCenterApp.js"],"sourcesContent":["import { useState, useEffect } from 'react';\n\nimport { getAppIdentifier } from '~/utils/devcenter';\n\nconst COMPONENTS = {};\nconst FINISH_LOADING_HANLDERS_BY_APP_NAME = {};\n\nconst LOCAL_DEBUG_URL = 'http://127.0.0.1:3000/app.js';\n\nconst useDevCenterApp = ({ CLIAppComponent, CLIAppSettings, app, version }) => {\n const appKey = app.app.app_key;\n\n const isLocalDebugMode = process.env.REACT_APP_DEBUG_DC_APP_KEY === appKey;\n const url = isLocalDebugMode ? LOCAL_DEBUG_URL : app?.package?.url;\n\n const appName = getAppIdentifier({ appKey, version, isLocalDebugMode });\n const [loadingAppName, setLoadingAppName] = useState(null);\n\n const appSource = COMPONENTS[appName];\n const AppComponent = CLIAppComponent || appSource?.component || null;\n const AppSettings = CLIAppSettings || appSource?.settings || null;\n\n const finishLoading = () => {\n setLoadingAppName(null);\n (FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] || []).forEach(handler => handler());\n delete FINISH_LOADING_HANLDERS_BY_APP_NAME[appName];\n };\n\n useEffect(() => {\n if (appName in FINISH_LOADING_HANLDERS_BY_APP_NAME) {\n setLoadingAppName(appName);\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName].push(() => {\n setLoadingAppName(null);\n });\n }\n }, [appName]);\n\n useEffect(() => {\n if (\n !url ||\n !appName ||\n (AppComponent && AppSettings) ||\n appName in FINISH_LOADING_HANLDERS_BY_APP_NAME\n )\n return;\n\n if ((!CLIAppComponent && !appSource) || appSource?.component) {\n setLoadingAppName(appName);\n\n if (!appSource || !appSource.script) {\n const scriptFile = document.createElement('script');\n\n scriptFile.src = url;\n\n scriptFile.onload = () => {\n COMPONENTS[appName] = window[appName]?.default || { error: true };\n finishLoading();\n };\n\n COMPONENTS[appName] = {\n component: null,\n script: scriptFile,\n };\n\n setTimeout(() => document.body.appendChild(scriptFile));\n }\n\n const { script } = COMPONENTS[appName];\n\n if (script.onload) {\n const loaderCallback = script.onload;\n script.onload = () => {\n loaderCallback();\n finishLoading();\n };\n }\n\n const failLoading = () => {\n COMPONENTS[appName] = { error: true };\n finishLoading();\n };\n\n script.onabort = failLoading;\n script.onerror = failLoading;\n }\n\n FINISH_LOADING_HANLDERS_BY_APP_NAME[appName] = [() => setLoadingAppName(null)];\n }, [appName, url]);\n\n const isCurrentAppLoading = loadingAppName === appName;\n // The bundle is pending before the loading effect runs and while its script is loading.\n const isAppBundlePending = !!url && (!appSource || !!appSource.script);\n const isLoading = !CLIAppComponent && (isCurrentAppLoading || isAppBundlePending);\n\n return {\n isLoading,\n AppComponent,\n AppSettings,\n };\n};\n\nexport default useDevCenterApp;\n"],"names":["COMPONENTS","FINISH_LOADING_HANLDERS_BY_APP_NAME","_ref","_app$package","CLIAppComponent","CLIAppSettings","app","version","appKey","app_key","isLocalDebugMode","process","env","REACT_APP_DEBUG_DC_APP_KEY","url","package","appName","getAppIdentifier","useState","_useState2","_slicedToArray","_useState","loadingAppName","setLoadingAppName","appSource","AppComponent","component","AppSettings","settings","finishLoading","forEach","handler","useEffect","push","script","scriptFile","document","createElement","src","onload","_window$appName","window","default","error","setTimeout","body","appendChild","loaderCallback","failLoading","onabort","onerror","isCurrentAppLoading","isAppBundlePending","isLoading"],"mappings":"4MAIMA,EAAa,CAAA,EACbC,EAAsC,CAAA,iBAIpB,SAAuDC,GAAA,IAAAC,EAApDC,IAAAA,gBAAiBC,IAAAA,eAAgBC,IAAAA,IAAKC,IAAAA,QACzDC,EAASF,EAAIA,IAAIG,QAEjBC,EAAmBC,QAAQC,IAAIC,6BAA+BL,EAC9DM,EAAMJ,EANU,+BAM2BJ,SAAY,UAAZA,EAAKS,eAAO,IAAAZ,SAAZA,EAAcW,IAEzDE,EAAUC,EAAAA,iBAAiB,CAAET,OAAAA,EAAQD,QAAAA,EAASG,iBAAAA,IACRQ,EAAAA,EAAQA,SAAC,MAAKC,EAAAC,EAAAA,QAAAC,EAAA,GAAnDC,EAAcH,EAAA,GAAEI,EAAiBJ,EAAA,GAElCK,EAAYxB,EAAWgB,GACvBS,EAAerB,IAAmBoB,aAAS,EAATA,EAAWE,YAAa,KAC1DC,EAActB,IAAkBmB,aAAS,EAATA,EAAWI,WAAY,KAEvDC,EAAgB,WACpBN,EAAkB,OACjBtB,EAAoCe,IAAY,IAAIc,SAAQ,SAAAC,GAAO,OAAIA,cACjE9B,EAAoCe,IAG7CgB,EAAAA,WAAU,WACJhB,KAAWf,IACbsB,EAAkBP,GAClBf,EAAoCe,GAASiB,MAAK,WAChDV,EAAkB,KACpB,IAEJ,GAAG,CAACP,IAEJgB,EAAAA,WAAU,WACR,MACGlB,IACAE,GACAS,GAAgBE,GACjBX,KAAWf,GAJb,CAQA,IAAMG,IAAoBoB,GAAcA,SAAAA,EAAWE,UAAW,CAG5D,GAFAH,EAAkBP,IAEbQ,IAAcA,EAAUU,OAAQ,CACnC,IAAMC,EAAaC,SAASC,cAAc,UAE1CF,EAAWG,IAAMxB,EAEjBqB,EAAWI,OAAS,WAAM,IAAAC,EACxBxC,EAAWgB,IAA0B,QAAfyB,EAAAA,OAAOzB,UAAQ,IAAAwB,OAAA,EAAfA,EAAiBE,UAAW,CAAEC,OAAO,GAC3Dd,KAGF7B,EAAWgB,GAAW,CACpBU,UAAW,KACXQ,OAAQC,GAGVS,YAAW,WAAA,OAAMR,SAASS,KAAKC,YAAYX,KAC7C,CAEA,IAAQD,EAAWlC,EAAWgB,GAAtBkB,OAER,GAAIA,EAAOK,OAAQ,CACjB,IAAMQ,EAAiBb,EAAOK,OAC9BL,EAAOK,OAAS,WACdQ,IACAlB,IAEJ,CAEA,IAAMmB,EAAc,WAClBhD,EAAWgB,GAAW,CAAE2B,OAAO,GAC/Bd,KAGFK,EAAOe,QAAUD,EACjBd,EAAOgB,QAAUF,CACnB,CAEA/C,EAAoCe,GAAW,CAAC,WAAA,OAAMO,EAAkB,OA1CtE,CA2CJ,GAAG,CAACP,EAASF,IAEb,IAAMqC,EAAsB7B,IAAmBN,EAEzCoC,KAAuBtC,GAASU,IAAeA,EAAUU,QAG/D,MAAO,CACLmB,WAHiBjD,IAAoB+C,GAAuBC,GAI5D3B,aAAAA,EACAE,YAAAA,EAEJ"}
@@ -1,7 +1,7 @@
1
1
  import type { ComponentType, FC } from 'react';
2
2
  import type { AppCoordinates, ChatActions, DashboardAppLastAnnotation, DevCenterAppResource, DevCenterCurrentUser, DevCenterRouter, LayoutEnvironment, RegisterAITools, SetIsFullscreenModalMode, UpdateDashboardAppLastAnnotation } from './types';
3
3
  import type { FullscreenModes } from '../../../types';
4
- import type { GlobalOffsetWell } from '../../../componentsV2/AppCommonsProvider/AppCommonsContext';
4
+ import type { AppDashboardMeta } from '../../../componentsV2/AppCommonsProvider/AppCommonsContext';
5
5
  /**
6
6
  * `Partial<FullscreenModes>` carries the seven browser-fullscreen and separate-window members.
7
7
  * `AppCommonsProvider` derives `isExpanded` from them and republishes them to the app bundle,
@@ -26,14 +26,7 @@ export type DevCenterAppContainerProps = Partial<FullscreenModes> & {
26
26
  chatActions?: ChatActions | null;
27
27
  coordinates?: AppCoordinates | null;
28
28
  currentDashboardAppsLastAnnotations?: DashboardAppLastAnnotation[] | null;
29
- dashboardMeta?: {
30
- isMultiAsset?: boolean;
31
- isMultiWell?: boolean;
32
- isChiplessDashboard?: boolean;
33
- globalOffsetWells?: GlobalOffsetWell[];
34
- globalOffsetWellsVersion?: number;
35
- globalOffsetWellsToken?: number;
36
- };
29
+ dashboardMeta?: AppDashboardMeta;
37
30
  disableAppAssetSelection?: boolean;
38
31
  isActionsDisabled?: boolean;
39
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DevCenterAppContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA2B/C,OAAO,KAAK,EACV,cAAc,EAEd,WAAW,EACX,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EAEpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAiBnG;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAClE,GAAG,EAAE,oBAAoB,CAAC;IAC1B,WAAW,EAAE,oBAAoB,CAAC;IAClC,yEAAyE;IACzE,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;OAIG;IAEH,eAAe,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAE5C,cAAc,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC3C,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,mCAAmC,CAAC,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;IAC1E,aAAa,CAAC,EAAE;QACd,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,gBAAgB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uCAAuC,CAAC,EAAE,gCAAgC,CAAC;CAC5E,CAAC;AAKF,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAkSzD,CAAC;eAEa,qBAAqB"}
1
+ {"version":3,"file":"DevCenterAppContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA2B/C,OAAO,KAAK,EACV,cAAc,EAEd,WAAW,EACX,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EAEpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAiBnG;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAClE,GAAG,EAAE,oBAAoB,CAAC;IAC1B,WAAW,EAAE,oBAAoB,CAAC;IAClC,yEAAyE;IACzE,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;OAIG;IAEH,eAAe,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAE5C,cAAc,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC3C,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACpC,mCAAmC,CAAC,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;IAC1E,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,gBAAgB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uCAAuC,CAAC,EAAE,gCAAgC,CAAC;CAC5E,CAAC;AAKF,QAAA,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAkSzD,CAAC;eAEa,qBAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DevCenterAppContainer.js","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.tsx"],"sourcesContent":["import { useContext, useMemo, useState } from 'react';\nimport type { ComponentType, FC } from 'react';\nimport classNames from 'classnames';\nimport { noop, pick, pickBy } from 'lodash';\nimport { useTheme } from '@material-ui/core';\n\nimport AppContext from '../AppContext';\nimport { DevCenterRouterContext } from '../DevCenterRouterContext';\n\nimport {\n useAnnotationsData,\n useAnnotationsList,\n useAppMaximized,\n useAppSettings,\n useDevCenterAppProps,\n} from './effects';\nimport { DcFullscreenElemsCoordinatorProvider } from './components/DcFullscreenElemsCoordinatorProvider';\nimport { DevCenterAppDialogs } from './components/DevCenterAppDialogs';\nimport DevCenterAppView from './components/DevCenterAppView';\nimport { LegacyAppActions } from './components/LegacyAppActions';\nimport RestoreAppSizeButton from './components/RestoreAppSizeButton';\nimport { getAppAvailability, getAppVersion } from './utils';\nimport {\n APP_DATA_ASSET_KEYS,\n HOME_PATH_PREFIX,\n MOBILE_CLI_APP_GRID_WIDTH,\n PAGE_NAME,\n} from './constants';\nimport type {\n AppCoordinates,\n AppDataEntry,\n ChatActions,\n DashboardAppLastAnnotation,\n DevCenterAppResource,\n DevCenterCurrentUser,\n DevCenterMenuItem,\n DevCenterRouter,\n LayoutEnvironment,\n RegisterAITools,\n SetIsFullscreenModalMode,\n UpdateDashboardAppLastAnnotation,\n} from './types';\nimport type { FullscreenModes } from '../../../types';\n// Relative on purpose: a `~/` alias does not resolve from the published `.d.ts`.\nimport type { GlobalOffsetWell } from '../../../componentsV2/AppCommonsProvider/AppCommonsContext';\nimport { CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.scss';\n\nimport { isInsideNewMobileApp, isMobileDetected, isNativeDetected } from '~/utils/mobileDetect';\nimport { ToastContainer } from '~/components/Toaster';\nimport { useDevCenterApp } from '~/effects';\nimport { DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport {\n getAppName,\n getAppSegment,\n getTimestampFromQuery,\n isDCAppMultiRig,\n} from '~/utils/devcenter';\nimport { AppCommonsProvider } from '~/componentsV2/AppCommonsProvider';\n\n/**\n * `Partial<FullscreenModes>` carries the seven browser-fullscreen and separate-window members.\n * `AppCommonsProvider` derives `isExpanded` from them and republishes them to the app bundle,\n * so dropping them silently disables both features — and nothing type-checks it, because every\n * member is optional on the provider.\n */\nexport type DevCenterAppContainerProps = Partial<FullscreenModes> & {\n app: DevCenterAppResource;\n currentUser: DevCenterCurrentUser;\n /** Platform router. Not React Router — the DC shell supplies its own. */\n devCenterRouter: DevCenterRouter;\n\n /**\n * Slots for the CLI app bundle's own components. `any` rather than a narrower prop type on\n * purpose: this accepts arbitrary app components, and any narrowing would reject the concretely\n * typed ones consumers pass.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see the note above\n CLIAppComponent?: ComponentType<any> | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see the note above\n CLIAppSettings?: ComponentType<any> | null;\n /** Defaults to `app.id` when omitted. */\n appId?: number;\n className?: string | null;\n chatActions?: ChatActions | null;\n coordinates?: AppCoordinates | null;\n currentDashboardAppsLastAnnotations?: DashboardAppLastAnnotation[] | null;\n dashboardMeta?: {\n isMultiAsset?: boolean;\n isMultiWell?: boolean;\n isChiplessDashboard?: boolean;\n globalOffsetWells?: GlobalOffsetWell[];\n globalOffsetWellsVersion?: number;\n globalOffsetWellsToken?: number;\n };\n disableAppAssetSelection?: boolean;\n isActionsDisabled?: boolean;\n /**\n * [REACT-18-MIGRATION-TAG] PLT-3099: the platform's isolation decision, passed only by the\n * in-process branch of DevCenterIsolatedApp; iframe mounts leave it false.\n */\n isNonIsolatedApp?: boolean;\n isSettingsDialogHidden?: boolean;\n layoutEnvironment?: LayoutEnvironment | null;\n onAppContainerClick?: () => void;\n onAppRemove?: () => void;\n onCloneDashboard?: () => void;\n onHelpCenterClick?: () => void;\n onIsMaximizedChange?: (isMaximized: boolean) => void;\n onReportBugClick?: (() => void) | null;\n onSettingChange?: (key: string, value: unknown) => void;\n onSettingsChange?: (value: unknown) => void;\n openIntercom?: () => void;\n registerAITools?: RegisterAITools;\n reloadApp?: () => void;\n setIsFullscreenModalMode?: SetIsFullscreenModalMode;\n timestamp?: number | null;\n updateCurrentDashboardAppLastAnnotation?: UpdateDashboardAppLastAnnotation;\n};\n\nconst isHomePage = (router: DevCenterRouter) =>\n !!router.location.pathname?.startsWith(HOME_PATH_PREFIX);\n\nconst DevCenterAppContainer: FC<DevCenterAppContainerProps> = ({\n CLIAppComponent,\n CLIAppSettings,\n app,\n appId,\n className,\n coordinates,\n currentDashboardAppsLastAnnotations,\n currentUser,\n devCenterRouter,\n disableAppAssetSelection,\n isActionsDisabled,\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n isNonIsolatedApp = false,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppContainerClick = noop,\n onAppRemove,\n onReportBugClick,\n onCloneDashboard,\n onHelpCenterClick,\n onIsMaximizedChange,\n onSettingChange = noop,\n onSettingsChange = noop,\n openIntercom = noop,\n registerAITools,\n setIsFullscreenModalMode = noop,\n timestamp,\n updateCurrentDashboardAppLastAnnotation,\n dashboardMeta,\n reloadApp,\n chatActions,\n}) => {\n // `AppContext` is still JavaScript and calls `createContext()` with no argument, so it hands\n // back `undefined`. Declared here rather than asserted; the real fix is a type argument on the\n // context itself, which belongs to `DevCenter/AppContext`.\n const appsData: Record<string, AppDataEntry> | undefined = useContext(AppContext);\n const theme = useTheme();\n const isMobileView = isNativeDetected || isMobileDetected;\n const [mainMenuItems, setMainMenuItems] = useState<DevCenterMenuItem[]>([]);\n const [secondaryMenuItems, setSecondaryMenuItems] = useState<DevCenterMenuItem[]>([]);\n // `||`, not `??`: DevCenterEmbeddedApp uses 0 as its unset sentinel for appId.\n const appDataKey = appId || app.id;\n const appData: AppDataEntry = (appDataKey ? appsData?.[appDataKey] : undefined) ?? {\n isLoading: true,\n };\n const application = app.package?.manifest?.application;\n const segment = getAppSegment(app);\n const isChiplessDashboard = !!dashboardMeta?.isChiplessDashboard;\n const isMultiRig = isDCAppMultiRig({\n uiSettings: application?.ui,\n isChiplessDashboard,\n });\n const isCommentsEnabled = !!application?.ui?.enable_comments;\n const appName = getAppName(app);\n const { isMaximized, setIsMaximized } = useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId,\n });\n\n // Isolated apps are mounted without the router query the timestamp normally comes from,\n // so the host passes it as a prop instead.\n const appTimestamp = timestamp || getTimestampFromQuery(devCenterRouter.location.query?.query);\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n // Memoised because the CLI-on-mobile branch builds a new object: unmemoised it would be a fresh\n // reference on every render and would keep `useDevCenterAppProps` from ever holding its memo.\n const updatedCoordinates = useMemo(\n () =>\n isCLIApp && isMobileView ? { ...coordinates, w: MOBILE_CLI_APP_GRID_WIDTH } : coordinates,\n [isCLIApp, isMobileView, coordinates]\n );\n const version = getAppVersion(app);\n\n const {\n isLoading: isAppLoading,\n AppSettings,\n AppComponent,\n } = useDevCenterApp({\n CLIAppComponent,\n CLIAppSettings,\n app,\n version,\n });\n\n const { isAppSettingsDialogOpened, toggleAppSettingsDialog } = useAppSettings({\n setIsFullscreenModalMode,\n });\n const { isAnnotationsListOpened, toggleAnnotationsList } = useAnnotationsList();\n\n const isLoading = !!(isAppLoading || !currentUser || (!isMultiRig && appData.isLoading));\n\n const {\n appLastAnnotation,\n assetCompanyId,\n assetIdForAnnotation,\n isAppSupportsAnnotations: isAnnotationsSupported,\n } = useAnnotationsData({\n app,\n appData,\n currentDashboardAppsLastAnnotations,\n });\n\n const filteredAppData = useMemo(\n () => pickBy(pick(appData, APP_DATA_ASSET_KEYS), Boolean),\n [appData]\n );\n\n const simplifiedSecondaryMenuItems = useMemo(\n () =>\n secondaryMenuItems.map(item => ({\n ...item,\n onClick: () => {\n item.onClick?.();\n if (item.to) {\n devCenterRouter.push(item.to);\n }\n },\n })),\n [secondaryMenuItems, devCenterRouter]\n );\n\n const isAppHeadersV3Enabled = !!application?.ui?.use_app_header_v3;\n const isInsideHomePage = isHomePage(devCenterRouter);\n\n const appProps = useDevCenterAppProps({\n app,\n appLastAnnotation,\n appTimestamp,\n chatActions,\n coordinates: updatedCoordinates,\n currentUser,\n devCenterRouter,\n filteredAppData,\n isMaximized,\n layoutEnvironment,\n onSettingChange,\n onSettingsChange,\n registerAITools,\n segment,\n setIsFullscreenModalMode,\n setIsMaximized,\n setMainMenuItems,\n setSecondaryMenuItems,\n toggleAnnotationsList,\n toggleAppSettingsDialog,\n updateCurrentDashboardAppLastAnnotation,\n });\n\n // Called without the native event: this crosses an iframe boundary, where a DOM event\n // cannot be serialised.\n const handleAppContainerClick = () => onAppContainerClick();\n\n // ⚠️⚠️⚠️ When adding/changing providers, also add them to/change /src/testing/AppTestWrapper\n return (\n <DevCenterRouterContext.Provider value={devCenterRouter}>\n <DcFullscreenElemsCoordinatorProvider setIsFullscreenModalMode={setIsFullscreenModalMode}>\n <AppCommonsProvider\n maximized={isMaximized}\n setMaximized={setIsMaximized}\n appId={app.app.id}\n app={app}\n appSettings={app.settings}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n appHeadersV3Enabled={isAppHeadersV3Enabled}\n isBrowserFullscreen={isBrowserFullscreen}\n enterBrowserFullscreen={enterBrowserFullscreen}\n exitBrowserFullscreen={exitBrowserFullscreen}\n isSeparateWindow={isSeparateWindow}\n openSeparateWindow={openSeparateWindow}\n closeSeparateWindow={closeSeparateWindow}\n setSeparateWindowTitle={setSeparateWindowTitle}\n isNonIsolatedApp={isNonIsolatedApp}\n disableAppAssetSelection={disableAppAssetSelection}\n isMultiRig={isMultiRig}\n currentUser={currentUser}\n appData={appData}\n layoutEnvironment={layoutEnvironment}\n appSettingsComponent={AppSettings}\n dashboardMeta={dashboardMeta}\n toggleAnnotationsList={isAnnotationsSupported ? toggleAnnotationsList : undefined}\n onHelpCenterClick={onHelpCenterClick}\n secondaryMenuItems={simplifiedSecondaryMenuItems}\n onAppRemove={onAppRemove}\n isInsideNewMobileApp={isInsideNewMobileApp}\n globalOffsetWells={dashboardMeta?.globalOffsetWells}\n globalOffsetWellsVersion={dashboardMeta?.globalOffsetWellsVersion}\n globalOffsetWellsToken={dashboardMeta?.globalOffsetWellsToken}\n reloadApp={reloadApp}\n {...filteredAppData}\n >\n <CommentsSwitchProvider>\n <article\n className={classNames(\n 'dc-app-container',\n isInsideNewMobileApp && 'dc-app-container--inside-new-mobile-app',\n isInsideHomePage && 'dc-app-container--inside-home-page',\n className,\n // This class is applied so that DC apps developers can style their content\n // when an app is in fullscreen\n isMaximized && 'dc-app-container__maximized',\n theme.isLightTheme && 'dc-app-container__light-theme',\n styles.container\n )}\n data-testid={`${PAGE_NAME}_${appName}`}\n onClick={handleAppContainerClick}\n >\n <ToastContainer />\n <div className={styles.containerContent}>\n <DevCenterAppView\n // DC apps keep per-asset state in mount-time hooks, so a new asset means a\n // new mount. React 18 batching collapses away the `isLoading` frame this used\n // to rely on whenever AppsDataProvider serves the asset from its cache.\n key={appData.appHash}\n AppComponent={AppComponent}\n app={app}\n appData={filteredAppData}\n availability={getAppAvailability(\n app.availability,\n currentUser.company.with_subscription\n )}\n isCLIApp={isCLIApp}\n isLoading={isLoading}\n isMultiRig={isMultiRig}\n layoutEnvironment={layoutEnvironment ?? null}\n openIntercom={openIntercom}\n segment={segment}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n appProps={appProps}\n />\n </div>\n <DevCenterAppDialogs\n app={app}\n appData={appData}\n appName={appName}\n appSettingsComponent={AppSettings}\n assetCompanyId={assetCompanyId}\n assetIdForAnnotation={assetIdForAnnotation}\n currentUser={currentUser}\n disableAppAssetSelection={disableAppAssetSelection}\n isAnnotationsListOpened={isAnnotationsListOpened}\n isAppSettingsDialogOpened={isAppSettingsDialogOpened}\n isMultiRig={isMultiRig}\n isSettingsDialogHidden={isSettingsDialogHidden}\n layoutEnvironment={layoutEnvironment}\n onAppRemove={onAppRemove}\n onCloneDashboard={onCloneDashboard}\n onSettingsChange={onSettingsChange}\n openIntercom={openIntercom}\n toggleAnnotationsList={toggleAnnotationsList}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n {isMaximized && !isAppHeadersV3Enabled && (\n <RestoreAppSizeButton setIsMaximized={setIsMaximized} />\n )}\n\n {!isActionsDisabled && (!isAppHeadersV3Enabled || isLoading) && (\n <LegacyAppActions\n app={app}\n currentUser={currentUser}\n devCenterRouter={devCenterRouter}\n isAnnotationsSupported={isAnnotationsSupported}\n isCLIApp={isCLIApp}\n isCommentsEnabled={isCommentsEnabled}\n isInsideNewMobileApp={isInsideNewMobileApp}\n isMaximized={isMaximized}\n isMobileView={isMobileView}\n mainMenuItems={mainMenuItems}\n secondaryMenuItems={secondaryMenuItems}\n onHelpCenterClick={onHelpCenterClick}\n onReportBugClick={onReportBugClick}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n setIsMaximized={setIsMaximized}\n toggleAnnotationsList={toggleAnnotationsList}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n )}\n </article>\n </CommentsSwitchProvider>\n </AppCommonsProvider>\n </DcFullscreenElemsCoordinatorProvider>\n </DevCenterRouterContext.Provider>\n );\n};\n\nexport default DevCenterAppContainer;\n"],"names":["DevCenterAppContainer","_ref","_ref2","_app$package","_app$package$manifest","_application$ui","_devCenterRouter$loca","_application$ui2","_router$location$path","CLIAppComponent","CLIAppSettings","app","appId","className","coordinates","currentDashboardAppsLastAnnotations","currentUser","devCenterRouter","disableAppAssetSelection","isActionsDisabled","isBrowserFullscreen","enterBrowserFullscreen","exitBrowserFullscreen","isSeparateWindow","openSeparateWindow","closeSeparateWindow","setSeparateWindowTitle","_ref$isNonIsolatedApp","isNonIsolatedApp","isSettingsDialogHidden","layoutEnvironment","_ref$onAppContainerCl","onAppContainerClick","noop","onAppRemove","onReportBugClick","onCloneDashboard","onHelpCenterClick","onIsMaximizedChange","_ref$onSettingChange","onSettingChange","_ref$onSettingsChange","onSettingsChange","_ref$openIntercom","openIntercom","registerAITools","_ref$setIsFullscreenM","setIsFullscreenModalMode","timestamp","updateCurrentDashboardAppLastAnnotation","dashboardMeta","reloadApp","chatActions","appsData","useContext","AppContext","theme","useTheme","isMobileView","isNativeDetected","isMobileDetected","useState","_useState2","_slicedToArray","_useState","mainMenuItems","setMainMenuItems","_useState4","_useState3","secondaryMenuItems","setSecondaryMenuItems","appDataKey","id","appData","undefined","isLoading","application","package","manifest","segment","getAppSegment","isChiplessDashboard","isMultiRig","isDCAppMultiRig","uiSettings","ui","isCommentsEnabled","enable_comments","appName","getAppName","_useAppMaximized","useAppMaximized","isMaximized","setIsMaximized","appTimestamp","getTimestampFromQuery","location","query","isCLIApp","DEV_CENTER_CLI_APP_ID","updatedCoordinates","useMemo","_objectSpread","w","MOBILE_CLI_APP_GRID_WIDTH","version","getAppVersion","_useDevCenterApp","useDevCenterApp","isAppLoading","AppSettings","AppComponent","_useAppSettings","useAppSettings","isAppSettingsDialogOpened","toggleAppSettingsDialog","_useAnnotationsList","useAnnotationsList","isAnnotationsListOpened","toggleAnnotationsList","_useAnnotationsData","useAnnotationsData","appLastAnnotation","assetCompanyId","assetIdForAnnotation","isAnnotationsSupported","isAppSupportsAnnotations","filteredAppData","pickBy","pick","APP_DATA_ASSET_KEYS","Boolean","simplifiedSecondaryMenuItems","map","item","onClick","_item$onClick","call","to","push","isAppHeadersV3Enabled","use_app_header_v3","isInsideHomePage","pathname","startsWith","HOME_PATH_PREFIX","appProps","useDevCenterAppProps","_jsx","DevCenterRouterContext","Provider","value","children","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","settings","appHeadersV3Enabled","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","CommentsSwitchProvider","_jsxs","classNames","isLightTheme","styles","container","PAGE_NAME","ToastContainer","containerContent","DevCenterAppView","availability","getAppAvailability","company","with_subscription","appHash","DevCenterAppDialogs","RestoreAppSizeButton","LegacyAppActions"],"mappings":"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"}
1
+ {"version":3,"file":"DevCenterAppContainer.js","sources":["../../../../src/components/DevCenter/DevCenterAppContainer/DevCenterAppContainer.tsx"],"sourcesContent":["import { useContext, useMemo, useState } from 'react';\nimport type { ComponentType, FC } from 'react';\nimport classNames from 'classnames';\nimport { noop, pick, pickBy } from 'lodash';\nimport { useTheme } from '@material-ui/core';\n\nimport AppContext from '../AppContext';\nimport { DevCenterRouterContext } from '../DevCenterRouterContext';\n\nimport {\n useAnnotationsData,\n useAnnotationsList,\n useAppMaximized,\n useAppSettings,\n useDevCenterAppProps,\n} from './effects';\nimport { DcFullscreenElemsCoordinatorProvider } from './components/DcFullscreenElemsCoordinatorProvider';\nimport { DevCenterAppDialogs } from './components/DevCenterAppDialogs';\nimport DevCenterAppView from './components/DevCenterAppView';\nimport { LegacyAppActions } from './components/LegacyAppActions';\nimport RestoreAppSizeButton from './components/RestoreAppSizeButton';\nimport { getAppAvailability, getAppVersion } from './utils';\nimport {\n APP_DATA_ASSET_KEYS,\n HOME_PATH_PREFIX,\n MOBILE_CLI_APP_GRID_WIDTH,\n PAGE_NAME,\n} from './constants';\nimport type {\n AppCoordinates,\n AppDataEntry,\n ChatActions,\n DashboardAppLastAnnotation,\n DevCenterAppResource,\n DevCenterCurrentUser,\n DevCenterMenuItem,\n DevCenterRouter,\n LayoutEnvironment,\n RegisterAITools,\n SetIsFullscreenModalMode,\n UpdateDashboardAppLastAnnotation,\n} from './types';\nimport type { FullscreenModes } from '../../../types';\n// Relative on purpose: a `~/` alias does not resolve from the published `.d.ts`.\nimport type { AppDashboardMeta } from '../../../componentsV2/AppCommonsProvider/AppCommonsContext';\nimport { CommentsSwitchProvider } from './components/CommentsSwitch';\n\nimport styles from './DevCenterAppContainer.scss';\n\nimport { isInsideNewMobileApp, isMobileDetected, isNativeDetected } from '~/utils/mobileDetect';\nimport { ToastContainer } from '~/components/Toaster';\nimport { useDevCenterApp } from '~/effects';\nimport { DEV_CENTER_CLI_APP_ID } from '~/constants';\nimport {\n getAppName,\n getAppSegment,\n getTimestampFromQuery,\n isDCAppMultiRig,\n} from '~/utils/devcenter';\nimport { AppCommonsProvider } from '~/componentsV2/AppCommonsProvider';\n\n/**\n * `Partial<FullscreenModes>` carries the seven browser-fullscreen and separate-window members.\n * `AppCommonsProvider` derives `isExpanded` from them and republishes them to the app bundle,\n * so dropping them silently disables both features — and nothing type-checks it, because every\n * member is optional on the provider.\n */\nexport type DevCenterAppContainerProps = Partial<FullscreenModes> & {\n app: DevCenterAppResource;\n currentUser: DevCenterCurrentUser;\n /** Platform router. Not React Router — the DC shell supplies its own. */\n devCenterRouter: DevCenterRouter;\n\n /**\n * Slots for the CLI app bundle's own components. `any` rather than a narrower prop type on\n * purpose: this accepts arbitrary app components, and any narrowing would reject the concretely\n * typed ones consumers pass.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see the note above\n CLIAppComponent?: ComponentType<any> | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- see the note above\n CLIAppSettings?: ComponentType<any> | null;\n /** Defaults to `app.id` when omitted. */\n appId?: number;\n className?: string | null;\n chatActions?: ChatActions | null;\n coordinates?: AppCoordinates | null;\n currentDashboardAppsLastAnnotations?: DashboardAppLastAnnotation[] | null;\n dashboardMeta?: AppDashboardMeta;\n disableAppAssetSelection?: boolean;\n isActionsDisabled?: boolean;\n /**\n * [REACT-18-MIGRATION-TAG] PLT-3099: the platform's isolation decision, passed only by the\n * in-process branch of DevCenterIsolatedApp; iframe mounts leave it false.\n */\n isNonIsolatedApp?: boolean;\n isSettingsDialogHidden?: boolean;\n layoutEnvironment?: LayoutEnvironment | null;\n onAppContainerClick?: () => void;\n onAppRemove?: () => void;\n onCloneDashboard?: () => void;\n onHelpCenterClick?: () => void;\n onIsMaximizedChange?: (isMaximized: boolean) => void;\n onReportBugClick?: (() => void) | null;\n onSettingChange?: (key: string, value: unknown) => void;\n onSettingsChange?: (value: unknown) => void;\n openIntercom?: () => void;\n registerAITools?: RegisterAITools;\n reloadApp?: () => void;\n setIsFullscreenModalMode?: SetIsFullscreenModalMode;\n timestamp?: number | null;\n updateCurrentDashboardAppLastAnnotation?: UpdateDashboardAppLastAnnotation;\n};\n\nconst isHomePage = (router: DevCenterRouter) =>\n !!router.location.pathname?.startsWith(HOME_PATH_PREFIX);\n\nconst DevCenterAppContainer: FC<DevCenterAppContainerProps> = ({\n CLIAppComponent,\n CLIAppSettings,\n app,\n appId,\n className,\n coordinates,\n currentDashboardAppsLastAnnotations,\n currentUser,\n devCenterRouter,\n disableAppAssetSelection,\n isActionsDisabled,\n isBrowserFullscreen,\n enterBrowserFullscreen,\n exitBrowserFullscreen,\n isSeparateWindow,\n openSeparateWindow,\n closeSeparateWindow,\n setSeparateWindowTitle,\n isNonIsolatedApp = false,\n isSettingsDialogHidden,\n layoutEnvironment,\n onAppContainerClick = noop,\n onAppRemove,\n onReportBugClick,\n onCloneDashboard,\n onHelpCenterClick,\n onIsMaximizedChange,\n onSettingChange = noop,\n onSettingsChange = noop,\n openIntercom = noop,\n registerAITools,\n setIsFullscreenModalMode = noop,\n timestamp,\n updateCurrentDashboardAppLastAnnotation,\n dashboardMeta,\n reloadApp,\n chatActions,\n}) => {\n // `AppContext` is still JavaScript and calls `createContext()` with no argument, so it hands\n // back `undefined`. Declared here rather than asserted; the real fix is a type argument on the\n // context itself, which belongs to `DevCenter/AppContext`.\n const appsData: Record<string, AppDataEntry> | undefined = useContext(AppContext);\n const theme = useTheme();\n const isMobileView = isNativeDetected || isMobileDetected;\n const [mainMenuItems, setMainMenuItems] = useState<DevCenterMenuItem[]>([]);\n const [secondaryMenuItems, setSecondaryMenuItems] = useState<DevCenterMenuItem[]>([]);\n // `||`, not `??`: DevCenterEmbeddedApp uses 0 as its unset sentinel for appId.\n const appDataKey = appId || app.id;\n const appData: AppDataEntry = (appDataKey ? appsData?.[appDataKey] : undefined) ?? {\n isLoading: true,\n };\n const application = app.package?.manifest?.application;\n const segment = getAppSegment(app);\n const isChiplessDashboard = !!dashboardMeta?.isChiplessDashboard;\n const isMultiRig = isDCAppMultiRig({\n uiSettings: application?.ui,\n isChiplessDashboard,\n });\n const isCommentsEnabled = !!application?.ui?.enable_comments;\n const appName = getAppName(app);\n const { isMaximized, setIsMaximized } = useAppMaximized({\n onIsMaximizedChange,\n devCenterRouter,\n appId,\n });\n\n // Isolated apps are mounted without the router query the timestamp normally comes from,\n // so the host passes it as a prop instead.\n const appTimestamp = timestamp || getTimestampFromQuery(devCenterRouter.location.query?.query);\n const isCLIApp = app.id === DEV_CENTER_CLI_APP_ID;\n // Memoised because the CLI-on-mobile branch builds a new object: unmemoised it would be a fresh\n // reference on every render and would keep `useDevCenterAppProps` from ever holding its memo.\n const updatedCoordinates = useMemo(\n () =>\n isCLIApp && isMobileView ? { ...coordinates, w: MOBILE_CLI_APP_GRID_WIDTH } : coordinates,\n [isCLIApp, isMobileView, coordinates]\n );\n const version = getAppVersion(app);\n\n const {\n isLoading: isAppLoading,\n AppSettings,\n AppComponent,\n } = useDevCenterApp({\n CLIAppComponent,\n CLIAppSettings,\n app,\n version,\n });\n\n const { isAppSettingsDialogOpened, toggleAppSettingsDialog } = useAppSettings({\n setIsFullscreenModalMode,\n });\n const { isAnnotationsListOpened, toggleAnnotationsList } = useAnnotationsList();\n\n const isLoading = !!(isAppLoading || !currentUser || (!isMultiRig && appData.isLoading));\n\n const {\n appLastAnnotation,\n assetCompanyId,\n assetIdForAnnotation,\n isAppSupportsAnnotations: isAnnotationsSupported,\n } = useAnnotationsData({\n app,\n appData,\n currentDashboardAppsLastAnnotations,\n });\n\n const filteredAppData = useMemo(\n () => pickBy(pick(appData, APP_DATA_ASSET_KEYS), Boolean),\n [appData]\n );\n\n const simplifiedSecondaryMenuItems = useMemo(\n () =>\n secondaryMenuItems.map(item => ({\n ...item,\n onClick: () => {\n item.onClick?.();\n if (item.to) {\n devCenterRouter.push(item.to);\n }\n },\n })),\n [secondaryMenuItems, devCenterRouter]\n );\n\n const isAppHeadersV3Enabled = !!application?.ui?.use_app_header_v3;\n const isInsideHomePage = isHomePage(devCenterRouter);\n\n const appProps = useDevCenterAppProps({\n app,\n appLastAnnotation,\n appTimestamp,\n chatActions,\n coordinates: updatedCoordinates,\n currentUser,\n devCenterRouter,\n filteredAppData,\n isMaximized,\n layoutEnvironment,\n onSettingChange,\n onSettingsChange,\n registerAITools,\n segment,\n setIsFullscreenModalMode,\n setIsMaximized,\n setMainMenuItems,\n setSecondaryMenuItems,\n toggleAnnotationsList,\n toggleAppSettingsDialog,\n updateCurrentDashboardAppLastAnnotation,\n });\n\n // Called without the native event: this crosses an iframe boundary, where a DOM event\n // cannot be serialised.\n const handleAppContainerClick = () => onAppContainerClick();\n\n // ⚠️⚠️⚠️ When adding/changing providers, also add them to/change /src/testing/AppTestWrapper\n return (\n <DevCenterRouterContext.Provider value={devCenterRouter}>\n <DcFullscreenElemsCoordinatorProvider setIsFullscreenModalMode={setIsFullscreenModalMode}>\n <AppCommonsProvider\n maximized={isMaximized}\n setMaximized={setIsMaximized}\n appId={app.app.id}\n app={app}\n appSettings={app.settings}\n onSettingChange={onSettingChange}\n onSettingsChange={onSettingsChange}\n appHeadersV3Enabled={isAppHeadersV3Enabled}\n isBrowserFullscreen={isBrowserFullscreen}\n enterBrowserFullscreen={enterBrowserFullscreen}\n exitBrowserFullscreen={exitBrowserFullscreen}\n isSeparateWindow={isSeparateWindow}\n openSeparateWindow={openSeparateWindow}\n closeSeparateWindow={closeSeparateWindow}\n setSeparateWindowTitle={setSeparateWindowTitle}\n isNonIsolatedApp={isNonIsolatedApp}\n disableAppAssetSelection={disableAppAssetSelection}\n isMultiRig={isMultiRig}\n currentUser={currentUser}\n appData={appData}\n layoutEnvironment={layoutEnvironment}\n appSettingsComponent={AppSettings}\n dashboardMeta={dashboardMeta}\n toggleAnnotationsList={isAnnotationsSupported ? toggleAnnotationsList : undefined}\n onHelpCenterClick={onHelpCenterClick}\n secondaryMenuItems={simplifiedSecondaryMenuItems}\n onAppRemove={onAppRemove}\n isInsideNewMobileApp={isInsideNewMobileApp}\n globalOffsetWells={dashboardMeta?.globalOffsetWells}\n globalOffsetWellsVersion={dashboardMeta?.globalOffsetWellsVersion}\n globalOffsetWellsToken={dashboardMeta?.globalOffsetWellsToken}\n reloadApp={reloadApp}\n {...filteredAppData}\n >\n <CommentsSwitchProvider>\n <article\n className={classNames(\n 'dc-app-container',\n isInsideNewMobileApp && 'dc-app-container--inside-new-mobile-app',\n isInsideHomePage && 'dc-app-container--inside-home-page',\n className,\n // This class is applied so that DC apps developers can style their content\n // when an app is in fullscreen\n isMaximized && 'dc-app-container__maximized',\n theme.isLightTheme && 'dc-app-container__light-theme',\n styles.container\n )}\n data-testid={`${PAGE_NAME}_${appName}`}\n onClick={handleAppContainerClick}\n >\n <ToastContainer />\n <div className={styles.containerContent}>\n <DevCenterAppView\n // DC apps keep per-asset state in mount-time hooks, so a new asset means a\n // new mount. React 18 batching collapses away the `isLoading` frame this used\n // to rely on whenever AppsDataProvider serves the asset from its cache.\n key={appData.appHash}\n AppComponent={AppComponent}\n app={app}\n appData={filteredAppData}\n availability={getAppAvailability(\n app.availability,\n currentUser.company.with_subscription\n )}\n isCLIApp={isCLIApp}\n isLoading={isLoading}\n isMultiRig={isMultiRig}\n layoutEnvironment={layoutEnvironment ?? null}\n openIntercom={openIntercom}\n segment={segment}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n appProps={appProps}\n />\n </div>\n <DevCenterAppDialogs\n app={app}\n appData={appData}\n appName={appName}\n appSettingsComponent={AppSettings}\n assetCompanyId={assetCompanyId}\n assetIdForAnnotation={assetIdForAnnotation}\n currentUser={currentUser}\n disableAppAssetSelection={disableAppAssetSelection}\n isAnnotationsListOpened={isAnnotationsListOpened}\n isAppSettingsDialogOpened={isAppSettingsDialogOpened}\n isMultiRig={isMultiRig}\n isSettingsDialogHidden={isSettingsDialogHidden}\n layoutEnvironment={layoutEnvironment}\n onAppRemove={onAppRemove}\n onCloneDashboard={onCloneDashboard}\n onSettingsChange={onSettingsChange}\n openIntercom={openIntercom}\n toggleAnnotationsList={toggleAnnotationsList}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n {isMaximized && !isAppHeadersV3Enabled && (\n <RestoreAppSizeButton setIsMaximized={setIsMaximized} />\n )}\n\n {!isActionsDisabled && (!isAppHeadersV3Enabled || isLoading) && (\n <LegacyAppActions\n app={app}\n currentUser={currentUser}\n devCenterRouter={devCenterRouter}\n isAnnotationsSupported={isAnnotationsSupported}\n isCLIApp={isCLIApp}\n isCommentsEnabled={isCommentsEnabled}\n isInsideNewMobileApp={isInsideNewMobileApp}\n isMaximized={isMaximized}\n isMobileView={isMobileView}\n mainMenuItems={mainMenuItems}\n secondaryMenuItems={secondaryMenuItems}\n onHelpCenterClick={onHelpCenterClick}\n onReportBugClick={onReportBugClick}\n setIsFullscreenModalMode={setIsFullscreenModalMode}\n setIsMaximized={setIsMaximized}\n toggleAnnotationsList={toggleAnnotationsList}\n toggleAppSettingsDialog={toggleAppSettingsDialog}\n />\n )}\n </article>\n </CommentsSwitchProvider>\n </AppCommonsProvider>\n </DcFullscreenElemsCoordinatorProvider>\n </DevCenterRouterContext.Provider>\n );\n};\n\nexport default DevCenterAppContainer;\n"],"names":["DevCenterAppContainer","_ref","_ref2","_app$package","_app$package$manifest","_application$ui","_devCenterRouter$loca","_application$ui2","_router$location$path","CLIAppComponent","CLIAppSettings","app","appId","className","coordinates","currentDashboardAppsLastAnnotations","currentUser","devCenterRouter","disableAppAssetSelection","isActionsDisabled","isBrowserFullscreen","enterBrowserFullscreen","exitBrowserFullscreen","isSeparateWindow","openSeparateWindow","closeSeparateWindow","setSeparateWindowTitle","_ref$isNonIsolatedApp","isNonIsolatedApp","isSettingsDialogHidden","layoutEnvironment","_ref$onAppContainerCl","onAppContainerClick","noop","onAppRemove","onReportBugClick","onCloneDashboard","onHelpCenterClick","onIsMaximizedChange","_ref$onSettingChange","onSettingChange","_ref$onSettingsChange","onSettingsChange","_ref$openIntercom","openIntercom","registerAITools","_ref$setIsFullscreenM","setIsFullscreenModalMode","timestamp","updateCurrentDashboardAppLastAnnotation","dashboardMeta","reloadApp","chatActions","appsData","useContext","AppContext","theme","useTheme","isMobileView","isNativeDetected","isMobileDetected","useState","_useState2","_slicedToArray","_useState","mainMenuItems","setMainMenuItems","_useState4","_useState3","secondaryMenuItems","setSecondaryMenuItems","appDataKey","id","appData","undefined","isLoading","application","package","manifest","segment","getAppSegment","isChiplessDashboard","isMultiRig","isDCAppMultiRig","uiSettings","ui","isCommentsEnabled","enable_comments","appName","getAppName","_useAppMaximized","useAppMaximized","isMaximized","setIsMaximized","appTimestamp","getTimestampFromQuery","location","query","isCLIApp","DEV_CENTER_CLI_APP_ID","updatedCoordinates","useMemo","_objectSpread","w","MOBILE_CLI_APP_GRID_WIDTH","version","getAppVersion","_useDevCenterApp","useDevCenterApp","isAppLoading","AppSettings","AppComponent","_useAppSettings","useAppSettings","isAppSettingsDialogOpened","toggleAppSettingsDialog","_useAnnotationsList","useAnnotationsList","isAnnotationsListOpened","toggleAnnotationsList","_useAnnotationsData","useAnnotationsData","appLastAnnotation","assetCompanyId","assetIdForAnnotation","isAnnotationsSupported","isAppSupportsAnnotations","filteredAppData","pickBy","pick","APP_DATA_ASSET_KEYS","Boolean","simplifiedSecondaryMenuItems","map","item","onClick","_item$onClick","call","to","push","isAppHeadersV3Enabled","use_app_header_v3","isInsideHomePage","pathname","startsWith","HOME_PATH_PREFIX","appProps","useDevCenterAppProps","_jsx","DevCenterRouterContext","Provider","value","children","DcFullscreenElemsCoordinatorProvider","AppCommonsProvider","maximized","setMaximized","appSettings","settings","appHeadersV3Enabled","appSettingsComponent","isInsideNewMobileApp","globalOffsetWells","globalOffsetWellsVersion","globalOffsetWellsToken","CommentsSwitchProvider","_jsxs","classNames","isLightTheme","styles","container","PAGE_NAME","ToastContainer","containerContent","DevCenterAppView","availability","getAppAvailability","company","with_subscription","appHash","DevCenterAppDialogs","RestoreAppSizeButton","LegacyAppActions"],"mappings":"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"}
@@ -4,6 +4,24 @@ export type GlobalOffsetWell = {
4
4
  id: number;
5
5
  [key: string]: unknown;
6
6
  };
7
+ /** Host-owned planning scope. Presence identifies a Well Planning dashboard. */
8
+ export type WellPlanningDashboardMeta = {
9
+ assetId: number | null;
10
+ dashboardId: string;
11
+ defaultDashboardKind?: string;
12
+ segment: string | null;
13
+ };
14
+ export type AppDashboardMeta = {
15
+ /** The host owns app identity and maximization controls. */
16
+ isEmbedded?: boolean;
17
+ isMultiAsset?: boolean;
18
+ isMultiWell?: boolean;
19
+ isChiplessDashboard?: boolean;
20
+ globalOffsetWells?: GlobalOffsetWell[];
21
+ globalOffsetWellsVersion?: number;
22
+ globalOffsetWellsToken?: number;
23
+ wellPlanning?: WellPlanningDashboardMeta;
24
+ };
7
25
  export type AppCommonsContextType = {
8
26
  maximized: boolean;
9
27
  appId: number;
@@ -18,12 +36,7 @@ export type AppCommonsContextType = {
18
36
  fracFleet?: FracFleet;
19
37
  interventionUnit?: InterventionUnit;
20
38
  wells?: Well[];
21
- dashboardMeta?: {
22
- isMultiAsset?: boolean;
23
- isMultiWell?: boolean;
24
- isChiplessDashboard?: boolean;
25
- globalOffsetWellsToken?: number;
26
- };
39
+ dashboardMeta?: AppDashboardMeta;
27
40
  appHeadersV3Enabled?: boolean;
28
41
  isNonIsolatedApp?: boolean;
29
42
  disableAppAssetSelection?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AppCommonsContext.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/AppCommonsProvider/AppCommonsContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAE5E,OAAO,EACL,GAAG,EACH,WAAW,EACX,KAAK,EACL,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,IAAI,EACJ,IAAI,EACL,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAIF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3C,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAGf,aAAa,CAAC,EAAE;QACd,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAG9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,GAC/D,OAAO,CAAC,eAAe,CAAC,GAAG;IACzB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAEzE,oBAAoB,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IACpF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,wDAG7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,qCAAsC,CAAC;AAEzE,eAAO,MAAM,aAAa,QAA0C,qBAAqB,CAAC"}
1
+ {"version":3,"file":"AppCommonsContext.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/AppCommonsProvider/AppCommonsContext.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppCommonsContext.js","sources":["../../../src/componentsV2/AppCommonsProvider/AppCommonsContext.ts"],"sourcesContent":["import { ComponentType, createContext, ReactNode, useContext } from 'react';\n\nimport {\n App,\n AppSettings,\n Asset,\n FracFleet,\n FullscreenModes,\n InterventionUnit,\n User,\n Well,\n} from '../../types';\n\nexport type GlobalOffsetWell = {\n id: number;\n [key: string]: unknown;\n};\n\n// ⚠️⚠️⚠️ Mentioned in storybook, please update when editing this type\n// Used in AppTestWrapper\nexport type AppCommonsContextType = {\n maximized: boolean;\n appId: number;\n app: App;\n appKey: string;\n appName: string;\n appSettings?: AppSettings;\n onSettingChange: (key: string, value: unknown) => void;\n onSettingsChange: (value: unknown) => void;\n\n well?: Well;\n rig?: Asset;\n fracFleet?: FracFleet;\n interventionUnit?: InterventionUnit;\n wells?: Well[];\n\n // Passed down from corva-web-frontend. May not exist, so everything must be optional\n dashboardMeta?: {\n isMultiAsset?: boolean;\n isMultiWell?: boolean;\n isChiplessDashboard?: boolean;\n globalOffsetWellsToken?: number;\n };\n appHeadersV3Enabled?: boolean;\n // [REACT-18-MIGRATION-TAG] PLT-3099: true when the app renders in-process on the host\n // (the platform isolation decision from DevCenterIsolatedApp); iframe realms leave it unset.\n isNonIsolatedApp?: boolean;\n disableAppAssetSelection?: boolean;\n isMultiRig?: boolean;\n currentUser?: User;\n globalOffsetWells?: GlobalOffsetWell[];\n globalOffsetWellsVersion?: number;\n globalOffsetWellsToken?: number;\n removeApp?: () => void;\n};\n\nexport type AppCommonsContextTypeInternal = AppCommonsContextType &\n Partial<FullscreenModes> & {\n /** True in any of the three modes: dashboard maximize, browser fullscreen, separate window */\n isExpanded?: boolean;\n setMaximized: (maximized: boolean) => void;\n appData?: unknown;\n layoutEnvironment?: ({ type?: string } & Record<string, unknown>) | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n appSettingsComponent?: ComponentType<any>;\n toggleAnnotationsList?: () => void;\n onHelpCenterClick?: () => void;\n secondaryMenuItems?: { title: ReactNode; onClick?: () => void; icon?: ReactNode }[];\n isInsideNewMobileApp?: boolean;\n reloadApp?: () => void;\n };\n\nexport const AppCommonsContext = createContext<AppCommonsContextTypeInternal>(\n // TODO provide defaults\n null as unknown as AppCommonsContextTypeInternal\n);\n\nexport const useAppCommonsInternal = () => useContext(AppCommonsContext);\n\nexport const useAppCommons = () => useContext(AppCommonsContext) as AppCommonsContextType;\n"],"names":["AppCommonsContext","createContext","useAppCommonsInternal","useContext","useAppCommons"],"mappings":"sDAwEO,IAAMA,EAAoBC,EAE/B,MAGWC,EAAwB,WAAH,OAASC,EAAWH,EAAkB,EAE3DI,EAAgB,WAAH,OAASD,EAAWH,EAAkB"}
1
+ {"version":3,"file":"AppCommonsContext.js","sources":["../../../src/componentsV2/AppCommonsProvider/AppCommonsContext.ts"],"sourcesContent":["import { ComponentType, createContext, ReactNode, useContext } from 'react';\n\nimport {\n App,\n AppSettings,\n Asset,\n FracFleet,\n FullscreenModes,\n InterventionUnit,\n User,\n Well,\n} from '../../types';\n\nexport type GlobalOffsetWell = {\n id: number;\n [key: string]: unknown;\n};\n\n/** Host-owned planning scope. Presence identifies a Well Planning dashboard. */\nexport type WellPlanningDashboardMeta = {\n assetId: number | null;\n dashboardId: string;\n defaultDashboardKind?: string;\n segment: string | null;\n};\n\nexport type AppDashboardMeta = {\n /** The host owns app identity and maximization controls. */\n isEmbedded?: boolean;\n isMultiAsset?: boolean;\n isMultiWell?: boolean;\n isChiplessDashboard?: boolean;\n globalOffsetWells?: GlobalOffsetWell[];\n globalOffsetWellsVersion?: number;\n globalOffsetWellsToken?: number;\n wellPlanning?: WellPlanningDashboardMeta;\n};\n\n// ⚠️⚠️⚠️ Mentioned in storybook, please update when editing this type\n// Used in AppTestWrapper\nexport type AppCommonsContextType = {\n maximized: boolean;\n appId: number;\n app: App;\n appKey: string;\n appName: string;\n appSettings?: AppSettings;\n onSettingChange: (key: string, value: unknown) => void;\n onSettingsChange: (value: unknown) => void;\n\n well?: Well;\n rig?: Asset;\n fracFleet?: FracFleet;\n interventionUnit?: InterventionUnit;\n wells?: Well[];\n\n // Passed down from corva-web-frontend. May not exist, so everything must be optional\n dashboardMeta?: AppDashboardMeta;\n appHeadersV3Enabled?: boolean;\n // [REACT-18-MIGRATION-TAG] PLT-3099: true when the app renders in-process on the host\n // (the platform isolation decision from DevCenterIsolatedApp); iframe realms leave it unset.\n isNonIsolatedApp?: boolean;\n disableAppAssetSelection?: boolean;\n isMultiRig?: boolean;\n currentUser?: User;\n globalOffsetWells?: GlobalOffsetWell[];\n globalOffsetWellsVersion?: number;\n globalOffsetWellsToken?: number;\n removeApp?: () => void;\n};\n\nexport type AppCommonsContextTypeInternal = AppCommonsContextType &\n Partial<FullscreenModes> & {\n /** True in any of the three modes: dashboard maximize, browser fullscreen, separate window */\n isExpanded?: boolean;\n setMaximized: (maximized: boolean) => void;\n appData?: unknown;\n layoutEnvironment?: ({ type?: string } & Record<string, unknown>) | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n appSettingsComponent?: ComponentType<any>;\n toggleAnnotationsList?: () => void;\n onHelpCenterClick?: () => void;\n secondaryMenuItems?: { title: ReactNode; onClick?: () => void; icon?: ReactNode }[];\n isInsideNewMobileApp?: boolean;\n reloadApp?: () => void;\n };\n\nexport const AppCommonsContext = createContext<AppCommonsContextTypeInternal>(\n // TODO provide defaults\n null as unknown as AppCommonsContextTypeInternal\n);\n\nexport const useAppCommonsInternal = () => useContext(AppCommonsContext);\n\nexport const useAppCommons = () => useContext(AppCommonsContext) as AppCommonsContextType;\n"],"names":["AppCommonsContext","createContext","useAppCommonsInternal","useContext","useAppCommons"],"mappings":"sDAuFO,IAAMA,EAAoBC,EAE/B,MAGWC,EAAwB,WAAH,OAASC,EAAWH,EAAkB,EAE3DI,EAAgB,WAAH,OAASD,EAAWH,EAAkB"}
@@ -1,4 +1,5 @@
1
1
  export declare enum ActionsTestIds {
2
+ MoreButtonTestId = "CorvaUI.AppHeader.Actions.MoreButtonTestId",
2
3
  CollapseButtonTestId = "CorvaUI.AppHeader.Actions.CollapseButtonTestId",
3
4
  ExpandButtonTestId = "CorvaUI.AppHeader.Actions.ExpandButtonTestId",
4
5
  AdditionalActionItemTestId = "CorvaUI.AppHeader.Actions.AdditionalActionItemTestId",
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.constants.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.constants.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,oBAAoB,mDAAmD;IACvE,kBAAkB,iDAAiD;IACnE,0BAA0B,yDAAyD;IACnF,wBAAwB,uDAAuD;IAC/E,sBAAsB,qDAAqD;IAC3E,kBAAkB,iDAAiD;IACnE,2BAA2B,0DAA0D;IACrF,wBAAwB,uDAAuD;CAChF"}
1
+ {"version":3,"file":"Actions.constants.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.constants.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,gBAAgB,+CAA+C;IAC/D,oBAAoB,mDAAmD;IACvE,kBAAkB,iDAAiD;IACnE,0BAA0B,yDAAyD;IACnF,wBAAwB,uDAAuD;IAC/E,sBAAsB,qDAAqD;IAC3E,kBAAkB,iDAAiD;IACnE,2BAA2B,0DAA0D;IACrF,wBAAwB,uDAAuD;CAChF"}
@@ -1,2 +1,2 @@
1
- var e;!function(e){e.CollapseButtonTestId="CorvaUI.AppHeader.Actions.CollapseButtonTestId",e.ExpandButtonTestId="CorvaUI.AppHeader.Actions.ExpandButtonTestId",e.AdditionalActionItemTestId="CorvaUI.AppHeader.Actions.AdditionalActionItemTestId",e.CloseCommentButtonTestId="CorvaUI.AppHeader.Actions.CloseCommentButtonTestId",e.AddMessageButtonTestId="CorvaUI.AppHeader.Actions.AddMessageButtonTestId",e.MaximizeItemTestId="CorvaUI.AppHeader.Actions.MaximizeItemTestId",e.BrowserFullscreenItemTestId="CorvaUI.AppHeader.Actions.BrowserFullscreenItemTestId",e.SeparateWindowItemTestId="CorvaUI.AppHeader.Actions.SeparateWindowItemTestId"}(e||(e={}));export{e as ActionsTestIds};
1
+ var e;!function(e){e.MoreButtonTestId="CorvaUI.AppHeader.Actions.MoreButtonTestId",e.CollapseButtonTestId="CorvaUI.AppHeader.Actions.CollapseButtonTestId",e.ExpandButtonTestId="CorvaUI.AppHeader.Actions.ExpandButtonTestId",e.AdditionalActionItemTestId="CorvaUI.AppHeader.Actions.AdditionalActionItemTestId",e.CloseCommentButtonTestId="CorvaUI.AppHeader.Actions.CloseCommentButtonTestId",e.AddMessageButtonTestId="CorvaUI.AppHeader.Actions.AddMessageButtonTestId",e.MaximizeItemTestId="CorvaUI.AppHeader.Actions.MaximizeItemTestId",e.BrowserFullscreenItemTestId="CorvaUI.AppHeader.Actions.BrowserFullscreenItemTestId",e.SeparateWindowItemTestId="CorvaUI.AppHeader.Actions.SeparateWindowItemTestId"}(e||(e={}));export{e as ActionsTestIds};
2
2
  //# sourceMappingURL=Actions.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.constants.js","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.constants.ts"],"sourcesContent":["export enum ActionsTestIds {\n CollapseButtonTestId = 'CorvaUI.AppHeader.Actions.CollapseButtonTestId',\n ExpandButtonTestId = 'CorvaUI.AppHeader.Actions.ExpandButtonTestId',\n AdditionalActionItemTestId = 'CorvaUI.AppHeader.Actions.AdditionalActionItemTestId',\n CloseCommentButtonTestId = 'CorvaUI.AppHeader.Actions.CloseCommentButtonTestId',\n AddMessageButtonTestId = 'CorvaUI.AppHeader.Actions.AddMessageButtonTestId',\n MaximizeItemTestId = 'CorvaUI.AppHeader.Actions.MaximizeItemTestId',\n BrowserFullscreenItemTestId = 'CorvaUI.AppHeader.Actions.BrowserFullscreenItemTestId',\n SeparateWindowItemTestId = 'CorvaUI.AppHeader.Actions.SeparateWindowItemTestId',\n}\n"],"names":["ActionsTestIds"],"mappings":"AAAA,IAAYA,GASX,SATWA,GAAAA,EAAc,qBAAA,iDAAdA,EAAc,mBAAA,+CAAdA,EAAc,2BAAA,uDAAdA,EAAc,yBAAA,qDAAdA,EAAc,uBAAA,mDAAdA,EAAc,mBAAA,+CAAdA,EAAc,4BAAA,wDAAdA,EAAc,yBAAA,oDAAdA,CASX,CATWA,IAAAA,EAAc,CAAA"}
1
+ {"version":3,"file":"Actions.constants.js","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.constants.ts"],"sourcesContent":["export enum ActionsTestIds {\n MoreButtonTestId = 'CorvaUI.AppHeader.Actions.MoreButtonTestId',\n CollapseButtonTestId = 'CorvaUI.AppHeader.Actions.CollapseButtonTestId',\n ExpandButtonTestId = 'CorvaUI.AppHeader.Actions.ExpandButtonTestId',\n AdditionalActionItemTestId = 'CorvaUI.AppHeader.Actions.AdditionalActionItemTestId',\n CloseCommentButtonTestId = 'CorvaUI.AppHeader.Actions.CloseCommentButtonTestId',\n AddMessageButtonTestId = 'CorvaUI.AppHeader.Actions.AddMessageButtonTestId',\n MaximizeItemTestId = 'CorvaUI.AppHeader.Actions.MaximizeItemTestId',\n BrowserFullscreenItemTestId = 'CorvaUI.AppHeader.Actions.BrowserFullscreenItemTestId',\n SeparateWindowItemTestId = 'CorvaUI.AppHeader.Actions.SeparateWindowItemTestId',\n}\n"],"names":["ActionsTestIds"],"mappings":"AAAA,IAAYA,GAUX,SAVWA,GAAAA,EAAc,iBAAA,6CAAdA,EAAc,qBAAA,iDAAdA,EAAc,mBAAA,+CAAdA,EAAc,2BAAA,uDAAdA,EAAc,yBAAA,qDAAdA,EAAc,uBAAA,mDAAdA,EAAc,mBAAA,+CAAdA,EAAc,4BAAA,wDAAdA,EAAc,yBAAA,oDAAdA,CAUX,CAVWA,IAAAA,EAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,cAAc,CAAC;AAsBxE,KAAK,YAAY,GAAG;IAClB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAOF,eAAO,MAAM,OAAO,iFAKjB,YAAY,4CAiTd,CAAC"}
1
+ {"version":3,"file":"Actions.d.ts","sourceRoot":"","sources":["../../../../../src/componentsV2/AppHeader/V3/Actions/Actions.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,cAAc,CAAC;AAsBxE,KAAK,YAAY,GAAG;IAClB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAOF,eAAO,MAAM,OAAO,iFAKjB,YAAY,4CAmTd,CAAC"}
@@ -1,2 +1,2 @@
1
- import o from"@babel/runtime/helpers/toConsumableArray";import s from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/helpers/typeof";import{useState as i,useRef as c,useCallback as e,useEffect as r,useMemo as m,Fragment as p}from"react";import l from"classnames";import{ButtonIcon as u}from"../../../ButtonIcon/ButtonIcon.js";import{Tooltip as a}from"../../../Tooltip/Tooltip.js";import{SettingsButton as d}from"../SettingsButton/SettingsButton.js";import"../SettingsButton/SettingsButton.constants.js";import{Menu as j}from"../../../Menu/Menu.js";import"../../../AppCommonsProvider/AppCommonsProvider.js";import{useAppCommonsInternal as I}from"../../../AppCommonsProvider/AppCommonsContext.js";import{useAppSettingsPanel as C}from"../../../AppPanel/AppPanelsContext.js";import{HideInNativeApp as f}from"../../../HideInNativeApp/index.js";import{ActionsTestIds as h}from"./Actions.constants.js";import b from"./Actions.scss.js";import{CollapseIcon as g,ExpandIcon as y,CloseSmallIcon as O,MoreOneIcon as v,MessageIcon as A,SettingTwoIcon as B}from"../../../../icons/iconParkIcons.js";import{AddMessageCustomIcon as P}from"../../../../icons/customIcons/icons/AddMessage.js";import"../../../../icons/customIcons/icons/DragOne.js";import"../../../../icons/customIcons/icons/Attention.js";import"../../../../icons/customIcons/icons/Collapse.js";import"../../../../icons/customIcons/icons/Dashboard.js";import"../../../../icons/customIcons/icons/Expand.js";import"../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../icons/customIcons/icons/Search.js";import"../../../../icons/customIcons/icons/SearchOne.js";import"../../../../icons/customIcons/icons/Wellhub.js";import"../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../icons/customIcons/icons/Checkbox.js";import"../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../icons/customIcons/icons/Radio.js";import"../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../icons/customIcons/icons/InfoRounded.js";import"../../../../icons/customIcons/icons/FlameFilled.js";import"../../../../icons/customIcons/icons/MoreApp.js";import"../../../../icons/customIcons/icons/Pad.js";import"../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../icons/customIcons/icons/FracFleet.js";import"../../../../icons/customIcons/icons/Global.js";import"../../../../icons/customIcons/icons/Program.js";import"../../../../icons/customIcons/icons/Rig.js";import"../../../../icons/customIcons/icons/Well.js";import"../../../../icons/customIcons/icons/Gap.js";import"../../../../icons/customIcons/icons/Pin.js";import"../../../../icons/customIcons/icons/PinOne.js";import"../../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../icons/customIcons/icons/Archive.js";import"../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../icons/customIcons/icons/Unarchive.js";import"../../../../icons/customIcons/icons/Archived.js";import"../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../icons/customIcons/icons/Lasso.js";import"../../../../icons/customIcons/icons/Radius.js";import"../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../icons/customIcons/icons/Company.js";import"../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../icons/customIcons/icons/Connect.js";import"../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../icons/customIcons/icons/Feed.js";import"../../../../icons/customIcons/icons/Prompt.js";import"../../../../icons/customIcons/icons/Companies.js";import"../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../icons/customIcons/icons/Key.js";import"../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../icons/customIcons/icons/MappingManual.js";import"../../../../icons/customIcons/icons/Mapping.js";import"../../../../icons/customIcons/icons/Metrics.js";import"../../../../icons/customIcons/icons/Drops.js";import"../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../icons/customIcons/icons/Template.js";import"../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../icons/customIcons/icons/NPT.js";import"../../../../icons/customIcons/icons/GuidedFrac.js";import"../../../../clients/subscriptions/constants.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"querystring";import"uuid/v1";import"lodash";import"../../../../clients/subscriptions.v1.js";import"../../../../clients/jsonApi/index.js";import"../../../../clients/subscriptions/subscriptions-client.factory.js";import"immutable";import"query-string";import"../../../../constants/goals.js";import"../../../../constants/segment.js";import"../../../../constants/alerts.js";import"../../../../constants/apps.js";import"../../../../constants/drillstring.js";import"../../../../constants/completion.js";import"../../../../constants/appPackages.js";import"../../../../constants/notifications.js";import"../../../../constants/feed.js";import"../../../../constants/bha.js";import"../../../../constants/corvaCompanyId.js";import"../../../../components/GradientManager/configuration/constants.js";import"../../../../utils/index.js";import"uuid";import"jsona";import"../../../../utils/env.js";import"../../../../components/StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../../clients/api/apiCore.js";import"../../../../clients/constants.js";import"../../../../clients/sso/auth0.js";import"../../../../clients/sso/oauth2.js";import"../../../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../../constants/streamSourceType.js";import{useAppCommentsMode as S,useSetAppCommentsMode as k}from"../../../../components/DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import{isInsideNewMobileApp as F}from"../../../../utils/mobileDetect.js";import{jsx as M,jsxs as x,Fragment as w}from"react/jsx-runtime";function T(o,s){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);s&&(t=t.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),n.push.apply(n,t)}return n}function D(o){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?T(Object(t),!0).forEach((function(n){s(o,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):T(Object(t)).forEach((function(s){Object.defineProperty(o,s,Object.getOwnPropertyDescriptor(t,s))}))}return o}var z=function(o){return!!o&&"object"===t(o)&&"title"in o},E=function(s){var t=s.additionalActions,T=s.showComments,E=s.disableSettings,W=s.hideSettingsUnderMore,N=I(),R=N.maximized,U=N.setMaximized,G=N.appSettingsComponent,q=N.isExpanded,L=N.isBrowserFullscreen,H=N.enterBrowserFullscreen,K=N.exitBrowserFullscreen,Z=N.isSeparateWindow,J=N.openSeparateWindow,Q=N.closeSeparateWindow,V=S(),X=k(),Y=i(!1),$=n(Y,2),_=$[0],oo=$[1],so=c(null),no=c(null),to=i(!0),io=n(to,2),co=io[0],eo=io[1],ro=i(!1),mo=n(ro,2),po=mo[0],lo=mo[1],uo=c(null),ao=c(!1),jo=C(),Io=jo.open,Co=jo.isOpen,fo=!!G&&!E,ho=e((function(){oo((function(o){return!o}))}),[]),bo=e((function(){X((function(o){return!o}))}),[X]),go=e((function(){ao.current=!1,lo(!1)}),[]),yo=e((function(){eo(!1),go(),Z?null==Q||Q():L?null==K||K():U(!R)}),[go,Q,K,L,Z,R,U]),Oo=Z?"Close Separate Window":q?"Restore":"Maximize",vo=e((function(){uo.current&&(clearTimeout(uo.current),uo.current=null)}),[]),Ao=e((function(){!q&&H&&(vo(),uo.current=setTimeout((function(){ao.current=!0,lo(!0)}),500))}),[vo,H,q]);r((function(){return vo}),[vo]);var Bo=e((function(){ao.current?ao.current=!1:yo()}),[yo]),Po=e((function(){go(),null==J||J()}),[go,J]),So=e((function(){go(),null==H||H()}),[go,H]);r((function(){eo(!0)}),[q]);var ko=m((function(){if(F)return[];var s=function(o){return function(){ho(),null==o||o()}},n=(t||[]).filter(z).map((function(o){return D(D({},o),{},{onClick:s(o.onClick)})})),i={icon:M(A,{}),onClick:s(bo),title:V?"Close Comments Mode":"Add Comment"},c={title:Oo,onClick:s(yo),icon:M(q?g:y,{})},e={title:"Settings",onClick:s(Io),icon:M(B,{})};return[].concat(o(n),o(T?[i]:[]),o(W&&fo?[e]:[]),[c])}),[t,V,W,q,Oo,Io,fo,T,bo,yo,ho]),Fo=ko.length>1,Mo=M(u,{size:"small",type:"tertiaryBg",ref:no,onClick:Bo,onMouseDown:Ao,onMouseUp:vo,onMouseLeave:vo,className:Fo?b.fullscreenButton:void 0,testId:q?h.CollapseButtonTestId:h.ExpandButtonTestId,children:M(q?g:y,{})});return x(w,{children:[M(f,{children:null==t?void 0:t.map((function(o,s){return z(o)?M(a,{title:o.title,children:M(u,{size:"small",type:"tertiary",onClick:o.onClick,className:l(b.additionalActionButton),testId:h.AdditionalActionItemTestId,children:o.icon})},s):M(p,{children:o},s)}))}),M(f,{children:T&&M(a,{title:V?"Close Comments Mode":"Add Comment",children:M(u,{size:"small",type:V?"secondaryBg":"tertiaryBg",onClick:bo,className:Fo?b.commentButton:void 0,testId:V?h.CloseCommentButtonTestId:h.AddMessageButtonTestId,children:V?M(O,{}):M(P,{fill:"currentColor"})})})}),fo&&M(d,{className:W&&!F?b.settingsHiddenUnderMore:void 0}),x(f,{children:[co?M(a,{title:Oo,children:Mo}):Mo,no.current&&x(j,{anchorEl:no.current,open:po,onClose:go,placement:"bottom-end",children:[M(j.Item,{onClick:yo,testId:h.MaximizeItemTestId,children:"Maximize"}),M(j.Item,{onClick:So,testId:h.BrowserFullscreenItemTestId,children:"Full Screen"}),M(j.Item,{onClick:Po,testId:h.SeparateWindowItemTestId,children:"Separate Window"})]})]}),x(f,{children:[Fo&&M(a,{title:"More",children:M(u,{type:_||W&&Co?"secondaryBg":"tertiaryBg",className:b.moreButton,ref:so,onClick:ho,size:"small",children:M(v,{})})}),Fo&&so.current&&M(j,{anchorEl:so.current,open:_,onClose:ho,placement:"bottom-end",children:ko.map((function(o,s){return M(j.Item,{size:"large",prefix:o.icon,onClick:o.onClick,children:o.title},s)}))})]})]})};export{E as Actions};
1
+ import o from"@babel/runtime/helpers/toConsumableArray";import s from"@babel/runtime/helpers/defineProperty";import n from"@babel/runtime/helpers/slicedToArray";import t from"@babel/runtime/helpers/typeof";import{useState as i,useRef as c,useCallback as e,useEffect as r,useMemo as m,Fragment as p}from"react";import l from"classnames";import{ButtonIcon as u}from"../../../ButtonIcon/ButtonIcon.js";import{Tooltip as a}from"../../../Tooltip/Tooltip.js";import{SettingsButton as d}from"../SettingsButton/SettingsButton.js";import"../SettingsButton/SettingsButton.constants.js";import{Menu as j}from"../../../Menu/Menu.js";import"../../../AppCommonsProvider/AppCommonsProvider.js";import{useAppCommonsInternal as I}from"../../../AppCommonsProvider/AppCommonsContext.js";import{useAppSettingsPanel as C}from"../../../AppPanel/AppPanelsContext.js";import{HideInNativeApp as f}from"../../../HideInNativeApp/index.js";import{ActionsTestIds as h}from"./Actions.constants.js";import b from"./Actions.scss.js";import{CollapseIcon as g,ExpandIcon as y,CloseSmallIcon as O,MoreOneIcon as v,MessageIcon as A,SettingTwoIcon as B}from"../../../../icons/iconParkIcons.js";import{AddMessageCustomIcon as M}from"../../../../icons/customIcons/icons/AddMessage.js";import"../../../../icons/customIcons/icons/DragOne.js";import"../../../../icons/customIcons/icons/Attention.js";import"../../../../icons/customIcons/icons/Collapse.js";import"../../../../icons/customIcons/icons/Dashboard.js";import"../../../../icons/customIcons/icons/Expand.js";import"../../../../icons/customIcons/icons/FolderClosed.js";import"../../../../icons/customIcons/icons/FolderClosedFilled.js";import"../../../../icons/customIcons/icons/FolderOpened.js";import"../../../../icons/customIcons/icons/GreaterOrEqual.js";import"../../../../icons/customIcons/icons/LessOrEqual.js";import"../../../../icons/customIcons/icons/Search.js";import"../../../../icons/customIcons/icons/SearchOne.js";import"../../../../icons/customIcons/icons/Wellhub.js";import"../../../../icons/customIcons/icons/MultiRuler.js";import"../../../../icons/customIcons/icons/Checkbox.js";import"../../../../icons/customIcons/icons/CheckboxChecked.js";import"../../../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../../../icons/customIcons/icons/Radio.js";import"../../../../icons/customIcons/icons/RadioChecked.js";import"../../../../icons/customIcons/icons/SimulFrac.js";import"../../../../icons/customIcons/icons/ZipperFrac.js";import"../../../../icons/customIcons/icons/CautionFilled.js";import"../../../../icons/customIcons/icons/InfoRounded.js";import"../../../../icons/customIcons/icons/FlameFilled.js";import"../../../../icons/customIcons/icons/MoreApp.js";import"../../../../icons/customIcons/icons/Pad.js";import"../../../../icons/customIcons/icons/DrilloutUnit.js";import"../../../../icons/customIcons/icons/FracFleet.js";import"../../../../icons/customIcons/icons/Global.js";import"../../../../icons/customIcons/icons/Program.js";import"../../../../icons/customIcons/icons/Rig.js";import"../../../../icons/customIcons/icons/Well.js";import"../../../../icons/customIcons/icons/Gap.js";import"../../../../icons/customIcons/icons/Pin.js";import"../../../../icons/customIcons/icons/PinOne.js";import"../../../../icons/customIcons/icons/PinOneCrossed.js";import"../../../../icons/customIcons/icons/CloseOneFilled.js";import"../../../../icons/customIcons/icons/AttentionFilled.js";import"../../../../icons/customIcons/icons/CheckOneFilled.js";import"../../../../icons/customIcons/icons/Archive.js";import"../../../../icons/customIcons/icons/ArchiveCancel.js";import"../../../../icons/customIcons/icons/Unarchive.js";import"../../../../icons/customIcons/icons/Archived.js";import"../../../../icons/customIcons/icons/InterventionUnit.js";import"../../../../icons/customIcons/icons/CloudDelete.js";import"../../../../icons/customIcons/icons/Lasso.js";import"../../../../icons/customIcons/icons/Radius.js";import"../../../../icons/customIcons/icons/ErrorOps.js";import"../../../../icons/customIcons/icons/DataTypeOps.js";import"../../../../icons/customIcons/icons/FalsePositiveOps.js";import"../../../../icons/customIcons/icons/CalibrationOps.js";import"../../../../icons/customIcons/icons/CriticalOps.js";import"../../../../icons/customIcons/icons/Company.js";import"../../../../icons/customIcons/icons/ArchiveOne.js";import"../../../../icons/customIcons/icons/ParseBotFusion.js";import"../../../../icons/customIcons/icons/Connect.js";import"../../../../icons/customIcons/icons/PuzzleOne.js";import"../../../../icons/customIcons/icons/Feed.js";import"../../../../icons/customIcons/icons/Prompt.js";import"../../../../icons/customIcons/icons/Companies.js";import"../../../../icons/customIcons/icons/ClipboardAi.js";import"../../../../icons/customIcons/icons/Key.js";import"../../../../icons/customIcons/icons/AtSignCrossed.js";import"../../../../icons/customIcons/icons/MappingManual.js";import"../../../../icons/customIcons/icons/Mapping.js";import"../../../../icons/customIcons/icons/Metrics.js";import"../../../../icons/customIcons/icons/Drops.js";import"../../../../icons/customIcons/icons/ClipboardSearch.js";import"../../../../icons/customIcons/icons/Template.js";import"../../../../icons/customIcons/icons/ClipboardMetrics.js";import"../../../../icons/customIcons/icons/ClipboardBuilder.js";import"../../../../icons/customIcons/icons/UnitConversion.js";import"../../../../icons/customIcons/icons/NPT.js";import"../../../../icons/customIcons/icons/GuidedFrac.js";import"../../../../clients/subscriptions/constants.js";import"@babel/runtime/helpers/asyncToGenerator";import"@babel/runtime/regenerator";import"querystring";import"uuid/v1";import"lodash";import"../../../../clients/subscriptions.v1.js";import"../../../../clients/jsonApi/index.js";import"../../../../clients/subscriptions/subscriptions-client.factory.js";import"immutable";import"query-string";import"../../../../constants/goals.js";import"../../../../constants/segment.js";import"../../../../constants/alerts.js";import"../../../../constants/apps.js";import"../../../../constants/drillstring.js";import"../../../../constants/completion.js";import"../../../../constants/appPackages.js";import"../../../../constants/notifications.js";import"../../../../constants/feed.js";import"../../../../constants/bha.js";import"../../../../constants/corvaCompanyId.js";import"../../../../components/GradientManager/configuration/constants.js";import"../../../../utils/index.js";import"uuid";import"jsona";import"../../../../utils/env.js";import"../../../../components/StatusBadge/constants.js";import"lodash/set";import"lodash/get";import"lodash/unset";import"moment";import"../../../../clients/api/apiCore.js";import"../../../../clients/constants.js";import"../../../../clients/sso/auth0.js";import"../../../../clients/sso/oauth2.js";import"../../../../clients/api/rateLimiter.js";import"lodash/isEmpty";import"lodash/sortBy";import"../../../../constants/streamSourceType.js";import{useAppCommentsMode as P,useSetAppCommentsMode as S}from"../../../../components/DevCenter/DevCenterAppContainer/components/CommentsSwitch/CommentsSwitchContext.js";import{isInsideNewMobileApp as k}from"../../../../utils/mobileDetect.js";import{jsx as F,jsxs as x,Fragment as w}from"react/jsx-runtime";function T(o,s){var n=Object.keys(o);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(o);s&&(t=t.filter((function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable}))),n.push.apply(n,t)}return n}function D(o){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?T(Object(t),!0).forEach((function(n){s(o,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):T(Object(t)).forEach((function(s){Object.defineProperty(o,s,Object.getOwnPropertyDescriptor(t,s))}))}return o}var z=function(o){return!!o&&"object"===t(o)&&"title"in o},E=function(s){var t=s.additionalActions,T=s.showComments,E=s.disableSettings,W=s.hideSettingsUnderMore,N=I(),R=N.maximized,U=N.setMaximized,G=N.appSettingsComponent,q=N.isExpanded,L=N.isBrowserFullscreen,H=N.enterBrowserFullscreen,K=N.exitBrowserFullscreen,Z=N.isSeparateWindow,J=N.openSeparateWindow,Q=N.closeSeparateWindow,V=N.dashboardMeta,X=!(null==V||!V.isEmbedded),Y=P(),$=S(),_=i(!1),oo=n(_,2),so=oo[0],no=oo[1],to=c(null),io=c(null),co=i(!0),eo=n(co,2),ro=eo[0],mo=eo[1],po=i(!1),lo=n(po,2),uo=lo[0],ao=lo[1],jo=c(null),Io=c(!1),Co=C(),fo=Co.open,ho=Co.isOpen,bo=!!G&&!E,go=e((function(){no((function(o){return!o}))}),[]),yo=e((function(){$((function(o){return!o}))}),[$]),Oo=e((function(){Io.current=!1,ao(!1)}),[]),vo=e((function(){mo(!1),Oo(),Z?null==Q||Q():L?null==K||K():U(!R)}),[Oo,Q,K,L,Z,R,U]),Ao=Z?"Close Separate Window":q?"Restore":"Maximize",Bo=e((function(){jo.current&&(clearTimeout(jo.current),jo.current=null)}),[]),Mo=e((function(){!q&&H&&(Bo(),jo.current=setTimeout((function(){Io.current=!0,ao(!0)}),500))}),[Bo,H,q]);r((function(){return Bo}),[Bo]);var Po=e((function(){Io.current?Io.current=!1:vo()}),[vo]),So=e((function(){Oo(),null==J||J()}),[Oo,J]),ko=e((function(){Oo(),null==H||H()}),[Oo,H]);r((function(){mo(!0)}),[q]);var Fo=m((function(){if(k)return[];var s=function(o){return function(){go(),null==o||o()}},n=(t||[]).filter(z).map((function(o){return D(D({},o),{},{onClick:s(o.onClick)})})),i={icon:F(A,{}),onClick:s(yo),title:Y?"Close Comments Mode":"Add Comment"},c={title:Ao,onClick:s(vo),icon:F(q?g:y,{})},e={title:"Settings",onClick:s(fo),icon:F(B,{})};return[].concat(o(n),o(T?[i]:[]),o(W&&bo?[e]:[]),o(X?[]:[c]))}),[t,Y,W,q,Ao,fo,bo,T,X,yo,vo,go]),xo=Fo.length>(X?0:1),wo=F(u,{size:"small",type:"tertiaryBg",ref:io,onClick:Po,onMouseDown:Mo,onMouseUp:Bo,onMouseLeave:Bo,className:xo?b.fullscreenButton:void 0,testId:q?h.CollapseButtonTestId:h.ExpandButtonTestId,children:F(q?g:y,{})}),To=ro?F(a,{title:Ao,children:wo}):wo;return x(w,{children:[F(f,{children:null==t?void 0:t.map((function(o,s){return z(o)?F(a,{title:o.title,children:F(u,{size:"small",type:"tertiary",onClick:o.onClick,className:l(b.additionalActionButton),testId:h.AdditionalActionItemTestId,children:o.icon})},s):F(p,{children:o},s)}))}),F(f,{children:T&&F(a,{title:Y?"Close Comments Mode":"Add Comment",children:F(u,{size:"small",type:Y?"secondaryBg":"tertiaryBg",onClick:yo,className:xo?b.commentButton:void 0,testId:Y?h.CloseCommentButtonTestId:h.AddMessageButtonTestId,children:Y?F(O,{}):F(M,{fill:"currentColor"})})})}),bo&&F(d,{className:W&&!k?b.settingsHiddenUnderMore:void 0}),x(f,{children:[!X&&To,!X&&io.current&&x(j,{anchorEl:io.current,open:uo,onClose:Oo,placement:"bottom-end",children:[F(j.Item,{onClick:vo,testId:h.MaximizeItemTestId,children:"Maximize"}),F(j.Item,{onClick:ko,testId:h.BrowserFullscreenItemTestId,children:"Full Screen"}),F(j.Item,{onClick:So,testId:h.SeparateWindowItemTestId,children:"Separate Window"})]})]}),x(f,{children:[xo&&F(a,{title:"More",children:F(u,{type:so||W&&ho?"secondaryBg":"tertiaryBg",className:b.moreButton,ref:to,testId:h.MoreButtonTestId,onClick:go,size:"small",children:F(v,{})})}),xo&&to.current&&F(j,{anchorEl:to.current,open:so,onClose:go,placement:"bottom-end",children:Fo.map((function(o,s){return F(j.Item,{size:"large",prefix:o.icon,onClick:o.onClick,children:o.title},s)}))})]})]})};export{E as Actions};
2
2
  //# sourceMappingURL=Actions.js.map