@argusoft/medplat-core 1.0.28 → 1.0.30
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/AccessRights-xrday-L1.js +1023 -0
- package/dist/AccessRights-xrday-L1.js.map +1 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
- package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-D1sU8RjY.js} +2 -2
- package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
- package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
- package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js +8547 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js.map +1 -0
- package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
- package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
- package/dist/AppModal-CCtrQ5Tr.js +394 -0
- package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js +387 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js.map +1 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js +391 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js.map +1 -0
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-BPsJquTS.js} +1606 -1611
- package/dist/ChangePasswordModalCore-BPsJquTS.js.map +1 -0
- package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-Ddz9halE.js} +2 -2
- package/dist/ConditionConfig-Ddz9halE.js.map +1 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js +435 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js.map +1 -0
- package/dist/{EntityManagement-GaYsBTvf.js → EntityManagement-CPQL6qBj.js} +2 -2
- package/dist/{EntityManagement-GaYsBTvf.js.map → EntityManagement-CPQL6qBj.js.map} +1 -1
- package/dist/EventConfig-BmLemzX3.js +26 -0
- package/dist/EventConfig-BmLemzX3.js.map +1 -0
- package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-Bzh1qWXU.js} +31 -30
- package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-Bzh1qWXU.js.map} +1 -1
- package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-B2SRrnB1.js} +2 -2
- package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-B2SRrnB1.js.map} +1 -1
- package/dist/EventsSkeleton-BIcPks4T.js +61 -0
- package/dist/EventsSkeleton-BIcPks4T.js.map +1 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js +79 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js.map +1 -0
- package/dist/FeatureMenu-DYJmDt7q.js +521 -0
- package/dist/FeatureMenu-DYJmDt7q.js.map +1 -0
- package/dist/Features-Dne21RWu.js +14 -0
- package/dist/Features-Dne21RWu.js.map +1 -0
- package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-DuTwnngN.js} +19 -19
- package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-DuTwnngN.js.map} +1 -1
- package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
- package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
- package/dist/FlywayQuery-CQygj51V.js +179 -0
- package/dist/FlywayQuery-CQygj51V.js.map +1 -0
- package/dist/{ManageNotification-CaBAOhji.js → Google-DQxMfbaL.js} +1725 -2652
- package/dist/{ManageNotification-CaBAOhji.js.map → Google-DQxMfbaL.js.map} +1 -1
- package/dist/GrantPermissionModal-BDN66Atn.js +236 -0
- package/dist/GrantPermissionModal-BDN66Atn.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js +7639 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -1
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js +665 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js.map +1 -0
- package/dist/LanguagesModal-B3NTebYT.js +352 -0
- package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
- package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-CoYcpjR9.js} +465 -397
- package/dist/ManageEventConfiguration-CoYcpjR9.js.map +1 -0
- package/dist/ManageNotification-C5MhV77Q.js +934 -0
- package/dist/ManageNotification-C5MhV77Q.js.map +1 -0
- package/dist/{ManageRole-CGYfglpo.js → ManageRole-CNZBRKGU.js} +32 -30
- package/dist/ManageRole-CNZBRKGU.js.map +1 -0
- package/dist/ManageTranslation-vRiptUAP.js +833 -0
- package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
- package/dist/ManageTranslation.css +1 -1
- package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DCFkUMV9.js} +1722 -1586
- package/dist/ManageUser-DCFkUMV9.js.map +1 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js +272 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js.map +1 -0
- package/dist/MobileAnalytics-pQoE8cG1.js +16888 -0
- package/dist/MobileAnalytics-pQoE8cG1.js.map +1 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js +108 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js.map +1 -0
- package/dist/{MobileTypeEventConfigModal-BxLympIO.js → MobileTypeEventConfigModal-BeveaX0C.js} +2 -2
- package/dist/MobileTypeEventConfigModal-BeveaX0C.js.map +1 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
- package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-DEyRZEuM.js} +109 -110
- package/dist/NotificationList-DEyRZEuM.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CM6VkdmY.js} +570 -478
- package/dist/OtherTypeEventConfigModal-CM6VkdmY.js.map +1 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js +482 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js.map +1 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js +157 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js.map +1 -0
- package/dist/PermissionsModal-CCYkcKlC.js +151 -0
- package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js +119 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js.map +1 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js +783 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js.map +1 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js +818 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js.map +1 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js +599 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js.map +1 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js +1302 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js.map +1 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js +252 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js.map +1 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js +648 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js.map +1 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js +1577 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js.map +1 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js +279 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js.map +1 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js +293 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js.map +1 -0
- package/dist/QueryBuilder-CXaBe6sr.js +478 -0
- package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
- package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-s8iNx2Mu.js} +131 -142
- package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
- package/dist/Roles-BIyiic67.js +14 -0
- package/dist/Roles-BIyiic67.js.map +1 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js +544 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js.map +1 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js +315 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js.map +1 -0
- package/dist/{ServerSyncModal-D_oFpv3C.js → ServerSyncModal-92U3xtqI.js} +84 -85
- package/dist/ServerSyncModal-92U3xtqI.js.map +1 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js +747 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js.map +1 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
- package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-D1y_4A1u.js} +161 -121
- package/dist/ShowFlywayQuery-D1y_4A1u.js.map +1 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js +721 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js.map +1 -0
- package/dist/SubMenu-eEDhZUvh.js +317 -0
- package/dist/SubMenu-eEDhZUvh.js.map +1 -0
- package/dist/{TableDetails-Cf_YfnY2.js → TableDetails-BtafRxXb.js} +1069 -831
- package/dist/TableDetails-BtafRxXb.js.map +1 -0
- package/dist/{TableList-D6jnIbnz.js → TableList-Dpo6dO7S.js} +2 -2
- package/dist/{TableList-D6jnIbnz.js.map → TableList-Dpo6dO7S.js.map} +1 -1
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js +746 -0
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js.map +1 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js +315 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js.map +1 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js +476 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js.map +1 -0
- package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-3O6ABrK-.js} +2 -2
- package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-3O6ABrK-.js.map} +1 -1
- package/dist/{UserList-Bc8gYxRL.js → UserList-DgPxsnj2.js} +253 -236
- package/dist/{UserList-Bc8gYxRL.js.map → UserList-DgPxsnj2.js.map} +1 -1
- package/dist/Users-Bpc4Sazd.js +41 -0
- package/dist/Users-Bpc4Sazd.js.map +1 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js +321 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js.map +1 -0
- package/dist/{WidgetList-Dw_FmbbE.js → WidgetList-D7YuWfDD.js} +2 -2
- package/dist/{WidgetList-Dw_FmbbE.js.map → WidgetList-D7YuWfDD.js.map} +1 -1
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js +434 -0
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js.map +1 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +4 -752
- package/dist/index.js.map +1 -1
- package/dist/index.lib-Dn8PMkeD.js +862 -0
- package/dist/index.lib-Dn8PMkeD.js.map +1 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
- package/package.json +5 -4
- package/dist/AccessRights-CHu27ZOw.js +0 -1262
- package/dist/AccessRights-CHu27ZOw.js.map +0 -1
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
- package/dist/AddLabelModal-DFllBVcd.js +0 -734
- package/dist/AddLabelModal-DFllBVcd.js.map +0 -1
- package/dist/AddMenuConfiguration-BSQLl88V.js +0 -6570
- package/dist/AddMenuConfiguration-BSQLl88V.js.map +0 -1
- package/dist/AddRoleDrawer-CQdzQZLb.js.map +0 -1
- package/dist/AppModal-CtG2GjD_.js +0 -428
- package/dist/AppModal-CtG2GjD_.js.map +0 -1
- package/dist/ChangePasswordModalCore-CDxkeIIM.js.map +0 -1
- package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
- package/dist/EventsSkeleton-8iiETGcf.js +0 -76
- package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
- package/dist/FeatureMenu-jl7-Tk6y.js +0 -265
- package/dist/FeatureMenu-jl7-Tk6y.js.map +0 -1
- package/dist/Features-CObdzJp_.js +0 -13
- package/dist/Features-CObdzJp_.js.map +0 -1
- package/dist/FlywayQuery-Cx2sly6g.js +0 -169
- package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js.map +0 -1
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
- package/dist/LanguagesModal-D6VfaGrl.js +0 -394
- package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
- package/dist/ManageDynamicFeature-BhONvfC_.js +0 -4189
- package/dist/ManageDynamicFeature-BhONvfC_.js.map +0 -1
- package/dist/ManageEventConfiguration-DV3I5POA.js.map +0 -1
- package/dist/ManageRole-CGYfglpo.js.map +0 -1
- package/dist/ManageTranslation-B4C9-lWD.js +0 -625
- package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
- package/dist/ManageUser-AY1EUDLI.js.map +0 -1
- package/dist/MobileMenuManagement-CVAKyKDa.js +0 -112
- package/dist/MobileMenuManagement-CVAKyKDa.js.map +0 -1
- package/dist/MobileTypeEventConfigModal-BxLympIO.js.map +0 -1
- package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
- package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
- package/dist/QueryBuilder-z7eqfd7D.js +0 -383
- package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
- package/dist/RoleManagement-BPl2cE27.js.map +0 -1
- package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
- package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
- package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
- package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
- package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
- package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
- package/dist/SubMenu-DYxAPH2Z.js +0 -191
- package/dist/SubMenu-DYxAPH2Z.js.map +0 -1
- package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
- package/dist/Users-CsJ08Kjm.js +0 -40
- package/dist/Users-CsJ08Kjm.js.map +0 -1
- package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
- package/dist/dashboardLayoutUtils-Bt5HA96J.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddEditQueryBuilder-D-iQiVIe.js","sources":["../src/views/QueryBuilder/AddEditQueryBuilder.jsx"],"sourcesContent":["import { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { runQuery, saveOrUpdate } from \"../../services/QueryBuilder\";\nimport implementationConfig from \"@/common/config/implementationConfig\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport CustomTextArea from \"@/views/custom-components/CustomTextArea\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport CustomCheckBox from \"@/views/custom-components/CustomCheckBox\";\nimport \"./Styles/AddEditQueryBuilder.scss\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport {\n Box,\n Button,\n Drawer,\n IconButton,\n InputLabel,\n Typography,\n} from \"@mui/material\";\nimport FontAwesomeIcons from \"@/common/fontAwesomeIcons/FontAwesomeIcons\";\nimport PostgresEditor from \"@/views/custom-components/PostgresEditor\";\nimport PropTypes from \"prop-types\";\nimport { useEffect, useRef } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport * as yup from \"yup\";\n\nconst schema = yup.object().shape({\n code: yup.string().required(\"Enter code\").trim().lowercase(),\n description: yup.string().required(\"Enter Description\").trim().lowercase(),\n query: yup.string().required(\"Enter query\").trim().lowercase(),\n});\n\n/**\n * A React functional component for adding or editing query builder entries.\n *\n * This component provides a user interface for either creating a new query or\n * editing an existing one. It supports both add and edit modes based on the `isEditMode` prop.\n * @module AddEditQueryBuilder\n * @param {Object} props - The component's props.\n * @param {boolean} props.isEditMode - Indicates if the component is in edit mode.\n * If true, it will pre-fill the form with data from `editRow`.\n * @param {boolean} props.open - Determines if the component's modal or form is open or closed.\n * Used to control the visibility of the component.\n * @param {Function} props.close - Function to close the modal or form.\n * This function is called when the user wants to cancel or close the form.\n * @param {Object} props.editRow - Contains the data for the row being edited.\n * This is only used if `isEditMode` is true, and it pre-fills the form fields.\n * @param {Function} props.loadInitialState - Function to load initial data or state when the component mounts.\n * Typically used to fetch necessary data or initialize form values.\n * @returns {JSX.Element} The rendered component.\n */\n\nfunction AddEditQueryBuilder({\n isEditMode,\n open,\n close,\n editRow,\n loadInitialState,\n}) {\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const { translate } = useTranslateProvider();\n const {\n control,\n handleSubmit,\n setValue,\n getValues,\n formState: { errors },\n reset,\n } = useForm({\n resolver: yupResolver(schema),\n mode: \"onChange\",\n defaultValues: {\n code: \"\",\n description: \"\",\n query: \"\",\n returnsResultSet: false,\n isPublic: false,\n isMobileQuery: false,\n isClickhouseQuery: false,\n ...(implementationConfig.queryBuilder.showIsCachedField && { isCached: implementationConfig.queryBuilder.defaultIsCached })\n },\n });\n\n const trackEvent = useTrackEvent();\n /**\n * Handles form submission for adding or editing a query.\n * @async\n * @function onSubmit\n * @throws {Error} Throws an error if the query generation fails.\n * @returns {Promise<void>} A promise that resolves when the submission is complete.\n */\n const handleClose = () => {\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add/Edit Query Builder\",\n submit: submitRef.current,\n });\n close();\n };\n const onSubmit = async () => {\n try {\n const formValues = getValues();\n trackEvent(\"button_click\", {\n button_name:\n isEditMode && editRow\n ? \"querybuilder-update-button\"\n : \"querybuilder-add-button\",\n button_type: \"submit\",\n button_id: \"addeditquerybuilder-save-button\",\n });\n\n if (isEditMode && editRow) {\n editRow.query = formValues.query;\n editRow.code = formValues.code;\n editRow.description = formValues.description;\n editRow.returnsResultSet = formValues.returnsResultSet;\n editRow.isPublic = formValues.isPublic;\n editRow.isMobileQuery = formValues.isMobileQuery;\n editRow.isClickhouseQuery = formValues.isClickhouseQuery;\n if (implementationConfig.queryBuilder.showIsCachedField) editRow.isCached = formValues.isCached;\n await saveOrUpdate(editRow);\n\n showToast({ message: \"Query Updated SuccessFully\", type: \"success\" });\n } else {\n await saveOrUpdate(formValues);\n showToast({ message: \"Query Created SuccessFully\", type: \"success\" });\n }\n submitRef.current = true;\n handleClose();\n await loadInitialState();\n } catch (error) {\n showToast({\n message: `${error.status === 400 ? \"This code is already registered. Please enter a different code\" : \"Error in Query Generation\"}`,\n type: \"error\",\n });\n }\n };\n\n /**\n * Executes a query and handles success or error feedback.\n * @async\n * @function onRun\n * @throws {Error} Throws an error if the query execution fails.\n * @returns {Promise<void>} A promise that resolves when the query execution\n * is complete.\n */\n\n // const onRun = async () => {\n // try {\n // trackEvent('button_click', {\n // button_name: 'querybuilder-run-now-button',\n // button_type: 'submit',\n // button_id: 'addeditquerybuilder-run-now-button',\n // });\n // const formValues = getValues();\n // await runQuery(formValues?.query);\n // showToast({ message: 'Run Successfully', type: 'success' });\n // } catch (error) {\n // console.error(error);\n // showToast({ message: `${error?.response?.data?.message}`, type: 'error' });\n // }\n // };\n\n /**\n * Updates form values based on whether the component is in edit mode or not. *\n * @function useEffect\n * @param {boolean} isEditMode - Indicates whether the component is in edit mode.\n * @param {Object} editRow - Contains the data to populate the form when in edit mode.\n * @param {Function} setValue - Function to update form values.\n * @returns {void}\n */\n\n useEffect(() => {\n if (isEditMode)\n Object.keys(editRow).forEach((key) => setValue(key, editRow?.[key]));\n }, [isEditMode, editRow, setValue]);\n\n /**\n * Resets the form values when the modal or component is closed.\n * @function useEffect\n * @param {boolean} open - Indicates whether the modal or component is open.\n * @param {Function} reset - Function to reset the form values.\n * @returns {void}\n */\n\n useEffect(() => {\n if (!open) {\n reset();\n }\n }, [open, reset]);\n\n return (\n <Drawer\n anchor={\"right\"}\n open={open}\n onClose={handleClose}\n className=\"z-[1300]\"\n data-testid=\"addEdit-queryBuilder\"\n >\n <Box\n ref={formRef}\n sx={{\n width: { xs: \"100vw\", md: 720 },\n maxWidth: \"100vw\",\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n {/* ── Header ── */}\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 2,\n px: 2.5,\n py: 1.5,\n flexShrink: 0,\n borderBottom: \"1px solid\",\n borderColor: \"divider\",\n }}\n >\n <Box sx={{ minWidth: 0 }}>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 700 }}>\n {isEditMode\n ? translate(\"Edit Configured\")\n : translate(\"Configure New\")}{\" \"}\n {translate(\"Query\")}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {translate(\n \"Give the query a code other screens can call it by, then write the SQL it runs.\",\n )}\n </Typography>\n </Box>\n <IconButton\n size=\"small\"\n onClick={handleClose}\n aria-label={translate(\"Close\")}\n data-testid=\"addeditquerybuilder-close-icon\"\n >\n <FontAwesomeIcons iconName=\"faXmark\" />\n </IconButton>\n </Box>\n\n {/* ── Scrollable body ── */}\n <Box\n sx={{\n flex: 1,\n minHeight: 0,\n overflowY: \"auto\",\n p: 2.5,\n // Gap on the parent rather than `pb-2` on each child.\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2.5,\n }}\n >\n <Box>\n <InputLabel required className=\"text-[0.875rem]\">\n {translate(\"Code\")}\n </InputLabel>\n <CustomTextField\n control={control}\n id=\"code\"\n name=\"code\"\n errors={errors}\n label=\"\"\n size=\"small\"\n onBlur={(e) => {\n const val = e.target.value;\n if (val) {\n const transformedVal = isEditMode\n ? val.trim()\n : val.trim().toUpperCase();\n setValue(\"code\", transformedVal);\n }\n }}\n dataTestId=\"addeditquerybuilder-code-textfield\"\n />\n <Typography variant=\"caption\" color=\"text.secondary\">\n {translate(\"Other screens call this query by its code.\")}\n </Typography>\n </Box>\n\n <Box>\n <InputLabel\n required\n className=\"text-[0.875rem]\"\n data-testid=\"addeditquerybuilder-description-label\"\n >\n {translate(\"Description\")}\n </InputLabel>\n <CustomTextArea\n control={control}\n minRows={2}\n id=\"description\"\n name=\"description\"\n errors={errors}\n data-testid=\"addeditquerybuilder-description-textarea\"\n />\n </Box>\n\n <Box>\n <InputLabel required className=\"text-[0.875rem]\">\n {translate(\"Query\")}\n </InputLabel>\n <Controller\n name=\"query\"\n control={control}\n defaultValue=\"\"\n render={({ field, fieldState: { error } }) => (\n <>\n <Box\n data-testid=\"addeditquerybuilder-query-textarea\"\n sx={{\n mt: 0.5,\n overflow: \"hidden\",\n borderRadius: (t) => `${t.shape.borderRadius}px`,\n border: \"1px solid\",\n borderColor: error ? \"error.main\" : \"divider\",\n }}\n >\n {/* This is the app's SQL authoring surface — a plain\n textarea gave up the PostgreSQL keyword set and the\n schema-aware alias completion PostgresEditor exists\n for. */}\n <PostgresEditor\n height=\"45vh\"\n defaultValue={field.value || \"\"}\n onChange={field.onChange}\n // Code is the first field; the editor must not steal\n // focus when Monaco finishes loading.\n autoFocus={false}\n />\n </Box>\n {error?.message && (\n <div\n data-testid=\"custom-error-message\"\n className=\"error-helper-text\"\n >\n {error.message}\n </div>\n )}\n </>\n )}\n />\n </Box>\n\n {/* ── Options ──\n Five flags that were each a full-width row with its own\n hand-rolled Controller + FormControlLabel + Checkbox and a\n duplicated six-line `sx`. Grouped under one subhead, two per\n row, on the shared CustomCheckBox. */}\n <Box>\n <Typography\n variant=\"overline\"\n sx={{ color: \"text.secondary\", fontWeight: 700 }}\n >\n {translate(\"Options\")}\n </Typography>\n <Box\n sx={{\n display: \"grid\",\n gridTemplateColumns: { xs: \"1fr\", sm: \"1fr 1fr\" },\n columnGap: 2,\n }}\n >\n {implementationConfig.queryBuilder.showIsCachedField && (\n <CustomCheckBox\n name=\"isCached\"\n control={control}\n label=\"Is Cached\"\n data-testid=\"addeditquerybuilder-is-cached-checkbox\"\n />\n )}\n <CustomCheckBox\n name=\"returnsResultSet\"\n control={control}\n label=\"Returns Result Set\"\n data-testid=\"addeditquerybuilder-returns-result-set-checkbox\"\n />\n <CustomCheckBox\n name=\"isPublic\"\n control={control}\n label=\"Is Public\"\n data-testid=\"addeditquerybuilder-is-public-checkbox\"\n />\n <CustomCheckBox\n name=\"isMobileQuery\"\n control={control}\n label=\"Is Mobile Query\"\n data-testid=\"addeditquerybuilder-is-mobilequery-checkbox\"\n />\n {implementationConfig.queryBuilder.showClickhouseOption && (\n <CustomCheckBox\n name=\"isClickhouseQuery\"\n control={control}\n label=\"Is Clickhouse Query\"\n data-testid=\"addeditquerybuilder-is-clickhousequery-checkbox\"\n />\n )}\n </Box>\n </Box>\n </Box>\n\n {/* ── Sticky footer, so Save stays reachable past a 45vh editor ── */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: 1.5,\n px: 2.5,\n py: 2,\n flexShrink: 0,\n borderTop: \"1px solid\",\n borderColor: \"divider\",\n backgroundColor: \"background.paper\",\n // Above Monaco's internal layers.\n position: \"relative\",\n zIndex: (t) => t.zIndex.appBar,\n }}\n >\n <Button\n size=\"small\"\n variant=\"outlined\"\n color=\"inherit\"\n onClick={handleClose}\n data-testid=\"addeditquerybuilder-close-button\"\n >\n {translate(\"Cancel\")}\n </Button>\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n type=\"submit\"\n onClick={handleSubmit(onSubmit)}\n data-testid=\"addeditquerybuilder-save-button\"\n >\n {translate(\"Save\")}\n </Button>\n {/* <Button\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n className=\"ml-2.5\"\n onClick={onRun}\n disabled={!isEditMode}\n data-testid=\"addeditquerybuilder-run-now-button\"\n >\n {translate('Run Now')}\n </Button> */}\n </Box>\n </Box>\n </Drawer>\n );\n}\n\nAddEditQueryBuilder.propTypes = {\n isEditMode: PropTypes.any,\n open: PropTypes.any,\n close: PropTypes.any,\n editRow: PropTypes.any,\n loadInitialState: PropTypes.any,\n};\n\nexport default AddEditQueryBuilder;\n"],"names":["schema","yup","AddEditQueryBuilder","isEditMode","open","close","editRow","loadInitialState","formRef","useRef","submitRef","translate","useTranslateProvider","control","handleSubmit","setValue","getValues","errors","reset","useForm","yupResolver","implementationConfig","trackEvent","useTrackEvent","handleClose","onSubmit","formValues","saveOrUpdate","showToast","error","useEffect","key","jsx","Drawer","jsxs","Box","Typography","IconButton","FontAwesomeIcons","InputLabel","CustomTextField","e","val","transformedVal","CustomTextArea","Controller","field","Fragment","t","PostgresEditor","CustomCheckBox","Button","PropTypes"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
|
-
import { p as M } from "./
|
|
2
|
+
import { p as M } from "./Roles-BIyiic67.js";
|
|
3
3
|
import { yupResolver as O } from "@hookform/resolvers/yup";
|
|
4
4
|
import { Modal as V, Box as x, Typography as p, List as $, ListItem as z, Stack as W, Button as v } from "@mui/material";
|
|
5
5
|
import i from "@mui/material/Grid2";
|
|
@@ -209,4 +209,4 @@ Y.propTypes = {
|
|
|
209
209
|
export {
|
|
210
210
|
Y as default
|
|
211
211
|
};
|
|
212
|
-
//# sourceMappingURL=AddFeatures-
|
|
212
|
+
//# sourceMappingURL=AddFeatures-D1sU8RjY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddFeatures-C0Z29oSd.js","sources":["../src/views/Roles/AddFeatures.jsx"],"sourcesContent":["import { postNewFeature } from \"../../services/Roles\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport {\n Box,\n Button,\n List,\n ListItem,\n Modal,\n Stack,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport PropTypes from \"prop-types\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as Yup from \"yup\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport CustomAutocomplete from \"@/views/custom-components/CustomAutoComplete\";\nimport { getFeaturesV2 } from \"@/common/services/AuthenticateService\";\n// import { getFeatures } from \"@/common/services/AuthenticateService\";\n\nexport default function AddFeatures({\n assignedFeatureList,\n selectedId,\n setData,\n open,\n setOpenModal,\n}) {\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const { translate } = useTranslateProvider();\n const [features, setFeatures] = useState([]);\n\n const validationSchema = Yup.object().shape({\n values: Yup.array().min(1, \"Please select at least one feature.\"),\n });\n\n const {\n formState: { errors },\n handleSubmit,\n reset,\n control,\n watch,\n } = useForm({\n defaultValues: {\n values: [],\n },\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n const featuresWatcher = watch(\"values\");\n\n function extractFeatures(data) {\n const features = [];\n for (const key in data) {\n data[key].forEach((item) => {\n if (item.subGroups) {\n item.subGroups.forEach((subGroup) => features.push(subGroup));\n } else {\n features.push(item);\n }\n });\n }\n return features;\n }\n\n const trackEvent = useTrackEvent();\n\n function handleClose() {\n reset();\n setOpenModal(false);\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add Feature\",\n submit: submitRef.current,\n });\n trackEvent(\"button_click\", {\n button_name: \"add feature cancel button\",\n button_type: \"cancel\",\n button_id: \"assignfeatures-button-cancel\",\n });\n }\n\n const onSubmit = async (value) => {\n try {\n trackEvent(\"button_click\", {\n button_name: \"add feature save button\",\n button_type: \"submit\",\n button_id: \"assignfeatures-button-save\",\n });\n const selectedFeatureIds = value.values\n .map((feature) => feature.id)\n .join(\",\");\n const featureIds = {\n featureId: selectedFeatureIds,\n };\n\n await postNewFeature(featureIds, selectedId);\n showToast({\n message: \"Feature successfully assigned to selected role\",\n type: \"success\",\n });\n await setData();\n\n submitRef.current = true;\n handleClose();\n } catch (error) {\n showToast({\n message: `Error : ${error?.message}`,\n type: \"error\",\n });\n }\n };\n const loadData = async () => {\n try {\n const { data: features } = await getFeaturesV2();\n\n const data = extractFeatures(features).sort((a, b) =>\n a.name?.localeCompare(b.name),\n );\n\n const AvailableFeatures = data.filter(\n (feature) =>\n !assignedFeatureList?.some(\n (availableFeature) => availableFeature.featureId === feature.id,\n ),\n );\n setFeatures(AvailableFeatures);\n } catch (error) {\n showToast({\n message: `Error : ${error?.message}`,\n type: \"error\",\n });\n }\n };\n\n useEffect(() => {\n loadData();\n }, [assignedFeatureList]);\n\n return (\n <Grid>\n <Modal\n open={open}\n onClose={handleClose}\n data-testid=\"assignfeatures-modal\"\n >\n <Grid\n container\n className=\"absolute top-[10%] left-[50%] transform -translate-x-1/2 w-[95%] sm:w-[37.5rem] shadow-2xl rounded-md border flex flex-col h-auto max-h-[80vh] overflow-y-auto\"\n sx={{ bgcolor: \"background.paper\" }}\n >\n <Grid className=\"flex flex-col gap-2\">\n <Box\n className=\"p-2.5 px-5 flex w-full justify-start\"\n sx={{ borderBottom: 1, borderColor: \"divider\" }}\n >\n <Typography\n className=\"font-medium text-lg text-customBlue\"\n sx={{ color: \"text.primary\" }}\n >\n {translate(\"Assign New Feature\")}\n </Typography>\n </Box>\n <Box\n className=\"p-2.5 max-h-100 overflow-auto\"\n sx={{ borderBottom: 1, borderColor: \"divider\" }}\n >\n <CustomAutocomplete\n options={features}\n getOptionLabel={(option) => option.name}\n control={control}\n name={\"values\"}\n errors={errors}\n dataTestId={\"assignfeatures-autocomplete\"}\n />\n {featuresWatcher.length > 0 && (\n <Grid className=\"overflow-y-auto flex flex-col max-h-40 h-auto\">\n <List>\n {featuresWatcher\n .filter((feature) => feature.description)\n .map((feature) => (\n <ListItem key={feature?.id}>\n <Typography>\n <strong>{feature?.name}:</strong>{\" \"}\n {feature?.description}\n </Typography>\n </ListItem>\n ))}\n </List>\n </Grid>\n )}\n </Box>\n\n <Stack\n direction=\"row\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={2}\n mb={1}\n className=\"px-4\"\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={handleClose}\n data-testid=\"assignfeatures-button-cancel\"\n >\n <Typography\n variant=\"caption\"\n data-testid=\"assignfeatures-typography-cancel\"\n >\n {translate(\"Cancel\")}\n </Typography>\n </Button>\n <Button\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSubmit(onSubmit)}\n data-testid=\"assignfeatures-button-save\"\n >\n {translate(\"Add\")}\n </Button>\n </Stack>\n </Grid>\n </Grid>\n </Modal>\n </Grid>\n );\n}\n\nAddFeatures.propTypes = {\n assignedFeatureList: PropTypes.any,\n selectedId: PropTypes.any,\n open: PropTypes.any,\n setOpenModal: PropTypes.any,\n setData: PropTypes.any,\n};\n"],"names":["AddFeatures","assignedFeatureList","selectedId","setData","open","setOpenModal","formRef","useRef","submitRef","translate","useTranslateProvider","features","setFeatures","useState","validationSchema","Yup","errors","handleSubmit","reset","control","watch","useForm","yupResolver","featuresWatcher","extractFeatures","data","key","item","subGroup","trackEvent","useTrackEvent","handleClose","onSubmit","value","featureIds","feature","postNewFeature","showToast","error","loadData","getFeaturesV2","AvailableFeatures","b","_a","availableFeature","useEffect","Grid","jsx","Modal","jsxs","Box","Typography","CustomAutocomplete","option","List","ListItem","Stack","Button","PropTypes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AddFeatures-D1sU8RjY.js","sources":["../src/views/Roles/AddFeatures.jsx"],"sourcesContent":["import { postNewFeature } from \"../../services/Roles\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport {\n Box,\n Button,\n List,\n ListItem,\n Modal,\n Stack,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport PropTypes from \"prop-types\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport * as Yup from \"yup\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport CustomAutocomplete from \"@/views/custom-components/CustomAutoComplete\";\nimport { getFeaturesV2 } from \"@/common/services/AuthenticateService\";\n// import { getFeatures } from \"@/common/services/AuthenticateService\";\n\nexport default function AddFeatures({\n assignedFeatureList,\n selectedId,\n setData,\n open,\n setOpenModal,\n}) {\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const { translate } = useTranslateProvider();\n const [features, setFeatures] = useState([]);\n\n const validationSchema = Yup.object().shape({\n values: Yup.array().min(1, \"Please select at least one feature.\"),\n });\n\n const {\n formState: { errors },\n handleSubmit,\n reset,\n control,\n watch,\n } = useForm({\n defaultValues: {\n values: [],\n },\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n const featuresWatcher = watch(\"values\");\n\n function extractFeatures(data) {\n const features = [];\n for (const key in data) {\n data[key].forEach((item) => {\n if (item.subGroups) {\n item.subGroups.forEach((subGroup) => features.push(subGroup));\n } else {\n features.push(item);\n }\n });\n }\n return features;\n }\n\n const trackEvent = useTrackEvent();\n\n function handleClose() {\n reset();\n setOpenModal(false);\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add Feature\",\n submit: submitRef.current,\n });\n trackEvent(\"button_click\", {\n button_name: \"add feature cancel button\",\n button_type: \"cancel\",\n button_id: \"assignfeatures-button-cancel\",\n });\n }\n\n const onSubmit = async (value) => {\n try {\n trackEvent(\"button_click\", {\n button_name: \"add feature save button\",\n button_type: \"submit\",\n button_id: \"assignfeatures-button-save\",\n });\n const selectedFeatureIds = value.values\n .map((feature) => feature.id)\n .join(\",\");\n const featureIds = {\n featureId: selectedFeatureIds,\n };\n\n await postNewFeature(featureIds, selectedId);\n showToast({\n message: \"Feature successfully assigned to selected role\",\n type: \"success\",\n });\n await setData();\n\n submitRef.current = true;\n handleClose();\n } catch (error) {\n showToast({\n message: `Error : ${error?.message}`,\n type: \"error\",\n });\n }\n };\n const loadData = async () => {\n try {\n const { data: features } = await getFeaturesV2();\n\n const data = extractFeatures(features).sort((a, b) =>\n a.name?.localeCompare(b.name),\n );\n\n const AvailableFeatures = data.filter(\n (feature) =>\n !assignedFeatureList?.some(\n (availableFeature) => availableFeature.featureId === feature.id,\n ),\n );\n setFeatures(AvailableFeatures);\n } catch (error) {\n showToast({\n message: `Error : ${error?.message}`,\n type: \"error\",\n });\n }\n };\n\n useEffect(() => {\n loadData();\n }, [assignedFeatureList]);\n\n return (\n <Grid>\n <Modal\n open={open}\n onClose={handleClose}\n data-testid=\"assignfeatures-modal\"\n >\n <Grid\n container\n className=\"absolute top-[10%] left-[50%] transform -translate-x-1/2 w-[95%] sm:w-[37.5rem] shadow-2xl rounded-md border flex flex-col h-auto max-h-[80vh] overflow-y-auto\"\n sx={{ bgcolor: \"background.paper\" }}\n >\n <Grid className=\"flex flex-col gap-2\">\n <Box\n className=\"p-2.5 px-5 flex w-full justify-start\"\n sx={{ borderBottom: 1, borderColor: \"divider\" }}\n >\n <Typography\n className=\"font-medium text-lg text-customBlue\"\n sx={{ color: \"text.primary\" }}\n >\n {translate(\"Assign New Feature\")}\n </Typography>\n </Box>\n <Box\n className=\"p-2.5 max-h-100 overflow-auto\"\n sx={{ borderBottom: 1, borderColor: \"divider\" }}\n >\n <CustomAutocomplete\n options={features}\n getOptionLabel={(option) => option.name}\n control={control}\n name={\"values\"}\n errors={errors}\n dataTestId={\"assignfeatures-autocomplete\"}\n />\n {featuresWatcher.length > 0 && (\n <Grid className=\"overflow-y-auto flex flex-col max-h-40 h-auto\">\n <List>\n {featuresWatcher\n .filter((feature) => feature.description)\n .map((feature) => (\n <ListItem key={feature?.id}>\n <Typography>\n <strong>{feature?.name}:</strong>{\" \"}\n {feature?.description}\n </Typography>\n </ListItem>\n ))}\n </List>\n </Grid>\n )}\n </Box>\n\n <Stack\n direction=\"row\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={2}\n mb={1}\n className=\"px-4\"\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={handleClose}\n data-testid=\"assignfeatures-button-cancel\"\n >\n <Typography\n variant=\"caption\"\n data-testid=\"assignfeatures-typography-cancel\"\n >\n {translate(\"Cancel\")}\n </Typography>\n </Button>\n <Button\n size=\"small\"\n variant=\"contained\"\n color=\"primary\"\n onClick={handleSubmit(onSubmit)}\n data-testid=\"assignfeatures-button-save\"\n >\n {translate(\"Add\")}\n </Button>\n </Stack>\n </Grid>\n </Grid>\n </Modal>\n </Grid>\n );\n}\n\nAddFeatures.propTypes = {\n assignedFeatureList: PropTypes.any,\n selectedId: PropTypes.any,\n open: PropTypes.any,\n setOpenModal: PropTypes.any,\n setData: PropTypes.any,\n};\n"],"names":["AddFeatures","assignedFeatureList","selectedId","setData","open","setOpenModal","formRef","useRef","submitRef","translate","useTranslateProvider","features","setFeatures","useState","validationSchema","Yup","errors","handleSubmit","reset","control","watch","useForm","yupResolver","featuresWatcher","extractFeatures","data","key","item","subGroup","trackEvent","useTrackEvent","handleClose","onSubmit","value","featureIds","feature","postNewFeature","showToast","error","loadData","getFeaturesV2","AvailableFeatures","b","_a","availableFeature","useEffect","Grid","jsx","Modal","jsxs","Box","Typography","CustomAutocomplete","option","List","ListItem","Stack","Button","PropTypes"],"mappings":";;;;;;;;;;;;;;AAuBA,SAAwBA,EAAY;AAAA,EAClC,qBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC;AACF,GAAG;AACD,QAAMC,IAAUC,EAAO,IAAI,GACrBC,IAAYD,EAAO,EAAK,GACxB,EAAE,WAAAE,EAAA,IAAcC,EAAA,GAChB,CAACC,GAAUC,CAAW,IAAIC,EAAS,CAAA,CAAE,GAErCC,IAAmBC,EAAI,OAAA,EAAS,MAAM;AAAA,IAC1C,QAAQA,EAAI,MAAA,EAAQ,IAAI,GAAG,qCAAqC;AAAA,EAAA,CACjE,GAEK;AAAA,IACJ,WAAW,EAAE,QAAAC,EAAA;AAAA,IACb,cAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,IACEC,EAAQ;AAAA,IACV,eAAe;AAAA,MACb,QAAQ,CAAA;AAAA,IAAC;AAAA,IAEX,UAAUC,EAAYR,CAAgB;AAAA,IACtC,MAAM;AAAA,EAAA,CACP,GAEKS,IAAkBH,EAAM,QAAQ;AAEtC,WAASI,EAAgBC,GAAM;AAC7B,UAAMd,IAAW,CAAA;AACjB,eAAWe,KAAOD;AAChB,MAAAA,EAAKC,CAAG,EAAE,QAAQ,CAACC,MAAS;AAC1B,QAAIA,EAAK,YACPA,EAAK,UAAU,QAAQ,CAACC,MAAajB,EAAS,KAAKiB,CAAQ,CAAC,IAE5DjB,EAAS,KAAKgB,CAAI;AAAA,MAEtB,CAAC;AAEH,WAAOhB;AAAAA,EACT;AAEA,QAAMkB,IAAaC,EAAA;AAEnB,WAASC,IAAc;AACrB,IAAAb,EAAA,GACAb,EAAa,EAAK,GAClBwB,EAAW,oBAAoB;AAAA,MAC7B,MAAMvB,EAAQ;AAAA,MACd,WAAW;AAAA,MACX,QAAQE,EAAU;AAAA,IAAA,CACnB,GACDqB,EAAW,gBAAgB;AAAA,MACzB,aAAa;AAAA,MACb,aAAa;AAAA,MACb,WAAW;AAAA,IAAA,CACZ;AAAA,EACH;AAEA,QAAMG,IAAW,OAAOC,MAAU;AAChC,QAAI;AACF,MAAAJ,EAAW,gBAAgB;AAAA,QACzB,aAAa;AAAA,QACb,aAAa;AAAA,QACb,WAAW;AAAA,MAAA,CACZ;AAID,YAAMK,IAAa;AAAA,QACjB,WAJyBD,EAAM,OAC9B,IAAI,CAACE,MAAYA,EAAQ,EAAE,EAC3B,KAAK,GAAG;AAAA,MAEE;AAGb,YAAMC,EAAeF,GAAYhC,CAAU,GAC3CmC,EAAU;AAAA,QACR,SAAS;AAAA,QACT,MAAM;AAAA,MAAA,CACP,GACD,MAAMlC,EAAA,GAENK,EAAU,UAAU,IACpBuB,EAAA;AAAA,IACF,SAASO,GAAO;AACd,MAAAD,EAAU;AAAA,QACR,SAAS,WAAWC,KAAA,gBAAAA,EAAO,OAAO;AAAA,QAClC,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAAA,EACF,GACMC,IAAW,YAAY;AAC3B,QAAI;AACF,YAAM,EAAE,MAAM5B,EAAAA,IAAa,MAAM6B,EAAA,GAM3BC,IAJOjB,EAAgBb,CAAQ,EAAE;AAAA,QAAK,CAAC,GAAG+B,MAAA;;AAC9C,kBAAAC,IAAA,EAAE,SAAF,gBAAAA,EAAQ,cAAcD,EAAE;AAAA;AAAA,MAAI,EAGC;AAAA,QAC7B,CAACP,MACC,EAAClC,KAAA,QAAAA,EAAqB;AAAA,UACpB,CAAC2C,MAAqBA,EAAiB,cAAcT,EAAQ;AAAA;AAAA,MAC/D;AAEJ,MAAAvB,EAAY6B,CAAiB;AAAA,IAC/B,SAASH,GAAO;AACd,MAAAD,EAAU;AAAA,QACR,SAAS,WAAWC,KAAA,gBAAAA,EAAO,OAAO;AAAA,QAClC,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAAA,EACF;AAEA,SAAAO,EAAU,MAAM;AACd,IAAAN,EAAA;AAAA,EACF,GAAG,CAACtC,CAAmB,CAAC,qBAGrB6C,GAAA,EACC,UAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAA5C;AAAA,MACA,SAAS2B;AAAA,MACT,eAAY;AAAA,MAEZ,UAAA,gBAAAgB;AAAA,QAACD;AAAA,QAAA;AAAA,UACC,WAAS;AAAA,UACT,WAAU;AAAA,UACV,IAAI,EAAE,SAAS,mBAAA;AAAA,UAEf,UAAA,gBAAAG,EAACH,GAAA,EAAK,WAAU,uBACd,UAAA;AAAA,YAAA,gBAAAC;AAAA,cAACG;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,IAAI,EAAE,cAAc,GAAG,aAAa,UAAA;AAAA,gBAEpC,UAAA,gBAAAH;AAAA,kBAACI;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,IAAI,EAAE,OAAO,eAAA;AAAA,oBAEZ,YAAU,oBAAoB;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACjC;AAAA,YAAA;AAAA,YAEF,gBAAAF;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,IAAI,EAAE,cAAc,GAAG,aAAa,UAAA;AAAA,gBAEpC,UAAA;AAAA,kBAAA,gBAAAH;AAAA,oBAACK;AAAA,oBAAA;AAAA,sBACC,SAASzC;AAAA,sBACT,gBAAgB,CAAC0C,MAAWA,EAAO;AAAA,sBACnC,SAAAlC;AAAA,sBACA,MAAM;AAAA,sBACN,QAAAH;AAAA,sBACA,YAAY;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAEbO,EAAgB,SAAS,KACxB,gBAAAwB,EAACD,KAAK,WAAU,iDACd,UAAA,gBAAAC,EAACO,GAAA,EACE,UAAA/B,EACE,OAAO,CAACY,MAAYA,EAAQ,WAAW,EACvC,IAAI,CAACA,MACJ,gBAAAY,EAACQ,GAAA,EACC,UAAA,gBAAAN,EAACE,GAAA,EACC,UAAA;AAAA,oBAAA,gBAAAF,EAAC,UAAA,EAAQ,UAAA;AAAA,sBAAAd,KAAA,gBAAAA,EAAS;AAAA,sBAAK;AAAA,oBAAA,GAAC;AAAA,oBAAU;AAAA,oBACjCA,KAAA,gBAAAA,EAAS;AAAA,kBAAA,EAAA,CACZ,EAAA,GAJaA,KAAA,gBAAAA,EAAS,EAKxB,CACD,GACL,EAAA,CACF;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAIJ,gBAAAc;AAAA,cAACO;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS;AAAA,gBACT,gBAAe;AAAA,gBACf,IAAI;AAAA,gBACJ,IAAI;AAAA,gBACJ,WAAU;AAAA,gBAEV,UAAA;AAAA,kBAAA,gBAAAT;AAAA,oBAACU;AAAA,oBAAA;AAAA,sBACC,SAAQ;AAAA,sBACR,OAAM;AAAA,sBACN,SAAS1B;AAAA,sBACT,eAAY;AAAA,sBAEZ,UAAA,gBAAAgB;AAAA,wBAACI;AAAA,wBAAA;AAAA,0BACC,SAAQ;AAAA,0BACR,eAAY;AAAA,0BAEX,YAAU,QAAQ;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACrB;AAAA,kBAAA;AAAA,kBAEF,gBAAAJ;AAAA,oBAACU;AAAA,oBAAA;AAAA,sBACC,MAAK;AAAA,sBACL,SAAQ;AAAA,sBACR,OAAM;AAAA,sBACN,SAASxC,EAAae,CAAQ;AAAA,sBAC9B,eAAY;AAAA,sBAEX,YAAU,KAAK;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAClB;AAAA,cAAA;AAAA,YAAA;AAAA,UACF,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA,GAEJ;AAEJ;AAEAhC,EAAY,YAAY;AAAA,EACtB,qBAAqB0D,EAAU;AAAA,EAC/B,YAAYA,EAAU;AAAA,EACtB,MAAMA,EAAU;AAAA,EAChB,cAAcA,EAAU;AAAA,EACxB,SAASA,EAAU;AACrB;"}
|