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.
- package/dist/{AmbientStepper-CzB1SyTH.js → AmbientStepper-D4xlTcaX.js} +1 -1
- package/dist/{AmbientStepper-CzB1SyTH.js.map → AmbientStepper-D4xlTcaX.js.map} +1 -1
- package/dist/{ClientSideUdpGrid-DwMTC1Ee.js → ClientSideUdpGrid-MLjNH6s5.js} +1 -1
- package/dist/{ClientSideUdpGrid-DwMTC1Ee.js.map → ClientSideUdpGrid-MLjNH6s5.js.map} +1 -1
- package/dist/{CrudForm-CuDrVVOL.js → CrudForm-BsZrRTVc.js} +2 -2
- package/dist/CrudForm-BsZrRTVc.js.map +1 -0
- package/dist/{CrudTableSidePanel-Co5Bn9h3.js → CrudTableSidePanel-DJqCvpqJ.js} +2 -2
- package/dist/{CrudTableSidePanel-Co5Bn9h3.js.map → CrudTableSidePanel-DJqCvpqJ.js.map} +1 -1
- package/dist/{DataBrowserContainer-CfrXmjcZ.js → DataBrowserContainer-DJf_wxKA.js} +216 -108
- package/dist/DataBrowserContainer-DJf_wxKA.js.map +1 -0
- package/dist/{ExportSidesheet-gGkPAQ3I.js → ExportSidesheet-D-7bX_nC.js} +1 -1
- package/dist/{ExportSidesheet-gGkPAQ3I.js.map → ExportSidesheet-D-7bX_nC.js.map} +1 -1
- package/dist/{ImportDataFromFileMapping-B1PhP_l5.js → ImportDataFromFileMapping-Bqe6N7Im.js} +2 -2
- package/dist/{ImportDataFromFileMapping-B1PhP_l5.js.map → ImportDataFromFileMapping-Bqe6N7Im.js.map} +1 -1
- package/dist/{RemindersCard-DCO5tm6M.js → RemindersCard-CAHNpZsj.js} +1 -1
- package/dist/{RemindersCard-DCO5tm6M.js.map → RemindersCard-CAHNpZsj.js.map} +1 -1
- package/dist/{RemindersWidget-D1T8iC2i.js → RemindersWidget-C83IGD5_.js} +2 -2
- package/dist/{RemindersWidget-D1T8iC2i.js.map → RemindersWidget-C83IGD5_.js.map} +1 -1
- package/dist/UI/forms/index.js +1 -1
- package/dist/UI/index.js +1 -1
- package/dist/UI/inputs/menus/AmbientStepper/index.js +1 -1
- package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +1 -1
- package/dist/UI/templates/newGrid/index.js +2 -2
- package/dist/UI/widgets/library/RemindersWidget/index.js +1 -1
- package/dist/{UdpAuditEventsPage-DlogxDHX.js → UdpAuditEventsPage-CD_zDh77.js} +2 -2
- package/dist/{UdpAuditEventsPage-DlogxDHX.js.map → UdpAuditEventsPage-CD_zDh77.js.map} +1 -1
- package/dist/{UdpDataBrowserPage-BOX2cGgQ.js → UdpDataBrowserPage-FdIQ8yxP.js} +13 -83
- package/dist/UdpDataBrowserPage-FdIQ8yxP.js.map +1 -0
- package/dist/{UdpFormsBuilderPage-ViIzFI1v.js → UdpFormsBuilderPage-UItYIyaM.js} +1 -1
- package/dist/{UdpFormsBuilderPage-ViIzFI1v.js.map → UdpFormsBuilderPage-UItYIyaM.js.map} +1 -1
- package/dist/{UdpFormsListPage-CsX9-A-u.js → UdpFormsListPage-CSIQUz4h.js} +1 -1
- package/dist/{UdpFormsListPage-CsX9-A-u.js.map → UdpFormsListPage-CSIQUz4h.js.map} +1 -1
- package/dist/{UdpGridTemplate-Du9E-kHs.js → UdpGridTemplate-K0AT38g7.js} +2 -2
- package/dist/{UdpGridTemplate-Du9E-kHs.js.map → UdpGridTemplate-K0AT38g7.js.map} +1 -1
- package/dist/{UdpImportFromFileMappingPage-qvOfzz6D.js → UdpImportFromFileMappingPage-Dbqe6maH.js} +2 -2
- package/dist/{UdpImportFromFileMappingPage-qvOfzz6D.js.map → UdpImportFromFileMappingPage-Dbqe6maH.js.map} +1 -1
- package/dist/{UdpInquiryMaintenanceEnginePage-CkJUZ9X0.js → UdpInquiryMaintenanceEnginePage-T6wdLkRd.js} +2 -2
- package/dist/{UdpInquiryMaintenanceEnginePage-CkJUZ9X0.js.map → UdpInquiryMaintenanceEnginePage-T6wdLkRd.js.map} +1 -1
- package/dist/{UdpMaintenanceConfigPage-BQdewkXL.js → UdpMaintenanceConfigPage-DzqJeImf.js} +2 -2
- package/dist/{UdpMaintenanceConfigPage-BQdewkXL.js.map → UdpMaintenanceConfigPage-DzqJeImf.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-Byy5MPYo.js → UdpMaintenanceEnginePage--AzwJeF3.js} +2 -2
- package/dist/{UdpMaintenanceEnginePage-Byy5MPYo.js.map → UdpMaintenanceEnginePage--AzwJeF3.js.map} +1 -1
- package/dist/{UdpRemindersPage-nM2byTQE.js → UdpRemindersPage-CDff48yC.js} +1 -1
- package/dist/{UdpRemindersPage-nM2byTQE.js.map → UdpRemindersPage-CDff48yC.js.map} +1 -1
- package/dist/{UdpTransactionsPage-Dbj8cB1e.js → UdpTransactionsPage-Dum-5Ug3.js} +2 -2
- package/dist/{UdpTransactionsPage-Dbj8cB1e.js.map → UdpTransactionsPage-Dum-5Ug3.js.map} +1 -1
- package/dist/{Utils-g6jkX_Cl.js → Utils-bwUGYcoU.js} +1 -1
- package/dist/Utils-bwUGYcoU.js.map +1 -0
- package/dist/dataBrowser/index.js +1 -1
- package/dist/{dateUtils-xxTcN5US.js → dateUtils-Bcjuf4c9.js} +1 -1
- package/dist/{dateUtils-xxTcN5US.js.map → dateUtils-Bcjuf4c9.js.map} +1 -1
- package/dist/index.js +14 -14
- package/dist/maintenanceEngine/crudBrowser/index.js +1 -1
- package/dist/maintenanceEngine/index.js +1 -1
- package/dist/reminders/index.js +1 -1
- package/dist/types/src/UI/forms/CrudForm.d.ts.map +1 -1
- package/dist/types/src/dataBrowser/DataBrowserContainer.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpFormsPrivateForm/UdpFormRenderer.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/udp/export/index.js +1 -1
- package/dist/udp/fileImportMapping/index.js +1 -1
- package/dist/udp/pages/UdpAuditEvents/index.js +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsBuilderPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsListPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsPrivateForm/index.js +1 -1
- package/dist/udp/pages/UdpFormsPublicForm/index.js +1 -1
- package/dist/udp/pages/UdpImportFromFileMappingPage/index.js +1 -1
- package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpMaintenanceConfigPage/index.js +1 -1
- package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpPages/index.js +9 -9
- package/dist/udp/pages/UdpPagesLazy/index.js +1 -1
- package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
- package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
- package/export-map.json +1 -1
- package/package.json +1 -1
- package/dist/CrudForm-CuDrVVOL.js.map +0 -1
- package/dist/DataBrowserContainer-CfrXmjcZ.js.map +0 -1
- package/dist/UdpDataBrowserPage-BOX2cGgQ.js.map +0 -1
- package/dist/Utils-g6jkX_Cl.js.map +0 -1
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientSideUdpGrid-
|
|
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-
|
|
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-
|
|
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-
|
|
118
|
+
//# sourceMappingURL=CrudTableSidePanel-DJqCvpqJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudTableSidePanel-
|
|
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
|
|
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
|
|
17
|
-
import { t as CrudTableSidePanel } from "./CrudTableSidePanel-
|
|
18
|
-
import
|
|
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,
|
|
110
|
-
const [
|
|
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 [
|
|
113
|
-
const [
|
|
114
|
-
const [
|
|
115
|
-
const [
|
|
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
|
|
121
|
-
const {
|
|
122
|
-
const { executeQueryAdHocAndMapLookups, getCleanData } = useQueryExecutors();
|
|
121
|
+
const { gridApi } = useAgGridApi();
|
|
122
|
+
const { getCleanData } = useQueryExecutors();
|
|
123
123
|
const lookupApiMethodId = useLookupsStore((state) => state.lookupApiMethodId);
|
|
124
|
-
const
|
|
125
|
-
const
|
|
126
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
215
|
+
iconName: "search",
|
|
156
216
|
loading: !!!foreignKeyData,
|
|
157
|
-
|
|
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
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
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-
|
|
503
|
+
//# sourceMappingURL=DataBrowserContainer-DJf_wxKA.js.map
|