udp-react-enterprise-component-library 25.18.4-beta.64 → 25.18.4-beta.65

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 (82) hide show
  1. package/dist/{AmbientStepper-CzB1SyTH.js → AmbientStepper-D4xlTcaX.js} +1 -1
  2. package/dist/{AmbientStepper-CzB1SyTH.js.map → AmbientStepper-D4xlTcaX.js.map} +1 -1
  3. package/dist/{ClientSideUdpGrid-DwMTC1Ee.js → ClientSideUdpGrid-MLjNH6s5.js} +1 -1
  4. package/dist/{ClientSideUdpGrid-DwMTC1Ee.js.map → ClientSideUdpGrid-MLjNH6s5.js.map} +1 -1
  5. package/dist/{CrudForm-CuDrVVOL.js → CrudForm-BsZrRTVc.js} +2 -2
  6. package/dist/CrudForm-BsZrRTVc.js.map +1 -0
  7. package/dist/{CrudTableSidePanel-Co5Bn9h3.js → CrudTableSidePanel-DJqCvpqJ.js} +2 -2
  8. package/dist/{CrudTableSidePanel-Co5Bn9h3.js.map → CrudTableSidePanel-DJqCvpqJ.js.map} +1 -1
  9. package/dist/{DataBrowserContainer-CfrXmjcZ.js → DataBrowserContainer-DJf_wxKA.js} +216 -108
  10. package/dist/DataBrowserContainer-DJf_wxKA.js.map +1 -0
  11. package/dist/{ExportSidesheet-gGkPAQ3I.js → ExportSidesheet-D-7bX_nC.js} +1 -1
  12. package/dist/{ExportSidesheet-gGkPAQ3I.js.map → ExportSidesheet-D-7bX_nC.js.map} +1 -1
  13. package/dist/{ImportDataFromFileMapping-B1PhP_l5.js → ImportDataFromFileMapping-Bqe6N7Im.js} +2 -2
  14. package/dist/{ImportDataFromFileMapping-B1PhP_l5.js.map → ImportDataFromFileMapping-Bqe6N7Im.js.map} +1 -1
  15. package/dist/{RemindersCard-DCO5tm6M.js → RemindersCard-CAHNpZsj.js} +1 -1
  16. package/dist/{RemindersCard-DCO5tm6M.js.map → RemindersCard-CAHNpZsj.js.map} +1 -1
  17. package/dist/{RemindersWidget-D1T8iC2i.js → RemindersWidget-C83IGD5_.js} +2 -2
  18. package/dist/{RemindersWidget-D1T8iC2i.js.map → RemindersWidget-C83IGD5_.js.map} +1 -1
  19. package/dist/UI/forms/index.js +1 -1
  20. package/dist/UI/index.js +1 -1
  21. package/dist/UI/inputs/menus/AmbientStepper/index.js +1 -1
  22. package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +1 -1
  23. package/dist/UI/templates/newGrid/index.js +2 -2
  24. package/dist/UI/widgets/library/RemindersWidget/index.js +1 -1
  25. package/dist/{UdpAuditEventsPage-DlogxDHX.js → UdpAuditEventsPage-CD_zDh77.js} +2 -2
  26. package/dist/{UdpAuditEventsPage-DlogxDHX.js.map → UdpAuditEventsPage-CD_zDh77.js.map} +1 -1
  27. package/dist/{UdpDataBrowserPage-BOX2cGgQ.js → UdpDataBrowserPage-FdIQ8yxP.js} +13 -83
  28. package/dist/UdpDataBrowserPage-FdIQ8yxP.js.map +1 -0
  29. package/dist/{UdpFormsBuilderPage-ViIzFI1v.js → UdpFormsBuilderPage-UItYIyaM.js} +1 -1
  30. package/dist/{UdpFormsBuilderPage-ViIzFI1v.js.map → UdpFormsBuilderPage-UItYIyaM.js.map} +1 -1
  31. package/dist/{UdpFormsListPage-CsX9-A-u.js → UdpFormsListPage-CSIQUz4h.js} +1 -1
  32. package/dist/{UdpFormsListPage-CsX9-A-u.js.map → UdpFormsListPage-CSIQUz4h.js.map} +1 -1
  33. package/dist/{UdpGridTemplate-Du9E-kHs.js → UdpGridTemplate-K0AT38g7.js} +2 -2
  34. package/dist/{UdpGridTemplate-Du9E-kHs.js.map → UdpGridTemplate-K0AT38g7.js.map} +1 -1
  35. package/dist/{UdpImportFromFileMappingPage-qvOfzz6D.js → UdpImportFromFileMappingPage-Dbqe6maH.js} +2 -2
  36. package/dist/{UdpImportFromFileMappingPage-qvOfzz6D.js.map → UdpImportFromFileMappingPage-Dbqe6maH.js.map} +1 -1
  37. package/dist/{UdpInquiryMaintenanceEnginePage-CkJUZ9X0.js → UdpInquiryMaintenanceEnginePage-T6wdLkRd.js} +2 -2
  38. package/dist/{UdpInquiryMaintenanceEnginePage-CkJUZ9X0.js.map → UdpInquiryMaintenanceEnginePage-T6wdLkRd.js.map} +1 -1
  39. package/dist/{UdpMaintenanceConfigPage-BQdewkXL.js → UdpMaintenanceConfigPage-DzqJeImf.js} +2 -2
  40. package/dist/{UdpMaintenanceConfigPage-BQdewkXL.js.map → UdpMaintenanceConfigPage-DzqJeImf.js.map} +1 -1
  41. package/dist/{UdpMaintenanceEnginePage-Byy5MPYo.js → UdpMaintenanceEnginePage--AzwJeF3.js} +2 -2
  42. package/dist/{UdpMaintenanceEnginePage-Byy5MPYo.js.map → UdpMaintenanceEnginePage--AzwJeF3.js.map} +1 -1
  43. package/dist/{UdpRemindersPage-nM2byTQE.js → UdpRemindersPage-CDff48yC.js} +1 -1
  44. package/dist/{UdpRemindersPage-nM2byTQE.js.map → UdpRemindersPage-CDff48yC.js.map} +1 -1
  45. package/dist/{UdpTransactionsPage-Dbj8cB1e.js → UdpTransactionsPage-Dum-5Ug3.js} +2 -2
  46. package/dist/{UdpTransactionsPage-Dbj8cB1e.js.map → UdpTransactionsPage-Dum-5Ug3.js.map} +1 -1
  47. package/dist/{Utils-g6jkX_Cl.js → Utils-bwUGYcoU.js} +1 -1
  48. package/dist/Utils-bwUGYcoU.js.map +1 -0
  49. package/dist/dataBrowser/index.js +1 -1
  50. package/dist/{dateUtils-xxTcN5US.js → dateUtils-Bcjuf4c9.js} +1 -1
  51. package/dist/{dateUtils-xxTcN5US.js.map → dateUtils-Bcjuf4c9.js.map} +1 -1
  52. package/dist/index.js +14 -14
  53. package/dist/maintenanceEngine/crudBrowser/index.js +1 -1
  54. package/dist/maintenanceEngine/index.js +1 -1
  55. package/dist/reminders/index.js +1 -1
  56. package/dist/types/src/UI/forms/CrudForm.d.ts.map +1 -1
  57. package/dist/types/src/dataBrowser/DataBrowserContainer.d.ts.map +1 -1
  58. package/dist/types/src/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.d.ts.map +1 -1
  59. package/dist/types/src/udp/pages/UdpFormsPrivateForm/UdpFormRenderer.d.ts.map +1 -1
  60. package/dist/types/tsconfig.tsbuildinfo +1 -1
  61. package/dist/udp/export/index.js +1 -1
  62. package/dist/udp/fileImportMapping/index.js +1 -1
  63. package/dist/udp/pages/UdpAuditEvents/index.js +1 -1
  64. package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
  65. package/dist/udp/pages/UdpFormsBuilderPage/index.js +1 -1
  66. package/dist/udp/pages/UdpFormsListPage/index.js +1 -1
  67. package/dist/udp/pages/UdpFormsPrivateForm/index.js +1 -1
  68. package/dist/udp/pages/UdpFormsPublicForm/index.js +1 -1
  69. package/dist/udp/pages/UdpImportFromFileMappingPage/index.js +1 -1
  70. package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +1 -1
  71. package/dist/udp/pages/UdpMaintenanceConfigPage/index.js +1 -1
  72. package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +1 -1
  73. package/dist/udp/pages/UdpPages/index.js +9 -9
  74. package/dist/udp/pages/UdpPagesLazy/index.js +1 -1
  75. package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
  76. package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
  77. package/export-map.json +1 -1
  78. package/package.json +1 -1
  79. package/dist/CrudForm-CuDrVVOL.js.map +0 -1
  80. package/dist/DataBrowserContainer-CfrXmjcZ.js.map +0 -1
  81. package/dist/UdpDataBrowserPage-BOX2cGgQ.js.map +0 -1
  82. package/dist/Utils-g6jkX_Cl.js.map +0 -1
@@ -169,4 +169,4 @@ const AmbientStepper = ({ activeStep, steps, orientation }) => {
169
169
  //#endregion
170
170
  export { styles as n, AmbientStepper as t };
171
171
 
172
- //# sourceMappingURL=AmbientStepper-CzB1SyTH.js.map
172
+ //# sourceMappingURL=AmbientStepper-D4xlTcaX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AmbientStepper-CzB1SyTH.js","names":["StepLabel","React","withStyles","StepConnector","makeStyles","Stepper","Step","StepLabel"],"sources":["../src/UI/inputs/menus/AmbientStepper/StepLabel.jsx","../src/UI/inputs/menus/AmbientStepper/AmbientStepper.jsx"],"sourcesContent":["import * as React from 'react'\nimport PropTypes from 'prop-types'\nimport clsx from 'clsx'\nimport { withStyles, Typography } from '@material-ui/core'\n\nexport const styles = (theme) => ({\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n alignItems: 'center',\n '&$alternativeLabel': {\n flexDirection: 'column'\n },\n '&$disabled': {\n cursor: 'default'\n }\n },\n /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n horizontal: {},\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n vertical: {},\n /* Styles applied to the `Typography` component which wraps `children`. */\n label: {\n color: theme.palette.text.secondary,\n '&$active': {\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n '&$completed': {\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n '&$alternativeLabel': {\n textAlign: 'center'\n // marginTop: 16,\n },\n '&$error': {\n color: theme.palette.error.main\n }\n },\n /* Pseudo-class applied to the `Typography` component if `active={true}`. */\n active: {},\n /* Pseudo-class applied to the `Typography` component if `completed={true}`. */\n completed: {},\n /* Pseudo-class applied to the root element and `Typography` component if `error={true}`. */\n error: {},\n /* Pseudo-class applied to the root element and `Typography` component if `disabled={true}`. */\n disabled: {},\n /* Styles applied to the `icon` container element. */\n iconContainer: {\n flexShrink: 0, // Fix IE 11 issue\n display: 'flex',\n paddingRight: 8,\n '&$alternativeLabel': {\n paddingRight: 0\n }\n },\n /* Pseudo-class applied to the root and icon container and `Typography` if `alternativeLabel={true}`. */\n alternativeLabel: {},\n /* Styles applied to the container element which wraps `Typography` and `optional`. */\n labelContainer: {\n width: '100%'\n }\n})\n\nconst StepLabel = React.forwardRef(function StepLabel(props, ref) {\n const {\n // eslint-disable-next-line react/prop-types\n active = false,\n // eslint-disable-next-line react/prop-types\n alternativeLabel = false,\n children,\n classes,\n className,\n // eslint-disable-next-line react/prop-types\n completed = false,\n disabled = false,\n error = false,\n // eslint-disable-next-line react/prop-types\n expanded,\n icon,\n // eslint-disable-next-line react/prop-types\n last,\n optional,\n // eslint-disable-next-line react/prop-types\n orientation = 'horizontal',\n StepIconComponent: StepIconComponentProp,\n StepIconProps,\n ...other\n } = props\n\n let StepIconComponent = StepIconComponentProp\n\n return (\n <span\n className={clsx(\n classes.root,\n classes[orientation],\n {\n [classes.disabled]: disabled,\n [classes.alternativeLabel]: alternativeLabel,\n [classes.error]: error\n },\n className\n )}\n ref={ref}\n {...other}\n >\n {icon || StepIconComponent ? (\n <span\n className={clsx(classes.iconContainer, {\n [classes.alternativeLabel]: alternativeLabel\n })}\n >\n <StepIconComponent\n completed={completed}\n active={active}\n error={error}\n icon={icon}\n {...StepIconProps}\n />\n </span>\n ) : null}\n <span className={classes.labelContainer}>\n {children ? (\n <Typography\n variant='body2'\n component='span'\n display='block'\n className={clsx(classes.label, {\n [classes.alternativeLabel]: alternativeLabel,\n [classes.completed]: completed,\n [classes.active]: active,\n [classes.error]: error\n })}\n >\n {children}\n </Typography>\n ) : null}\n {optional}\n </span>\n </span>\n )\n})\n\nStepLabel.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * In most cases will simply be a string containing a title for the label.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Mark the step as disabled, will also disable the button if\n * `StepLabelButton` is a child of `StepLabel`. Is passed to child components.\n */\n disabled: PropTypes.bool,\n /**\n * Mark the step as failed.\n */\n error: PropTypes.bool,\n /**\n * Override the default label of the step icon.\n */\n icon: PropTypes.node,\n /**\n * The optional node to display.\n */\n optional: PropTypes.node,\n /**\n * The component to render in place of the [`StepIcon`](/api/step-icon/).\n */\n StepIconComponent: PropTypes.elementType,\n /**\n * Props applied to the [`StepIcon`](/api/step-icon/) element.\n */\n StepIconProps: PropTypes.object\n}\n\nStepLabel.muiName = 'StepLabel'\n\n/**\n * Explicit any export to avoid non-portable inferred React types in declaration output.\n * @type {any}\n */\nconst StepLabelExport = withStyles(styles, { name: 'MuiStepLabel' })(StepLabel)\n\nexport default StepLabelExport\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { makeStyles, withStyles } from '@material-ui/core/styles'\nimport clsx from 'clsx'\nimport Stepper from '@material-ui/core/Stepper'\nimport Step from '@material-ui/core/Step'\n// import StepLabel from '@material-ui/core/StepLabel';\nimport Check from '@material-ui/icons/esm/Check'\nimport StepConnector from '@material-ui/core/StepConnector'\nimport StepLabel from './StepLabel'\n\nconst QontoConnector = withStyles({\n alternativeLabel: {\n top: 10,\n left: 'calc(-50% + 16px)',\n right: 'calc(50% + 16px)'\n },\n active: {\n '& $line': {\n borderColor: '#09A58C'\n }\n },\n completed: {\n '& $line': {\n borderColor: '#09A58C'\n }\n },\n line: {\n borderColor: '#eaeaf0',\n borderTopWidth: 3,\n borderRadius: 1\n }\n})(StepConnector)\n\nconst useQontoStepIconStyles = makeStyles({\n root: {\n color: '#09A58C',\n display: 'flex',\n height: 22,\n alignItems: 'center'\n },\n active: {\n color: '#09A58C'\n },\n circle: {\n width: 16,\n height: 16,\n borderRadius: '50%',\n border: '2px solid currentColor'\n },\n completed: {\n color: '#09A58C',\n zIndex: 1,\n fontSize: 18\n },\n stepLabel: {\n display: 'none'\n },\n rootStepper: {\n background: 'blue'\n }\n})\n\nconst QontoStepIcon = (props) => {\n const classes = useQontoStepIconStyles()\n const { active, completed } = props\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.active]: active\n })}\n >\n {completed ? (\n <Check className={classes.completed} />\n ) : (\n <div className={classes.circle} />\n )}\n </div>\n )\n}\n\nQontoStepIcon.propTypes = {\n /**\n * Whether this step is active.\n */\n active: PropTypes.bool,\n /**\n * Mark the step as completed. Is passed to child components.\n */\n completed: PropTypes.bool\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%'\n },\n button: {\n marginRight: theme.spacing(1)\n },\n instructions: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n rootStep: {\n marginTop: 0\n }\n}))\n\n// function getSteps() {\n// return [\n// 'Select campaign settings',\n// 'Create an ad group',\n// 'Create an ad',\n// 'another',\n// ];\n// }\n\nexport const AmbientStepper = ({ activeStep, steps, orientation }) => {\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <Stepper\n style={{ background: 'transparent', padding: 0 }}\n classes={{ root: classes.rootStepper }}\n alternativeLabel\n activeStep={activeStep}\n connector={<QontoConnector />}\n orietation={orientation}\n >\n {steps.map((label) => (\n <Step classes={{ root: classes.rootStep }} key={label}>\n <StepLabel\n className={classes.stepLabel}\n StepIconComponent={QontoStepIcon}\n >\n <span style={{ fontSize: 14 }}>{label}</span>\n </StepLabel>\n </Step>\n ))}\n </Stepper>\n </div>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"AmbientStepper-D4xlTcaX.js","names":["StepLabel","React","withStyles","StepConnector","makeStyles","Stepper","Step","StepLabel"],"sources":["../src/UI/inputs/menus/AmbientStepper/StepLabel.jsx","../src/UI/inputs/menus/AmbientStepper/AmbientStepper.jsx"],"sourcesContent":["import * as React from 'react'\nimport PropTypes from 'prop-types'\nimport clsx from 'clsx'\nimport { withStyles, Typography } from '@material-ui/core'\n\nexport const styles = (theme) => ({\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n alignItems: 'center',\n '&$alternativeLabel': {\n flexDirection: 'column'\n },\n '&$disabled': {\n cursor: 'default'\n }\n },\n /* Styles applied to the root element if `orientation=\"horizontal\"`. */\n horizontal: {},\n /* Styles applied to the root element if `orientation=\"vertical\"`. */\n vertical: {},\n /* Styles applied to the `Typography` component which wraps `children`. */\n label: {\n color: theme.palette.text.secondary,\n '&$active': {\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n '&$completed': {\n color: theme.palette.text.primary,\n fontWeight: 500\n },\n '&$alternativeLabel': {\n textAlign: 'center'\n // marginTop: 16,\n },\n '&$error': {\n color: theme.palette.error.main\n }\n },\n /* Pseudo-class applied to the `Typography` component if `active={true}`. */\n active: {},\n /* Pseudo-class applied to the `Typography` component if `completed={true}`. */\n completed: {},\n /* Pseudo-class applied to the root element and `Typography` component if `error={true}`. */\n error: {},\n /* Pseudo-class applied to the root element and `Typography` component if `disabled={true}`. */\n disabled: {},\n /* Styles applied to the `icon` container element. */\n iconContainer: {\n flexShrink: 0, // Fix IE 11 issue\n display: 'flex',\n paddingRight: 8,\n '&$alternativeLabel': {\n paddingRight: 0\n }\n },\n /* Pseudo-class applied to the root and icon container and `Typography` if `alternativeLabel={true}`. */\n alternativeLabel: {},\n /* Styles applied to the container element which wraps `Typography` and `optional`. */\n labelContainer: {\n width: '100%'\n }\n})\n\nconst StepLabel = React.forwardRef(function StepLabel(props, ref) {\n const {\n // eslint-disable-next-line react/prop-types\n active = false,\n // eslint-disable-next-line react/prop-types\n alternativeLabel = false,\n children,\n classes,\n className,\n // eslint-disable-next-line react/prop-types\n completed = false,\n disabled = false,\n error = false,\n // eslint-disable-next-line react/prop-types\n expanded,\n icon,\n // eslint-disable-next-line react/prop-types\n last,\n optional,\n // eslint-disable-next-line react/prop-types\n orientation = 'horizontal',\n StepIconComponent: StepIconComponentProp,\n StepIconProps,\n ...other\n } = props\n\n let StepIconComponent = StepIconComponentProp\n\n return (\n <span\n className={clsx(\n classes.root,\n classes[orientation],\n {\n [classes.disabled]: disabled,\n [classes.alternativeLabel]: alternativeLabel,\n [classes.error]: error\n },\n className\n )}\n ref={ref}\n {...other}\n >\n {icon || StepIconComponent ? (\n <span\n className={clsx(classes.iconContainer, {\n [classes.alternativeLabel]: alternativeLabel\n })}\n >\n <StepIconComponent\n completed={completed}\n active={active}\n error={error}\n icon={icon}\n {...StepIconProps}\n />\n </span>\n ) : null}\n <span className={classes.labelContainer}>\n {children ? (\n <Typography\n variant='body2'\n component='span'\n display='block'\n className={clsx(classes.label, {\n [classes.alternativeLabel]: alternativeLabel,\n [classes.completed]: completed,\n [classes.active]: active,\n [classes.error]: error\n })}\n >\n {children}\n </Typography>\n ) : null}\n {optional}\n </span>\n </span>\n )\n})\n\nStepLabel.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * In most cases will simply be a string containing a title for the label.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Mark the step as disabled, will also disable the button if\n * `StepLabelButton` is a child of `StepLabel`. Is passed to child components.\n */\n disabled: PropTypes.bool,\n /**\n * Mark the step as failed.\n */\n error: PropTypes.bool,\n /**\n * Override the default label of the step icon.\n */\n icon: PropTypes.node,\n /**\n * The optional node to display.\n */\n optional: PropTypes.node,\n /**\n * The component to render in place of the [`StepIcon`](/api/step-icon/).\n */\n StepIconComponent: PropTypes.elementType,\n /**\n * Props applied to the [`StepIcon`](/api/step-icon/) element.\n */\n StepIconProps: PropTypes.object\n}\n\nStepLabel.muiName = 'StepLabel'\n\n/**\n * Explicit any export to avoid non-portable inferred React types in declaration output.\n * @type {any}\n */\nconst StepLabelExport = withStyles(styles, { name: 'MuiStepLabel' })(StepLabel)\n\nexport default StepLabelExport\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { makeStyles, withStyles } from '@material-ui/core/styles'\nimport clsx from 'clsx'\nimport Stepper from '@material-ui/core/Stepper'\nimport Step from '@material-ui/core/Step'\n// import StepLabel from '@material-ui/core/StepLabel';\nimport Check from '@material-ui/icons/esm/Check'\nimport StepConnector from '@material-ui/core/StepConnector'\nimport StepLabel from './StepLabel'\n\nconst QontoConnector = withStyles({\n alternativeLabel: {\n top: 10,\n left: 'calc(-50% + 16px)',\n right: 'calc(50% + 16px)'\n },\n active: {\n '& $line': {\n borderColor: '#09A58C'\n }\n },\n completed: {\n '& $line': {\n borderColor: '#09A58C'\n }\n },\n line: {\n borderColor: '#eaeaf0',\n borderTopWidth: 3,\n borderRadius: 1\n }\n})(StepConnector)\n\nconst useQontoStepIconStyles = makeStyles({\n root: {\n color: '#09A58C',\n display: 'flex',\n height: 22,\n alignItems: 'center'\n },\n active: {\n color: '#09A58C'\n },\n circle: {\n width: 16,\n height: 16,\n borderRadius: '50%',\n border: '2px solid currentColor'\n },\n completed: {\n color: '#09A58C',\n zIndex: 1,\n fontSize: 18\n },\n stepLabel: {\n display: 'none'\n },\n rootStepper: {\n background: 'blue'\n }\n})\n\nconst QontoStepIcon = (props) => {\n const classes = useQontoStepIconStyles()\n const { active, completed } = props\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.active]: active\n })}\n >\n {completed ? (\n <Check className={classes.completed} />\n ) : (\n <div className={classes.circle} />\n )}\n </div>\n )\n}\n\nQontoStepIcon.propTypes = {\n /**\n * Whether this step is active.\n */\n active: PropTypes.bool,\n /**\n * Mark the step as completed. Is passed to child components.\n */\n completed: PropTypes.bool\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%'\n },\n button: {\n marginRight: theme.spacing(1)\n },\n instructions: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n rootStep: {\n marginTop: 0\n }\n}))\n\n// function getSteps() {\n// return [\n// 'Select campaign settings',\n// 'Create an ad group',\n// 'Create an ad',\n// 'another',\n// ];\n// }\n\nexport const AmbientStepper = ({ activeStep, steps, orientation }) => {\n const classes = useStyles()\n\n return (\n <div className={classes.root}>\n <Stepper\n style={{ background: 'transparent', padding: 0 }}\n classes={{ root: classes.rootStepper }}\n alternativeLabel\n activeStep={activeStep}\n connector={<QontoConnector />}\n orietation={orientation}\n >\n {steps.map((label) => (\n <Step classes={{ root: classes.rootStep }} key={label}>\n <StepLabel\n className={classes.stepLabel}\n StepIconComponent={QontoStepIcon}\n >\n <span style={{ fontSize: 14 }}>{label}</span>\n </StepLabel>\n </Step>\n ))}\n </Stepper>\n </div>\n )\n}\n"],"mappings":"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"}
@@ -7,4 +7,4 @@ const ClientSideUdpGrid = (props) => {
7
7
  //#endregion
8
8
  export { ClientSideUdpGrid as t };
9
9
 
10
- //# sourceMappingURL=ClientSideUdpGrid-DwMTC1Ee.js.map
10
+ //# sourceMappingURL=ClientSideUdpGrid-MLjNH6s5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSideUdpGrid-DwMTC1Ee.js","names":[],"sources":["../src/UI/templates/newGrid/ClientSideUdpGrid.jsx"],"sourcesContent":["import React from 'react'\nimport { ClientSideGrid } from 'udp-react-stencil-component-library'\n\nexport const ClientSideUdpGrid = (props) => {\n\n return (\n <div >\n <ClientSideGrid {...props}/>\n </div>\n )\n}\n"],"mappings":";;;AAGA,MAAa,qBAAqB,UAAU;AAE1C,QACC,sBAAA,cAAC,OAAA,MACE,sBAAA,cAAC,gBAAmB,MAAQ,CACzB"}
1
+ {"version":3,"file":"ClientSideUdpGrid-MLjNH6s5.js","names":[],"sources":["../src/UI/templates/newGrid/ClientSideUdpGrid.jsx"],"sourcesContent":["import React from 'react'\nimport { ClientSideGrid } from 'udp-react-stencil-component-library'\n\nexport const ClientSideUdpGrid = (props) => {\n\n return (\n <div >\n <ClientSideGrid {...props}/>\n </div>\n )\n}\n"],"mappings":";;;AAGA,MAAa,qBAAqB,UAAU;AAE1C,QACC,sBAAA,cAAC,OAAA,MACE,sBAAA,cAAC,gBAAmB,MAAQ,CACzB"}
@@ -133,7 +133,7 @@ const CrudForm = (props) => {
133
133
  const { handleErrorSnackbar } = useHandleAxiosSnackbar();
134
134
  const primaryKeyValues = useMemo(() => getPrimaryKeyValues(entityAttributes, crudTableEditionData), [entityAttributes, crudTableEditionData]);
135
135
  const getEntityFull = useCallback(async () => {
136
- if (!promotedEntity?.unityBaseGetFullMethod?.apiMethodId || !promotedEntity?.unityBaseUpdateMethod?.pathParameters) return null;
136
+ if (!primaryKeyValues || !primaryKeyValues.length || !promotedEntity?.unityBaseGetFullMethod?.apiMethodId || !promotedEntity?.unityBaseUpdateMethod?.pathParameters) return null;
137
137
  const pathObject = getPathObject(promotedEntity.unityBaseUpdateMethod.pathParameters, primaryKeyValues);
138
138
  let data = { requestBody: {} };
139
139
  if (Array.isArray(pathObject)) pathObject.forEach((po) => {
@@ -344,4 +344,4 @@ CrudForm.propTypes = {
344
344
  //#endregion
345
345
  export { UdpCrudFormFields as n, CrudForm as t };
346
346
 
347
- //# sourceMappingURL=CrudForm-CuDrVVOL.js.map
347
+ //# sourceMappingURL=CrudForm-BsZrRTVc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CrudForm-BsZrRTVc.js","names":["Field","Form"],"sources":["../src/UI/forms/UdpCrudFormFields.jsx","../src/UI/forms/CrudForm.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useMemo, useEffect } from 'react';\nimport { Field } from '../../utilities/form';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { FluentTextFieldAutoComplete } from '../inputs/textField/FluentTextFieldAutoComplete';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useForm } from 'react-final-form';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { TagEnums } from '../../enums/tagEnums';\nimport { ConfigService } from '../../configService';\n\nexport const UdpCrudFormFields = (props) => {\n const { entityName, formData, existingTagAssociation } = props;\n const form = useForm();\n const user = useUser();\n const sanitizedEntityName = getSanitizedName(entityName);\n const IS_FOR_LOOKUP =\n sanitizedEntityName?.toLowerCase() === UdpEnums.Udp_Lookup.toLowerCase();\n const IS_FOR_TAGS = ![\n TagEnums.TagAssociationSanitizedName.toLowerCase(),\n TagEnums.TagSanitizedName.toLowerCase(),\n TagEnums.TagTypeSanitizedName.toLowerCase()\n ].includes(sanitizedEntityName?.toLowerCase());\n\n const { data: udpObjectInfoEntity } = usePromotedMethodEntity(\n 'udpObjectInfo',\n true\n );\n const { data: udpTagEntity } = usePromotedMethodEntity('udpTag', true);\n\n const [{ data: udpObjectInfoList }, fetchUdpObjectInfoList] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${udpObjectInfoEntity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const [{ data: udpTagList }, fetchUdpTagList] = useAxiosMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${udpTagEntity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const initialTagValues = useMemo(() => {\n let existingTagIds = existingTagAssociation?.map((tag) => tag.id);\n let tagValues = udpTagList\n ? udpTagList.filter((tag) => existingTagIds.includes(tag.id))\n : [];\n return tagValues;\n }, [existingTagAssociation, udpTagList]);\n\n const initialDomainNameValue = useMemo(() => {\n let domainName = formData?.domainName;\n if (domainName && udpObjectInfoList) {\n domainName = getSanitizedName(domainName);\n return udpObjectInfoList.find(\n (updObjectInfo) => updObjectInfo.sanitizedName === domainName\n );\n }\n return '';\n }, [formData, udpObjectInfoList]);\n\n const lookupFields = useMemo(() => {\n return (\n <Field\n component={FluentTextFieldAutoComplete}\n initialValue={initialDomainNameValue}\n label={'Domain Name'}\n name={'domainName'}\n fullWidth\n variant='outlined'\n margin='normal'\n options={udpObjectInfoList || []}\n optionKey={'sanitizedName'}\n style={{ marginTop: 8 }}\n />\n );\n }, [udpObjectInfoList, initialDomainNameValue]);\n\n const tagFields = useMemo(() => {\n return (\n <Field\n component={FluentTextFieldAutoComplete}\n initialValue={initialTagValues}\n isMultiple\n label={'Tags'}\n name={'udpTags'}\n fullWidth\n variant='outlined'\n margin='normal'\n options={udpTagList || []}\n optionKey={'name'}\n style={{ marginTop: 8 }}\n />\n );\n }, [udpTagList, initialTagValues]);\n\n useEffect(() => {\n if (udpObjectInfoEntity?.unityBaseGetAllMethod && IS_FOR_LOOKUP) {\n fetchUdpObjectInfoList({ data: {} });\n }\n }, [udpObjectInfoEntity, fetchUdpObjectInfoList, IS_FOR_LOOKUP]);\n\n useEffect(() => {\n form.change('domainName', initialDomainNameValue);\n }, [form, initialDomainNameValue]);\n\n useEffect(() => {\n form.change('udpTags', initialTagValues);\n }, [form, initialTagValues]);\n\n useEffect(() => {\n if (udpTagEntity?.unityBaseGetAllMethod) {\n fetchUdpTagList({ data: {} });\n }\n }, [udpTagEntity, fetchUdpTagList]);\n\n return (\n <>\n {IS_FOR_LOOKUP ? lookupFields : null}\n {IS_FOR_TAGS ? tagFields : null}\n </>\n );\n};\n\nUdpCrudFormFields.propTypes = {\n /**\n * Entity name for promoted entity\n */\n entityName: PropTypes.string\n};\n","import { makeStyles, Typography } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { Form, FormButtons, SubmitButton } from '../../utilities/form';\nimport { useCrudActions } from '../../hooks/crudActions';\nimport { toLowerFirstChar } from '../../utilities/input/StringUtilities';\nimport useDefaultFormValues from '../../utilities/crud/useDefaultFormValues';\nimport {\n getPathObject,\n getPrimaryKeyValues\n} from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport {\n CardinalityTypeEnums,\n EntityAttributeEnums,\n UdpEnums\n} from '../../enums/unitySystemEnums';\nimport { UdpCrudFormFields } from './UdpCrudFormFields';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { executeQueryWithParameters } from '../../udp/utilities/methodUtils';\nimport { differenceWith } from 'lodash';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { TagEnums } from '../../enums/tagEnums';\n\nconst useStyles = makeStyles((theme) => ({\n actions: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n flexGrow: 1\n },\n subject: {\n marginLeft: theme.spacing(1),\n display: 'flex',\n flexDirection: 'row',\n flexGrow: 1\n },\n switchRoot: {\n marginLeft: theme.spacing(1)\n },\n input: {\n height: 34,\n padding: 0\n },\n formTextInput: {\n fontSize: 13\n },\n labelRoot: {\n fontSize: 13\n }\n}));\n\nexport const CrudForm = (props) => {\n const {\n entityAttributes,\n udpFieldInfos,\n foreignKeyData,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n isNewEntry,\n entityData,\n entityName\n } = props;\n const { renderInputByFieldType } = useCrudActions();\n\n const [fkData, setFkData] = useState(\n foreignKeyData?.map((fkd) => ({ ...fkd }))\n );\n const { data: promotedEntity } = usePromotedMethodEntity(entityName);\n const { data: udpTagAssocPromotedEntity } = usePromotedMethodEntity(\n 'UdpTagAssociation',\n true\n );\n const { defaultFormValues } = useDefaultFormValues(entityAttributes);\n const [crudTableFormData, setCrudTableFormData] = useState(\n crudTableEditionData || defaultFormValues\n );\n const [existingTagAssociation, setExistingTagAssociation] = useState([]);\n const classes = useStyles();\n\n const { handleErrorSnackbar } = useHandleAxiosSnackbar();\n\n const primaryKeyValues = useMemo(\n () => getPrimaryKeyValues(entityAttributes, crudTableEditionData),\n [entityAttributes, crudTableEditionData]\n );\n\n const getEntityFull = useCallback(async () => {\n if (\n !primaryKeyValues ||\n !primaryKeyValues.length ||\n !promotedEntity?.unityBaseGetFullMethod?.apiMethodId ||\n !promotedEntity?.unityBaseUpdateMethod?.pathParameters\n ) {\n return null;\n }\n\n const pathObject = getPathObject(\n promotedEntity.unityBaseUpdateMethod.pathParameters,\n primaryKeyValues\n );\n\n let data = { requestBody: {} };\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject, requestBody: {} };\n }\n\n const response = await executeQueryWithParameters(\n { data },\n promotedEntity.unityBaseGetFullMethod.apiMethodId\n ).catch((res) => {\n console.error(res);\n });\n\n if (response?.status === 200) {\n return response.data;\n } else {\n console.error(\n `Could not retrieve full data for ${promotedEntity?.entityName}`\n );\n }\n return null;\n }, [promotedEntity, primaryKeyValues]);\n\n // we'll need this to determine which property names are used as keys for many-to-many\n const manyToManyPropertyList = useMemo(() => {\n if (!entityAttributes?.length) return [];\n const mtmPropertyList = new Set();\n entityAttributes.forEach((attr) => {\n if (attr?.extendedProperties?.childEntity) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n attr.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.Many_To_Many &&\n attr.extendedProperties.childEntityAssoc.Keys.forEach((value, i) => {\n const name = value.split(',')[0];\n if (name) {\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n mtmPropertyList.add(name.toLowerCase());\n }\n });\n }\n });\n return mtmPropertyList;\n }, [entityAttributes]);\n\n const getJoiningObj = (schemaAttribute, ceAttributes) => {\n return ceAttributes.find(\n (ceAttr) =>\n Object.keys(ceAttr?.extendedProperties?.childEntityAssoc || {})\n .length &&\n ceAttr.extendedProperties.childEntityAssoc.Keys.find((a) => {\n const fieldId = a.split(',')[0];\n return (\n (/^[A-Z]*$/.test(fieldId)\n ? fieldId.toLowerCase()\n : toLowerFirstChar(fieldId)) ===\n toLowerFirstChar(schemaAttribute.name)\n );\n })\n );\n };\n\n const renderAttribute = useCallback(\n (schemaAttribute, fieldInfo) => {\n let render = !fieldInfo?.isIdentity;\n\n if (\n schemaAttribute?.extendedProperties?.identifier &&\n fieldInfo?.dataType === 'Guid'\n ) {\n render = false;\n }\n entityAttributes.every((schemaAttribute, index) => {\n const ceAttributes = entityAttributes.filter(\n (ea) =>\n ea.extendedProperties.childEntity &&\n ea.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.Many_To_Many &&\n ea.extendedProperties.childEntityAssoc.IsJoiningObject\n );\n\n if (getJoiningObj(schemaAttribute, ceAttributes)) {\n render = true;\n return false;\n }\n return true;\n });\n\n return render;\n },\n [entityAttributes]\n );\n\n // function that helps transform form data for entites like UdpLookup, UdpTagType, UdpShortcutContent\n const transformDataForUdpMaintenance = useCallback(\n (values) => {\n const sanitizedName = getSanitizedName(entityName?.toLowerCase());\n // Current entity to modify is a UdpLookup\n if (sanitizedName === UdpEnums.Udp_Lookup.toLowerCase()) {\n const attributeName = toLowerFirstChar(\n EntityAttributeEnums.Domain_Name\n );\n let domainName = values[attributeName];\n const modelNameSpaceStructure = domainName?.namespaceStructure?.model;\n const sanitizedName = domainName?.sanitizedName;\n values[\n toLowerFirstChar(EntityAttributeEnums.Is_Product_Lookup)\n ] = false;\n if (modelNameSpaceStructure) {\n values[\n attributeName\n ] = `${modelNameSpaceStructure}.Models.${sanitizedName}`;\n } else {\n values[attributeName] = '';\n }\n } else if (\n sanitizedName === TagEnums.TagTypeSanitizedName.toLowerCase()\n ) {\n values[toLowerFirstChar(EntityAttributeEnums.User_Defined)] = true;\n } else if (\n sanitizedName === UdpEnums.Udp_Shortcut_Content.toLowerCase()\n ) {\n values[\n toLowerFirstChar(EntityAttributeEnums.Is_Product_ShortcutContent)\n ] = false;\n }\n },\n [entityName]\n );\n\n const tagAssociationComparator = (ta1, ta2) => {\n return ta1?.id === ta2?.id;\n };\n\n // Callback to handle associating tags to business objects\n const handleTagAssociation = useCallback(\n async (values, businessObjectKey) => {\n // Get the tagAssociation objects to delete\n const tagAssociationToDelete = differenceWith(\n existingTagAssociation,\n values?.udpTags,\n tagAssociationComparator\n );\n\n // Get the tagAssociation objects to create\n const tagAssociationToCreate = differenceWith(\n values?.udpTags,\n existingTagAssociation,\n tagAssociationComparator\n );\n\n const deleteTagAssociationApiMethod =\n udpTagAssocPromotedEntity?.unityBaseDeleteMethod;\n const createTagAssociationApiMethod =\n udpTagAssocPromotedEntity?.unityBaseCreateMethod;\n\n if (businessObjectKey) {\n if (deleteTagAssociationApiMethod) {\n const deletedPromises = [];\n tagAssociationToDelete.forEach((tagAssocToDelete) => {\n const data = {};\n data['{tagId}'] = tagAssocToDelete.id;\n data['{entityBusinessKey}'] = businessObjectKey;\n deletedPromises.push(\n executeQueryWithParameters(\n { data },\n deleteTagAssociationApiMethod.apiMethodId\n )\n );\n });\n\n await Promise.all(deletedPromises.map((p) => p.catch((e) => e))).then(\n (responses) => {\n if (responses.length !== deletedPromises.length) {\n console.warn(`Not all Tag Association deleted`);\n }\n }\n );\n } else {\n handleErrorSnackbar(\n null,\n 'Delete Tag Association Method Not Promoted'\n );\n }\n\n if (createTagAssociationApiMethod) {\n const createdPromises = [];\n tagAssociationToCreate.forEach((tagAssoc) => {\n const data = {\n requestBody: {\n tagId: tagAssoc.id,\n entityBusinessKey: businessObjectKey\n }\n };\n createdPromises.push(\n executeQueryWithParameters(\n { data },\n createTagAssociationApiMethod.apiMethodId\n )\n );\n });\n await Promise.all(createdPromises.map((p) => p.catch((e) => e))).then(\n (responses) => {\n responses.forEach((response) => {\n if (response.status === 200) {\n const entityBusinessKey = response.data.entityBusinessKey;\n const matchingTagAssociation = tagAssociationToCreate.find(\n (ta) => ta.value === entityBusinessKey\n );\n if (!matchingTagAssociation) {\n console.warn(\n `Tag Association not created for all file to entities`\n );\n }\n }\n });\n }\n );\n setExistingTagAssociation(values?.udpTags);\n } else {\n handleErrorSnackbar(\n null,\n 'Create Tag Association Method Not Promoted'\n );\n }\n }\n },\n [\n handleErrorSnackbar,\n existingTagAssociation,\n setExistingTagAssociation,\n udpTagAssocPromotedEntity\n ]\n );\n\n const handleSubmit = useCallback(\n async (values) => {\n let newTableData = {\n ...crudTableFormData,\n ...values\n };\n\n transformDataForUdpMaintenance(newTableData);\n\n const isNewRow = !crudTableEditionData;\n\n if (!isNewEntry) {\n // remove identifiers from object\n entityAttributes\n .filter((ea) => {\n const joiningObject = getJoiningObj(ea, entityAttributes);\n const fieldInfo = udpFieldInfos?.find(\n (fi) => fi?.name.toLowerCase() === ea?.name?.toLowerCase()\n );\n return (\n ea?.extendedProperties?.identifier &&\n fieldInfo?.isIdentity &&\n fieldInfo?.dataType !== 'Guid' &&\n (!joiningObject || joiningObject.extendedProperties?.childEntity)\n );\n })\n .forEach((ea) => {\n delete newTableData[ea.name];\n });\n }\n\n // transform values by fkData before creating/updating\n foreignKeyData.forEach((fkd) => {\n Object.keys(newTableData).forEach((key) => {\n if (key === fkd.fieldName) {\n const fkData = fkd.data.find(\n (d) => d.id === newTableData[key]?.id\n )?.id;\n if (fkData !== null) {\n newTableData[key] = fkData;\n }\n }\n });\n });\n\n let businessObjectKey = '';\n if (isNewRow) {\n if (onCreate) {\n const createdResponse = await onCreate(newTableData);\n if (createdResponse?.status === 200) {\n businessObjectKey = createdResponse?.data?.businessObjectKey;\n }\n }\n } else {\n if (onUpdate) {\n await onUpdate(newTableData, primaryKeyValues);\n businessObjectKey = newTableData?.businessObjectKey;\n }\n }\n if (businessObjectKey && values?.udpTags) {\n handleTagAssociation(values, businessObjectKey);\n }\n closeSideSheet && closeSideSheet();\n },\n [\n crudTableFormData,\n transformDataForUdpMaintenance,\n crudTableEditionData,\n isNewEntry,\n foreignKeyData,\n closeSideSheet,\n entityAttributes,\n onCreate,\n onUpdate,\n primaryKeyValues,\n handleTagAssociation\n ]\n );\n\n const shouldAttributeRenderField = useCallback(\n (schemaAttribute) => {\n const sanitizedName = getSanitizedName(entityName?.toLowerCase());\n if (\n sanitizedName === TagEnums.TagTypeSanitizedName.toLowerCase() &&\n schemaAttribute?.name ===\n toLowerFirstChar(EntityAttributeEnums.User_Defined)\n ) {\n return false;\n } else if (\n sanitizedName === UdpEnums.Udp_Shortcut_Content.toLowerCase() &&\n schemaAttribute?.name ===\n toLowerFirstChar(EntityAttributeEnums.Is_Product_ShortcutContent)\n ) {\n return false;\n } else if (\n sanitizedName === UdpEnums.Udp_Lookup.toLowerCase() &&\n schemaAttribute?.name ===\n toLowerFirstChar(EntityAttributeEnums.Is_Product_Lookup)\n ) {\n return false;\n }\n\n return true;\n },\n [entityName]\n );\n\n useEffect(() => {\n const getFullData = async () => {\n const fullEntityData = await getEntityFull();\n if (fullEntityData) {\n const filteredTags = fullEntityData.udpTags?.map(\n (tagAssoc) => tagAssoc.udpTagAssociationUdpTag\n );\n setExistingTagAssociation(filteredTags || []);\n }\n };\n if (promotedEntity && !isNewEntry) {\n getFullData();\n }\n }, [promotedEntity, getEntityFull, isNewEntry]);\n\n useEffect(() => {\n if (foreignKeyData) {\n setFkData(foreignKeyData?.map((fkd) => ({ ...fkd })));\n }\n }, [foreignKeyData]);\n\n return (\n <Form onSubmit={handleSubmit}>\n <div>\n {entityAttributes?.map((schemaAttribute, index) => {\n const fieldInfo = udpFieldInfos?.find(\n (fi) =>\n fi?.name.toLowerCase() === schemaAttribute?.name?.toLowerCase()\n );\n // If the field is an identity and is Updating form, we will make the field readOnly\n if (fieldInfo?.isPrimaryKey && !isNewEntry) {\n schemaAttribute.disabled = true;\n }\n if (fieldInfo?.isPrimaryKey && isNewEntry && !fieldInfo?.isIdentity) {\n schemaAttribute.disabled = false;\n }\n if (!shouldAttributeRenderField(schemaAttribute)) {\n return null;\n }\n return (\n renderAttribute(schemaAttribute, fieldInfo) && (\n <React.Fragment key={`${schemaAttribute.name}-${index}`}>\n <Typography variant='subtitle2' style={{ marginTop: 8 }}>\n {schemaAttribute.friendlyName}\n </Typography>\n {renderInputByFieldType(\n schemaAttribute,\n index,\n entityAttributes,\n fieldInfo,\n fkData,\n setFkData,\n crudTableFormData,\n classes,\n isNewEntry,\n entityData,\n manyToManyPropertyList\n )}\n </React.Fragment>\n )\n );\n })}\n <UdpCrudFormFields\n entityName={entityName}\n formData={crudTableFormData}\n existingTagAssociation={existingTagAssociation}\n />\n </div>\n\n <FormButtons>\n <SubmitButton\n id='udpRecord-CrudForm-Submit'\n udprecordid='udpRecord-CrudForm-Submit'\n variant='contained'\n color='secondary'\n disablePristine={false}\n disabled={false}\n style={{ marginTop: 15 }}\n >\n Save\n </SubmitButton>\n </FormButtons>\n </Form>\n );\n};\n\nCrudForm.propTypes = {\n /**\n * Entity attributes for selected entity within catalog\n */\n entityAttributes: PropTypes.array,\n /**\n * Foreign key data for selected entity within catalog\n */\n foreignKeyData: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { t as useUser } from "./useUser-GVq--Ecx.js";
4
4
  import { t as LayoutUnit } from "./LayoutUnit-9gyT4p3T.js";
5
5
  import { t as useAxiosGet } from "./useAxiosGet-CRKIOaCC.js";
6
6
  import { PageContainer } from "./page/PageContainer/index.js";
7
- import { t as CrudForm } from "./CrudForm-CuDrVVOL.js";
7
+ import { t as CrudForm } from "./CrudForm-BsZrRTVc.js";
8
8
  import React, { useMemo } from "react";
9
9
  import { Divider, makeStyles } from "@material-ui/core";
10
10
  import PropTypes from "prop-types";
@@ -115,4 +115,4 @@ CrudTableSidePanel.propTypes = {
115
115
  //#endregion
116
116
  export { UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE as n, CrudTableSidePanel as t };
117
117
 
118
- //# sourceMappingURL=CrudTableSidePanel-Co5Bn9h3.js.map
118
+ //# sourceMappingURL=CrudTableSidePanel-DJqCvpqJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CrudTableSidePanel-Co5Bn9h3.js","names":[],"sources":["../src/maintenanceEngine/entityAttributeActions.js","../src/maintenanceEngine/crudBrowser/CrudTableSidePanel.jsx"],"sourcesContent":["export const UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE = [\n 'businessObjectKey',\n 'clusterId',\n 'data',\n 'domainName'\n];\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { CrudForm } from '../../UI/forms/CrudForm';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { PageContainer } from '../../page/PageContainer';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE } from '../entityAttributeActions';\nimport { ConfigService } from '../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n divider: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst FIELD_NUMBER = 10;\n\nexport const CrudTableSidePanel = (props) => {\n const {\n entityAttributes,\n udpFieldInfos,\n foreignKeyData,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n isNewEntry,\n entityData,\n entityName\n } = props;\n const user = useUser();\n const classes = useStyles();\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n // LAA UNT-3026: Remove businessObjectKey and ignoreLoggingTransactions field from the side panel crud form\n const filteredEntityAttributes = useMemo(() => {\n if (entityName?.toLowerCase().includes(UdpEnums.Udp_Lookup.toLowerCase())) {\n return entityAttributes?.filter(\n (attr) => !UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE.includes(attr.name)\n );\n }\n return entityAttributes?.filter(\n (attr) =>\n attr.name !== 'businessObjectKey' &&\n attr.name !== 'ignoreLoggingTransactions'\n );\n }, [entityAttributes, entityName]);\n\n const sideSheetContent = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={pageId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n entityAttributes: filteredEntityAttributes,\n entityData: entityData,\n entityName: entityName,\n foreignKeyData: foreignKeyData,\n isNewEntry: isNewEntry,\n udpFieldInfos: udpFieldInfos,\n nodeObj: crudTableEditionData,\n setSideSheetWidth: setSideSheetWidth,\n setSideSheetButtonLabel: setSideSheetButtonLabel,\n setSideSheetOnSubmit: setSideSheetOnSubmit,\n closeSideSheet: closeSideSheet,\n setSideSheetProps: setSideSheetProps,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <>\n <CrudForm\n entityAttributes={filteredEntityAttributes}\n udpFieldInfos={udpFieldInfos}\n foreignKeyData={foreignKeyData}\n crudTableEditionData={crudTableEditionData}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n isNewEntry={isNewEntry}\n entityData={entityData}\n entityName={entityName}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n filteredEntityAttributes,\n foreignKeyData,\n isNewEntry,\n entityData,\n classes,\n entityName,\n udpFieldInfos,\n crudTableEditionData\n ]);\n\n return (\n <div>\n {loadingPage ? (\n <>\n {skeleton.map((sk) => sk)}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n sideSheetContent\n )}\n </div>\n );\n};\n\nCrudTableSidePanel.propTypes = {\n /**\n * Entity attributes for selected entity within catalog\n */\n entityAttributes: PropTypes.array,\n /**\n * Foreign key data for selected entity within catalog\n */\n foreignKeyData: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA,MAAa,uCAAuC;CAClD;CACA;CACA;CACA;CACD;;;ACUD,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM,EAAE;CACR,SAAS,EACP,WAAW,MAAM,QAAQ,EAAE,EAC5B;CACF,EAAE;AAEH,MAAM,eAAe;AAErB,MAAa,sBAAsB,UAAU;CAC3C,MAAM,EACJ,kBACA,eACA,gBACA,sBACA,gBACA,UACA,UACA,QACA,mBACA,yBACA,sBACA,mBACA,YACA,YACA,eACE;CACJ,MAAM,OAAO,SAAS;CACtB,MAAM,UAAU,WAAW;CAE3B,MAAM,CAAC,EAAE,MAAM,MAAM,SAAS,iBAAiB,YAC7C,cAAc,gBACd,QAAQ,UACR,EAAE,EACF,CAAC,CAAC,CAAC,QACH,MACD;CAED,MAAM,WAAW,cAAc;EAC7B,MAAM,cAAc,EAAE;AACtB,OAAK,IAAI,IAAI,GAAG,IAAI,cAAc,IAChC,aAAY,KACV,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAAC,UAAD;GAAU,KAAK;GAAG,SAAQ;GAAO,WAAW,QAAQ;GAAY,CAAA,EAChE,sBAAA,cAAC,YAAD,EAAY,MAAK,OAAQ,CAAA,CACxB,CACJ;AAEH,SAAO;IACN,CAAC,QAAQ,CAAC;CAGb,MAAM,2BAA2B,cAAc;AAC7C,MAAI,YAAY,aAAa,CAAC,SAAS,SAAS,WAAW,aAAa,CAAC,CACvE,QAAO,kBAAkB,QACtB,SAAS,CAAC,qCAAqC,SAAS,KAAK,KAAK,CACpE;AAEH,SAAO,kBAAkB,QACtB,SACC,KAAK,SAAS,uBACd,KAAK,SAAS,4BACjB;IACA,CAAC,kBAAkB,WAAW,CAAC;CAElC,MAAM,mBAAmB,cAAc;AACrC,MAAI,KACF,QACE,sBAAA,cAAC,aAAD,EAAa,SAAS,cAwBR,EAvBZ,sBAAA,cAAC,eAAD;GACQ;GACN,KAAK;GACL,UAAU;GACV,cAAc;IACZ,QAAQ,MAAM;IACd,kBAAkB;IACN;IACA;IACI;IACJ;IACG;IACf,SAAS;IACU;IACM;IACH;IACN;IACG;IACT;IACA;IACX;GACD,gBAAgB;GAChB,CAAA,CACU;MAGhB,QACE,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAAC,UAAD;GACE,kBAAkB;GACH;GACC;GACM;GACN;GACN;GACA;GACE;GACA;GACA;GACZ,CAAA,EACF,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,SAElB,EADJ,sBAAA,cAAC,SAAA,KAAU,CACP,CACL;IAGN;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,sBAAA,cAAC,OAAA,MACE,cACC,sBAAA,cAAA,MAAA,UAAA,MACG,SAAS,KAAK,OAAO,GAAG,EACzB,sBAAA,cAAC,YAAD,EAAY,MAAK,MAAO,CAAA,EACxB,sBAAA,cAAC,UAAD;EAAU,SAAQ;EAAO,WAAW,QAAQ;EAAkB,CAAA,CAC7D,GAEH,iBAEE;;AAIV,mBAAmB,YAAY;CAI7B,kBAAkB,UAAU;CAI5B,gBAAgB,UAAU;CAI1B,sBAAsB,UAAU;CAIhC,gBAAgB,UAAU;CAI1B,UAAU,UAAU;CAIpB,UAAU,UAAU;CACrB"}
1
+ {"version":3,"file":"CrudTableSidePanel-DJqCvpqJ.js","names":[],"sources":["../src/maintenanceEngine/entityAttributeActions.js","../src/maintenanceEngine/crudBrowser/CrudTableSidePanel.jsx"],"sourcesContent":["export const UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE = [\n 'businessObjectKey',\n 'clusterId',\n 'data',\n 'domainName'\n];\n","import { Divider, makeStyles } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { CrudForm } from '../../UI/forms/CrudForm';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { PageContainer } from '../../page/PageContainer';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { LayoutUnit } from '../../layout/LayoutUnit';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE } from '../entityAttributeActions';\nimport { ConfigService } from '../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n divider: {\n marginTop: theme.spacing(2)\n }\n}));\n\nconst FIELD_NUMBER = 10;\n\nexport const CrudTableSidePanel = (props) => {\n const {\n entityAttributes,\n udpFieldInfos,\n foreignKeyData,\n crudTableEditionData,\n closeSideSheet,\n onCreate,\n onUpdate,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n isNewEntry,\n entityData,\n entityName\n } = props;\n const user = useUser();\n const classes = useStyles();\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${pageId}`,\n {},\n !!!pageId,\n false\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n // LAA UNT-3026: Remove businessObjectKey and ignoreLoggingTransactions field from the side panel crud form\n const filteredEntityAttributes = useMemo(() => {\n if (entityName?.toLowerCase().includes(UdpEnums.Udp_Lookup.toLowerCase())) {\n return entityAttributes?.filter(\n (attr) => !UDP_LOOKUP_ENTITY_ATTRIBUTES_TO_HIDE.includes(attr.name)\n );\n }\n return entityAttributes?.filter(\n (attr) =>\n attr.name !== 'businessObjectKey' &&\n attr.name !== 'ignoreLoggingTransactions'\n );\n }, [entityAttributes, entityName]);\n\n const sideSheetContent = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={pageId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n entityAttributes: filteredEntityAttributes,\n entityData: entityData,\n entityName: entityName,\n foreignKeyData: foreignKeyData,\n isNewEntry: isNewEntry,\n udpFieldInfos: udpFieldInfos,\n nodeObj: crudTableEditionData,\n setSideSheetWidth: setSideSheetWidth,\n setSideSheetButtonLabel: setSideSheetButtonLabel,\n setSideSheetOnSubmit: setSideSheetOnSubmit,\n closeSideSheet: closeSideSheet,\n setSideSheetProps: setSideSheetProps,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <>\n <CrudForm\n entityAttributes={filteredEntityAttributes}\n udpFieldInfos={udpFieldInfos}\n foreignKeyData={foreignKeyData}\n crudTableEditionData={crudTableEditionData}\n closeSideSheet={closeSideSheet}\n onCreate={onCreate}\n onUpdate={onUpdate}\n isNewEntry={isNewEntry}\n entityData={entityData}\n entityName={entityName}\n />\n <div className={classes.divider}>\n <Divider />\n </div>\n </>\n );\n }\n }, [\n page,\n user,\n pageId,\n setSideSheetWidth,\n setSideSheetButtonLabel,\n setSideSheetOnSubmit,\n setSideSheetProps,\n closeSideSheet,\n onCreate,\n onUpdate,\n filteredEntityAttributes,\n foreignKeyData,\n isNewEntry,\n entityData,\n classes,\n entityName,\n udpFieldInfos,\n crudTableEditionData\n ]);\n\n return (\n <div>\n {loadingPage ? (\n <>\n {skeleton.map((sk) => sk)}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n sideSheetContent\n )}\n </div>\n );\n};\n\nCrudTableSidePanel.propTypes = {\n /**\n * Entity attributes for selected entity within catalog\n */\n entityAttributes: PropTypes.array,\n /**\n * Foreign key data for selected entity within catalog\n */\n foreignKeyData: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA,MAAa,uCAAuC;CAClD;CACA;CACA;CACA;CACD;;;ACUD,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM,EAAE;CACR,SAAS,EACP,WAAW,MAAM,QAAQ,EAAE,EAC5B;CACF,EAAE;AAEH,MAAM,eAAe;AAErB,MAAa,sBAAsB,UAAU;CAC3C,MAAM,EACJ,kBACA,eACA,gBACA,sBACA,gBACA,UACA,UACA,QACA,mBACA,yBACA,sBACA,mBACA,YACA,YACA,eACE;CACJ,MAAM,OAAO,SAAS;CACtB,MAAM,UAAU,WAAW;CAE3B,MAAM,CAAC,EAAE,MAAM,MAAM,SAAS,iBAAiB,YAC7C,cAAc,gBACd,QAAQ,UACR,EAAE,EACF,CAAC,CAAC,CAAC,QACH,MACD;CAED,MAAM,WAAW,cAAc;EAC7B,MAAM,cAAc,EAAE;AACtB,OAAK,IAAI,IAAI,GAAG,IAAI,cAAc,IAChC,aAAY,KACV,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAAC,UAAD;GAAU,KAAK;GAAG,SAAQ;GAAO,WAAW,QAAQ;GAAY,CAAA,EAChE,sBAAA,cAAC,YAAD,EAAY,MAAK,OAAQ,CAAA,CACxB,CACJ;AAEH,SAAO;IACN,CAAC,QAAQ,CAAC;CAGb,MAAM,2BAA2B,cAAc;AAC7C,MAAI,YAAY,aAAa,CAAC,SAAS,SAAS,WAAW,aAAa,CAAC,CACvE,QAAO,kBAAkB,QACtB,SAAS,CAAC,qCAAqC,SAAS,KAAK,KAAK,CACpE;AAEH,SAAO,kBAAkB,QACtB,SACC,KAAK,SAAS,uBACd,KAAK,SAAS,4BACjB;IACA,CAAC,kBAAkB,WAAW,CAAC;CAElC,MAAM,mBAAmB,cAAc;AACrC,MAAI,KACF,QACE,sBAAA,cAAC,aAAD,EAAa,SAAS,cAwBR,EAvBZ,sBAAA,cAAC,eAAD;GACQ;GACN,KAAK;GACL,UAAU;GACV,cAAc;IACZ,QAAQ,MAAM;IACd,kBAAkB;IACN;IACA;IACI;IACJ;IACG;IACf,SAAS;IACU;IACM;IACH;IACN;IACG;IACT;IACA;IACX;GACD,gBAAgB;GAChB,CAAA,CACU;MAGhB,QACE,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAAC,UAAD;GACE,kBAAkB;GACH;GACC;GACM;GACN;GACN;GACA;GACE;GACA;GACA;GACZ,CAAA,EACF,sBAAA,cAAC,OAAD,EAAK,WAAW,QAAQ,SAElB,EADJ,sBAAA,cAAC,SAAA,KAAU,CACP,CACL;IAGN;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QACE,sBAAA,cAAC,OAAA,MACE,cACC,sBAAA,cAAA,MAAA,UAAA,MACG,SAAS,KAAK,OAAO,GAAG,EACzB,sBAAA,cAAC,YAAD,EAAY,MAAK,MAAO,CAAA,EACxB,sBAAA,cAAC,UAAD;EAAU,SAAQ;EAAO,WAAW,QAAQ;EAAkB,CAAA,CAC7D,GAEH,iBAEE;;AAIV,mBAAmB,YAAY;CAI7B,kBAAkB,UAAU;CAI5B,gBAAgB,UAAU;CAI1B,sBAAsB,UAAU;CAIhC,gBAAgB,UAAU;CAI1B,UAAU,UAAU;CAIpB,UAAU,UAAU;CACrB"}
@@ -1,23 +1,20 @@
1
1
  import { r as useAgGridApi } from "./AgTable-xIm2oyL5.js";
2
2
  import { t as findTermByType } from "./CrudBrowserUtilities-Dgz5SOHu.js";
3
- import { L as UdpEnums, m as LookupTypeIdEnums } from "./unitySystemEnums-BUY0inkk.js";
4
- import { t as useUser } from "./useUser-GVq--Ecx.js";
3
+ import { L as UdpEnums, f as LogicalSearchOperatorEnums, m as LookupTypeIdEnums } from "./unitySystemEnums-BUY0inkk.js";
5
4
  import { a as toTitleCase, i as toLowerFirstChar, o as toUpperFirstChar } from "./StringUtilities-Bzv0m-sX.js";
6
5
  import { r as getSanitizedName } from "./entityUtilities-B8W47TsH.js";
7
6
  import { o as SqlFilterOperators, r as getSearchObject } from "./SearchUtilities-R_GxvEKB.js";
8
7
  import { n as SideSheet } from "./SideSheet-D4d2kGY9.js";
9
8
  import { i as executeQueryWithParameters, t as executeQueryAdHoc } from "./methodUtils-By9gH938.js";
10
- import { n as useBuildEnvironment } from "./useBuildEnvironment-DsBqfGwR.js";
11
9
  import { t as usePromotedMethodEntity } from "./usePromotedMethodEntity-9XBDOuui.js";
12
- import { t as AmbientGridTemplate } from "./AmbientGridTemplate-Di10z8t3.js";
13
- import { t as ActionsRenderer } from "./ActionsRenderer-Cc5YRpvY.js";
10
+ import { t as FluentDialog } from "./FluentDialog-C5PIPKcM.js";
14
11
  import { t as useLookupsStore } from "./lookupsStore-Cs3HQrY0.js";
15
12
  import { t as useQueryExecutors } from "./useQueryExecutors-CEF6zs9s.js";
16
- import { t as SearchServiceDatasource } from "./SearchServiceDatasource-BaBbPgN0.js";
17
- import { t as CrudTableSidePanel } from "./CrudTableSidePanel-Co5Bn9h3.js";
18
- import React, { useCallback, useEffect, useMemo, useState } from "react";
13
+ import { t as SearchMethodUdpGrid } from "./SearchMethodUdpGrid-CjzATxvz.js";
14
+ import { t as CrudTableSidePanel } from "./CrudTableSidePanel-DJqCvpqJ.js";
15
+ import { t as ClientSideUdpGrid } from "./ClientSideUdpGrid-MLjNH6s5.js";
16
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
19
17
  import { useHistory } from "react-router-dom";
20
- import { AddIcon, ConfigurationSolidIcon, LookupEntitiesIcon } from "@fluentui/react-icons";
21
18
  import { cloneDeep } from "lodash";
22
19
  import { useTranslation } from "react-i18next";
23
20
  import { format } from "date-fns";
@@ -106,24 +103,32 @@ const defaultColActionsDef = {
106
103
  //#region src/dataBrowser/DataBrowserContainer.jsx
107
104
  const GRID_ID = "4be3be45-1930-4ab9-b7b7-0c0fa3e30490";
108
105
  const DataBrowserContainer = (props) => {
109
- const { entityData, actionList, onCreate, entityAttributes, foreignKeyData, isLoading, promotedEntity, setEntityData, apiMethod, isServerSide = false, setGridApi, filterElements, backToConfigPage, queryColumnsData, lookupsMap = {}, ...other } = props;
110
- const [isSheetOpen, setSheetOpen] = useState(false);
106
+ const { entityData, onCreate, onUpdate, onDelete, onLoadInquiryNode, entityAttributes, foreignKeyData, loading, promotedEntity, isServerSide = false, setGridApi, filterElements, backToConfigPage, queryColumnsData, lookupsMap = {}, ...other } = props;
107
+ const [dialogOpen, setDialogOpen] = useState(false);
108
+ const [sideSheetOpenState, setSideSheetOpenState] = useState({
109
+ add: false,
110
+ update: false
111
+ });
111
112
  const [sideSheetWidth, setSideSheetWidth] = useState(600);
112
- const [sideSheetButtonLabel, setSideSheetButtonLabel] = useState("");
113
- const [otherSideSheetProps, setOtherSideSheetProps] = useState({});
114
- const [sideSheetOnSubmit, setSideSheetOnSubmit] = useState(() => () => console.warn("onSubmit not set"));
115
- const [filterChipsArray, setFilterChipsArray] = useState([]);
113
+ const [, setSideSheetButtonLabel] = useState("");
114
+ const [, setOtherSideSheetProps] = useState({});
115
+ const [, setSideSheetOnSubmit] = useState(() => () => console.warn("onSubmit not set"));
116
+ const [, setFilterChipsArray] = useState([]);
116
117
  const [searchFilterElements, setSearchFilterElements] = useState(filterElements);
117
118
  const [entityUdpObjectInfo, setEntityUdpObjectInfo] = useState(null);
118
119
  const { t } = useTranslation();
119
120
  const history = useHistory();
120
- const user = useUser();
121
- const { gridApi, gridColumnApi, onGridReady } = useAgGridApi();
122
- const { executeQueryAdHocAndMapLookups, getCleanData } = useQueryExecutors();
121
+ const { gridApi } = useAgGridApi();
122
+ const { getCleanData } = useQueryExecutors();
123
123
  const lookupApiMethodId = useLookupsStore((state) => state.lookupApiMethodId);
124
- const buildEnv = useBuildEnvironment();
125
- const closeSheet = useCallback(() => {
126
- setSheetOpen(false);
124
+ const [selectedEntity, setSelectedEntity] = useState(null);
125
+ const gridApiRef = useRef(null);
126
+ const handleSideSheet = useCallback((type, open, selectedEntity) => {
127
+ setSelectedEntity(selectedEntity);
128
+ setSideSheetOpenState((prev) => ({
129
+ ...prev,
130
+ [type]: open
131
+ }));
127
132
  }, []);
128
133
  const { data: udpObjectInfoEntity } = usePromotedMethodEntity("udpObjectInfo", true);
129
134
  const entityName = useMemo(() => {
@@ -131,7 +136,7 @@ const DataBrowserContainer = (props) => {
131
136
  return promotedEntity.entityName || "";
132
137
  }, [promotedEntity]);
133
138
  const commonEntityName = useMemo(() => {
134
- if (!entityName || !entityUdpObjectInfo) return "";
139
+ if (!entityName && !entityUdpObjectInfo) return "";
135
140
  return toTitleCase(entityUdpObjectInfo?.properties?.displayName || getSanitizedName(entityName));
136
141
  }, [entityName, entityUdpObjectInfo]);
137
142
  const createApiMethodPageId = useMemo(() => {
@@ -142,19 +147,74 @@ const DataBrowserContainer = (props) => {
142
147
  if (backToConfigPage) actions.push({
143
148
  onClick: backToConfigPage,
144
149
  label: t("Back To Config"),
145
- icon: ConfigurationSolidIcon,
150
+ iconName: "settings",
146
151
  tooltip: t("Back To Config"),
147
152
  background: "transparent"
148
153
  });
149
154
  return actions;
150
155
  }, [backToConfigPage, t]);
156
+ const closeDialog = useCallback(() => {
157
+ setDialogOpen(false);
158
+ }, []);
159
+ const deleteDialogConfig = useMemo(() => {
160
+ return {
161
+ title: t("Delete"),
162
+ message: t("Are you sure you want to delete this row?"),
163
+ actionOne: closeDialog,
164
+ labelOne: t("Cancel"),
165
+ actionTwo: onDelete,
166
+ labelTwo: t("Confirm"),
167
+ loading: !!!foreignKeyData
168
+ };
169
+ }, [
170
+ closeDialog,
171
+ foreignKeyData,
172
+ onDelete,
173
+ t
174
+ ]);
175
+ const actionList = useMemo(() => {
176
+ if (!promotedEntity) return;
177
+ const actions = [{
178
+ id: 1,
179
+ title: promotedEntity?.unityBaseUpdateMethod ? t("Edit") : t("Edit Method Not Accessible"),
180
+ iconName: "edit",
181
+ handleOnClick: (e, params) => handleSideSheet("update", true, params?.data),
182
+ disabled: !!!promotedEntity?.unityBaseUpdateMethod
183
+ }, {
184
+ id: 2,
185
+ title: promotedEntity?.unityBaseDeleteMethod ? t("Delete") : t("Delete Method Not Accessible"),
186
+ iconName: "trashCan",
187
+ handleOnClick: () => setDialogOpen(true),
188
+ opens: "dialog",
189
+ disabled: !!!promotedEntity?.unityBaseDeleteMethod
190
+ }];
191
+ if (!!onLoadInquiryNode) actions.push({
192
+ id: 5,
193
+ title: t("Load to Tree"),
194
+ iconName: "migrateAlt",
195
+ handleOnClick: (value) => {
196
+ onLoadInquiryNode(getCleanData(value, lookupsMap));
197
+ },
198
+ loading: !!!foreignKeyData,
199
+ view: {}
200
+ });
201
+ return actions;
202
+ }, [
203
+ promotedEntity,
204
+ t,
205
+ onLoadInquiryNode,
206
+ handleSideSheet,
207
+ foreignKeyData,
208
+ getCleanData,
209
+ lookupsMap
210
+ ]);
151
211
  const virtualActions = useMemo(() => {
152
212
  return [{
153
213
  id: 3,
154
214
  title: t("Open Virtual Table"),
155
- icon: LookupEntitiesIcon,
215
+ iconName: "search",
156
216
  loading: !!!foreignKeyData,
157
- onClick: (value) => {
217
+ handleOnClick: (value) => {
158
218
  history.push({
159
219
  pathname: `/virtual/${value.id}`,
160
220
  search: `?entityName=${entityName}`,
@@ -190,51 +250,71 @@ const DataBrowserContainer = (props) => {
190
250
  jointActionList,
191
251
  queryColumnsData
192
252
  ]);
193
- const groupData = useMemo(() => {
194
- return columnDefs?.map((item) => {
195
- return {
196
- groupItem: item.field,
197
- label: item.headerName,
198
- value: item.field
199
- };
200
- });
201
- }, [columnDefs]);
202
- const SideOptionList = useMemo(() => /* @__PURE__ */ React.createElement(SideSheet, {
203
- open: isSheetOpen,
204
- onClose: closeSheet,
205
- title: `Add New ${commonEntityName}`,
206
- width: sideSheetWidth,
207
- buttonLabel: sideSheetButtonLabel,
208
- onSubmit: sideSheetOnSubmit,
209
- ...otherSideSheetProps
210
- }, /* @__PURE__ */ React.createElement(CrudTableSidePanel, {
253
+ const sideSheetList = useMemo(() => {
254
+ const data = getCleanData(entityData, lookupsMap);
255
+ return [{
256
+ open: sideSheetOpenState.add,
257
+ closeSheet: () => handleSideSheet("add", false),
258
+ title: `Add New ${commonEntityName}`,
259
+ width: sideSheetWidth,
260
+ children: /* @__PURE__ */ React.createElement(CrudTableSidePanel, {
261
+ entityAttributes,
262
+ foreignKeyData,
263
+ onCreate,
264
+ closeSideSheet: () => handleSideSheet("add", false),
265
+ pageId: createApiMethodPageId,
266
+ setSideSheetWidth,
267
+ setSideSheetButtonLabel,
268
+ setSideSheetOnSubmit,
269
+ setSideSheetProps: setOtherSideSheetProps,
270
+ isNewEntry: true,
271
+ entityData,
272
+ entityName
273
+ })
274
+ }, {
275
+ open: sideSheetOpenState.update,
276
+ closeSheet: () => handleSideSheet("update", false),
277
+ title: `Update ${commonEntityName}`,
278
+ width: 550,
279
+ children: /* @__PURE__ */ React.createElement(CrudTableSidePanel, {
280
+ entityAttributes,
281
+ foreignKeyData,
282
+ crudTableEditionData: selectedEntity,
283
+ onUpdate,
284
+ closeSideSheet: () => handleSideSheet("update", false),
285
+ closeSideSheetPropName: "closeSideSheet",
286
+ pageId: promotedEntity?.unityBaseUpdateMethod?.pageId,
287
+ isNewEntry: false,
288
+ entityData: data,
289
+ entityName
290
+ })
291
+ }];
292
+ }, [
293
+ commonEntityName,
294
+ createApiMethodPageId,
211
295
  entityAttributes,
212
- foreignKeyData,
213
- onCreate,
214
- closeSideSheet: closeSheet,
215
- pageId: createApiMethodPageId,
216
- setSideSheetWidth,
217
- setSideSheetButtonLabel,
218
- setSideSheetOnSubmit,
219
- setSideSheetProps: setOtherSideSheetProps,
220
- isNewEntry: true,
221
296
  entityData,
222
- entityName
223
- })), [
224
- isSheetOpen,
225
- closeSheet,
226
297
  entityName,
227
- sideSheetWidth,
228
- sideSheetButtonLabel,
229
- sideSheetOnSubmit,
230
- entityAttributes,
231
298
  foreignKeyData,
299
+ handleSideSheet,
232
300
  onCreate,
233
- createApiMethodPageId,
234
- entityData,
235
- otherSideSheetProps,
236
- commonEntityName
301
+ onUpdate,
302
+ promotedEntity,
303
+ selectedEntity,
304
+ sideSheetOpenState,
305
+ sideSheetWidth,
306
+ getCleanData,
307
+ lookupsMap
237
308
  ]);
309
+ const SideOptionList = useMemo(() => {
310
+ return sideSheetList.map((item, index) => /* @__PURE__ */ React.createElement(SideSheet, {
311
+ open: item.open,
312
+ onClose: item.closeSheet,
313
+ title: item.title,
314
+ width: item.width,
315
+ key: index
316
+ }, item.children));
317
+ }, [sideSheetList]);
238
318
  const getLookupResults = useCallback(async () => {
239
319
  if (!lookupsMap || !lookupApiMethodId) return null;
240
320
  const lookupId = Object.values(lookupsMap).find((item) => item.filterOn)?.value || "";
@@ -328,21 +408,7 @@ const DataBrowserContainer = (props) => {
328
408
  useEffect(() => {
329
409
  if (!gridApi) return;
330
410
  if (setGridApi) setGridApi(gridApi);
331
- if (promotedEntity && isServerSide && lookupsMap) {
332
- let datasource = SearchServiceDatasource(null, promotedEntity?.unityBaseSearchMethod?.apiMethodId, searchFilterElements, 1, executeQueryAdHocAndMapLookups, setEntityData, lookupsMap, false, getCleanData);
333
- gridApi?.setServerSideDatasource(datasource);
334
- }
335
- }, [
336
- gridApi,
337
- promotedEntity,
338
- setEntityData,
339
- setGridApi,
340
- isServerSide,
341
- searchFilterElements,
342
- executeQueryAdHocAndMapLookups,
343
- lookupsMap,
344
- getCleanData
345
- ]);
411
+ }, [gridApi, setGridApi]);
346
412
  useEffect(() => {
347
413
  const executeSearchForEntityUdpObjectInfo = async (apiMethodId, sanitizedEntityName) => {
348
414
  const response = await executeQueryAdHoc({ data: getSearchObject([{
@@ -357,39 +423,81 @@ const DataBrowserContainer = (props) => {
357
423
  };
358
424
  if (udpObjectInfoEntity?.unityBaseSearchMethod && entityName) executeSearchForEntityUdpObjectInfo(udpObjectInfoEntity?.unityBaseSearchMethod?.apiMethodId, getSanitizedName(entityName));
359
425
  }, [udpObjectInfoEntity, entityName]);
360
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(AmbientGridTemplate, {
426
+ const handleGridApiCallback = (api) => {
427
+ gridApiRef.current = api;
428
+ };
429
+ const gridHeaderConfig = useMemo(() => {
430
+ return {
431
+ title: commonEntityName,
432
+ primaryActionButton: {
433
+ label: t("Add"),
434
+ iconName: "add",
435
+ onClick: () => handleSideSheet("add", true, null)
436
+ },
437
+ secondaryActionButtons
438
+ };
439
+ }, [
440
+ commonEntityName,
441
+ handleSideSheet,
442
+ secondaryActionButtons,
443
+ t
444
+ ]);
445
+ const gridFunctions = useMemo(() => {
446
+ return [
447
+ { name: "agGridExport" },
448
+ { name: "agGridHideShowColumns" },
449
+ { name: "agGridSizeColumnsToFit" },
450
+ { name: "agGridAutoSizeColumns" },
451
+ { name: "openSavedViews" },
452
+ { name: "quickFilter" }
453
+ ];
454
+ }, []);
455
+ const gridOptions = useMemo(() => {
456
+ return {
457
+ pagination: true,
458
+ paginationPageSize: 20
459
+ };
460
+ }, []);
461
+ const searchMethodConfig = useMemo(() => {
462
+ const searchObject = getSearchObject(searchFilterElements, 1, null, false, LogicalSearchOperatorEnums.And);
463
+ return {
464
+ apiMethodId: promotedEntity?.unityBaseSearchMethod?.apiMethodId,
465
+ customSearchObject: searchObject
466
+ };
467
+ }, [promotedEntity, searchFilterElements]);
468
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, isServerSide && !!promotedEntity ? /* @__PURE__ */ React.createElement(SearchMethodUdpGrid, {
361
469
  gridId: GRID_ID,
362
- user,
363
- useNewHeader: true,
364
- api: gridApi,
365
- onGridReady,
366
- columnApi: gridColumnApi,
367
- apiMethod,
368
- title: commonEntityName,
369
- data: !isServerSide && formattedData,
470
+ searchMethodConfig,
370
471
  columnDefs,
371
- groupingData: groupData,
372
- onPrimaryActionClick: () => setSheetOpen && setSheetOpen(true),
373
- primaryActionLabel: t("Add"),
374
- primaryActionIcon: AddIcon,
375
- frameworkComponents: { actionsRenderer: ActionsRenderer },
376
- height: `calc(100vh - ${buildEnv ? "139px" : "114px"})`,
377
- hideSearchBar: isServerSide,
378
- loading: isLoading,
379
- suppressScrollOnNewData: true,
380
- dynamicSizing: false,
381
- disableRowSelection: true,
382
- rowModelType: isServerSide ? "serverSide" : null,
383
- serverSideStoreType: isServerSide ? "partial" : null,
384
- cacheOverflowSize: isServerSide ? 2 : null,
385
- cacheBlockSize: isServerSide ? 20 : null,
386
- maxConcurrentDatasourceRequests: isServerSide ? 1 : null,
387
- secondaryActionButtons,
388
- filterChips: [...filterChipsArray],
472
+ gridApiCallback: handleGridApiCallback,
473
+ gridHeaderConfig,
474
+ gridFunctions: [{ name: "agGridRefreshData" }, ...gridFunctions],
475
+ gridOptions,
476
+ loading,
477
+ ...other
478
+ }) : /* @__PURE__ */ React.createElement(ClientSideUdpGrid, {
479
+ gridId: GRID_ID,
480
+ rowData: formattedData,
481
+ columnDefs,
482
+ gridApiCallback: handleGridApiCallback,
483
+ gridHeaderConfig,
484
+ gridFunctions,
485
+ gridOptions,
486
+ loading,
389
487
  ...other
390
- }), SideOptionList);
488
+ }), SideOptionList, /* @__PURE__ */ React.createElement(FluentDialog, {
489
+ open: dialogOpen,
490
+ handleClose: closeDialog,
491
+ title: deleteDialogConfig?.title,
492
+ message: deleteDialogConfig?.message,
493
+ actionOne: deleteDialogConfig?.actionOne,
494
+ labelOne: deleteDialogConfig?.labelOne,
495
+ actionTwo: deleteDialogConfig?.actionTwo,
496
+ labelTwo: deleteDialogConfig?.labelTwo,
497
+ progress: deleteDialogConfig?.loading
498
+ }));
391
499
  };
392
500
  //#endregion
393
501
  export { DataBrowserColumnDefs as n, defaultColActionsDef as r, DataBrowserContainer as t };
394
502
 
395
- //# sourceMappingURL=DataBrowserContainer-CfrXmjcZ.js.map
503
+ //# sourceMappingURL=DataBrowserContainer-DJf_wxKA.js.map