irest-app-test 3.0.1 → 3.2.2
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/.env.prod +1 -1
- package/dist/819.cb120b34.css +15 -0
- package/dist/819.cb120b34.css.map +1 -0
- package/dist/819.cb120b340691388e18ed.js +4046 -0
- package/dist/819.cb120b340691388e18ed.js.LICENSE.txt +5972 -0
- package/dist/819.cb120b340691388e18ed.js.map +1 -0
- package/dist/index.html +1 -13
- package/dist/main.cb120b34.css +24 -0
- package/dist/main.cb120b34.css.map +1 -0
- package/dist/main.cb120b340691388e18ed.js +3 -0
- package/dist/main.cb120b340691388e18ed.js.LICENSE.txt +59 -0
- package/dist/main.cb120b340691388e18ed.js.map +1 -0
- package/dist/manifest.json +21 -12
- package/lib/app.js +2 -2
- package/lib/constants/fakerModel.js +1 -1
- package/lib/constants/httpStatus.js +1 -1
- package/lib/constants/messages.js +1 -2
- package/lib/constants/rolesPermissionsJSON.js +1 -1
- package/lib/constants/routes.js +1 -1
- package/lib/constants/schemaDefaults.js +3 -4
- package/lib/helpers/generateUuidToken.js +1 -1
- package/lib/helpers/largerResponse.js +1 -1
- package/lib/helpers/util.js +3 -3
- package/lib/jwt/createToken.js +1 -1
- package/lib/jwt/verifyToken.js +1 -1
- package/lib/logger.js +2 -2
- package/lib/middlewares/company/companyAuthMiddleware.js +1 -1
- package/lib/middlewares/company/companyPermissionValidator.js +1 -1
- package/lib/middlewares/company/companyValidator.js +1 -1
- package/lib/middlewares/department/departmentPermissionValidator.js +1 -1
- package/lib/middlewares/department/departmentValidator.js +1 -1
- package/lib/middlewares/jwt/jwtCreate.js +1 -1
- package/lib/middlewares/jwt/jwtVerify.js +1 -1
- package/lib/middlewares/mock/mockAuthMiddleware.js +1 -1
- package/lib/middlewares/mock/mockStatusValidator.js +1 -1
- package/lib/middlewares/mock/mockValidator.js +1 -1
- package/lib/middlewares/permissions/ProjectAssignmentPermissionCheck.js +1 -1
- package/lib/middlewares/project/createProjectValidator.js +1 -1
- package/lib/middlewares/project/projectAuthMiddleware.js +1 -1
- package/lib/middlewares/project/projectPermissionValidator.js +1 -1
- package/lib/middlewares/project/projectValidator.js +1 -1
- package/lib/middlewares/user/loginValidator.js +1 -1
- package/lib/middlewares/user/registerValidator.js +1 -1
- package/lib/middlewares/user/tokenValidator.js +1 -1
- package/lib/middlewares/user/userPermissionValidator.js +1 -1
- package/lib/models/user.js +1 -1
- package/lib/routes/api/company/create.js +1 -1
- package/lib/routes/api/company/delete.js +1 -1
- package/lib/routes/api/company/detail.js +1 -1
- package/lib/routes/api/company/duplicate.js +1 -1
- package/lib/routes/api/company/list.js +1 -1
- package/lib/routes/api/company/update.js +1 -1
- package/lib/routes/api/department/assignDepartmentList.js +1 -1
- package/lib/routes/api/department/create.js +1 -1
- package/lib/routes/api/department/delete.js +1 -1
- package/lib/routes/api/department/details.js +1 -1
- package/lib/routes/api/department/list.js +1 -1
- package/lib/routes/api/department/status.js +1 -1
- package/lib/routes/api/department/update.js +1 -1
- package/lib/routes/api/department/userDepartment.js +1 -1
- package/lib/routes/api/file/jsonUploader.js +1 -1
- package/lib/routes/api/hierarchy/getHierarchy.js +1 -1
- package/lib/routes/api/iRest/defaultResponse.js +1 -1
- package/lib/routes/api/iRest/response.js +1 -1
- package/lib/routes/api/iRest/saveResponse.js +1 -1
- package/lib/routes/api/mock/create.js +1 -1
- package/lib/routes/api/mock/delete.js +1 -1
- package/lib/routes/api/mock/detail.js +1 -1
- package/lib/routes/api/mock/exportMock.js +1 -1
- package/lib/routes/api/mock/importMock.js +2 -2
- package/lib/routes/api/mock/list.js +1 -1
- package/lib/routes/api/mock/status.js +1 -1
- package/lib/routes/api/mock/update.js +1 -1
- package/lib/routes/api/project/assign.js +1 -1
- package/lib/routes/api/project/assignedList.js +1 -1
- package/lib/routes/api/project/create.js +1 -1
- package/lib/routes/api/project/delete.js +1 -1
- package/lib/routes/api/project/list.js +1 -1
- package/lib/routes/api/project/update.js +1 -1
- package/lib/routes/api/role/list.js +1 -1
- package/lib/routes/api/token/create.js +1 -1
- package/lib/routes/api/token/delete.js +1 -1
- package/lib/routes/api/token/list.js +1 -1
- package/lib/routes/api/token/update.js +1 -1
- package/lib/routes/api/updateSession/updateSession.js +1 -1
- package/lib/routes/api/user/delete.js +1 -1
- package/lib/routes/api/user/detail.js +1 -1
- package/lib/routes/api/user/duplicate.js +1 -1
- package/lib/routes/api/user/list.js +1 -1
- package/lib/routes/api/user/login.js +1 -1
- package/lib/routes/api/user/logout.js +1 -1
- package/lib/routes/api/user/status.js +1 -1
- package/lib/routes/api/user/update.js +1 -1
- package/lib/routes/api/user/userInfo.js +1 -1
- package/lib/sqliteConf.js +1 -1
- package/lib/validation/company/createOrUpdate.js +1 -1
- package/lib/validation/department/createOrUpdate.js +1 -1
- package/lib/validation/mock/createOrUpdate.js +1 -1
- package/lib/validation/mock/status.js +1 -1
- package/lib/validation/project/createOrUpdate.js +1 -1
- package/lib/validation/user/login.js +1 -1
- package/lib/validation/user/register.js +1 -1
- package/logs/.c5e344dfa745f7db92a00d51a0be685ef059380e-audit.json +15 -0
- package/logs/.ccf6974fe26cb9a94e88203a06c252fb190847b9-audit.json +15 -0
- package/logs/exceptions.log +0 -0
- package/logs/irest-2025-08-27-00.log +8 -0
- package/package.json +39 -51
- package/dist/1.e90beff8.css +0 -8
- package/dist/main.e90beff8.css +0 -1
- package/dist/main.e90beff8ef474452c42b.js +0 -192
- package/dist/main.e90beff8ef474452c42b.js.map +0 -1
- package/dist/vendors~main.e90beff8ef474452c42b.js +0 -6887
- package/dist/vendors~main.e90beff8ef474452c42b.js.map +0 -1
- /package/dist/{09475173b2780d1764459658fa9438cd.ttf → 15b253315b00e2650687.ttf} +0 -0
- /package/dist/{2b9b4872cd25494093c1eb14f0264a0b.svg → 15f2789dd231f36d43a4.svg} +0 -0
- /package/dist/{3df7c18da439886dcd33282364337f6d.ttf → 39af491f33e04d1f69b6.ttf} +0 -0
- /package/dist/{ca8fff2e23b3104f436b30904eb3d8dd.ttf → 56938cd09e3a04e0972a.ttf} +0 -0
- /package/dist/{1c0110920bc84f94fc7f1792fe15551d.ttf → 7a5b1e324beb1081259a.ttf} +0 -0
- /package/dist/{8f1ef46282421a634dd3e3413244e19e.ttf → c457bf058e9b1c254ca3.ttf} +0 -0
- /package/dist/{34358c7b131f807f987adfdc94c8ed94.svg → d0f16ae81ebe8f8bc2be.svg} +0 -0
- /package/dist/{b8426fa73d90964a62d36f8049162a78.ttf → d120ae23d1fe91716bf9.ttf} +0 -0
- /package/dist/{d2ed3e2e70fbf5f31cd2c54db47e16f6.png → d6055b85886d4ef914da.png} +0 -0
- /package/dist/{fd3be228a58d70edc77d967417da88f7.svg → d7e706e61c3f0ae6cac0.svg} +0 -0
- /package/dist/{9578f65388045478042a57a6031bb9d7.ttf → e43c5a897c0189a89b62.ttf} +0 -0
- /package/dist/{cac428111bd14b4b6867e641ccc24042.ttf → e62f6dbe2dbde08fb1ff.ttf} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.cb120b340691388e18ed.js","mappings":"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","sources":["webpack://client/webpack/runtime/chunk loaded","webpack://client/webpack/runtime/create fake namespace object","webpack://client/./src/modules/shared/units/JsonEditor.css?49a7","webpack://client/./src/modules/authentication/index.css?4bed","webpack://client/./src/tailwind.css?7f9c","webpack://client/./src/modules/mockDetail/index.css?f7c0","webpack://client/./src/modules/shared/css/rapidoc.css?deb4","webpack://client/./src/webvitals.js","webpack://client/./src/constants/index.js","webpack://client/./src/constants/endpoints.js","webpack://client/./src/modules/shared/units/Dialog.js","webpack://client/./src/containers/SessionTimeoutPopup.js","webpack://client/./src/modules/shared/service/axiosInstance.js","webpack://client/./src/modules/shared/utils/toast.js","webpack://client/./src/store/actions.js","webpack://client/./src/containers/SessionTimeout.js","webpack://client/./src/ducks/updateSessionDuck.js","webpack://client/./src/modules/shared/service/logout.js","webpack://client/./src/hooks/useRolePermission.js","webpack://client/./src/containers/header/index.js","webpack://client/./src/modules/shared/hooks/useAxios.js","webpack://client/./src/ducks/userinfoDuck.js","webpack://client/./src/modules/shared/units/BlockingLoader.js","webpack://client/./src/containers/ValidateRoutePermission/UnauthorizedPage.js","webpack://client/./src/containers/ValidateRoutePermission/index.js","webpack://client/./src/containers/PrivateRoute.js","webpack://client/./src/modules/shared/utils/history.js","webpack://client/./src/modules/authentication/constants.js","webpack://client/./src/modules/authentication/LeftPanel.js","webpack://client/./src/modules/authentication/messages.js","webpack://client/./src/modules/authentication/LoginFormField.js","webpack://client/./src/modules/authentication/Login.js","webpack://client/./src/modules/components/example/DialogExample.js","webpack://client/./src/modules/shared/units/ConfirmationBox.js","webpack://client/./src/modules/components/example/ConfirmDialogExample.js","webpack://client/./src/modules/shared/units/ActionDropdown.js","webpack://client/./src/modules/components/example/ActionDropdownExample.js","webpack://client/./src/modules/shared/units/SingleTableCell.js","webpack://client/./src/modules/shared/units/SingleTableRow.js","webpack://client/./src/modules/shared/units/PaginationComponent.js","webpack://client/./src/modules/shared/utils/helper.js","webpack://client/./src/modules/shared/units/BasicTable.js","webpack://client/./src/constants/messages.js","webpack://client/./src/modules/components/example/CustomTableExample.js","webpack://client/./src/modules/shared/units/FiltersDialog.js","webpack://client/./src/modules/components/example/FilterDropdownExample.js","webpack://client/./src/modules/components/example/SortDropdownExample.js","webpack://client/./src/modules/components/example/SearchExample.js","webpack://client/./src/modules/shared/units/MultiSelectDropdown.js","webpack://client/./src/modules/components/example/MultiSelectDropdwonExample.js","webpack://client/./src/modules/components/example/RadioButtonExample.js","webpack://client/./src/modules/components/example/ToastExample.js","webpack://client/./src/modules/components/example/ButtonExample.js","webpack://client/./src/modules/components/example/ProfileIconExample.js","webpack://client/./src/modules/components/example/AnchorLinkExample.js","webpack://client/./src/modules/components/example/LabelExamples.js","webpack://client/./src/modules/components/index.js","webpack://client/./src/modules/authentication/RegisterField.js","webpack://client/./src/modules/authentication/Register.js","webpack://client/./src/constants/dashboard.js","webpack://client/./src/modules/shared/service/projectEdit.js","webpack://client/./src/modules/shared/units/SimpleSelectDropdown.js","webpack://client/./src/modules/dashboard/actions/EditProject.js","webpack://client/./src/modules/shared/service/projectDelete.js","webpack://client/./src/modules/dashboard/actions/DeleteProject.js","webpack://client/./src/modules/dashboard/common/generateUuidToken.js","webpack://client/./src/modules/dashboard/utils/dashboardUtils.js","webpack://client/./src/ducks/updateTokenDuck.js","webpack://client/./src/modules/dashboard/actions/AuthenticateProject.js","webpack://client/./src/ducks/mockListDuck.js","webpack://client/./src/modules/dashboard/common/DownloadPostmanCollection.js","webpack://client/./src/containers/sideBar/ProjectListActionDropdown.js","webpack://client/./src/ducks/createProjectDuck.js","webpack://client/./src/containers/sideBar/CreateProject.js","webpack://client/./src/containers/sideBar/index.js","webpack://client/./src/modules/dashboard/apiListing/TopActionDashboardContainer.js","webpack://client/./src/modules/dashboard/apiListing/FilterContainer.js","webpack://client/./src/modules/dashboard/apiListing/SortingContainer.js","webpack://client/./src/modules/dashboard/actions/DeleteContainer.js","webpack://client/./src/modules/dashboard/actions/ToggleContainer.js","webpack://client/./src/modules/dashboard/actions/DownloadContainer.js","webpack://client/./src/modules/dashboard/apiListing/ImportedAPIStatusContainer.js","webpack://client/./src/ducks/importApiDuck.js","webpack://client/./src/ducks/selectedProjectDuck.js","webpack://client/./src/ducks/exportApiDuck.js","webpack://client/./src/modules/users/constant.js","webpack://client/./src/modules/dashboard/apiListing/BottomActionDashboardContainer.js","webpack://client/./src/modules/shared/units/TableLoader.js","webpack://client/./src/modules/dashboard/actions/PreviewContainer.js","webpack://client/./src/modules/dashboard/actions/EditContainer.js","webpack://client/./src/modules/dashboard/actions/CopyUrlContainer.js","webpack://client/./src/modules/dashboard/common/MockAuthenticationForm.js","webpack://client/./src/modules/dashboard/actions/AuthenticateContainer.js","webpack://client/./src/modules/dashboard/common/MockOverlayActions.js","webpack://client/./src/modules/shared/units/RapiDoc.js","webpack://client/./src/modules/mockDetail/MocklistWrapper.js","webpack://client/./src/modules/mockDetail/PreviewWrapper.js","webpack://client/./src/modules/mockDetail/preview.js","webpack://client/./src/modules/dashboard/common/PreviewOverlay.js","webpack://client/./src/modules/dashboard/common/TableListContainer.js","webpack://client/./src/modules/dashboard/apiListing/ApiListingContainer.js","webpack://client/./src/modules/dashboard/apiListing/ApiListingDashboard.js","webpack://client/./src/modules/dashboard/common/ProjectOverlayActions.js","webpack://client/./src/modules/dashboard/quickAccessDashboard/frequentProjectList.js","webpack://client/./src/modules/dashboard/quickAccessDashboard/recentApiList.js","webpack://client/./src/modules/dashboard/quickAccessDashboard/index.js","webpack://client/./src/modules/shared/units/Error.js","webpack://client/./src/modules/dashboard/index.js","webpack://client/./src/modules/companyDetail/constant.js","webpack://client/./src/modules/companyDetail/CompanyRowOverlay.js","webpack://client/./src/modules/companyDetail/CreateEditCompanyForm.js","webpack://client/./src/ducks/companyListDuck.js","webpack://client/./src/ducks/deleteCompanyDuck.js","webpack://client/./src/ducks/getCompanyDuck.js","webpack://client/./src/modules/companyDetail/CompanyList.js","webpack://client/./src/modules/shared/units/Breadcrumb.jsx","webpack://client/./src/modules/companyDetail/index.js","webpack://client/./src/modules/users/UserTableCellHover.js","webpack://client/./src/modules/shared/units/MultiSelectDropDownForModal.js","webpack://client/./src/modules/users/CreateEditUserForm.js","webpack://client/./src/ducks/getProjectsForUser.js","webpack://client/./src/modules/users/AssignProjectsForUser.js","webpack://client/./src/modules/users/UserList.js","webpack://client/./src/modules/users/index.js","webpack://client/./src/modules/departmentDetails/constant.js","webpack://client/./src/modules/departmentDetails/DepartmentRowOverlay.js","webpack://client/./src/modules/departmentDetails/CreateEditDepartmentForm.js","webpack://client/./src/ducks/departmentListDuck.js","webpack://client/./src/ducks/deleteDepartmentDuck.js","webpack://client/./src/ducks/getDepartmentDuck.js","webpack://client/./src/ducks/departmentStatusDuck.js","webpack://client/./src/modules/departmentDetails/DepartmentList.js","webpack://client/./src/modules/departmentDetails/index.js","webpack://client/./src/ducks/projectListDuck.js","webpack://client/./src/ducks/previewMockDuck.js","webpack://client/./src/ducks/createMockDuck.js","webpack://client/./src/ducks/getMockDuck.js","webpack://client/./src/modules/shared/units/Accordians.js","webpack://client/./src/modules/shared/units/JsonEditor.js","webpack://client/./src/constants/createMock.js","webpack://client/./src/modules/shared/utils/mocks.js","webpack://client/./src/modules/mockDetail/constants/fakerModel.js","webpack://client/./src/modules/mockDetail/ViewSampleData.js","webpack://client/./src/modules/mockDetail/SchemaView.js","webpack://client/./src/modules/mockDetail/ApiCode.js","webpack://client/./src/modules/shared/units/JsonEditorKeySelection.js","webpack://client/./src/modules/mockDetail/ResponseDetails.js","webpack://client/./src/modules/mockDetail/ResponseSchema.js","webpack://client/./src/modules/mockDetail/AddHeader.js","webpack://client/./src/modules/mockDetail/constants/httpStatus.js","webpack://client/./src/modules/mockDetail/ApiDetails.js","webpack://client/./src/modules/shared/utils/schemaTransformation.js","webpack://client/./src/modules/shared/utils/schemaToJson.js","webpack://client/./src/modules/mockDetail/CreateEditMockPage.js","webpack://client/./src/modules/mockDetail/index.js","webpack://client/./src/modules/projectDetails/ProjectList.js","webpack://client/./src/modules/shared/hooks/usePrevious.js","webpack://client/./src/modules/projectDetails/index.js","webpack://client/./src/containers/Router.js","webpack://client/./src/ducks/fileUploadDuck.js","webpack://client/./src/ducks/mockStatusDuck.js","webpack://client/./src/ducks/deleteMockDuck.js","webpack://client/./src/ducks/updateAuthDuck.js","webpack://client/./src/ducks/fetchTokenDuck.js","webpack://client/./src/ducks/createCompanyDuck.js","webpack://client/./src/ducks/getDepartmentsByCompanyDuck.js","webpack://client/./src/ducks/createDepartmentDuck.js","webpack://client/./src/store/reducer.js","webpack://client/./src/store/sagaWatcher.js","webpack://client/./src/store/configureStore.js","webpack://client/./src/modules/shared/utils/theme.js","webpack://client/./src/App.js","webpack://client/./src/index.js","webpack://client/webpack/bootstrap","webpack://client/webpack/runtime/amd options","webpack://client/webpack/runtime/compat get default export","webpack://client/webpack/runtime/define property getters","webpack://client/webpack/runtime/global","webpack://client/webpack/runtime/hasOwnProperty shorthand","webpack://client/webpack/runtime/make namespace object","webpack://client/webpack/runtime/node module decorator","webpack://client/webpack/runtime/publicPath","webpack://client/webpack/runtime/jsonp chunk loading","webpack://client/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; (typeof current == 'object' || typeof current == 'function') && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","\nvar content = require(\"!!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./JsonEditor.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./JsonEditor.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./JsonEditor.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","\nvar content = require(\"!!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./index.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./index.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./index.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","\nvar content = require(\"!!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/dist/cjs.js!../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./tailwind.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/dist/cjs.js!../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./tailwind.css\", function() {\n\t\tvar newContent = require(\"!!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/dist/cjs.js!../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./tailwind.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","\nvar content = require(\"!!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./index.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./index.css\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./index.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","\nvar content = require(\"!!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./rapidoc.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./rapidoc.css\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[3]!./rapidoc.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","import {onLCP, onCLS} from 'web-vitals';\r\n\r\nonCLS(console.log);\r\nonLCP(console.log);\r\n","// urls\r\nexport const IREST_ROUTES = {\r\n HOME: '/',\r\n DASHBOARD: '/dashboard',\r\n CREATE_MOCK: '/create/api',\r\n EDIT_MOCK: '/api/edit/:mockId',\r\n REGISTER: '/user/register',\r\n LOGIN: '/user/login',\r\n COMPONENTS: '/components',\r\n USER_MANAGEMENT: '/company/:companyId/users',\r\n COMPANY_MANAGEMENT: '/company',\r\n DEPARTMENT_MANAGEMENT: '/company/:id/department',\r\n PROJECT_MANAGEMENT_BY_DEPARTMENT_ID: '/company/:companyId/department/:departmentId/project',\r\n PROJECT_MANAGEMENT: '/projects',\r\n};\r\n\r\nexport const DEFAULT_PAGINATION = 10;\r\n\r\nexport const RECENT_API_ROWS_LENGTH = 5;\r\n\r\nexport const RECENT_API_PROJECT_LENGTH = 3;\r\n\r\n// enums\r\n\r\n// constant\r\nexport const MOCK_LIST_PAGE_TITLE = 'iRest';\r\nexport const CREATE_MOCK_PAGE_TITLE = 'Create Mock';\r\n\r\n// Specific color code used as per UX design\r\nexport const COLOR_CODES = {\r\n navbar: '#0A1F41',\r\n dashboardBg: '#FAFAFA',\r\n primary: '#476BC3',\r\n lineColor: '#EAE8E8',\r\n btnBorderColor: 'DEDEDE',\r\n search: {\r\n bg: '#DDE7FA',\r\n text: '#476BC3',\r\n },\r\n headingTitle3: '#383838',\r\n loginDrop: '#F4F4F4',\r\n};\r\n\r\nexport const FREQUENT_PROJECT_LIST_HEADS = [\r\n {\r\n id: 'projectName',\r\n label: 'Project Name',\r\n },\r\n {\r\n id: 'departmentName',\r\n label: 'Department',\r\n },\r\n {\r\n id: 'apiCount',\r\n label: 'API Count',\r\n },\r\n {\r\n id: 'authType',\r\n label: 'Authentication',\r\n },\r\n {\r\n id: 'updatedOn',\r\n label: 'Updated on',\r\n },\r\n];\r\n\r\nexport const PROJECT_LIST_HEADS = [\r\n {\r\n id: 'projectName',\r\n label: 'Project Name',\r\n },\r\n {\r\n id: 'departmentName',\r\n label: 'Department Name',\r\n },\r\n {\r\n id: 'companyName',\r\n label: 'Company Name',\r\n },\r\n {\r\n id: 'count',\r\n label: 'API Count',\r\n },\r\n {\r\n id: 'authenticationType',\r\n label: 'Authentication',\r\n },\r\n {\r\n id: 'updatedAt',\r\n label: 'Updated on',\r\n },\r\n];\r\n\r\nexport const RECENT_API_LIST_HEADS = [\r\n {\r\n id: 'apiName',\r\n label: 'API Name',\r\n },\r\n {\r\n id: 'projectName',\r\n label: 'Project Name',\r\n },\r\n {\r\n id: 'endPoint',\r\n label: 'Endpoint',\r\n },\r\n {\r\n id: 'requestMethod',\r\n label: 'Request Method',\r\n },\r\n {\r\n id: 'authType',\r\n label: 'Auth Type',\r\n },\r\n {\r\n id: 'updatedOn',\r\n label: 'Updated on',\r\n },\r\n {\r\n id: 'status',\r\n label: 'Running State',\r\n },\r\n];\r\n\r\nexport const ACTIONS = {\r\n PREVIEW: 'Preview',\r\n EDIT: 'Edit',\r\n CLOSE: 'Close',\r\n UPDATE: 'Update',\r\n COPY_URL: 'Copy URL',\r\n DELETE: 'Delete',\r\n HEADER: 'Are you Sure ?',\r\n PROJECTAUTHENTICATE: 'Project Authentication',\r\n PROJECTNAME: 'Add New Project',\r\n};\r\n\r\nexport const ATTRS = {\r\n PROJECT_LIST_NAME: 'API Listing',\r\n NEW_API: 'New API',\r\n SHARE: 'Share',\r\n AUTHENTICATE: 'Authenticate',\r\n AUTHENTICATION: 'Authentication',\r\n AUTHENTICATION_TYPE: 'On',\r\n AUTH_TYPE: 'Auth Type',\r\n CANCEL: 'Cancel',\r\n SAVE: 'Save',\r\n TOKEN: 'Token',\r\n MOCK_AUTHENTICATION: 'Mock Authentication',\r\n PROJECT_AUTHENTICATION: 'Project Authentication',\r\n COPY_TOKEN: 'Copy Token',\r\n EXPORT_AS_POSTMAN_COLLECTION: 'Export as Postman Collection',\r\n CLICK_TO_RUN: 'Click to Run',\r\n INFO: 'info',\r\n ERROR: 'error',\r\n SUCCESS: 'success',\r\n SOMETHING_WENT_WRONG: 'Something Went Wrong.',\r\n ENABLE_OR_DISABLE: 'Enable/Disable',\r\n ENABLED: 'enabled',\r\n DISABLED: 'disabled',\r\n COPIED: 'Copied',\r\n PROJECT_SPECIFIC: 'Project Specific',\r\n API_SPECIFIC: 'API Specific',\r\n API_SPECIFIC_TEXT: 'MOCK_SPECIFIC',\r\n PROJECT_SPECIFIC_TEXT: 'PROJECT_SPECIFIC',\r\n OFF: 'Off',\r\n OFF_TEXT: 'OFF',\r\n REFRESH_TOKEN: 'Refresh Token',\r\n};\r\n\r\nexport const saveAPIResponseType = {\r\n GET: {message: 'Record List!', status: '200', data: '$dataArray'},\r\n GET_BY_ID: {message: 'Single Record', status: '200', data: '$dataObject'},\r\n POST: {\r\n message: 'Data stored Successfully.',\r\n status: '200',\r\n data: {id: '$IREST_RECORD_ID'},\r\n },\r\n PUT: {message: 'Data updated Successfully.', status: '200', data: {id: '$IREST_RECORD_ID'}},\r\n PATCH: {message: 'Data updated Successfully.', status: '200', data: {id: '$IREST_RECORD_ID'}},\r\n DELETE: {message: 'Record deleted Successfully.', status: '200', data: {id: '$IREST_RECORD_ID'}},\r\n};\r\n\r\nexport const fetchAPIResponseType = {\r\n FETCH_NORMAL_RESPONSE: {},\r\n GET: {message: 'Record List!', status: '200', data: '$dataArray'},\r\n POST: {\r\n message: 'Data stored Successfully.',\r\n status: '200',\r\n data: {id: '$IREST_RECORD_ID'},\r\n },\r\n};\r\n\r\nexport const PROJECT_MANAGEMENT = 'Project Management';\r\nexport const PROJECT_LIST_DOMAIN = 'Project List';\r\nexport const CREATE_PROJECT = 'Create Project';\r\nexport const PROJECT_PAGE_TITLE = 'Project Management - iRest';\r\n\r\nexport const ROLES = {\r\n INDIVIDUAL: 'individual',\r\n SUB_USER: 'subuser',\r\n POC: 'poc',\r\n SUPER_ADMIN: 'superadmin',\r\n COMPANY_ADMIN: 'companyadmin',\r\n};\r\n","const {API_BASE_URL} = process.env;\r\nexport default API_BASE_URL;\r\n\r\nexport const LOGIN_API_ENDPOINT = `${API_BASE_URL}/login`;\r\nexport const REGISTER_API_ENDPOINT = `${API_BASE_URL}/register`;\r\nexport const GET_USER_LIST_API_ENDPOINT = `${API_BASE_URL}/user/list`;\r\nexport const GENERATE_USER_PASSWORD_API_ENDPOINT = `${API_BASE_URL}/user/password-generate`;\r\nexport const ASSIGN_PROJECT_API_ENDPOINT = `${API_BASE_URL}/project/assign`;\r\nexport const ROLE_LIST_API_ENDPOINT = `${API_BASE_URL}/role/list`;\r\nexport const COMPLANY_LIST_API_ENDPOINT = `${API_BASE_URL}/company/list`;\r\nexport const DEPARTMENT_LIST_API_ENDPOINT = `${API_BASE_URL}/department/list`;\r\nexport const PROJECT_LIST_API_ENDPOINT = `${API_BASE_URL}/project/list`;\r\nexport const USER_INFO_API_ENDPOINT = `${API_BASE_URL}/userinfo`;\r\nexport const GET_ASSIGNED_PROJECT_ENDPOINT = `${API_BASE_URL}/project/assigned/`;\r\nexport const ATTRIBUTED_DEPARTMENT_LIST_API_ENDPOINT = `${API_BASE_URL}/assigned-department`;\r\nexport const COMPANY_DETAILS_API_ENDPOINT = `${API_BASE_URL}/company`;\r\nexport const EXPORT_MOCK_API_ENDPOINT = `${API_BASE_URL}/mock/export/`;\r\nexport const CREATE_COMPANY_ENDPOINT = `${API_BASE_URL}/company/create`;\r\nexport const EDIT_COMPANY_ENDPOINT = `${API_BASE_URL}/company`;\r\nexport const CREATE_DEPARTMENT_ENDPOINT = `${API_BASE_URL}/department/create`;\r\nexport const EDIT_DEPARTMENT_ENDPOINT = `${API_BASE_URL}/department`;\r\n","import React from 'react';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport Divider from '@mui/material/Divider';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Button from '@mui/material/Button';\r\n\r\nexport default function DialogBox(props) {\r\n const {\r\n showCloseIcon = true,\r\n showDialogTitle = true,\r\n showActionBar = true,\r\n showPrimaryButton = true,\r\n showSecondaryButton = true,\r\n open,\r\n onClose,\r\n bodyContent,\r\n primaryBtnHandler,\r\n primaryBtnColor,\r\n primaryBtnVarient,\r\n secondaryBtnColor,\r\n secondaryBtnVarient,\r\n secondaryBtnHandler,\r\n primaryBtnLabel,\r\n secondaryBtnLabel,\r\n dialogTitle,\r\n primaryBtnId = '',\r\n secondaryBtnId = '',\r\n isDialogTitleIconVisible = false,\r\n dialogTitleIcon,\r\n isSubtitleVisible,\r\n SubtitleContent,\r\n isPrimaryBtnDisabled = false,\r\n } = props;\r\n\r\n return (\r\n <div>\r\n <Dialog maxWidth=\"md\" aria-labelledby=\"customized-dialog-title\" open={open}>\r\n <DialogTitle className=\"NunitoSansSemibold text-lg\">\r\n {showDialogTitle && (\r\n <>\r\n {dialogTitle}\r\n {isDialogTitleIconVisible && dialogTitleIcon}\r\n {showCloseIcon && (\r\n <div className=\"float-right\">\r\n <IconButton aria-label=\"fingerprint\">\r\n <CloseIcon color=\"primary\" onClick={onClose} />\r\n </IconButton>\r\n </div>\r\n )}\r\n {isSubtitleVisible && (\r\n <div className=\"text-xs NunitoSansRegular text-[#343434] whitespace-nowrap text-ellipsis overflow-hidden w-96\">\r\n {SubtitleContent}\r\n </div>\r\n )}\r\n </>\r\n )}\r\n </DialogTitle>\r\n <DialogContent className=\"NunitoSansRegular text-base\">{bodyContent}</DialogContent>\r\n {showActionBar && (\r\n <>\r\n <Divider />\r\n <DialogActions className=\"mr-6\">\r\n {showSecondaryButton && (\r\n <Button\r\n id={secondaryBtnId}\r\n data-testid={secondaryBtnId}\r\n onClick={secondaryBtnHandler}\r\n color={secondaryBtnColor}\r\n varient={secondaryBtnVarient}\r\n >\r\n {secondaryBtnLabel}\r\n </Button>\r\n )}\r\n {showPrimaryButton && (\r\n <Button\r\n id={primaryBtnId}\r\n data-testid={primaryBtnId}\r\n onClick={primaryBtnHandler}\r\n color={primaryBtnColor}\r\n variant={primaryBtnVarient}\r\n disabled={isPrimaryBtnDisabled}\r\n >\r\n {primaryBtnLabel}\r\n </Button>\r\n )}\r\n </DialogActions>\r\n </>\r\n )}\r\n </Dialog>\r\n </div>\r\n );\r\n}\r\n","import React from 'react';\r\nimport DialogBox from '../modules/shared/units/Dialog';\r\n\r\nfunction SessionTimeoutPopup({countdown, onLogout, onContinue, timeoutModalOpen, onClose}) {\r\n const bodyContent = <p>{`The current session is about to expire in ${countdown} seconds.`}</p>;\r\n const dialogTitle = 'Session is about to expires..';\r\n\r\n return (\r\n <DialogBox\r\n open={timeoutModalOpen}\r\n primaryBtnLabel=\"Logout\"\r\n primaryBtnHandler={onLogout}\r\n secondaryBtnHandler={onContinue}\r\n secondaryBtnLabel=\"Continue\"\r\n bodyContent={bodyContent}\r\n dialogTitle={dialogTitle}\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n onClose={onClose}\r\n />\r\n );\r\n}\r\n\r\nexport default SessionTimeoutPopup;\r\n","import axios from 'axios';\r\nimport {v4 as uuidv4} from 'uuid';\r\n\r\nconst axiosInstance = axios.create();\r\n\r\naxiosInstance.interceptors.request.use((req) => {\r\n const nonce = uuidv4();\r\n req.headers['x-correlation-id'] = nonce;\r\n return req;\r\n});\r\n\r\naxiosInstance.interceptors.response.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.response.status === 401) {\r\n localStorage.clear();\r\n window.location.href = '/';\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\nexport default axiosInstance;\r\n","import {toast} from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nconst notify = (\r\n message,\r\n {delay = 0, theme = 'colored', position = 'bottom-left', type = 'info'}\r\n) => {\r\n toast[type](message, {\r\n position,\r\n theme,\r\n delay,\r\n });\r\n};\r\n\r\nexport default notify;\r\n","const responseSuccessOrFailureAction = (type, data, key = 'data') => ({\r\n type,\r\n [key]: data,\r\n});\r\n\r\nexport default responseSuccessOrFailureAction;\r\n","import React, {useState, useEffect} from 'react';\r\nimport {useDispatch} from 'react-redux';\r\nimport {useIdleTimer} from 'react-idle-timer';\r\nimport {useNavigate} from 'react-router-dom';\r\nimport dayjs from 'dayjs';\r\nimport SessionTimeoutPopup from './SessionTimeoutPopup';\r\nimport {sessionUpdateAction} from '../ducks/updateSessionDuck';\r\n\r\nlet countDownInterval;\r\nlet timeout;\r\n\r\nfunction SessionTimeout(props) {\r\n const navigate = useNavigate();\r\n\r\n let countDown = 250;\r\n const dispatch = useDispatch();\r\n const [timeoutModalOpen, setModalOpen] = useState(false);\r\n const [timeoutCountDown, setCountDown] = useState(0);\r\n const expiryMs = dayjs(props?.expires).diff(dayjs(Date.now()));\r\n const timeoutTime = expiryMs - countDown * 100;\r\n\r\n const clearSessionTimeout = () => {\r\n clearTimeout(timeout);\r\n };\r\n\r\n const clearSessionInterval = () => {\r\n clearInterval(countDownInterval);\r\n };\r\n\r\n const handleLogout = async () => {\r\n try {\r\n localStorage.removeItem('iRestUser');\r\n setModalOpen(false);\r\n clearSessionInterval();\r\n clearSessionTimeout();\r\n navigate('/', {replace: true});\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n\r\n const handleContinue = () => {\r\n dispatch(sessionUpdateAction());\r\n setModalOpen(false);\r\n clearSessionInterval();\r\n clearSessionTimeout();\r\n };\r\n\r\n const onActive = () => {\r\n if (!timeoutModalOpen) {\r\n clearSessionInterval();\r\n clearSessionTimeout();\r\n }\r\n };\r\n\r\n const onClose = () => {\r\n setModalOpen(false);\r\n };\r\n\r\n const onIdle = () => {\r\n const delay = 1000;\r\n if (props.isAuthenticated && !timeoutModalOpen) {\r\n timeout = setTimeout(() => {\r\n setModalOpen(true);\r\n setCountDown(countDown);\r\n countDownInterval = setInterval(() => {\r\n if (countDown > 0) {\r\n countDown -= 1;\r\n setCountDown(countDown);\r\n } else {\r\n handleLogout();\r\n }\r\n }, 1000);\r\n }, delay);\r\n }\r\n };\r\n useIdleTimer({\r\n onIdle,\r\n onActive,\r\n crossTab: true,\r\n timeout: timeoutTime,\r\n promptBeforeIdle: timeoutTime - countDown * 100,\r\n throttle: 250, // Debounce/throttle event handling\r\n });\r\n\r\n useEffect(\r\n () => () => {\r\n clearSessionInterval();\r\n clearSessionTimeout();\r\n },\r\n []\r\n );\r\n\r\n return (\r\n // eslint-disable-next-line react/jsx-no-useless-fragment\r\n <>\r\n {timeoutModalOpen && (\r\n <SessionTimeoutPopup\r\n countdown={timeoutCountDown}\r\n onContinue={handleContinue}\r\n onLogout={handleLogout}\r\n timeoutModalOpen={timeoutModalOpen}\r\n onClose={onClose}\r\n />\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default SessionTimeout;\r\n","import {put, call} from 'redux-saga/effects';\r\nimport client from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const SESSION_UPDATE = 'SESSION_UPDATE';\r\nexport const SESSION_UPDATE_SUCCESS = 'SESSION_UPDATE_SUCCESS';\r\nexport const SESSION_UPDATE_ERROR = 'SESSION_UPDATE_ERROR';\r\n\r\n// Initial State\r\nconst updateSessionInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n};\r\n\r\n// Action Creator\r\nexport const sessionUpdateAction = (data) => ({\r\n type: SESSION_UPDATE,\r\n data,\r\n});\r\n\r\n// Service\r\nexport const updateSessionService = ({data}) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/updatesession`;\r\n\r\n return client({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n params: data,\r\n })\r\n .then((response) => response.data)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\n// Saga\r\nexport function* updateSessionSaga(payload) {\r\n try {\r\n const response = yield call(updateSessionService, payload);\r\n response.type = SESSION_UPDATE_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(SESSION_UPDATE_SUCCESS, response));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(SESSION_UPDATE_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function updateSession(state = updateSessionInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case SESSION_UPDATE_SUCCESS:\r\n return {...state, response};\r\n case SESSION_UPDATE_ERROR:\r\n return {...state, response};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import axios from './axiosInstance';\r\n\r\nconst logoutService = () => {\r\n const {API_BASE_URL} = process.env;\r\n const url = `${API_BASE_URL}/logout`;\r\n\r\n return axios({\r\n method: 'post',\r\n url,\r\n }).then((res) => {\r\n if (res.status === 205) {\r\n localStorage.clear('iRestUser');\r\n return res;\r\n }\r\n });\r\n};\r\n\r\nexport default logoutService;\r\n","import {useSelector} from 'react-redux';\r\n\r\nconst useRolePermission = (primaryKey, secondaryKey, tertiaryKey) => {\r\n const userinfo = useSelector((state) => state.userinfo);\r\n\r\n if (userinfo.roles[0] === 'superadmin') {\r\n return true;\r\n }\r\n\r\n if (\r\n tertiaryKey &&\r\n userinfo?.permissions &&\r\n userinfo?.permissions[primaryKey][tertiaryKey][secondaryKey]\r\n ) {\r\n return true;\r\n }\r\n if (userinfo?.permissions && userinfo?.permissions?.[primaryKey][secondaryKey]) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport default useRolePermission;\r\n","import React, {useContext} from 'react';\r\nimport {Link, useLocation, useNavigate} from 'react-router-dom';\r\nimport {useSelector, useDispatch} from 'react-redux';\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport Toolbar from '@mui/material/Toolbar';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Container from '@mui/material/Container';\r\nimport Avatar from '@mui/material/Avatar';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport logo from '../../modules/shared/assets/irest_logo_icon.png';\r\nimport {IREST_ROUTES, DEFAULT_PAGINATION} from '../../constants';\r\nimport logoutService from '../../modules/shared/service/logout';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\nimport {SearchAPIContext} from '../PrivateRoute';\r\n\r\nexport default function Header() {\r\n const userinfo = useSelector((state) => state.userinfo);\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n const isReadCompanyEnabled = useRolePermission('company', 'read');\r\n const {searchAPI, setSearchAPI} = useContext(SearchAPIContext);\r\n const displayShortName = (name) => {\r\n let newName = '';\r\n if (name === null || name === '') {\r\n newName = '';\r\n } else {\r\n const updatedName = name\r\n .split(' ')\r\n .map((e) => e[0])\r\n .join('');\r\n newName = updatedName;\r\n }\r\n return newName;\r\n };\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n const onNameClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleRedirection = (url) => {\r\n navigate(url, {replace: true});\r\n handleClose();\r\n };\r\n\r\n const handleLogout = async (e) => {\r\n const res = await logoutService();\r\n if (res?.status === 205) {\r\n navigate(IREST_ROUTES.HOME, {replace: true});\r\n }\r\n };\r\n\r\n return (\r\n <AppBar className=\"h-16 !m-0 my-auto bg-navbar\" position=\"static\">\r\n <Container className=\"max-w-full\">\r\n <Toolbar className=\"h-14 !m-0 !max-w-full justify-between\" disableGutters>\r\n <Box className=\"flex\">\r\n <img\r\n src={logo}\r\n alt=\"header_sample_logo_icon\"\r\n className=\"navbar-brand navbar-logo h-9\"\r\n />\r\n <Link className=\"text-2xl p-1 text-white no-underline\" to={IREST_ROUTES.DASHBOARD}>\r\n iRest\r\n </Link>\r\n </Box>\r\n {!location?.pathname?.includes('company') && (\r\n <div className=\"w-52 h-8 sm:w-80 sm:h-8 rounded bg-search-bg font-sans text-sm text-search-text mr-8 flex\">\r\n <span className=\"rounded px-2 py-1 w-4 h-4 pr-7 bg-inherit\">\r\n <SearchIcon />\r\n </span>\r\n <input\r\n className=\"h-5 py-4 w-full bg-inherit border-none outline-none rounded\"\r\n type=\"text\"\r\n placeholder=\"Search by API or Endpoint\"\r\n value={searchAPI}\r\n onChange={(e) => {\r\n setSearchAPI(e.target.value);\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n navigate('/dashboard/api-list', {replace: true});\r\n setTimeout(() => {\r\n dispatch({\r\n type: 'MOCK_LIST',\r\n data: {\r\n limit: DEFAULT_PAGINATION,\r\n offset: 0,\r\n search: searchAPI,\r\n },\r\n });\r\n });\r\n }\r\n }}\r\n />\r\n </div>\r\n )}\r\n <Box className=\"cursor-pointer\" onClick={onNameClick}>\r\n <Tooltip title=\"Profile\">\r\n <IconButton>\r\n <Avatar>{displayShortName(userinfo?.name)}</Avatar>\r\n </IconButton>\r\n </Tooltip>\r\n </Box>\r\n <Menu\r\n id=\"basic-menu\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n MenuListProps={{\r\n 'aria-labelledby': 'basic-button',\r\n }}\r\n >\r\n {isReadCompanyEnabled && (\r\n <MenuItem onClick={() => handleRedirection(IREST_ROUTES.COMPANY_MANAGEMENT)}>\r\n Company Management\r\n </MenuItem>\r\n )}\r\n <MenuItem onClick={(e) => handleLogout(e)}>Logout</MenuItem>\r\n </Menu>\r\n </Toolbar>\r\n </Container>\r\n </AppBar>\r\n );\r\n}\r\n","import axios from 'axios';\r\nimport {makeUseAxios} from 'axios-hooks';\r\nimport {v4 as uuidv4} from 'uuid';\r\n\r\nconst {API_BASE_URL} = process.env;\r\n\r\naxios.interceptors.request.use((req) => {\r\n const nonce = uuidv4();\r\n req.headers['x-correlation-id'] = nonce;\r\n return req;\r\n});\r\n\r\naxios.interceptors.response.use(\r\n (response) => response,\r\n (error) => {\r\n if (error.response.status === 401) {\r\n localStorage.clear();\r\n window.location.href = '/';\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nconst useAxios = makeUseAxios({\r\n axios: axios.create({\r\n baseURL: `${API_BASE_URL}/`,\r\n }),\r\n});\r\n\r\nexport default useAxios;\r\n","const initialState = {\r\n id: '',\r\n status: '',\r\n email: '',\r\n name: '',\r\n companyId: '',\r\n roles: [],\r\n};\r\n\r\n// Actions\r\nexport const SET_USER_INFO = 'SET_USER_INFO';\r\n\r\n// Action Creators\r\nexport const setUserInfo = (payload) => ({\r\n type: SET_USER_INFO,\r\n payload,\r\n});\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function getMock(state = initialState, action) {\r\n switch (action.type) {\r\n case SET_USER_INFO:\r\n return action.payload;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import React from 'react';\r\nimport Backdrop from '@mui/material/Backdrop';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\nfunction BlockingLoader({open}) {\r\n return (\r\n <Backdrop open={open} className=\"text-white z-[10000]\">\r\n <CircularProgress color=\"inherit\" />\r\n </Backdrop>\r\n );\r\n}\r\n\r\nexport default BlockingLoader;\r\n","import React from 'react';\r\n\r\nfunction UnauhtorizedPage() {\r\n return (\r\n <div>\r\n <div className=\"flex justify-center mt-12\">\r\n <h1>You are not Authorized to view this page!</h1>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default UnauhtorizedPage;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useLocation} from 'react-router-dom';\r\nimport UnauhtorizedPage from './UnauthorizedPage';\r\n\r\nfunction ValidateRoutePermission({children, userinfo}) {\r\n const [flag, setFlag] = useState();\r\n const location = useLocation();\r\n const pathnames = location?.pathname.split('/').filter((x) => x);\r\n\r\n const havePermission = (routesArray) => {\r\n if (\r\n routesArray.includes(pathnames[pathnames.length - 1]) ||\r\n pathnames.includes('api-list') ||\r\n pathnames.includes('api')\r\n )\r\n setFlag(true);\r\n else setFlag(false);\r\n };\r\n\r\n useEffect(() => {\r\n const routes = userinfo.user?.permissions?.routes;\r\n // eslint-disable-next-line array-callback-return\r\n const routesArray = Object.keys(routes).filter((el) => {\r\n if (routes[el]) {\r\n return el;\r\n }\r\n });\r\n havePermission(routesArray);\r\n }, [JSON.stringify(userinfo), JSON.stringify(pathnames), pathnames.length]);\r\n\r\n return <div>{flag ? <div>{children}</div> : <UnauhtorizedPage />}</div>;\r\n}\r\n\r\nexport default ValidateRoutePermission;\r\n","import React, {useEffect, useState, createContext} from 'react';\r\nimport {Navigate, Outlet} from 'react-router-dom';\r\nimport {useDispatch} from 'react-redux';\r\nimport {IREST_ROUTES} from '../constants';\r\nimport {USER_INFO_API_ENDPOINT} from '../constants/endpoints';\r\nimport SessionTimeout from './SessionTimeout';\r\nimport Header from './header';\r\nimport useAxios from '../modules/shared/hooks/useAxios';\r\nimport {setUserInfo} from '../ducks/userinfoDuck';\r\nimport BlockingLoader from '../modules/shared/units/BlockingLoader';\r\nimport ValidateRoutePermission from './ValidateRoutePermission';\r\n\r\nexport const SearchAPIContext = createContext(null);\r\n\r\nfunction PrivateRoute({component: Component, ...rest}) {\r\n const dispatch = useDispatch();\r\n const [{data: userinfo, loading: isLoadingUserinfo}, getUserInfo] = useAxios({\r\n url: USER_INFO_API_ENDPOINT,\r\n method: 'post',\r\n });\r\n const [searchAPI, setSearchAPI] = useState('');\r\n\r\n useEffect(() => {\r\n if (userinfo?.user?.id) {\r\n dispatch(setUserInfo(userinfo?.user));\r\n }\r\n }, [userinfo]);\r\n\r\n useEffect(() => {\r\n getUserInfo();\r\n }, []);\r\n\r\n let iRestUser;\r\n try {\r\n iRestUser = JSON.parse(localStorage.getItem('iRestUser'));\r\n } catch (err) {\r\n console.log(err);\r\n return <Navigate to={IREST_ROUTES.HOME} />;\r\n }\r\n\r\n if (!iRestUser?.isAuthenticated) {\r\n return <Navigate to={IREST_ROUTES.HOME} replace />;\r\n }\r\n\r\n return (\r\n <>\r\n {iRestUser?.isAuthenticated && (\r\n <SessionTimeout isAuthenticated={iRestUser?.isAuthenticated} expires={iRestUser?.expires} />\r\n )}\r\n\r\n <SearchAPIContext.Provider\r\n // eslint-disable-next-line react/jsx-no-constructed-context-values\r\n value={{\r\n searchAPI,\r\n setSearchAPI,\r\n }}\r\n >\r\n <BlockingLoader open={isLoadingUserinfo} />\r\n <Header />\r\n {userinfo && (\r\n <ValidateRoutePermission userinfo={userinfo}>\r\n <Outlet />;\r\n </ValidateRoutePermission>\r\n )}\r\n </SearchAPIContext.Provider>\r\n </>\r\n );\r\n}\r\n\r\nexport default PrivateRoute;\r\n","import {createBrowserHistory} from 'history';\r\n\r\nconst history = createBrowserHistory();\r\n\r\nexport default history;\r\n","export const LEFT_PANEL = {\r\n HEADING: 'iRest',\r\n SUBHEADING: 'MOCK API TOOL',\r\n DESCRIPTION:\r\n 'tools is an essential tool in modern software development, helping to enhance the quality and reliability of applications by ensuring they work as intended under various scenarios.',\r\n};\r\n\r\nexport const LOGIN = {\r\n LEGEND: 'Sign In',\r\n REGISTER_TEXT: 'Dont have an account',\r\n REGISTER_LINK_TEXT: 'Sign Up for FREE',\r\n};\r\n\r\nexport const REGISTER = {\r\n LEGEND: 'Sign Up',\r\n LOGIN_TEXT: 'You already have an account',\r\n LOGIN_LINK_TEXT: 'Sign In',\r\n};\r\n","import React from 'react';\r\nimport {Typography} from '@mui/material';\r\nimport {LEFT_PANEL} from './constants';\r\n\r\nfunction LeftPanel() {\r\n return (\r\n <div className=\"h-screen flex flex-row\">\r\n <div className=\"h-screen flex flex-col items-center justify-center ml-14\">\r\n <div className=\"w-4/5\">\r\n <div className=\"mb-3 mt-12\">\r\n <Typography variant=\"h1\" className=\"text-[49px]\">\r\n {LEFT_PANEL.HEADING}\r\n </Typography>\r\n </div>\r\n <div className=\"mb-3\">\r\n <Typography variant=\"h4\" className=\"text-[22px]\">\r\n {LEFT_PANEL.SUBHEADING}\r\n </Typography>\r\n </div>\r\n <div className=\"mb-6\">\r\n <Typography variant=\"body1\" className=\"text-[16px]\">\r\n <b>{LEFT_PANEL.HEADING}</b> {LEFT_PANEL.DESCRIPTION}\r\n </Typography>\r\n </div>\r\n </div>\r\n\r\n <div className=\"login-background\" />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default LeftPanel;\r\n","export const ERROR_LOGIN_PAGE = 'Please fill the required fields !';\r\nexport const ERROR_MESSAGE = 'error';\r\nexport const PASSWORD_ERROR = 'Please fill the password';\r\nexport const PASSWORD_LESS_ERROR = 'Password should have atleast 3 characters';\r\nexport const PASSWORD_MORE_ERROR = 'Password should not have more than 30 characters';\r\nexport const EMAIL_ERROR = 'Please fill the email';\r\nexport const NAME_ERROR = 'Please fill the name';\r\nexport const ROLE_INDIVIDUAL = 'individual';\r\nexport const SURE_MESSAGE_TEXT = 'Are you sure?';\r\nexport const CANCEL_MESSAGE_TEXT = 'No, cancel';\r\nexport const CONFIRM_MESSAGE_TEXT = 'Yes, confirm';\r\nexport const DOMAIN_MESSAGE_TEXT =\r\n 'Your company domain does not exist ! Do you want to register as an individual user ?';\r\n","import React from 'react';\r\nimport {Typography, TextField} from '@mui/material';\r\nimport {EMAIL_ERROR, PASSWORD_ERROR} from './messages';\r\n\r\nfunction Form({user, emailField, passwordField, inputChangeHandler}) {\r\n return (\r\n <>\r\n <div className=\"mb-2\">\r\n <Typography className=\"text-[14px]\">Email ID</Typography>\r\n </div>\r\n <div className=\"h-[60px]\">\r\n <TextField\r\n id=\"email\"\r\n inputProps={{'data-testid': 'email-input'}}\r\n variant=\"outlined\"\r\n name=\"email\"\r\n type=\"text\"\r\n value={user?.email}\r\n onChange={inputChangeHandler}\r\n error={emailField}\r\n helperText={emailField ? EMAIL_ERROR : ''}\r\n />\r\n </div>\r\n <div className=\"mb-2\">\r\n <Typography className=\"text-[14px]\">Password</Typography>\r\n </div>\r\n <div className=\"h-[60px]\">\r\n <TextField\r\n id=\"password\"\r\n inputProps={{'data-testid': 'email-pass'}}\r\n variant=\"outlined\"\r\n type=\"password\"\r\n name=\"password\"\r\n value={user?.password}\r\n onChange={inputChangeHandler}\r\n error={passwordField}\r\n helperText={passwordField ? PASSWORD_ERROR : ''}\r\n />\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default Form;\r\n","import React, {useState} from 'react';\r\nimport {Link, Navigate, useNavigate} from 'react-router-dom';\r\nimport {Helmet} from 'react-helmet';\r\nimport {Typography} from '@mui/material';\r\nimport LoadingButton from '@mui/lab/LoadingButton';\r\nimport useAxios from 'axios-hooks';\r\nimport notify from '../shared/utils/toast';\r\nimport {IREST_ROUTES} from '../../constants';\r\nimport {LOGIN_API_ENDPOINT} from '../../constants/endpoints';\r\nimport LeftPanel from './LeftPanel';\r\nimport Form from './LoginFormField';\r\nimport './index.css';\r\nimport {LOGIN} from './constants';\r\n\r\nfunction Login() {\r\n const navigate = useNavigate();\r\n\r\n const [{isLoading}, executeLogin] = useAxios(\r\n {\r\n url: LOGIN_API_ENDPOINT,\r\n method: 'post',\r\n },\r\n {\r\n manual: true,\r\n }\r\n );\r\n const initialValue = {email: '', password: ''};\r\n const [user, setUser] = useState(initialValue);\r\n const [emailField, setEmailField] = useState(false);\r\n const [passwordField, setPasswordField] = useState(false);\r\n\r\n const inputChangeHandler = (event) => {\r\n setUser({...user, [event.target.name]: event.target.value});\r\n setEmailField(false);\r\n setPasswordField(false);\r\n };\r\n\r\n let iRestUser;\r\n try {\r\n iRestUser = JSON.parse(localStorage.getItem('iRestUser'));\r\n if (iRestUser?.isAuthenticated) {\r\n if (\r\n iRestUser?.roles?.includes('poc') ||\r\n iRestUser?.roles?.includes('superadmin') ||\r\n iRestUser?.roles?.includes('companyadmin')\r\n ) {\r\n return <Navigate to={IREST_ROUTES.COMPANY_MANAGEMENT} />;\r\n }\r\n return <Navigate to={IREST_ROUTES.DASHBOARD} />;\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n\r\n const loginHandler = (event) => {\r\n event.preventDefault();\r\n if (!user.email || !user.password) {\r\n if (!user?.email) setEmailField(true);\r\n if (!user?.password) setPasswordField(true);\r\n return;\r\n }\r\n const formattedUser = {\r\n email: user.email.trim(),\r\n password: user.password,\r\n };\r\n executeLogin({data: formattedUser})\r\n .then((response) => {\r\n try {\r\n const loggedUser = JSON.parse(response.headers?.irestuser);\r\n loggedUser.roles = response?.data?.roles;\r\n localStorage.setItem('iRestUser', JSON.stringify(loggedUser));\r\n setUser(initialValue);\r\n if (\r\n response?.data?.roles.includes('poc') ||\r\n response?.data?.roles.includes('superadmin') ||\r\n response?.data?.roles.includes('companyadmin')\r\n ) {\r\n navigate(IREST_ROUTES.COMPANY_MANAGEMENT, {replace: true});\r\n } else {\r\n navigate(IREST_ROUTES.DASHBOARD, {replace: true});\r\n }\r\n } catch (err) {\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n })\r\n .catch((error) => {\r\n if (error?.response?.status === 400) {\r\n if (error?.response?.data?.message) {\r\n notify(error?.response?.data?.message, {type: 'error'});\r\n } else {\r\n notify(error?.response?.data?.errors?.details[0]?.message, {type: 'error'});\r\n }\r\n } else {\r\n notify(error.response?.data?.message, {type: 'error'});\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <div className=\"flex flex-row h-screen bg-white\">\r\n <Helmet>\r\n <title>Login - iRest</title>\r\n <meta name=\"description\" content=\"Login - iRest\" />\r\n </Helmet>\r\n <div className=\"w-1/2\">\r\n <LeftPanel />\r\n </div>\r\n\r\n <div className=\"w-1/2\">\r\n <div className=\"flex flex-row justify-center items-center h-full\">\r\n <div className=\"bg-loginDrop w-[425px] h-7/12 p-7 rounded-xl\">\r\n <div>\r\n <div className=\"mb-8\">\r\n <Typography variant=\"h2\" className=\"text-[22px]\">\r\n {LOGIN.LEGEND}\r\n </Typography>\r\n </div>\r\n <Form\r\n user={user}\r\n emailField={emailField}\r\n passwordField={passwordField}\r\n inputChangeHandler={inputChangeHandler}\r\n />\r\n <div>\r\n <div className=\"mt-3 mb-6\">\r\n <LoadingButton\r\n data-testid=\"loginbtn\"\r\n loading={isLoading}\r\n className=\"w-[372px]\"\r\n variant=\"contained\"\r\n onClick={loginHandler}\r\n >\r\n {LOGIN.LEGEND}\r\n </LoadingButton>\r\n </div>\r\n <div className=\"flex flex-row gap-3\">\r\n <Typography>{LOGIN.REGISTER_TEXT}</Typography>\r\n <Link to={IREST_ROUTES.REGISTER} className=\"no-underline \">\r\n <Typography className=\"text-primary font-bold\">\r\n {LOGIN.REGISTER_LINK_TEXT}\r\n </Typography>\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Login;\r\n","import React from 'react';\r\nimport Typography from '@mui/material/Typography';\r\nimport DialogBox from '../../shared/units/Dialog';\r\n\r\nfunction sampleBodyContent() {\r\n return (\r\n <>\r\n <Typography gutterBottom>\r\n Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in,\r\n egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.\r\n </Typography>\r\n <Typography gutterBottom>\r\n Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus\r\n vel augue laoreet rutrum faucibus dolor auctor.\r\n </Typography>\r\n <Typography gutterBottom>\r\n Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel\r\n scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus\r\n auctor fringilla.\r\n </Typography>\r\n </>\r\n );\r\n}\r\n\r\nfunction DialogExample() {\r\n const [isDialogOpen, setDialogOpen] = React.useState(false);\r\n const primaryBtnHandler = () => {};\r\n const secondaryBtnHandler = () => {};\r\n const dialogClickHandler = () => {\r\n setDialogOpen(!isDialogOpen);\r\n };\r\n\r\n return (\r\n <>\r\n <div onClick={dialogClickHandler} className=\"text-xs\">\r\n Open dialog\r\n </div>\r\n <DialogBox\r\n open={isDialogOpen}\r\n onClose={dialogClickHandler}\r\n primaryBtnLabel=\"primary\"\r\n primaryBtnHandler={primaryBtnHandler}\r\n secondaryBtnHandler={secondaryBtnHandler}\r\n secondaryBtnLabel=\"secondary\"\r\n bodyContent={sampleBodyContent()}\r\n dialogTitle=\"Dialog Title\"\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n />\r\n </>\r\n );\r\n}\r\n\r\nexport default DialogExample;\r\n","import React from 'react';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport Divider from '@mui/material/Divider';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport Button from '@mui/material/Button';\r\n\r\nexport default function ConfirmationBox(props) {\r\n const {\r\n showDialogTitle = true,\r\n showPrimaryButton = true,\r\n showSecondaryButton = true,\r\n primaryBtnvariant,\r\n secondaryBtnVarient,\r\n primaryBtnColor,\r\n secondaryBtnColor,\r\n open,\r\n secondaryBtnLabel,\r\n secondaryBtnHandler,\r\n primaryBtnLabel,\r\n primaryBtnHandler,\r\n headerContent,\r\n bodyContent,\r\n primaryBtnId = '',\r\n secondaryBtnId = '',\r\n disablePrimaryBtn = false,\r\n width = '400px',\r\n } = props;\r\n\r\n return (\r\n <div>\r\n <Dialog\r\n className={`!m-0 !w-[${width}]`}\r\n aria-labelledby=\"customized-dialog-title\"\r\n open={open}\r\n >\r\n <DialogTitle className={`p-4 text-lg !min-w-[${width}]`}>\r\n {showDialogTitle && headerContent}\r\n </DialogTitle>\r\n <Divider />\r\n <DialogContent className={`!min-w-[${width}] NunitoSansRegular text-base px-4`}>\r\n {bodyContent}\r\n </DialogContent>\r\n <Divider className=\"shadow-2xl\" />\r\n <DialogActions className=\"px-4\">\r\n {showSecondaryButton && (\r\n <Button\r\n id={secondaryBtnId}\r\n data-testid={secondaryBtnId}\r\n onClick={secondaryBtnHandler}\r\n color={secondaryBtnColor}\r\n varient={secondaryBtnVarient}\r\n >\r\n {secondaryBtnLabel}\r\n </Button>\r\n )}\r\n {showPrimaryButton && (\r\n <Button\r\n onClick={primaryBtnHandler}\r\n id={primaryBtnId}\r\n data-testid={primaryBtnId}\r\n color={primaryBtnColor}\r\n variant={primaryBtnvariant}\r\n disabled={disablePrimaryBtn}\r\n >\r\n {primaryBtnLabel}\r\n </Button>\r\n )}\r\n </DialogActions>\r\n </Dialog>\r\n </div>\r\n );\r\n}\r\n","import React from 'react';\r\nimport ConfirmationBox from '../../shared/units/ConfirmationBox';\r\n\r\nfunction ConfirmDialogExample() {\r\n const [isConfirmationboxOpen, setConfirmationBoxOpen] = React.useState(false);\r\n\r\n const confirmationClickHandler = () => {\r\n setConfirmationBoxOpen(!isConfirmationboxOpen);\r\n };\r\n\r\n const secondaryBtnHandler = () => {\r\n confirmationClickHandler();\r\n };\r\n const primaryBtnHandler = () => {\r\n confirmationClickHandler();\r\n };\r\n\r\n return (\r\n <>\r\n <div onClick={confirmationClickHandler} className=\"text-xs\">\r\n Open ConfirmationBox\r\n </div>\r\n <ConfirmationBox\r\n open={isConfirmationboxOpen}\r\n headerContent=\"Are you sure?\"\r\n secondaryBtnLabel=\"No, cancel\"\r\n secondaryBtnHandler={secondaryBtnHandler}\r\n primaryBtnLabel=\"Yes, confirm\"\r\n primaryBtnHandler={primaryBtnHandler}\r\n bodyContent='All API within this project \"Project Test\" will be deleted'\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n />\r\n </>\r\n );\r\n}\r\n\r\nexport default ConfirmDialogExample;\r\n","import React from 'react';\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport ListItemIcon from '@mui/material/ListItemIcon';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nfunction ActionDropdown(props) {\r\n const {id, open, handleMenuClose, data, anchorEl} = props;\r\n return (\r\n <Menu id={id} open={open} anchorEl={anchorEl} onClose={handleMenuClose}>\r\n {data.map((option, index) => (\r\n <MenuItem key={index} data-option-value={option?.value} onClick={option?.clickHandler}>\r\n <ListItemIcon>{option?.icon}</ListItemIcon>\r\n <Typography variant=\"inherit\" noWrap>\r\n {option?.textLabel}\r\n </Typography>\r\n </MenuItem>\r\n ))}\r\n </Menu>\r\n );\r\n}\r\n\r\nexport default ActionDropdown;\r\n","import React from 'react';\r\nimport Button from '@mui/material/Button';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport LockIcon from '@mui/icons-material/Lock';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport ToggleOffIcon from '@mui/icons-material/ToggleOff';\r\nimport FileDownloadIcon from '@mui/icons-material/FileDownload';\r\nimport PushPinIcon from '@mui/icons-material/PushPin';\r\nimport ShareIcon from '@mui/icons-material/Share';\r\nimport ActionDropdown from '../../shared/units/ActionDropdown';\r\n\r\nfunction ActionDropdownExample() {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const showActionDropdown = Boolean(anchorEl);\r\n\r\n const handleActionDropdown = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n }; // To open action dropdown\r\n const handleCloseActionDropdown = () => {\r\n setAnchorEl(null);\r\n }; // To close action dropdown\r\n\r\n const editProjectOrMockHandler = (event) => {\r\n const {optionValue} = event.currentTarget.dataset;\r\n console.log(optionValue);\r\n handleCloseActionDropdown();\r\n };\r\n const authenticationProjectOrMockHandler = (event) => {\r\n const {optionValue} = event.currentTarget.dataset;\r\n console.log(optionValue);\r\n handleCloseActionDropdown();\r\n };\r\n const deleteProjectOrMockHandler = (event) => {\r\n const {optionValue} = event.currentTarget.dataset;\r\n console.log(optionValue);\r\n handleCloseActionDropdown();\r\n };\r\n const disableProjectOrMockHandler = (event) => {\r\n const {optionValue} = event.currentTarget.dataset;\r\n console.log(optionValue);\r\n handleCloseActionDropdown();\r\n };\r\n const exportProjectOrMockHandler = (event) => {\r\n const {optionValue} = event.currentTarget.dataset;\r\n console.log(optionValue);\r\n handleCloseActionDropdown();\r\n };\r\n const pinProjectOrMockHandler = (event) => {\r\n const {optionValue} = event.currentTarget.dataset;\r\n console.log(optionValue);\r\n handleCloseActionDropdown();\r\n };\r\n const shareProjectOrMockHandler = (event) => {\r\n const {optionValue} = event.currentTarget.dataset;\r\n console.log(optionValue);\r\n handleCloseActionDropdown();\r\n };\r\n\r\n const actiondropdownData = [\r\n {\r\n icon: <EditIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'edit',\r\n textLabel: 'Edit',\r\n clickHandler: editProjectOrMockHandler,\r\n },\r\n {\r\n icon: <LockIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'authentication',\r\n textLabel: 'View/Edit Authentication Details',\r\n clickHandler: authenticationProjectOrMockHandler,\r\n },\r\n {\r\n icon: <DeleteIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'delete',\r\n textLabel: 'Delete',\r\n clickHandler: deleteProjectOrMockHandler,\r\n },\r\n {\r\n icon: <ToggleOffIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'disableapi',\r\n textLabel: \"Disable Project API's\",\r\n clickHandler: disableProjectOrMockHandler,\r\n },\r\n {\r\n icon: <FileDownloadIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'exportaspostman',\r\n textLabel: 'Export as postman collection',\r\n clickHandler: exportProjectOrMockHandler,\r\n },\r\n {\r\n icon: <PushPinIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'pinproject',\r\n textLabel: 'Pin Project',\r\n clickHandler: pinProjectOrMockHandler,\r\n },\r\n {\r\n icon: <ShareIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'shareproejct',\r\n textLabel: 'Share Project',\r\n clickHandler: shareProjectOrMockHandler,\r\n },\r\n ];\r\n\r\n return (\r\n <>\r\n <Button\r\n id=\"basic-button\"\r\n aria-controls={showActionDropdown ? 'basic-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={showActionDropdown ? 'true' : undefined}\r\n onClick={handleActionDropdown}\r\n >\r\n ActionDropdown\r\n </Button>\r\n <ActionDropdown\r\n id=\"global-action-dropdown-menu\"\r\n anchorEl={anchorEl}\r\n data={actiondropdownData}\r\n open={showActionDropdown}\r\n handleMenuClose={handleCloseActionDropdown}\r\n />\r\n </>\r\n );\r\n}\r\n\r\nexport default ActionDropdownExample;\r\n","import React from 'react';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline';\r\nimport CancelIcon from '@mui/icons-material/Cancel';\r\nimport Tooltip from '@mui/material/Tooltip';\r\n\r\nexport default function SingleTableCell(props) {\r\n const {value, index, align = 'left', cellClassName, color, isIcon = false} = props;\r\n return (\r\n <TableCell key={index} align={align} className={cellClassName} style={{color}}>\r\n {isIcon ? (\r\n value ? (\r\n <CheckCircleOutlineIcon fontSize=\"small\" color=\"success\" />\r\n ) : (\r\n <CancelIcon fontSize=\"small\" color=\"error\" />\r\n )\r\n ) : (\r\n <Tooltip title={value}>{value}</Tooltip>\r\n )}\r\n </TableCell>\r\n );\r\n}\r\n","import React from 'react';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport SingleTableCell from './SingleTableCell';\r\n\r\nfunction SingleTableRow(props) {\r\n const {\r\n row,\r\n hoverEffect,\r\n index,\r\n cellClassName,\r\n hoverClassName,\r\n onHoverContent,\r\n onMouseLeave = () => {},\r\n isSelected,\r\n checkboxSelection,\r\n handleClick,\r\n } = props;\r\n const [overlayActions, setShowHoverEle] = React.useState(false);\r\n const isItemSelected = isSelected(row?.apiName);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n return (\r\n <TableRow\r\n key={index}\r\n onMouseLeave={\r\n hoverEffect\r\n ? () => {\r\n setShowHoverEle(false);\r\n onMouseLeave();\r\n }\r\n : undefined\r\n }\r\n onMouseEnter={\r\n hoverEffect\r\n ? () => {\r\n setShowHoverEle(true);\r\n }\r\n : undefined\r\n }\r\n className=\"relative group\"\r\n >\r\n {checkboxSelection && (\r\n <TableCell padding=\"checkbox\">\r\n <Checkbox\r\n color=\"primary\"\r\n checked={isItemSelected}\r\n inputProps={{\r\n 'aria-labelledby': labelId,\r\n }}\r\n onChange={(event) => handleClick(event, row.apiName)}\r\n />\r\n </TableCell>\r\n )}\r\n {Object.keys(row).map((cellValue, ind) =>\r\n cellValue !== '_id' ? (\r\n <SingleTableCell\r\n key={ind}\r\n value={row[cellValue]?.value}\r\n index={index}\r\n hoverEffect={hoverEffect}\r\n color={row[cellValue]?.color}\r\n align={row[cellValue]?.align}\r\n cellClassName={cellClassName}\r\n isIcon={row[cellValue]?.isIcon}\r\n />\r\n ) : null\r\n )}\r\n {overlayActions && <div className={`${hoverClassName}`}>{onHoverContent(row)}</div>}\r\n </TableRow>\r\n );\r\n}\r\n\r\nexport default SingleTableRow;\r\n","import React from 'react';\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\r\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\r\n\r\nexport function PreviosComponent() {\r\n return (\r\n <>\r\n <ArrowBackIosIcon fontSize=\"small\" /> Previous\r\n </>\r\n );\r\n}\r\n\r\nexport function NextComponent() {\r\n return (\r\n <>\r\n Next <ArrowForwardIosIcon fontSize=\"small\" />\r\n </>\r\n );\r\n}\r\n","// Used to prepare table row data(row will object)\r\nexport function createTableRowData(row, columnsToShow) {\r\n let rowData = {};\r\n columnsToShow.forEach((tableColumn) => {\r\n if ([tableColumn?.id] in row) {\r\n rowData = {\r\n ...rowData,\r\n [tableColumn?.id]: {value: row[tableColumn?.id]},\r\n };\r\n }\r\n if ('_id' in row) {\r\n rowData = {\r\n ...rowData,\r\n _id: {value: row._id},\r\n };\r\n }\r\n if ('id' in row) {\r\n rowData = {\r\n ...rowData,\r\n _id: {value: row.id},\r\n };\r\n }\r\n });\r\n return rowData;\r\n}\r\n\r\nexport function getToastType(statusCode) {\r\n if (statusCode >= 200 && statusCode < 300) {\r\n return 'success';\r\n }\r\n if (!statusCode || statusCode >= 400) {\r\n return 'error';\r\n }\r\n}\r\n\r\nexport function capitalizeFirstLetter(arr = []) {\r\n return arr?.map((item) => item.charAt(0).toUpperCase() + item.slice(1).toLowerCase());\r\n}\r\n\r\nexport function IsJsonString(str) {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport function isArrayOfObjectHasValue(array, key, valueToCheck) {\r\n const obj = array.find((element) => element[key] === valueToCheck);\r\n if (obj) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport function removeDuplicateObjectFromArray(arr) {\r\n return arr.filter((value, index) => {\r\n const newValue = JSON.stringify(value);\r\n return index === arr.findIndex((obj) => JSON.stringify(obj) === newValue);\r\n });\r\n}\r\n\r\nexport const isSpecialCharacter = (input) => {\r\n const format = /[!~@#$%^&*()+\\=[\\]{}; ':\"\\\\|,.<>/?]+/;\r\n if (format.test(input)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nexport function getCheckboxValue(tableData, selected) {\r\n let value = 0;\r\n tableData.forEach((tData) => {\r\n if (selected.indexOf(tData?.apiName?.apiId) !== -1) {\r\n value += 1;\r\n }\r\n });\r\n return Boolean(value);\r\n}\r\n\r\nexport const checkMatching = (newValue, list) => {\r\n let match = 0;\r\n list?.forEach((e) => {\r\n if (e?.label === newValue) {\r\n match += 1;\r\n }\r\n });\r\n return match;\r\n};\r\n\r\nconst endpointLen = 40;\r\n\r\nexport function truncateApi(endpoint) {\r\n if (endpoint?.length > endpointLen) {\r\n return endpoint.substring(0, endpointLen).concat('...');\r\n }\r\n return endpoint;\r\n}\r\n\r\nexport const manipulateFakerData = (data) => {\r\n const actual = [];\r\n let i = 0;\r\n /* eslint-disable guard-for-in */\r\n for (const k in data) {\r\n const key = k;\r\n const value = data[key];\r\n const b = {parent: key, id: i};\r\n i += 1;\r\n b.child = [];\r\n value.forEach((f) => {\r\n b.child.push(f.displayValue);\r\n });\r\n actual.push(b);\r\n }\r\n return actual;\r\n};\r\n\r\nexport const manipulateFakerChildData = (data) => {\r\n const actual = {child: []};\r\n /* eslint-disable guard-for-in */\r\n for (const k in data) {\r\n const key = k;\r\n const value = data[key];\r\n value.forEach((f) => {\r\n actual.child.push(f.displayValue);\r\n });\r\n }\r\n return actual;\r\n};\r\n\r\nexport function parseJson(jsonConvertedData) {\r\n const jsonData = jsonConvertedData?.replaceAll('\\r', '');\r\n const lines = jsonData?.split('\\n');\r\n const result = [];\r\n const headers = lines[0]?.split(',');\r\n for (let i = 1; i < lines.length; i += 1) {\r\n try {\r\n if (!lines[i]) continue;\r\n const obj = {};\r\n const currentLine = lines[i].split(',');\r\n for (const [j, header] of headers.entries()) {\r\n let key = header;\r\n if (key === undefined || key === '') key = 'data';\r\n obj[key] = currentLine[j];\r\n }\r\n result.push(obj);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n const convertedJson = result;\r\n return convertedJson;\r\n}\r\n\r\nexport function CapitalizeFirstLetter(str = '') {\r\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\r\n}\r\n\r\nexport function copyToClipboard(text) {\r\n if (navigator.clipboard) {\r\n navigator.clipboard.writeText(text);\r\n } else {\r\n const textArea = document.createElement('textarea');\r\n textArea.value = text;\r\n document.body.appendChild(textArea);\r\n textArea.select();\r\n try {\r\n document.execCommand('copy');\r\n } catch (err) {\r\n console.error('Unable to copy to clipboard', err);\r\n }\r\n document.body.removeChild(textArea);\r\n }\r\n}\r\n","import React, {useState} from 'react';\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport Pagination from '@mui/material/Pagination';\r\nimport PaginationItem from '@mui/material/PaginationItem';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport TableSortLabel from '@mui/material/TableSortLabel';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport Paper from '@mui/material/Paper';\r\nimport SwapVertIcon from '@mui/icons-material/SwapVert';\r\nimport SingleTableRow from './SingleTableRow';\r\nimport {PreviosComponent, NextComponent} from './PaginationComponent';\r\nimport {EMPTY_TABLE_MSG} from '../../../constants/messages';\r\nimport {getCheckboxValue} from '../utils/helper';\r\nimport {DEFAULT_PAGINATION} from '../../../constants';\r\n\r\nfunction BasicTable(props) {\r\n const {\r\n onHoverContent,\r\n onMouseLeave,\r\n columns,\r\n sortByColumn = '',\r\n sortAllowed = true,\r\n defaultPage = 1,\r\n defaultSortOrder = 'asc',\r\n cellClassName,\r\n headerCellClass,\r\n hoverClassName,\r\n tableData,\r\n showPagination = false,\r\n hoverEffect = true,\r\n tableWrapperClassName,\r\n tableClassName = 'overflow-hidden',\r\n getPageNumber,\r\n showLoader = false,\r\n loaderComponent,\r\n totalRecords = 0,\r\n checkboxSelection = false,\r\n handleSelectedRow,\r\n handleSortCall = () => {},\r\n maxHeight = null,\r\n } = props;\r\n const [order, setOrder] = useState(defaultSortOrder);\r\n const [orderBy, setOrderBy] = useState(sortByColumn);\r\n const [selected, setSelected] = useState([]);\r\n const tableRef = React.createRef();\r\n\r\n const handleSelectAllClick = (event) => {\r\n if (event.target.checked) {\r\n const newSelected = tableData?.map((n) => n?.apiName?.apiId);\r\n setSelected(newSelected);\r\n handleSelectedRow(newSelected);\r\n return;\r\n }\r\n setSelected([]);\r\n handleSelectedRow([]);\r\n };\r\n\r\n const handleClick = (event, apiName) => {\r\n const name = apiName?.apiId;\r\n const selectedIndex = selected.indexOf(name);\r\n let newSelected = [];\r\n\r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, name);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1)\r\n );\r\n }\r\n setSelected(newSelected);\r\n handleSelectedRow(newSelected);\r\n };\r\n\r\n const isSelected = (name) => selected.indexOf(name?.apiId) !== -1;\r\n\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n handleSortCall(order.toUpperCase(), property);\r\n setOrderBy(property);\r\n };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n // eslint-disable-next-line no-unused-expressions\r\n tableRef.current && tableRef.current.scrollIntoView();\r\n getPageNumber(newPage);\r\n setSelected([]);\r\n };\r\n\r\n const createSortHandler = (property) => (event) => {\r\n handleRequestSort(event, property);\r\n };\r\n\r\n return (\r\n <>\r\n <TableContainer\r\n sx={maxHeight ? {maxHeight} : {}}\r\n className={tableWrapperClassName}\r\n component={Paper}\r\n >\r\n <Table stickyHeader aria-label=\"customized table\" className={tableClassName}>\r\n <TableHead>\r\n <TableRow className=\"h-12\" key=\"header\">\r\n {checkboxSelection && (\r\n <TableCell padding=\"checkbox\" className={headerCellClass}>\r\n <Checkbox\r\n color=\"primary\"\r\n indeterminate={selected?.length > 0 && selected?.length < tableData?.length}\r\n checked={getCheckboxValue(tableData, selected)}\r\n onChange={handleSelectAllClick}\r\n inputProps={{\r\n 'aria-label': 'select all checkbox',\r\n }}\r\n />\r\n </TableCell>\r\n )}\r\n {columns.map((headCell) => (\r\n <TableCell\r\n align=\"left\"\r\n key={headCell.id}\r\n sortDirection={orderBy === headCell.id ? order : false}\r\n className={headerCellClass}\r\n >\r\n {sortAllowed ? (\r\n <TableSortLabel\r\n active={orderBy === headCell.id}\r\n onClick={createSortHandler(headCell.id)}\r\n IconComponent={SwapVertIcon}\r\n >\r\n {headCell.label}\r\n </TableSortLabel>\r\n ) : (\r\n headCell.label\r\n )}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {showLoader ? (\r\n loaderComponent\r\n ) : tableData.length === 0 ? (\r\n <TableRow>\r\n <TableCell colSpan={columns.length}>\r\n <div className=\"NunitoSansBold flex justify-center\">{EMPTY_TABLE_MSG}</div>\r\n </TableCell>\r\n </TableRow>\r\n ) : (\r\n tableData.map((row, index) => (\r\n <SingleTableRow\r\n key={index}\r\n row={row}\r\n index={index}\r\n columns={columns}\r\n onHoverContent={onHoverContent}\r\n onMouseLeave={onMouseLeave}\r\n hoverClassName={hoverClassName}\r\n cellClassName={cellClassName}\r\n hoverEffect={hoverEffect}\r\n isSelected={isSelected}\r\n handleClick={handleClick}\r\n checkboxSelection={checkboxSelection}\r\n />\r\n ))\r\n )}\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n {showPagination && totalRecords > 0 && (\r\n <div className=\"mt-6 float-right\">\r\n <Pagination\r\n disabled={totalRecords <= DEFAULT_PAGINATION}\r\n page={defaultPage}\r\n count={Math.ceil(totalRecords / DEFAULT_PAGINATION)}\r\n shape=\"rounded\"\r\n onChange={handleChangePage}\r\n renderItem={(item) => (\r\n <PaginationItem slots={{previous: PreviosComponent, next: NextComponent}} {...item} />\r\n )}\r\n />\r\n </div>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default BasicTable;\r\n","export const EMPTY_TABLE_MSG = 'No data available';\r\n\r\nexport default EMPTY_TABLE_MSG;\r\n","import React from 'react';\r\nimport BasicTable from '../../shared/units/BasicTable';\r\nimport TableCellHoverExample from './TableCellHoverExample';\r\n\r\nfunction createData(name, calories, fat, carbs) {\r\n return {\r\n name: {\r\n value: name,\r\n color: '#476BC3',\r\n },\r\n calories: {\r\n value: calories,\r\n },\r\n fat: {\r\n value: fat,\r\n },\r\n carbs: {\r\n value: carbs,\r\n },\r\n };\r\n}\r\n\r\nconst tableData = [\r\n createData('Fen ', '159', 6.0, 24),\r\n createData('Ice', '237', 9.0, 37),\r\n createData('Elr', '262', 16.0, 24),\r\n];\r\n\r\nfunction CustomTableExample(props) {\r\n const {showPagination = false, TableHeader = {}} = props;\r\n const columns = [...TableHeader];\r\n return (\r\n <BasicTable\r\n columns={columns}\r\n tableData={tableData}\r\n onHoverContent={<TableCellHoverExample />}\r\n showPagination={showPagination}\r\n sortByColumn=\"calories\"\r\n defaultPage={0}\r\n defaultSortOrder=\"asc\"\r\n cellClassName=\"global-table-body-cell NunitoSansSemibold\"\r\n headerCellClass=\"global-table-header-cell NunitoSansRegular\"\r\n hoverClassName=\"bg-white w-80 table-row group-hover:opacity-95 group-hover:transition-all\"\r\n tableWrapperClass=\"shadow-none h-fit\"\r\n />\r\n );\r\n}\r\n\r\nexport default CustomTableExample;\r\n","import React from 'react';\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport ListSubheader from '@mui/material/ListSubheader';\r\nimport CheckIcon from '@mui/icons-material/Check';\r\nimport Divider from '@mui/material/Divider';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Radio from '@mui/material/Radio';\r\nimport RadioGroup from '@mui/material/RadioGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\n\r\nexport default function FiltersDialog(props) {\r\n const {\r\n menudata,\r\n showCloseBtn = true,\r\n defaultValue = '',\r\n showClearBtn = true,\r\n open,\r\n handleClose,\r\n showRadioIcon = true,\r\n showCheckIcon = true,\r\n selectMenu,\r\n clearMenu,\r\n filterMenuMapping,\r\n isClearDisabled = false,\r\n isCloseDisabled = false,\r\n onRadioBtnChange,\r\n filterValues,\r\n anchorEl,\r\n } = props;\r\n\r\n const getMenuOptionItems = (obj, key) =>\r\n Object.keys(obj).map((filterOption, index) => {\r\n const addCheckIcon = filterValues[filterMenuMapping[key]].includes(filterOption);\r\n return (\r\n <MenuItem\r\n className=\"text-xs\"\r\n key={index}\r\n data-value={filterOption}\r\n onClick={(e) => selectMenu(e, key)}\r\n >\r\n {obj[filterOption]}\r\n {showCheckIcon && addCheckIcon && (\r\n <div className=\"w-full text-right\">\r\n <CheckIcon fontSize=\"small\" className=\"text-[#727272]\" />\r\n </div>\r\n )}\r\n </MenuItem>\r\n );\r\n });\r\n\r\n const getRadioOptionItems = (radioData) =>\r\n Object.keys(radioData).map((radioOption, index) => (\r\n <FormControlLabel\r\n key={index}\r\n className=\"text-xs m-0 radio-list\"\r\n value={radioOption}\r\n control={<Radio fontSize=\"small\" size=\"small\" />}\r\n label={radioData[radioOption]}\r\n />\r\n ));\r\n\r\n return (\r\n <div key=\"filter-dialog\" className=\"filter-dialog\">\r\n <Menu\r\n id=\"basic-menu\"\r\n aria-labelledby=\"demo-positioned-button\"\r\n anchorEl={anchorEl}\r\n open={open}\r\n onClose={handleClose}\r\n className=\"absolute\"\r\n placement=\"bottom-start\"\r\n >\r\n {Object.keys(menudata).map((key, index) => (\r\n <div key={index}>\r\n <ListSubheader className=\"leading-list-header px-2.5 pt-2.5 leading-5\">\r\n <div className=\"inline-block text-[#B5B5B5] text-xs list-key-type\">{key}</div>\r\n <div className=\"text-right inline-block clear-close-button\">\r\n {index === 0 && showClearBtn && !isClearDisabled && (\r\n <IconButton\r\n className=\"text-[#476BC3] inline-block text-xs\"\r\n varient=\"string\"\r\n disabled={isClearDisabled}\r\n size=\"small\"\r\n onClick={clearMenu}\r\n >\r\n Clear\r\n </IconButton>\r\n )}\r\n {index === 0 && showClearBtn && showCloseBtn && (\r\n <span className=\"inline-block\">|</span>\r\n )}\r\n {index === 0 && showCloseBtn && !isCloseDisabled && (\r\n <IconButton\r\n className=\"text-[#476BC3] inline-block text-xs\"\r\n varient=\"string\"\r\n disabled={isCloseDisabled}\r\n size=\"small\"\r\n onClick={handleClose}\r\n >\r\n {' '}\r\n Close\r\n </IconButton>\r\n )}\r\n </div>\r\n </ListSubheader>\r\n {!showRadioIcon && (\r\n <>\r\n {getMenuOptionItems(menudata[key], key)}\r\n <Divider />\r\n </>\r\n )}\r\n {showRadioIcon && (\r\n <RadioGroup\r\n aria-labelledby=\"demo-radio-buttons-group-label\"\r\n value={defaultValue}\r\n name=\"radio-buttons-group\"\r\n className=\"px-2.5 pb-2.5\"\r\n onChange={onRadioBtnChange}\r\n >\r\n {' '}\r\n {getRadioOptionItems(menudata[key])}\r\n </RadioGroup>\r\n )}\r\n </div>\r\n ))}\r\n </Menu>\r\n </div>\r\n );\r\n}\r\n","import React from 'react';\r\nimport Button from '@mui/material/Button';\r\nimport FiltersDialog from '../../shared/units/FiltersDialog';\r\n\r\nconst filtermenudata = {\r\n 'Request Method': {\r\n any: 'Any',\r\n get: 'Get',\r\n post: 'Post',\r\n put: 'Put',\r\n patch: 'Patch',\r\n delete: 'Delete',\r\n },\r\n 'API Status': {\r\n any: 'Any',\r\n enabled: 'Enabled',\r\n disabled: 'Disabled',\r\n },\r\n 'Auth Type': {\r\n any: 'Any',\r\n project_specific: 'Project Specific',\r\n mock_specific: 'API Specific',\r\n off: 'Off',\r\n },\r\n};\r\n\r\nconst filterMenuMapping = {\r\n 'Request Method': 'allowedMethods',\r\n 'API Status': 'status',\r\n 'Auth Type': 'authenticationType',\r\n};\r\n\r\nfunction FilterDropdownExample() {\r\n const [showFilterMenu, setFilterMenu] = React.useState(false);\r\n const filtersInitialState = {\r\n allowedMethods: [],\r\n status: [],\r\n authenticationType: [],\r\n };\r\n const [filterValues, setFilterValues] = React.useState(filtersInitialState);\r\n\r\n const clearMenu = () => {\r\n setFilterValues(() => filtersInitialState);\r\n };\r\n\r\n const selectMenu = (event, valueType) => {\r\n const {value} = event.currentTarget.dataset;\r\n const optionTypeData = filterValues[filterMenuMapping[valueType]];\r\n\r\n if (optionTypeData.indexOf(value) === -1) {\r\n if (value === 'any') {\r\n setFilterValues((prevFilterVal) => ({\r\n ...prevFilterVal,\r\n [filterMenuMapping[valueType]]: ['any'],\r\n }));\r\n } else {\r\n let list = filterValues[filterMenuMapping[valueType]].slice();\r\n list = list.filter((e) => e !== 'any');\r\n setFilterValues((prevFilterValue) => ({\r\n ...prevFilterValue,\r\n [filterMenuMapping[valueType]]: [...list, value],\r\n }));\r\n }\r\n } else {\r\n const list = [...optionTypeData];\r\n const index = list.indexOf(value);\r\n if (index !== -1) {\r\n list.splice(index, 1);\r\n setFilterValues((prevFilterValue) => ({\r\n ...prevFilterValue,\r\n [filterMenuMapping[valueType]]: list,\r\n }));\r\n }\r\n }\r\n };\r\n const handleFilterMenu = () => {\r\n setFilterMenu(!showFilterMenu);\r\n };\r\n\r\n const handleFilterMenuClose = () => {\r\n setFilterMenu(false);\r\n };\r\n\r\n return (\r\n <>\r\n <Button\r\n id=\"basic-button\"\r\n aria-controls={showFilterMenu ? 'basic-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={showFilterMenu ? 'true' : undefined}\r\n onClick={handleFilterMenu}\r\n >\r\n Filter\r\n </Button>\r\n <FiltersDialog\r\n menudata={filtermenudata}\r\n filterValues={filterValues}\r\n filterMenuMapping={filterMenuMapping}\r\n showRadioIcon={false}\r\n open={showFilterMenu}\r\n handleClose={handleFilterMenuClose}\r\n clearMenu={clearMenu}\r\n selectMenu={selectMenu}\r\n />\r\n </>\r\n );\r\n}\r\n\r\nexport default FilterDropdownExample;\r\n","import React from 'react';\r\nimport Button from '@mui/material/Button';\r\nimport FiltersDialog from '../../shared/units/FiltersDialog';\r\n\r\nconst sortmenudata = {\r\n 'Sort By': {\r\n apiatoz: 'API Name: A to Z',\r\n apiztoa: 'API Name: Z to A',\r\n projectatoz: 'Project Name: A to Z',\r\n projectztoa: 'Project Name: Z to A',\r\n endpointsatoz: 'EndPoints: A to Z',\r\n endpointsztoa: 'EndPoints: Z to A',\r\n updateoldtonew: 'Updated On: Oldest to Newest',\r\n updatenewtoold: 'Updated On: Newest to Oldest',\r\n },\r\n};\r\n\r\nfunction SortDropdownExample() {\r\n const [showSortMenu, setSortMenu] = React.useState(false);\r\n const [defaultRadioValue, setRadioBtnValue] = React.useState('updatenewtoold');\r\n const handleSortMenu = () => {\r\n setSortMenu(!showSortMenu);\r\n };\r\n\r\n const handleSortMenuClose = () => {\r\n setSortMenu(false);\r\n };\r\n\r\n const onRadioBtnChange = (e) => {\r\n setRadioBtnValue(e.target.value);\r\n console.log(e.target.value);\r\n };\r\n\r\n return (\r\n <>\r\n <Button\r\n id=\"basic-button\"\r\n aria-controls={showSortMenu ? 'basic-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={showSortMenu ? 'true' : undefined}\r\n onClick={handleSortMenu}\r\n >\r\n Sort\r\n </Button>\r\n <FiltersDialog\r\n menudata={sortmenudata}\r\n showClearBtn={false}\r\n showCloseBtn={false}\r\n showCheckIcon={false}\r\n open={showSortMenu}\r\n handleClose={handleSortMenuClose}\r\n defaultValue={defaultRadioValue}\r\n onRadioBtnChange={onRadioBtnChange}\r\n />\r\n </>\r\n );\r\n}\r\n\r\nexport default SortDropdownExample;\r\n","import React from 'react';\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\nimport TextField from '@mui/material/TextField';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nexport default function SearchExample() {\r\n const [fieldValue, setFieldValue] = React.useState('');\r\n\r\n const handleSearchClick = () => {\r\n console.log(fieldValue);\r\n };\r\n\r\n const handleKeyPress = (ev) => {\r\n if (ev.key === 'Enter') {\r\n ev.preventDefault();\r\n handleSearchClick();\r\n }\r\n };\r\n\r\n const handleTextChange = (e) => {\r\n setFieldValue(e.target.value);\r\n };\r\n\r\n return (\r\n <TextField\r\n placeholder=\"Search by API or Endpoint\"\r\n type=\"text\"\r\n variant=\"outlined\"\r\n size=\"small\"\r\n onChange={(e) => handleTextChange(e)}\r\n onKeyDown={(ev) => handleKeyPress(ev)}\r\n value={fieldValue}\r\n className=\"Searchbar bg-[#dde7fa] w-80\"\r\n InputProps={{\r\n startAdornment: (\r\n <InputAdornment position=\"start\">\r\n <SearchIcon className=\"text-[#476BC3] cursor-pointer\" onClick={handleSearchClick} />\r\n </InputAdornment>\r\n ),\r\n endAdornment: fieldValue && (\r\n <CloseIcon\r\n className=\"cursor-pointer\"\r\n aria-label=\"toggle password visibility\"\r\n onClick={() => setFieldValue('')}\r\n />\r\n ),\r\n }}\r\n />\r\n );\r\n}\r\n","import React from 'react';\r\nimport ListItemIcon from '@mui/material/ListItemIcon';\r\nimport ListItemText from '@mui/material/ListItemText';\r\nimport Box from '@mui/material/Box';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport Chip from '@mui/material/Chip';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport {Typography} from '@mui/material';\r\nimport FormHelperText from '@mui/material/FormHelperText';\r\n\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\n\r\nexport default function MultiSelectDropdown(props) {\r\n const {\r\n options,\r\n onChangeOption,\r\n onDeleteOption,\r\n selected,\r\n inputLabel,\r\n error,\r\n errorMsg,\r\n isArrayOfObjectHasValue,\r\n showSelectAll = false,\r\n } = props;\r\n const isAllSelected = options.length > 0 && selected.length === options.length;\r\n\r\n return (\r\n <div>\r\n <FormControl className=\"w-56 mutl-select-wrapper \" size=\"small\" error>\r\n <Typography className=\"global-mockscreen-fiter-options\">{inputLabel}</Typography>\r\n <Select\r\n id=\"demo-multiple-chip\"\r\n className=\"select-multi-dropdown multi-select-dropdown-main\"\r\n multiple\r\n error={error}\r\n value={selected}\r\n onChange={onChangeOption}\r\n IconComponent={ExpandMoreIcon}\r\n renderValue={(selectedVal) => (\r\n <Box className=\"flex flex-wrap\">\r\n {selectedVal.map(\r\n (option, index) =>\r\n index < 2 && (\r\n <Chip\r\n key={option?.value}\r\n label={option?.value}\r\n className={`multiselect-chip ${index > 0 ? 'ml-1' : ''} border-[#476BC3]`}\r\n deleteIcon={\r\n <CloseIcon\r\n className=\"chip-close-icon text-[#476BC3]\"\r\n onMouseDown={(event) => event.stopPropagation()}\r\n />\r\n }\r\n variant=\"outlined\"\r\n disabled={option?.disabled}\r\n onDelete={(e) => onDeleteOption(e, option?.value)}\r\n />\r\n )\r\n )}\r\n {selectedVal.length > 2 && (\r\n <span className=\"more-selected-element\">{selectedVal.length - 2} more</span>\r\n )}\r\n </Box>\r\n )}\r\n MenuProps={MenuProps}\r\n >\r\n {showSelectAll && (\r\n <MenuItem key={1} value=\"all\" className=\"global-multiselect-dropdown\">\r\n <ListItemIcon>\r\n <Checkbox\r\n size=\"small\"\r\n className=\"text-xs h-3.5 p-0\"\r\n checked={isAllSelected}\r\n indeterminate={selected.length > 0 && selected.length < options.length}\r\n />\r\n </ListItemIcon>\r\n <ListItemText className=\"text-xs\" primary=\"Select All\" />\r\n </MenuItem>\r\n )}\r\n {options.map((option, index) => (\r\n <MenuItem\r\n key={index + 2}\r\n disabled={option?.disabled || false}\r\n value={option}\r\n className=\"global-multiselect-dropdown\"\r\n >\r\n <ListItemIcon>\r\n <Checkbox\r\n size=\"small\"\r\n className=\"text-xs h-3.5 p-0\"\r\n checked={isArrayOfObjectHasValue(selected, 'value', option?.value)}\r\n />\r\n </ListItemIcon>\r\n <ListItemText className=\"text-xs\" primary={option?.value} />\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n {error && <FormHelperText>{errorMsg}</FormHelperText>}\r\n </FormControl>\r\n </div>\r\n );\r\n}\r\n","import React, {useState} from 'react';\r\nimport MultiSelectDropdown from '../../shared/units/MultiSelectDropdown';\r\nimport {isArrayOfObjectHasValue} from '../../shared/utils/helper';\r\n\r\nfunction MultipleSelectExample() {\r\n const [selected, setSelected] = useState([]);\r\n const options = [\r\n {value: 'Get'},\r\n {value: 'Post'},\r\n {value: 'Put'},\r\n {value: 'Patch'},\r\n {value: 'Delete'},\r\n ];\r\n const onChangeOption = (event) => {\r\n event.stopPropagation();\r\n const {value} = event.target;\r\n if (value[value.length - 1] === 'all') {\r\n setSelected(selected.length === options.length ? [] : options);\r\n return;\r\n }\r\n setSelected(value);\r\n };\r\n\r\n const onDeleteOption = (e, val) => {\r\n setSelected(selected.filter((i) => i !== val));\r\n };\r\n\r\n return (\r\n <div className=\"ml-5\">\r\n <MultiSelectDropdown\r\n options={options}\r\n onChangeOption={onChangeOption}\r\n onDeleteOption={onDeleteOption}\r\n selected={selected}\r\n inputLabel=\"Request Method\"\r\n className=\"request-method-multiselect\"\r\n isArrayOfObjectHasValue={isArrayOfObjectHasValue}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default MultipleSelectExample;\r\n","import React from 'react';\r\nimport Radio from '@mui/material/Radio';\r\nimport RadioGroup from '@mui/material/RadioGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport FormLabel from '@mui/material/FormLabel';\r\n\r\nexport default function RadioButtonExample() {\r\n const [defaultRadioValue, setRadioBtnValue] = React.useState('female');\r\n const onRadioBtnChange = (e) => {\r\n setRadioBtnValue(e.target.value);\r\n console.log(e.target.value);\r\n };\r\n return (\r\n <FormControl>\r\n <FormLabel\r\n id=\"demo-row-radio-buttons-group-label\"\r\n className=\"global-mockscreen-fiter-options\"\r\n >\r\n Gender\r\n </FormLabel>\r\n <RadioGroup\r\n row\r\n aria-labelledby=\"demo-row-radio-buttons-group-label\"\r\n name=\"row-radio-buttons-group\"\r\n value={defaultRadioValue}\r\n onChange={onRadioBtnChange}\r\n >\r\n <FormControlLabel\r\n value=\"female\"\r\n control={<Radio size=\"small\" className=\"pr-1\" />}\r\n label=\"Female\"\r\n />\r\n <FormControlLabel\r\n value=\"male\"\r\n control={<Radio size=\"small\" className=\"pr-1\" />}\r\n label=\"Male\"\r\n />\r\n <FormControlLabel\r\n value=\"other\"\r\n control={<Radio size=\"small\" className=\"pr-1\" />}\r\n label=\"Other\"\r\n />\r\n <FormControlLabel value=\"disabled\" disabled control={<Radio />} label=\"other\" />\r\n </RadioGroup>\r\n </FormControl>\r\n );\r\n}\r\n","import Button from '@mui/material/Button';\r\nimport React from 'react';\r\nimport notify from '../../shared/utils/toast';\r\n\r\nfunction ToastExample() {\r\n const [info, setInfo] = React.useState(false);\r\n const [success, setSuccess] = React.useState(false);\r\n const [error, setError] = React.useState(false);\r\n const [warning, setWarning] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n setInfo(false);\r\n }, [info]);\r\n\r\n React.useEffect(() => {\r\n setSuccess(false);\r\n }, [success]);\r\n\r\n React.useEffect(() => {\r\n setError(false);\r\n }, [error]);\r\n\r\n React.useEffect(() => {\r\n setWarning(false);\r\n }, [warning]);\r\n\r\n const handleInfoToast = () => {\r\n setInfo(true);\r\n };\r\n const handleSuccessToast = () => {\r\n setSuccess(true);\r\n };\r\n const handleErrorToast = () => {\r\n setError(true);\r\n };\r\n const handleWarningToast = () => {\r\n setWarning(true);\r\n };\r\n\r\n return (\r\n <>\r\n <Button onClick={handleInfoToast}>Info</Button>\r\n {info &&\r\n notify('Impetus Dashboard Builder shared successfully', {\r\n delay: 0,\r\n theme: 'colored',\r\n position: 'bottom-left',\r\n type: 'info',\r\n })}\r\n <Button onClick={handleSuccessToast}>Success</Button>\r\n {success &&\r\n notify('Impetus Dashboard Builder shared successfully', {\r\n delay: 0,\r\n theme: 'colored',\r\n position: 'bottom-left',\r\n type: 'success',\r\n })}\r\n <Button onClick={handleErrorToast}>Error</Button>\r\n {error &&\r\n notify('Impetus Dashboard Builder shared successfully', {\r\n delay: 0,\r\n theme: 'colored',\r\n position: 'bottom-left',\r\n type: 'error',\r\n })}\r\n <Button onClick={handleWarningToast}>Warning</Button>\r\n {warning &&\r\n notify('Impetus Dashboard Builder shared successfully', {\r\n delay: 0,\r\n theme: 'colored',\r\n position: 'bottom-left',\r\n type: 'warning',\r\n })}\r\n </>\r\n );\r\n}\r\n\r\nexport default ToastExample;\r\n","import React from 'react';\r\nimport PlayArrowIcon from '@mui/icons-material/PlayArrow';\r\nimport Button from '@mui/material/Button';\r\n\r\nfunction ButtonExample() {\r\n return (\r\n <>\r\n <Button startIcon={<PlayArrowIcon />} variant=\"contained\" color=\"primary\">\r\n Continued\r\n </Button>\r\n <Button endIcon={<PlayArrowIcon />} variant=\"contained\" color=\"primary\">\r\n Continued\r\n </Button>\r\n <Button variant=\"text\">Text</Button>\r\n <Button variant=\"outlined\">Outlined</Button>\r\n </>\r\n );\r\n}\r\n\r\nexport default ButtonExample;\r\n","import React from 'react';\r\nimport Avatar from '@mui/material/Avatar';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nfunction ProfileIconExample() {\r\n return (\r\n <div className=\"bg-[#0A1F41]\">\r\n <span className=\"text-white\">\r\n <em>User Profile Avtar Icon:</em>\r\n </span>\r\n <IconButton>\r\n <Avatar className=\"bg-white text-[#2F2F2F]\">SK</Avatar>\r\n </IconButton>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ProfileIconExample;\r\n","import React from 'react';\r\nimport {Link as routeLink} from 'react-router-dom';\r\nimport Link from '@mui/material/Link';\r\n\r\nfunction AnchorLinkExample() {\r\n return (\r\n <>\r\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\r\n Link:{' '}\r\n <Link component={routeLink} to=\"/my_route\">\r\n Signup\r\n </Link>\r\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\r\n Button as Link(react router navlink):{' '}\r\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\r\n <Link\r\n component=\"span\"\r\n role=\"button\"\r\n variant=\"body2\"\r\n onClick={() => {\r\n console.log(\"I'm a button.\");\r\n }}\r\n >\r\n Button Link\r\n </Link>\r\n </>\r\n );\r\n}\r\n\r\nexport default AnchorLinkExample;\r\n","import React from 'react';\r\nimport Grid from '@mui/material/Grid';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\n\r\nfunction LabelExample() {\r\n return (\r\n <Grid container size={{xs: 12}} className=\"p-5 bg-[#F0F0F0]\">\r\n <Grid item size={3}>\r\n <label className=\"global-mockscreen-fiter-options\">\r\n API URL(fs-14)\r\n <InfoIcon color=\"disabled\" className=\"global-mockscreen-info-icon\" />\r\n </label>\r\n <div className=\"h-8 w-11/12 bg-[#FFFFFF]\" />\r\n </Grid>\r\n <Grid item size={{xs: 12}}>\r\n <label className=\"global-mockscreen-fiter-options\">API Type</label>\r\n <div className=\"h-8 w-11/12 bg-[#FFFFFF]\" />\r\n </Grid>\r\n <Grid item size={{xs: 12}}>\r\n <label className=\"global-mockscreen-fiter-options\">Request Type</label>\r\n <div className=\"h-8 w-11/12 bg-[#FFFFFF]\" />\r\n </Grid>\r\n <Grid item size={{xs: 12}}>\r\n <label className=\"global-mockscreen-fiter-options\">Status Code</label>\r\n <div className=\"h-8 w-11/12 bg-[#FFFFFF]\" />\r\n </Grid>\r\n <div className=\"mt-1\">\r\n label 2 example(fs-12):\r\n <div className=\"text-xs NunitoSansBold\">35 results for text user</div>\r\n </div>\r\n </Grid>\r\n );\r\n}\r\n\r\nexport default LabelExample;\r\n","/* eslint-disable no-unused-vars */\r\nimport React from 'react';\r\nimport Divider from '@mui/material/Divider';\r\nimport Grid from '@mui/material/Grid';\r\nimport DialogExample from './example/DialogExample';\r\nimport ConfirmDialogExample from './example/ConfirmDialogExample';\r\nimport ActionDropdownExample from './example/ActionDropdownExample';\r\nimport CustomTableExample from './example/CustomTableExample';\r\nimport FilterDropdownExample from './example/FilterDropdownExample';\r\nimport SortDropdownExample from './example/SortDropdownExample';\r\nimport SearchExample from './example/SearchExample';\r\nimport MultipleSelectExample from './example/MultiSelectDropdwonExample';\r\nimport RadioButtonExample from './example/RadioButtonExample';\r\nimport ToastExample from './example/ToastExample';\r\nimport ButtonExample from './example/ButtonExample';\r\nimport ProfileIconExample from './example/ProfileIconExample';\r\nimport AnchorLinkExample from './example/AnchorLinkExample';\r\nimport LabelExample from './example/LabelExamples';\r\n\r\nfunction Components() {\r\n const componentToRender = [\r\n {\r\n name: <LabelExample />,\r\n label: <b>Labels</b>,\r\n },\r\n {\r\n name: <ButtonExample />,\r\n label: <b>Normal Buttons</b>,\r\n },\r\n {\r\n name: <AnchorLinkExample />,\r\n label: <b>Anchor Link/Route Link</b>,\r\n },\r\n {\r\n name: <ProfileIconExample />,\r\n label: <b>Profile Icon</b>,\r\n },\r\n {\r\n name: <ActionDropdownExample />,\r\n label: <b>ActionDropdown</b>,\r\n },\r\n {\r\n name: <RadioButtonExample />,\r\n label: <b>Radio Buttons</b>,\r\n },\r\n {\r\n name: <ToastExample />,\r\n label: <b>Toasts</b>,\r\n },\r\n {\r\n name: <MultipleSelectExample />,\r\n label: <b>MultiSelectBox(i.e. - request method)</b>,\r\n },\r\n {\r\n name: <SearchExample />,\r\n label: <b>Search Bar</b>,\r\n },\r\n {\r\n name: <DialogExample />,\r\n label: <b>Generic DialogBox</b>,\r\n },\r\n {\r\n name: <ConfirmDialogExample />,\r\n label: <b>Confirmation DialogBox</b>,\r\n },\r\n // {\r\n // name: <CustomTableExample />,\r\n // label: <b>Table</b>,\r\n // },\r\n {\r\n name: <FilterDropdownExample />,\r\n label: <b>Table Filter Dropdown</b>,\r\n },\r\n {\r\n name: <SortDropdownExample />,\r\n label: <b>Table Sort Dropdown</b>,\r\n },\r\n ];\r\n\r\n return (\r\n <Grid container spacing={2} className=\"px-4\">\r\n {componentToRender.map((component, index) => (\r\n <Grid item size={{xs: 12}} key={index}>\r\n <div>{component.label}</div>\r\n <div className=\"h-5\" />\r\n <div>{component.name}</div>\r\n <Divider className=\"h-10\" />\r\n </Grid>\r\n ))}\r\n </Grid>\r\n );\r\n}\r\n\r\nexport default Components;\r\n","import React, {useState} from 'react';\r\nimport {useNavigate} from 'react-router-dom';\r\nimport {Typography, TextField} from '@mui/material';\r\nimport LoadingButton from '@mui/lab/LoadingButton';\r\nimport useAxios from '../shared/hooks/useAxios';\r\nimport {\r\n EMAIL_ERROR,\r\n NAME_ERROR,\r\n PASSWORD_ERROR,\r\n PASSWORD_LESS_ERROR,\r\n PASSWORD_MORE_ERROR,\r\n ROLE_INDIVIDUAL,\r\n SURE_MESSAGE_TEXT,\r\n CANCEL_MESSAGE_TEXT,\r\n CONFIRM_MESSAGE_TEXT,\r\n DOMAIN_MESSAGE_TEXT,\r\n} from './messages';\r\nimport ConfirmationBox from '../shared/units/ConfirmationBox';\r\nimport {REGISTER_API_ENDPOINT} from '../../constants/endpoints';\r\nimport notify from '../shared/utils/toast';\r\nimport {IREST_ROUTES} from '../../constants';\r\n\r\nfunction Form() {\r\n const navigate = useNavigate();\r\n\r\n const [{isLoading}, executeRegister] = useAxios(\r\n {\r\n url: REGISTER_API_ENDPOINT,\r\n method: 'post',\r\n },\r\n {manual: true}\r\n );\r\n\r\n const initialValue = {name: '', email: '', password: ''};\r\n const errors = {\r\n name: false,\r\n email: false,\r\n password: false,\r\n smallPassword: false,\r\n longPassword: false,\r\n };\r\n const [user, setUser] = useState(initialValue);\r\n const [error, setErrors] = useState(errors);\r\n const [isModelOpen, setIsModelOpen] = useState(false);\r\n\r\n const registerUser = (data) => {\r\n executeRegister({\r\n data,\r\n })\r\n .then(() => {\r\n notify('You are successfully registered!', {type: 'success'});\r\n setTimeout(() => {\r\n navigate(IREST_ROUTES.HOME, {replace: true});\r\n }, 1000);\r\n })\r\n .catch((err) => {\r\n if (err?.response?.status === 417) {\r\n notify(err?.response?.data?.message, {type: 'error'});\r\n }\r\n if (err?.response?.status === 412) {\r\n notify(err?.response?.data?.message, {type: 'error'});\r\n }\r\n if (err?.response?.status === 428) {\r\n setIsModelOpen(true);\r\n } else if (err?.response?.status === 400) {\r\n notify(err?.response?.data?.errors.details[0]?.message, {type: 'error'});\r\n } else {\r\n notify(err?.response?.data?.errors[0]?.message, {type: 'error'});\r\n }\r\n });\r\n };\r\n\r\n const secondaryBtnHandler = () => {\r\n setIsModelOpen(false);\r\n };\r\n\r\n const primaryBtnHandler = () => {\r\n setIsModelOpen(false);\r\n registerUser({\r\n ...user,\r\n role: ROLE_INDIVIDUAL,\r\n });\r\n };\r\n\r\n const inputChangeHandler = (event) => {\r\n setUser({...user, [event.target.name]: event.target.value});\r\n setErrors(errors);\r\n };\r\n\r\n const registerHandler = (event) => {\r\n event.preventDefault();\r\n if (!user.name || !user.email || !user.password) {\r\n if (!user?.name) {\r\n setErrors((prevState) => ({...prevState, name: true}));\r\n }\r\n if (!user?.email) {\r\n setErrors((prevState) => ({...prevState, email: true}));\r\n }\r\n if (!user?.password) {\r\n setErrors((prevState) => ({...prevState, password: true}));\r\n }\r\n return;\r\n }\r\n if (user?.password) {\r\n if (user?.password?.length < 3) {\r\n setErrors((prevState) => ({...prevState, password: true}));\r\n setErrors((prevState) => ({...prevState, smallPassword: true}));\r\n return;\r\n }\r\n if (user?.password?.length > 30) {\r\n setErrors((prevState) => ({...prevState, password: true}));\r\n setErrors((prevState) => ({...prevState, longPassword: true}));\r\n return;\r\n }\r\n }\r\n\r\n registerUser(user);\r\n };\r\n\r\n const getPassword = () => {\r\n if (error?.smallPassword) {\r\n return PASSWORD_LESS_ERROR;\r\n }\r\n if (error?.longPassword) {\r\n return PASSWORD_MORE_ERROR;\r\n }\r\n if (error?.password) {\r\n return PASSWORD_ERROR;\r\n }\r\n return '';\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"mb-2\">\r\n <Typography className=\"text-[14px]\">Name</Typography>\r\n </div>\r\n <div className=\"h-[60px]\">\r\n <TextField\r\n id=\"name\"\r\n inputProps={{'data-testid': 'name-input'}}\r\n variant=\"outlined\"\r\n name=\"name\"\r\n type=\"text\"\r\n autoComplete=\"off\"\r\n value={user?.name}\r\n onChange={inputChangeHandler}\r\n error={error?.name}\r\n helperText={error?.name ? NAME_ERROR : ''}\r\n />\r\n </div>\r\n <div className=\"mb-2\">\r\n <Typography className=\"text-[14px]\">Email ID</Typography>\r\n </div>\r\n <div className=\"h-[60px]\">\r\n <TextField\r\n id=\"email\"\r\n inputProps={{'data-testid': 'email-input'}}\r\n variant=\"outlined\"\r\n name=\"email\"\r\n type=\"text\"\r\n value={user?.email}\r\n onChange={inputChangeHandler}\r\n error={error?.email}\r\n helperText={error?.email ? EMAIL_ERROR : ''}\r\n />\r\n </div>\r\n <div className=\"mb-2\">\r\n <Typography className=\"text-[14px]\">Password</Typography>\r\n </div>\r\n <div className=\"h-[60px]\">\r\n <TextField\r\n id=\"password\"\r\n inputProps={{'data-testid': 'email-pass'}}\r\n variant=\"outlined\"\r\n type=\"password\"\r\n name=\"password\"\r\n value={user?.password}\r\n onChange={inputChangeHandler}\r\n error={error?.password}\r\n helperText={getPassword()}\r\n />\r\n </div>\r\n <div>\r\n <div className=\"mt-3 mb-6\">\r\n <LoadingButton\r\n data-testid=\"registerBtn\"\r\n loading={isLoading}\r\n className=\"w-[372px]\"\r\n variant=\"contained\"\r\n onClick={registerHandler}\r\n >\r\n Sign Up\r\n </LoadingButton>\r\n </div>\r\n </div>\r\n <ConfirmationBox\r\n open={isModelOpen || false}\r\n headerContent={SURE_MESSAGE_TEXT}\r\n secondaryBtnLabel={CANCEL_MESSAGE_TEXT}\r\n secondaryBtnHandler={secondaryBtnHandler}\r\n primaryBtnLabel={CONFIRM_MESSAGE_TEXT}\r\n primaryBtnHandler={primaryBtnHandler}\r\n bodyContent={DOMAIN_MESSAGE_TEXT}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n primaryBtnId=\"modal-registerBtn\"\r\n secondaryBtnId=\"modal-cancelBtn\"\r\n />\r\n </>\r\n );\r\n}\r\n\r\nexport default Form;\r\n","import React from 'react';\r\nimport {Link} from 'react-router-dom';\r\nimport {Helmet} from 'react-helmet';\r\nimport {Typography} from '@mui/material';\r\nimport {IREST_ROUTES} from '../../constants';\r\nimport LeftPanel from './LeftPanel';\r\nimport Form from './RegisterField';\r\nimport './index.css';\r\nimport {REGISTER} from './constants';\r\n\r\nfunction Register() {\r\n return (\r\n <div className=\"flex flex-row h-screen bg-white\">\r\n <Helmet>\r\n <title>Signup - iRest</title>\r\n <meta name=\"description\" content=\"Signup - iRest\" />\r\n </Helmet>\r\n <div className=\"w-1/2\">\r\n <LeftPanel />\r\n </div>\r\n\r\n <div className=\"w-1/2\">\r\n <div className=\"flex flex-row justify-center items-center h-full\">\r\n <div className=\"bg-loginDrop w-[425px] h-7/12 p-7 rounded-xl\">\r\n <div>\r\n <div className=\"mb-8\">\r\n <Typography variant=\"h2\" className=\"text-[22px]\">\r\n {REGISTER.LEGEND}\r\n </Typography>\r\n </div>\r\n <Form />\r\n <div className=\"flex flex-row gap-3\">\r\n <Typography>{REGISTER.LOGIN_TEXT}</Typography>\r\n <Link to={IREST_ROUTES.HOME} className=\"no-underline \">\r\n <Typography className=\"text-primary font-bold\">\r\n {REGISTER.LOGIN_LINK_TEXT}\r\n </Typography>\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Register;\r\n","export const ATTRS = {\r\n PROJECT_LIST_NAME: 'API Listing',\r\n NEW_API: 'New API',\r\n EXPORT_API: 'Export API',\r\n IMPORT_API: 'Import API',\r\n SHARE: 'Share',\r\n AUTHENTICATE: 'Authenticate',\r\n AUTHENTICATION: 'Authentication',\r\n AUTHENTICATION_TYPE: 'On',\r\n AUTH_TYPE: 'Auth Type',\r\n CANCEL: 'Cancel',\r\n SAVE: 'Save',\r\n TOKEN: 'Token',\r\n MOCK_AUTHENTICATION: 'Mock Authentication',\r\n PROJECT_AUTHENTICATION: 'Project Authentication',\r\n COPY_TOKEN: 'Copy Token',\r\n EXPORT_AS_POSTMAN_COLLECTION: 'Export as Postman Collection',\r\n CLICK_TO_RUN: 'Click to Run',\r\n INFO: 'info',\r\n ERROR: 'error',\r\n SUCCESS: 'success',\r\n SOMETHING_WENT_WRONG: 'Something Went Wrong.',\r\n ENABLE_OR_DISABLE: 'Enable/Disable',\r\n ENABLED: 'enabled',\r\n DISABLED: 'disabled',\r\n COPIED: 'Copied',\r\n PROJECT_SPECIFIC: 'Project Specific',\r\n API_SPECIFIC: 'API Specific',\r\n API_SPECIFIC_TEXT: 'MOCK_SPECIFIC',\r\n PROJECT_SPECIFIC_TEXT: 'PROJECT_SPECIFIC',\r\n OFF: 'Off',\r\n OFF_TEXT: 'OFF',\r\n REQUEST_METHOD: 'Request Method',\r\n REFRESH_TOKEN: 'Refresh Token',\r\n};\r\n\r\nexport const ACTIONS = {\r\n PREVIEW: 'Preview',\r\n EDIT: 'Edit',\r\n CLOSE: 'Close',\r\n UPDATE: 'Update',\r\n COPY_URL: 'Copy URL',\r\n DELETE: 'Delete',\r\n COPIED: 'Copied',\r\n IMPORT: 'Import',\r\n};\r\n\r\nexport const FILTER_MENU_DATA = {\r\n 'Request Method': {\r\n any: 'Any',\r\n get: 'Get',\r\n post: 'Post',\r\n put: 'Put',\r\n patch: 'Patch',\r\n delete: 'Delete',\r\n },\r\n 'API Status': {\r\n any: 'Any',\r\n enabled: 'Enabled',\r\n disabled: 'Disabled',\r\n },\r\n 'Auth Type': {\r\n any: 'Any',\r\n project_specific: 'Project Specific',\r\n mock_specific: 'API Specific',\r\n off: 'Off',\r\n },\r\n};\r\n\r\nexport const FILTER_MENU = {\r\n 'Request Method': 'allowedMethods',\r\n 'API Status': 'status',\r\n 'Auth Type': 'authenticationType',\r\n};\r\n\r\nexport const SORTING_DATA = {\r\n 'Sort By': {\r\n apiatoz: 'API Name: A to Z',\r\n apiztoa: 'API Name: Z to A',\r\n projectatoz: 'Project Name: A to Z',\r\n projectztoa: 'Project Name: Z to A',\r\n endpointsatoz: 'EndPoints: A to Z',\r\n endpointsztoa: 'EndPoints: Z to A',\r\n updateoldtonew: 'Updated On: Oldest to Newest',\r\n updatenewtoold: 'Updated On: Newest to Oldest',\r\n },\r\n};\r\n\r\nexport const PROJECT_LIST_COLOR_CODE = '#383838';\r\n\r\nexport const AUTHENTICATION_COLOR_CODE = '#636363';\r\n\r\nexport const AUTHENTICATION_STATE = '#333333';\r\n\r\nexport const AUTH_TYPE_COLOR_CODE = '#A2A2A2';\r\n\r\nexport const MESSAGE = {\r\n DELETE_API_SUCCESS_MSG: 'Selected mock(s) deleted successfully.',\r\n TOKEN_UPDATE_SUCCESS_MSG: 'Token updated successfully.',\r\n};\r\n\r\nexport const PROJECT_NAME_REGEX = /^[a-z\\d\\-_]+$/i;\r\n\r\nexport const PROJECT_NAME_MESSAGE =\r\n 'Project name only contains alphanumeric characters, underscore and hyphen and does not allowed any other characters.';\r\n","import axiosInstance from './axiosInstance';\r\n\r\nconst projectEditService = (request) => {\r\n const {API_BASE_URL} = process.env;\r\n\r\n const {payload, id} = request;\r\n const URLParam = `${API_BASE_URL}/project/item/${id}`;\r\n\r\n return axiosInstance({\r\n method: 'put',\r\n url: URLParam,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: payload,\r\n })\r\n .then((response) => response)\r\n .catch((err) => err?.response);\r\n};\r\n\r\nexport default projectEditService;\r\n","import React, {useRef} from 'react';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport FormHelperText from '@mui/material/FormHelperText';\r\nimport Select from '@mui/material/Select';\r\n\r\nexport default function SimpleSelectDropdown(props) {\r\n const {\r\n menuOptions,\r\n handleChange,\r\n id,\r\n selectedValue,\r\n selectClass = '',\r\n menuClass = '',\r\n hasError = false,\r\n helperText,\r\n disabled = false,\r\n } = props;\r\n const selectRef = useRef();\r\n return (\r\n <FormControl fullWidth className=\"select-wrapper\" error={hasError}>\r\n <Select\r\n id={id}\r\n ref={selectRef}\r\n value={selectedValue}\r\n data-testid={id}\r\n className={`simpleSelect ${selectClass}`}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n onClose={() => {\r\n selectRef.current.classList.remove('Mui-focused');\r\n selectRef.current.previousSibling?.classList.remove('Mui-focused');\r\n }}\r\n >\r\n {Object.keys(menuOptions).map((option, index) => (\r\n <MenuItem\r\n key={index}\r\n value={option}\r\n className={`global-simpleselect-option-layout${menuClass}`}\r\n >\r\n {menuOptions[option]}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n {hasError && <FormHelperText>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n}\r\n","import React, {useState} from 'react';\r\nimport {useSelector} from 'react-redux';\r\nimport {useParams, useLocation} from 'react-router-dom';\r\nimport {Backdrop, CircularProgress} from '@mui/material';\r\nimport TextField from '@mui/material/TextField';\r\nimport {ACTIONS} from '../../../constants';\r\nimport {PROJECT_NAME_REGEX, PROJECT_NAME_MESSAGE} from '../../../constants/dashboard';\r\nimport ConfirmationBox from '../../shared/units/ConfirmationBox';\r\nimport notify from '../../shared/utils/toast';\r\nimport {getToastType} from '../../shared/utils/helper';\r\nimport projectEditService from '../../shared/service/projectEdit';\r\nimport SimpleSelectDropdown from '../../shared/units/SimpleSelectDropdown';\r\n\r\nfunction EditModelBodyContent(props) {\r\n const location = useLocation();\r\n const {\r\n projectName,\r\n changeHandler,\r\n error = '',\r\n departments,\r\n selectedDepartment,\r\n changeDepartment,\r\n userinfo,\r\n isFrequentProjList,\r\n } = props;\r\n\r\n return (\r\n <div>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-selec\">Project Name</label>\r\n </div>\r\n <TextField\r\n id=\"project-name\"\r\n data-testid=\"project-name\"\r\n className=\"mb-1.0\"\r\n defaultValue={projectName}\r\n onChange={async (e) => {\r\n changeHandler(e);\r\n }}\r\n required\r\n />\r\n </div>\r\n {error && <p className=\"ml-1 text-xs text-red-500 w-80\">{error}</p>}\r\n {!isFrequentProjList &&\r\n userinfo &&\r\n userinfo?.roles &&\r\n !userinfo?.roles.includes('individual') &&\r\n location?.pathname.includes('dashboard') && (\r\n <div className=\"mt-1\">\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-selec\">Department</label>\r\n </div>\r\n <SimpleSelectDropdown\r\n className=\"rounded-xl border-solid border outline-none\"\r\n id=\"global-simple-select\"\r\n handleChange={(e) => {\r\n changeDepartment(e?.target?.value);\r\n }}\r\n selectedValue={selectedDepartment}\r\n menuOptions={departments}\r\n required\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default function EditContainer(props) {\r\n const {\r\n projectName = '',\r\n projectDepartment = '',\r\n isEditModelOpen,\r\n closeModel,\r\n setProjectName,\r\n setProjectDepartment,\r\n id,\r\n reRender,\r\n departments,\r\n isFrequentProjList,\r\n } = props;\r\n\r\n const {companyId, departmentId} = useParams();\r\n\r\n const [error, setError] = useState('');\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [disable, setDisable] = useState(true);\r\n const userinfo = useSelector((state) => state.userinfo);\r\n\r\n const handleProjectNameEdit = (e) => {\r\n const {value = ''} = e.target;\r\n if (value.trim() === '') {\r\n setError('This field is required');\r\n setProjectName(value.trim());\r\n setDisable(true);\r\n } else {\r\n setProjectName(value);\r\n if (value?.length > 2) {\r\n if (!PROJECT_NAME_REGEX.test(value)) {\r\n setError(PROJECT_NAME_MESSAGE);\r\n setDisable(true);\r\n } else {\r\n setDisable(false);\r\n setError('');\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n setError('');\r\n closeModel(false);\r\n };\r\n\r\n const handleChangeDepartment = (e) => {\r\n if (e) {\r\n if (setProjectDepartment) setProjectDepartment(e);\r\n if (!error) setDisable(false);\r\n }\r\n };\r\n\r\n const editModelHandler = async () => {\r\n setIsLoading(true);\r\n const response = await projectEditService({\r\n payload: {\r\n projectName,\r\n editDepartmentId: projectDepartment,\r\n departmentIdValue: departmentId,\r\n companyIdValue: companyId,\r\n },\r\n id,\r\n });\r\n if (response?.status === 201) {\r\n notify(response?.data?.message, {type: getToastType(response.status)});\r\n handleClose();\r\n reRender();\r\n setIsLoading(false);\r\n } else {\r\n setError(response?.data?.message);\r\n setIsLoading(false);\r\n }\r\n };\r\n return (\r\n <>\r\n <ConfirmationBox\r\n open={isEditModelOpen}\r\n headerContent={`${ACTIONS.EDIT} Project`}\r\n secondaryBtnLabel={ACTIONS.CLOSE}\r\n secondaryBtnHandler={handleClose}\r\n primaryBtnLabel=\"Update\"\r\n primaryBtnHandler={editModelHandler}\r\n bodyContent={\r\n <EditModelBodyContent\r\n projectName={projectName}\r\n changeHandler={handleProjectNameEdit}\r\n error={error}\r\n departments={departments}\r\n selectedDepartment={projectDepartment}\r\n changeDepartment={handleChangeDepartment}\r\n userinfo={userinfo}\r\n isFrequentProjList={isFrequentProjList}\r\n />\r\n }\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnId=\"cancelDeleteCompany\"\r\n primaryBtnId=\"deleteCompany\"\r\n disablePrimaryBtn={disable}\r\n />\r\n <Backdrop open={isLoading} className=\"loader-backdrop\">\r\n <CircularProgress />\r\n </Backdrop>\r\n </>\r\n );\r\n}\r\n","import {getToastType} from '../utils/helper';\r\nimport notify from '../utils/toast';\r\nimport axiosInstance from './axiosInstance';\r\n\r\nconst projectDeleteService = (request) => {\r\n const {API_BASE_URL} = process.env;\r\n\r\n const API_ENDPOINT = `${API_BASE_URL}/project/item/`;\r\n const params = request.id;\r\n\r\n return axiosInstance({\r\n method: 'delete',\r\n url: API_ENDPOINT + params,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) =>\r\n notify(err.response?.data?.message, {type: getToastType(err.response?.status)})\r\n );\r\n};\r\n\r\nexport default projectDeleteService;\r\n","import React from 'react';\r\nimport {ACTIONS} from '../../../constants';\r\nimport ConfirmationBox from '../../shared/units/ConfirmationBox';\r\nimport notify from '../../shared/utils/toast';\r\nimport {getToastType} from '../../shared/utils/helper';\r\nimport projectDeleteService from '../../shared/service/projectDelete';\r\n\r\nexport default function DeleteContainer(props) {\r\n const {\r\n closeModel,\r\n handleSetIsLoading = () => {},\r\n isDeleteModelOpen,\r\n projectName,\r\n id,\r\n reRender,\r\n } = props;\r\n\r\n const getDeleteModalContent = (Name) => (\r\n <p>\r\n Do you want to delete this project <b>{Name}</b>?\r\n </p>\r\n );\r\n\r\n const handleDeleteProject = async () => {\r\n handleSetIsLoading(true);\r\n const response = await projectDeleteService({id});\r\n if (response?.status === 202) {\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n closeModel();\r\n reRender();\r\n handleSetIsLoading(false);\r\n } else {\r\n handleSetIsLoading(false);\r\n closeModel();\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n }\r\n };\r\n return (\r\n <ConfirmationBox\r\n open={isDeleteModelOpen}\r\n headerContent={`${ACTIONS.DELETE} Project`}\r\n secondaryBtnLabel={ACTIONS.CLOSE}\r\n secondaryBtnHandler={() => {\r\n closeModel(false);\r\n }}\r\n primaryBtnLabel={ACTIONS.DELETE}\r\n primaryBtnHandler={handleDeleteProject}\r\n bodyContent={getDeleteModalContent(projectName)}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnId=\"cancelDeleteProject\"\r\n primaryBtnId=\"deleteProject\"\r\n />\r\n );\r\n}\r\n","const {v4: uuidv4} = require('uuid');\r\n\r\nconst generateToken = () => uuidv4();\r\n\r\nexport default generateToken;\r\n","import React from 'react';\r\nimport CircleIcon from '@mui/icons-material/Circle';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport dayjs from 'dayjs';\r\nimport {ATTRS, FILTER_MENU_DATA} from '../../../constants/dashboard';\r\nimport {capitalizeFirstLetter} from '../../shared/utils/helper';\r\n\r\nexport function createTableData(projectList) {\r\n const rowData = projectList?.map((data) => ({\r\n apiName: {\r\n apiId: data?._id,\r\n value: data?.mockName,\r\n mockStatus: data?.mockStatus,\r\n tokenValue: data?.token,\r\n userId: data?.userId,\r\n authenticationType: data?.authenticationType,\r\n },\r\n projectName: {\r\n projectId: data?.projectId,\r\n value: data?.projectName,\r\n },\r\n endPoint: {\r\n value: data?.endpoint,\r\n },\r\n requestMethod: {\r\n value: capitalizeFirstLetter(data.allowedMethods || [])?.join(', '),\r\n },\r\n authType: {\r\n value: capitalizeFirstLetter(data?.authenticationType?.split('_') || [])?.join(' '),\r\n },\r\n updatedOn: {\r\n value: dayjs(new Date(data.updatedAt)).format('DD/MM/YYYY HH:mm'),\r\n },\r\n status: {\r\n value: getRunningState(data),\r\n },\r\n }));\r\n return rowData;\r\n}\r\n\r\nexport function getRunningState(data) {\r\n return data?.mockStatus === 'enabled' ? (\r\n <CircleIcon fontSize=\"small\" color=\"success\" />\r\n ) : (\r\n <CircleIcon fontSize=\"small\" color=\"disabled\" />\r\n );\r\n}\r\n\r\nexport function getAuthenticationTypeById(id, projectList) {\r\n const selectedProject = projectList?.filter((project) => project?._id === id);\r\n return getAuthenticationType(selectedProject?.[0]);\r\n}\r\n\r\nexport function getAuthenticationType(project) {\r\n return project?.authenticationType ? 'On' : 'Off';\r\n}\r\n\r\nexport function getDeleteModelContent(name) {\r\n return `Do you want to delete this mock ${name}?`;\r\n}\r\n\r\nexport function getDeleteSelectedModelBodyContent() {\r\n return `Do you want to delete selected mock(s)?`;\r\n}\r\n\r\nexport function getUpdatedMockData(rowData, projectListData) {\r\n const model = projectListData?.map((element) => {\r\n if (rowData?.apiName?.apiId === element?.apiName?.apiId) {\r\n return rowData;\r\n }\r\n return element;\r\n });\r\n return model;\r\n}\r\n\r\nexport function getSelectedFilterData(filteredData) {\r\n const requestedMethodData = [];\r\n const requestMethodType = filteredData?.requestmethod;\r\n requestMethodType?.forEach((item, index) => {\r\n requestedMethodData.push({\r\n key: item,\r\n label: FILTER_MENU_DATA['Request Method'][item],\r\n });\r\n });\r\n\r\n const apiStatusData = [];\r\n const apiStatusType = filteredData?.apistatus;\r\n apiStatusType?.forEach((item, index) => {\r\n apiStatusData.push({\r\n key: item,\r\n label: FILTER_MENU_DATA['API Status'][item],\r\n });\r\n });\r\n\r\n const authStatusData = [];\r\n const authStatusType = filteredData?.authtype;\r\n authStatusType?.forEach((item, index) => {\r\n authStatusData.push({\r\n key: item,\r\n label: FILTER_MENU_DATA['Auth Type'][item],\r\n });\r\n });\r\n\r\n return {\r\n authTypeSelect: authStatusData,\r\n apiStatusSelect: apiStatusData,\r\n requestedMethodSelect: requestedMethodData,\r\n };\r\n}\r\n\r\nexport function getSortingAction(sortingAction) {\r\n switch (sortingAction) {\r\n case 'apiatoz':\r\n return {\r\n sortBy: 'mockName',\r\n order: 'asc',\r\n };\r\n case 'apiztoa':\r\n return {\r\n sortBy: 'mockName',\r\n order: 'desc',\r\n };\r\n case 'projectatoz':\r\n return {\r\n sortBy: 'projectName',\r\n order: 'asc',\r\n };\r\n case 'projectztoa':\r\n return {\r\n sortBy: 'projectName',\r\n order: 'desc',\r\n };\r\n case 'endpointsatoz':\r\n return {\r\n sortBy: 'endpoint',\r\n order: 'asc',\r\n };\r\n case 'endpointsztoa':\r\n return {\r\n sortBy: 'endpoint',\r\n order: 'desc',\r\n };\r\n case 'updateoldtonew':\r\n return {\r\n sortBy: 'updatedAt',\r\n order: 'asc',\r\n };\r\n case 'updatenewtoold':\r\n return {\r\n sortBy: 'updatedAt',\r\n order: 'desc',\r\n };\r\n default:\r\n }\r\n}\r\n\r\nexport function addTooltipWrapper(iconComponent, title) {\r\n return (\r\n <Tooltip title={title} placement=\"bottom\">\r\n {iconComponent}\r\n </Tooltip>\r\n );\r\n}\r\n\r\nexport function transformData({mockList = {}}) {\r\n const {API_BASE_URL} = process.env;\r\n const mockArray = mockList.map((data) => ({\r\n name: data?.projectName,\r\n description: '',\r\n item: data.allowedMethods.map((method) => ({\r\n name: `${method} -/${data.endpoint}`,\r\n request: {\r\n url: `${API_BASE_URL}${data?.endpoint}`,\r\n method,\r\n header: data?.headers,\r\n body: {\r\n mode: 'raw',\r\n raw: '',\r\n },\r\n description: '',\r\n },\r\n })),\r\n }));\r\n const formattedData = {\r\n variables: [],\r\n info: {\r\n name: 'iRest: Rest API Simulator',\r\n _postman_id: '50578d9a-80f4-964c-b3f8-dd09c392bead',\r\n description: 'iRest',\r\n schema: 'https://schema.getpostman.com/json/collection/v2.0.0/collection.json',\r\n },\r\n items: [...mockArray],\r\n protocolProfileBehavior: {},\r\n };\r\n return formattedData;\r\n}\r\n\r\nexport const getAuthType = (rowData) => {\r\n const type = rowData?.authType?.value;\r\n switch (type) {\r\n case 'MOCK SPECIFIC':\r\n return ATTRS.API_SPECIFIC_TEXT;\r\n case 'PROJECT SPECIFIC':\r\n return ATTRS.PROJECT_SPECIFIC_TEXT;\r\n case 'OFF':\r\n return ATTRS.OFF_TEXT;\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nexport function getAllRunningStatus(mockListData, selectedRows) {\r\n // const mockList = mockListData?.data?.mockList;\r\n const mockListStatusDisabled = [];\r\n const mockListStatusEnabled = [];\r\n\r\n selectedRows.forEach((elem) => {\r\n mockListData.forEach((sRows) => {\r\n const mockListStatus = sRows?.apiName?.mockStatus;\r\n if (elem === sRows?.apiName?.apiId && mockListStatus === 'disabled') {\r\n mockListStatusDisabled.push(sRows);\r\n }\r\n if (elem === sRows?.apiName?.apiId && mockListStatus === 'enabled') {\r\n mockListStatusEnabled.push(sRows);\r\n }\r\n });\r\n });\r\n\r\n if (selectedRows.length === mockListStatusDisabled?.length) {\r\n const keyDisabledData = {\r\n data: {\r\n apiName: {\r\n mockStatus: 'disabled',\r\n },\r\n },\r\n };\r\n return {key: keyDisabledData, isAllRunningStateSame: true};\r\n }\r\n\r\n if (selectedRows.length === mockListStatusEnabled?.length) {\r\n const keyEnabledData = {\r\n data: {\r\n apiName: {\r\n mockStatus: 'enabled',\r\n },\r\n },\r\n };\r\n return {key: keyEnabledData, isAllRunningStateSame: true};\r\n }\r\n\r\n return {key: {}, isAllRunningStateSame: false};\r\n}\r\n\r\nexport function getListKey(dataArray) {\r\n const element = dataArray?.map((ele) => ele?.key);\r\n return element;\r\n}\r\n\r\nexport function getUpdatedTableData(data, updatedData) {\r\n const mappedData = data?.map((elem) => {\r\n if (elem?.apiName?.apiId === updatedData?.id) {\r\n return {\r\n ...elem,\r\n apiName: {\r\n ...elem?.apiName,\r\n ...updatedData,\r\n },\r\n };\r\n }\r\n return elem;\r\n });\r\n return mappedData;\r\n}\r\n\r\nexport function getUpdatedMock(response) {\r\n const newCurrentPageMockData = [];\r\n response?.filter?.data?.forEach((item) => {\r\n if (item?._id === response?.mockId) {\r\n const updatedData = {...item, ...response.updatedData};\r\n newCurrentPageMockData.push(updatedData);\r\n } else {\r\n newCurrentPageMockData.push(item);\r\n }\r\n });\r\n return newCurrentPageMockData;\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\nimport {getUpdatedMock} from '../modules/dashboard/utils/dashboardUtils';\r\n\r\n// Actions\r\nexport const UPDATE_TOKEN = 'UPDATE_TOKEN';\r\nexport const UPDATE_TOKEN_PENDING = 'UPDATE_TOKEN_PENDING';\r\nexport const UPDATE_TOKEN_SUCCESS = 'UPDATE_TOKEN_SUCCESS';\r\nexport const UPDATE_TOKEN_ERROR = 'UPDATE_TOKEN_ERROR';\r\nexport const RESET_STORE = 'RESET_STORE';\r\n\r\n// Action Creator\r\nexport const updateTokenAction = (data, isMockToken) => ({\r\n type: UPDATE_TOKEN,\r\n data,\r\n isMockToken,\r\n});\r\nexport const resetStore = () => ({\r\n type: RESET_STORE,\r\n});\r\nexport const isUpdateTokenPending = (isPending) => ({\r\n type: UPDATE_TOKEN_PENDING,\r\n isPending,\r\n});\r\n\r\n// Service\r\nexport const updateTokenService = (req) => {\r\n const {API_BASE_URL} = process.env;\r\n const {data} = req;\r\n const API_ENDPOINT = req.isMockToken\r\n ? `${API_BASE_URL}/token/mock/${data.id}`\r\n : `${API_BASE_URL}/token/project/${data.id}`;\r\n const {id, ...rest} = data;\r\n return (\r\n axios({\r\n method: 'put',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: rest,\r\n })\r\n // .then((response) => response.data)\r\n .then((response) => {\r\n if (response.status === 403) {\r\n notify(response.data?.message, {type: 'error'});\r\n } else {\r\n notify('Token details added for project.', {type: 'success'});\r\n }\r\n return {\r\n data: response.data,\r\n mockId: id,\r\n updatedData: rest,\r\n };\r\n })\r\n .catch((err) => {\r\n notify(err.response?.data?.message, {type: 'error'});\r\n return err.response.data;\r\n })\r\n );\r\n};\r\n\r\n// Saga\r\nexport function* updateTokenSaga(payload) {\r\n try {\r\n yield put(isUpdateTokenPending(true));\r\n const response = yield call(updateTokenService, payload);\r\n response.type = UPDATE_TOKEN;\r\n response.filter = payload?.filter;\r\n response.mockId = payload?.data?.id;\r\n yield put(responseSuccessOrFailureAction(UPDATE_TOKEN_SUCCESS, response));\r\n yield put(isUpdateTokenPending(false));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(UPDATE_TOKEN_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n yield put(resetStore());\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function updateTokenReducer(state = [], action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case UPDATE_TOKEN_SUCCESS: {\r\n const dataModel = {\r\n ...state,\r\n response: {\r\n ...response,\r\n data: {\r\n mockList: getUpdatedMock(response),\r\n totalCount: response?.filter?.data?.length,\r\n offset: response?.filter?.offset,\r\n },\r\n },\r\n isPending: false,\r\n };\r\n return dataModel;\r\n }\r\n case UPDATE_TOKEN_ERROR:\r\n return {...state, response};\r\n case RESET_STORE:\r\n return {state: null, response: null};\r\n case UPDATE_TOKEN_PENDING:\r\n return {...state, isPending: action.isPending};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import React, {useState} from 'react';\r\n// import {useDispatch} from 'react-redux';\r\nimport {Box, Typography} from '@mui/material';\r\nimport Switch from '@mui/material/Switch';\r\nimport FormGroup from '@mui/material/FormGroup';\r\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\r\nimport SyncIcon from '@mui/icons-material/Sync';\r\nimport TextField from '@mui/material/TextField';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport FormLabel from '@mui/material/FormLabel';\r\nimport ClipboardJS from 'clipboard';\r\nimport ConfirmationBox from '../../shared/units/ConfirmationBox';\r\nimport {ACTIONS, ATTRS} from '../../../constants';\r\nimport generateToken from '../common/generateUuidToken';\r\nimport {updateTokenService} from '../../../ducks/updateTokenDuck';\r\nimport notify from '../../shared/utils/toast';\r\nimport {getToastType, copyToClipboard} from '../../shared/utils/helper';\r\n\r\nfunction AuthenticateBodyContent(props) {\r\n const {checked, handleChange, handleFieldChange, tokenData, handleRefreshToken} = props;\r\n return (\r\n <div>\r\n <Box className=\"flex items-center\">\r\n <Typography className=\"text-sm\">Authenticate</Typography>\r\n <span className=\"ml-12 mr-1\">Off</span>\r\n <Switch\r\n checked={checked}\r\n onChange={handleChange}\r\n inputProps={{'aria-label': 'controlled'}}\r\n />\r\n <span className=\"ml-1\">On</span>\r\n </Box>\r\n {Boolean(checked) && (\r\n <div className=\"mt-9\">\r\n <FormControl fullWidth>\r\n <FormLabel id=\"token\">{ATTRS.TOKEN}</FormLabel>\r\n <FormGroup classes=\"inline-block\" row>\r\n <TextField\r\n id=\"project-token-number\"\r\n data-testid=\"token-number\"\r\n className=\"mb-2.5\"\r\n defaultValue=\"\"\r\n value={tokenData}\r\n onChange={(e) => {\r\n handleFieldChange(e?.target?.value);\r\n }}\r\n />\r\n\r\n <Tooltip title={ATTRS.COPY_TOKEN}>\r\n <IconButton\r\n aria-label={ATTRS.COPY_TOKEN}\r\n data-clipboard-target=\"#project-token-number\"\r\n data-clipboard-action=\"copy\"\r\n id=\"project-token\"\r\n >\r\n <ContentCopyIcon\r\n onClick={() => {\r\n // eslint-disable-next-line no-unused-vars\r\n const clipboardValue = new ClipboardJS('#project-token');\r\n }}\r\n />\r\n </IconButton>\r\n </Tooltip>\r\n\r\n <Tooltip title={ATTRS.REFRESH_TOKEN}>\r\n <IconButton aria-label={ATTRS.REFRESH_TOKEN}>\r\n <SyncIcon onClick={handleRefreshToken} />\r\n </IconButton>\r\n </Tooltip>\r\n </FormGroup>\r\n </FormControl>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default function AuthenticateContainer(props) {\r\n // const dispatch = useDispatch();\r\n const {\r\n showAuthModel,\r\n closeModel,\r\n authentication,\r\n setAuthentication,\r\n id,\r\n token,\r\n setToken,\r\n userId,\r\n reRender,\r\n handleSetIsLoading,\r\n } = props;\r\n\r\n const [touched, setTouched] = useState(false);\r\n\r\n const handleClose = () => {\r\n closeModel(false);\r\n setToken('');\r\n };\r\n\r\n const onRefreshToken = () => {\r\n setTouched(true);\r\n const newToken = generateToken();\r\n setToken(newToken);\r\n };\r\n\r\n const handleTokenFieldChange = (value) => {\r\n setTouched(true);\r\n setToken(value);\r\n };\r\n\r\n const copyTokenHandler = () => {\r\n copyToClipboard(token);\r\n };\r\n\r\n const handleSwitchToggle = () => {\r\n setTouched(true);\r\n setAuthentication(!authentication);\r\n };\r\n\r\n const saveAuthHandler = async () => {\r\n handleSetIsLoading(true);\r\n const payload = authentication\r\n ? {\r\n authenticationType: true,\r\n token,\r\n id,\r\n userId,\r\n }\r\n : {authenticationType: false, id};\r\n const response = await updateTokenService({data: payload});\r\n if (response?.data?.message) {\r\n handleSetIsLoading(false);\r\n notify(response?.message, {type: getToastType(201)});\r\n handleClose();\r\n reRender();\r\n } else {\r\n handleSetIsLoading(false);\r\n // setError(response?.data?.message);\r\n notify(response?.data?.message, {type: getToastType('error')});\r\n }\r\n handleClose();\r\n };\r\n\r\n return (\r\n <ConfirmationBox\r\n open={showAuthModel}\r\n headerContent={ACTIONS.PROJECTAUTHENTICATE}\r\n secondaryBtnLabel={ACTIONS.CLOSE}\r\n secondaryBtnHandler={handleClose}\r\n primaryBtnLabel=\"Save\"\r\n primaryBtnHandler={saveAuthHandler}\r\n bodyContent={\r\n <AuthenticateBodyContent\r\n checked={authentication}\r\n handleChange={handleSwitchToggle}\r\n tokenData={token}\r\n handleRefreshToken={onRefreshToken}\r\n handleFieldChange={handleTokenFieldChange}\r\n handleCopyToken={copyTokenHandler}\r\n />\r\n }\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnId=\"cancelDeleteCompany\"\r\n primaryBtnId=\"deleteCompany\"\r\n disablePrimaryBtn={!touched}\r\n width=\"495px\"\r\n />\r\n );\r\n}\r\n","/* eslint-disable no-case-declarations */\r\nimport {put, call} from 'redux-saga/effects';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport client from '../modules/shared/service/axiosInstance';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const MOCK_LIST = 'MOCK_LIST';\r\nexport const MOCK_LIST_PENDING = 'MOCK_LIST_PENDING';\r\nexport const MOCK_LIST_SUCCESS = 'MOCK_LIST_SUCCESS';\r\nexport const MOCK_LIST_ERROR = 'MOCK_LIST_ERROR';\r\nexport const MOCK_LIST_UPDATE = 'MOCK_LIST_UPDATE';\r\nexport const MOCK_CURRENT_PAGE = 'MOCK_CURRENT_PAGE';\r\n\r\n// Initial State\r\nconst mockListInitialState = {\r\n response: {\r\n mockList: [],\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const mockListAction = (data) => ({\r\n type: MOCK_LIST,\r\n data,\r\n});\r\nexport const isMockListPending = (isPending) => ({\r\n type: MOCK_LIST_PENDING,\r\n isPending,\r\n});\r\n\r\nexport const updateMockList = ({id = '', payload = {}}) => ({\r\n type: MOCK_LIST_UPDATE,\r\n id,\r\n payload,\r\n});\r\n\r\n// Service\r\nexport const mockListService = ({data}) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/list`;\r\n\r\n return client({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n params: data,\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\nexport const editMockService = (request) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item/`;\r\n\r\n return client({\r\n method: 'GET',\r\n url: API_ENDPOINT + request.data,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response.data)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\n// Saga\r\nexport function* mockListSaga(payload) {\r\n try {\r\n yield put(isMockListPending(true));\r\n const response = yield call(mockListService, payload);\r\n response.type = MOCK_LIST_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(MOCK_LIST_SUCCESS, response));\r\n yield put(isMockListPending(false));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(MOCK_LIST_ERROR));\r\n notify('Record not found!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function createMock(state = mockListInitialState, action) {\r\n const response = action.data;\r\n\r\n switch (action.type) {\r\n case MOCK_LIST_SUCCESS: {\r\n const dataModel = {\r\n ...state,\r\n response: {\r\n ...response,\r\n data: {\r\n ...state?.response?.data,\r\n mockList: response?.data?.mockList,\r\n totalCount: response?.data?.totalMocks,\r\n offset: response?.config?.params?.offset,\r\n },\r\n },\r\n isPending: false,\r\n };\r\n return dataModel;\r\n }\r\n case MOCK_LIST_ERROR:\r\n return {...state, response};\r\n case MOCK_LIST_UPDATE:\r\n const mockListCopy = state.response.data.mockList;\r\n mockListCopy.forEach((item) => {\r\n if (item.projectId === action.id) {\r\n item.projectName = action.payload.projectName;\r\n }\r\n });\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n data: {\r\n ...state.response.data,\r\n mockList: mockListCopy,\r\n },\r\n },\r\n };\r\n case MOCK_LIST_PENDING:\r\n return {...state, isPending: action.isPending};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {mockListService} from '../../../ducks/mockListDuck';\r\n\r\nexport const transformData = (Data) => {\r\n // const {API_BASE_URL} = process.env;\r\n const mockArray = Data.map((data) => ({\r\n name: data.projectName,\r\n description: '',\r\n item: data.allowedMethods.map((method) => ({\r\n name: `${method} -/${data.endpoint}`,\r\n request: {\r\n url: data.endpoint,\r\n method,\r\n // header: [...data.headers],\r\n body: {\r\n mode: 'raw',\r\n raw: '',\r\n },\r\n description: '',\r\n },\r\n })),\r\n }));\r\n const formattedData = {\r\n variables: [],\r\n info: {\r\n name: 'iRest: Rest API Simulator',\r\n _postman_id: '50578d9a-80f4-964c-b3f8-dd09c392bead',\r\n description: 'iRest',\r\n schema: 'https://schema.getpostman.com/json/collection/v2.0.0/collection.json',\r\n },\r\n items: [...mockArray],\r\n protocolProfileBehavior: {},\r\n };\r\n return formattedData;\r\n};\r\n\r\nexport const DownloadPostmanCollection = async (projectName) => {\r\n const mockList = await mockListService({data: {projectName}});\r\n if (mockList?.data?.mockList) {\r\n const transformedData = transformData(mockList?.data?.mockList);\r\n const jsonString = `data:text/json;chatset=utf-8,${encodeURIComponent(\r\n JSON.stringify(transformedData)\r\n )}`;\r\n const link = document.createElement('a');\r\n link.href = jsonString;\r\n link.download = 'PostmanCollection.json';\r\n link.click();\r\n }\r\n};\r\n","import React, {useState} from 'react';\r\nimport Button from '@mui/material/Button';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport LockIcon from '@mui/icons-material/Lock';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport ToggleOffIcon from '@mui/icons-material/ToggleOff';\r\nimport FileDownloadIcon from '@mui/icons-material/FileDownload';\r\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport ActionDropdownAction from '../../modules/shared/units/ActionDropdown';\r\nimport EditContainer from '../../modules/dashboard/actions/EditProject';\r\nimport DeleteContainer from '../../modules/dashboard/actions/DeleteProject';\r\nimport AuthenticateContainer from '../../modules/dashboard/actions/AuthenticateProject';\r\nimport {DownloadPostmanCollection} from '../../modules/dashboard/common/DownloadPostmanCollection';\r\nimport BlockingLoader from '../../modules/shared/units/BlockingLoader';\r\n\r\nfunction ActionDropdown(props) {\r\n const {\r\n projectName = '',\r\n projectDepartment = '',\r\n projectDepartmentName = '',\r\n id,\r\n currentProject,\r\n reRender,\r\n authenticationStatus,\r\n userId,\r\n } = props;\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [isDeleteModelOpen, setIsDeleteModelOpen] = React.useState(false);\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const showActionDropdown = Boolean(anchorEl);\r\n const [isEditModelOpen, setIsEditModelOpen] = useState(false);\r\n const [isAuthenticateModelOpen, setIsAuthenticateModelOpen] = useState(false);\r\n const [departments, setDepartments] = useState([]);\r\n const tokenData = useSelector((state) => state?.fetchToken?.response);\r\n const userinfo = useSelector((state) => state.userinfo);\r\n const dispatch = useDispatch();\r\n const [editProjectName, setEditProjectName] = useState('');\r\n const [editProjectDepartment, setEditProjectDepartment] = useState('');\r\n\r\n const [authStatus, setAuthStatus] = useState(authenticationStatus);\r\n const [token, setToken] = useState('');\r\n\r\n React.useEffect(() => {\r\n setToken(tokenData?.token);\r\n setAuthStatus(authenticationStatus);\r\n }, [tokenData, authenticationStatus]);\r\n\r\n const handleActionDropdown = (event) => {\r\n dispatch({type: 'FETCH_TOKEN', isMockToken: false, data: id});\r\n setAnchorEl(event.currentTarget);\r\n }; // To open action dropdown\r\n\r\n const handleCloseActionDropdown = () => {\r\n setAnchorEl(null);\r\n }; // To close action dropdown\r\n\r\n const handleSetLoading = (loading) => {\r\n setIsLoading(loading);\r\n };\r\n\r\n const editProjectOrMockHandler = () => {\r\n if (userinfo?.departments?.length > 0) {\r\n let departmentList = {};\r\n userinfo.departments.forEach((element) => {\r\n departmentList = {\r\n ...departmentList,\r\n [`${element._id}`]: element.name,\r\n };\r\n });\r\n }\r\n setDepartments({[projectDepartment]: projectDepartmentName});\r\n handleCloseActionDropdown();\r\n setIsEditModelOpen(true);\r\n };\r\n\r\n const authenticationProjectOrMockHandler = () => {\r\n handleCloseActionDropdown();\r\n setIsAuthenticateModelOpen(true);\r\n };\r\n\r\n const deleteProjectOrMockHandler = (event) => {\r\n handleCloseActionDropdown();\r\n setIsDeleteModelOpen(true);\r\n };\r\n\r\n const disableProjectOrMockHandler = (event) => {\r\n dispatch({\r\n type: 'MOCK_STATUS',\r\n data: {\r\n projectId: id,\r\n mockStatus: 'disabled',\r\n },\r\n });\r\n handleCloseActionDropdown();\r\n };\r\n\r\n const exportProjectOrMockHandler = (event) => {\r\n DownloadPostmanCollection(projectName);\r\n handleCloseActionDropdown();\r\n };\r\n\r\n const actiondropdownData = [\r\n {\r\n icon: <EditIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'edit',\r\n textLabel: 'Edit',\r\n clickHandler: editProjectOrMockHandler,\r\n },\r\n {\r\n icon: <LockIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'authentication',\r\n textLabel: 'View/Edit Authentication Details',\r\n clickHandler: authenticationProjectOrMockHandler,\r\n },\r\n {\r\n icon: <DeleteIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'delete',\r\n textLabel: 'Delete',\r\n clickHandler: deleteProjectOrMockHandler,\r\n },\r\n {\r\n icon: <ToggleOffIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'disableapi',\r\n textLabel: \"Disable Project API's\",\r\n clickHandler: disableProjectOrMockHandler,\r\n },\r\n {\r\n icon: <FileDownloadIcon fontSize=\"small\" color=\"primary\" />,\r\n value: 'exportaspostman',\r\n textLabel: 'Export as postman collection',\r\n clickHandler: exportProjectOrMockHandler,\r\n },\r\n ];\r\n\r\n React.useEffect(() => {\r\n setEditProjectName(projectName);\r\n }, [projectName, anchorEl]);\r\n\r\n React.useEffect(() => {\r\n setEditProjectDepartment(projectDepartment);\r\n }, [projectDepartment, anchorEl]);\r\n\r\n return (\r\n <>\r\n <EditContainer\r\n closeModel={setIsEditModelOpen}\r\n isEditModelOpen={isEditModelOpen}\r\n projectName={editProjectName}\r\n projectDepartment={editProjectDepartment}\r\n setProjectName={setEditProjectName}\r\n setProjectDepartment={setEditProjectDepartment}\r\n id={id}\r\n reRender={reRender}\r\n departments={departments}\r\n />\r\n <DeleteContainer\r\n closeModel={setIsDeleteModelOpen}\r\n setLoading={handleSetLoading}\r\n projectName={projectName}\r\n id={id}\r\n isDeleteModelOpen={isDeleteModelOpen}\r\n reRender={reRender}\r\n />\r\n <AuthenticateContainer\r\n showAuthModel={isAuthenticateModelOpen}\r\n closeModel={setIsAuthenticateModelOpen}\r\n id={id}\r\n authentication={authStatus}\r\n setAuthentication={setAuthStatus}\r\n token={token}\r\n setToken={setToken}\r\n reRender={reRender}\r\n userId={userId}\r\n />\r\n <Button\r\n id=\"basic-button\"\r\n className=\"p-0 !min-w-[28px] hover:bg-green\"\r\n aria-controls={showActionDropdown ? 'basic-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={showActionDropdown ? 'true' : undefined}\r\n onClick={handleActionDropdown}\r\n >\r\n {projectName === currentProject ? <MoreVertIcon /> : null}\r\n </Button>\r\n <ActionDropdownAction\r\n anchorEl={anchorEl}\r\n data={actiondropdownData}\r\n open={showActionDropdown}\r\n handleMenuClose={handleCloseActionDropdown}\r\n />\r\n <BlockingLoader open={isLoading} />\r\n </>\r\n );\r\n}\r\n\r\nexport default ActionDropdown;\r\n","import {put, call} from 'redux-saga/effects';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport client from '../modules/shared/service/axiosInstance';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// ActionTypes\r\nexport const CREATE_PROJECT = 'CREATE_PROJECT';\r\nexport const CREATE_PROJECT_SUCCESS = 'CREATE_PROJECT_SUCCESS';\r\nexport const CREATE_PROJECT_ERROR = 'CREATE_PROJECT_ERROR';\r\nexport const CREATE_PROJECT_CLEAR = 'CREATE_PROJECT_CLEAR';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n};\r\n\r\n// Action Creators\r\nexport const createProjectAction = (data) => ({\r\n type: CREATE_PROJECT,\r\n data,\r\n});\r\n\r\nexport const createProjectClearAction = () => ({\r\n type: CREATE_PROJECT_CLEAR,\r\n payload: [],\r\n});\r\n\r\n// Services\r\nexport const createProjectService = ({data}) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/project/create`;\r\n\r\n return client({\r\n method: 'post',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data,\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* createProjectSaga(payload) {\r\n try {\r\n const response = yield call(createProjectService, payload);\r\n response.type = CREATE_PROJECT_SUCCESS;\r\n response.status = 201;\r\n yield put(responseSuccessOrFailureAction(CREATE_PROJECT_SUCCESS, response));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(CREATE_PROJECT_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function createProject(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case CREATE_PROJECT_SUCCESS:\r\n return {...state, response};\r\n case CREATE_PROJECT_ERROR:\r\n return {...state, response};\r\n case CREATE_PROJECT_CLEAR:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n}\r\n","/* eslint-disable no-use-before-define */\r\nimport React, {useState, useEffect} from 'react';\r\nimport {useParams, useLocation} from 'react-router-dom';\r\nimport {useSelector} from 'react-redux';\r\nimport TextField from '@mui/material/TextField';\r\nimport useAxios from 'axios-hooks';\r\n// import {useDispatch} from 'react-redux';\r\nimport ConfirmationBox from '../../modules/shared/units/ConfirmationBox';\r\nimport {ACTIONS} from '../../constants';\r\nimport {PROJECT_NAME_REGEX, PROJECT_NAME_MESSAGE} from '../../constants/dashboard';\r\nimport {createProjectService} from '../../ducks/createProjectDuck';\r\nimport notify from '../../modules/shared/utils/toast';\r\nimport {getToastType} from '../../modules/shared/utils/helper';\r\nimport SimpleSelectDropdown from '../../modules/shared/units/SimpleSelectDropdown';\r\nimport BlockingLoader from '../../modules/shared/units/BlockingLoader';\r\nimport {\r\n COMPLANY_LIST_API_ENDPOINT,\r\n DEPARTMENT_LIST_API_ENDPOINT,\r\n COMPANY_DETAILS_API_ENDPOINT,\r\n} from '../../constants/endpoints';\r\n\r\nfunction EditModelBodyContent(props) {\r\n const location = useLocation();\r\n const {\r\n projectName,\r\n changeHandler,\r\n error = '',\r\n touched,\r\n departments,\r\n selectedDepartment,\r\n changeDepartment,\r\n selectedCompany,\r\n changeCompany,\r\n userinfo,\r\n companies,\r\n isDefaultCompany,\r\n isDefaultDepartment,\r\n } = props;\r\n\r\n return (\r\n <div>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-selec\">Project Name</label>\r\n </div>\r\n <TextField\r\n id=\"project-name\"\r\n data-testid=\"project-name\"\r\n className=\"mb-1.0\"\r\n defaultValue={projectName}\r\n onChange={async (e) => {\r\n changeHandler(e);\r\n }}\r\n required\r\n />\r\n </div>\r\n {error && touched && <p className=\"ml-1 text-xs text-red-500 w-80\">{error}</p>}\r\n {userinfo &&\r\n userinfo?.roles &&\r\n !userinfo?.roles.includes('individual') &&\r\n location?.pathname.includes('dashboard') && (\r\n <div className=\"mt-1\">\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-selec\">Company</label>\r\n </div>\r\n <SimpleSelectDropdown\r\n className=\"rounded-xl border-solid border outline-none\"\r\n id=\"global-simple-select\"\r\n handleChange={(e) => {\r\n changeCompany(e?.target?.value);\r\n }}\r\n selectedValue={selectedCompany}\r\n menuOptions={companies}\r\n required\r\n disabled={isDefaultCompany}\r\n />\r\n </div>\r\n )}\r\n {userinfo &&\r\n userinfo?.roles &&\r\n !userinfo?.roles.includes('individual') &&\r\n location?.pathname.includes('dashboard') && (\r\n <div className=\"mt-1\">\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-selec\">Department</label>\r\n </div>\r\n <SimpleSelectDropdown\r\n className=\"rounded-xl border-solid border outline-none\"\r\n id=\"global-simple-select\"\r\n handleChange={(e) => {\r\n changeDepartment(e?.target?.value);\r\n }}\r\n selectedValue={selectedDepartment}\r\n menuOptions={departments}\r\n required\r\n disabled={Object.keys(selectedCompany).length === 0 || isDefaultDepartment}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default function CreateProject(props) {\r\n const {companyId, departmentId} = useParams();\r\n const {open, close, reRender, isFromProjectList} = props;\r\n const [error, setError] = useState('');\r\n // const dispatch = useDispatch();\r\n const [projectName, setProjectName] = useState('');\r\n const [selectedDepartment, setSelectedDepartment] = useState('');\r\n const [selectedCompany, setSelectedCompany] = useState('');\r\n const [touched, setTouched] = useState(false);\r\n const [disable, setDisable] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [companyList, setCompanyList] = useState({});\r\n const [isDefaultCompany, setIsDefaultCompany] = useState(false);\r\n const [isDefaultDepartment, setIsDefaultDepartment] = useState(false);\r\n const [departmentList, setDepartmentList] = useState({});\r\n const userinfo = useSelector((state) => state.userinfo);\r\n const [{isCompanyLoading}, fetchCompanies] = useAxios(\r\n {\r\n url: `${COMPLANY_LIST_API_ENDPOINT}`,\r\n method: 'get',\r\n },\r\n {\r\n manual: true,\r\n }\r\n );\r\n const [{isDepartmentLoading}, fetchDepartments] = useAxios(\r\n {\r\n url: `${DEPARTMENT_LIST_API_ENDPOINT}?companyId=${selectedCompany}`,\r\n method: 'get',\r\n },\r\n {\r\n manual: true,\r\n }\r\n );\r\n const [{isCompanyDetailsLoading}, fetchCompanyDetails] = useAxios(\r\n {\r\n url: `${COMPANY_DETAILS_API_ENDPOINT}/${userinfo?.companyId}`,\r\n method: 'get',\r\n },\r\n {\r\n manual: true,\r\n }\r\n );\r\n\r\n // const {isEditPending} = useSelector((state) => state?.projectEdit);\r\n\r\n useEffect(() => {\r\n if (open && (userinfo?.roles.includes('companyadmin') || userinfo?.roles.includes('poc'))) {\r\n getCompanyDetails();\r\n } else if (open && !userinfo?.roles.includes('individual')) {\r\n getCompanyList();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (selectedCompany) {\r\n if (userinfo?.roles.includes('poc') && userinfo?.departments?.length > 0) {\r\n setDepartmentList({\r\n [userinfo?.departments?.[0]?._id]: userinfo?.departments?.[0]?.name,\r\n });\r\n setSelectedDepartment(userinfo?.departments?.[0]?._id);\r\n setIsDefaultDepartment(true);\r\n } else {\r\n getDepartmentList();\r\n }\r\n }\r\n }, [selectedCompany]);\r\n\r\n useEffect(() => {\r\n let disableAddProject = true;\r\n if (isFromProjectList && projectName && projectName.length > 2) {\r\n disableAddProject = false;\r\n } else if (\r\n !isFromProjectList &&\r\n userinfo?.roles.includes('individual') &&\r\n projectName &&\r\n projectName.length > 2\r\n ) {\r\n disableAddProject = false;\r\n } else if (\r\n !isFromProjectList &&\r\n !userinfo?.roles.includes('individual') &&\r\n projectName &&\r\n projectName.length > 2 &&\r\n selectedCompany &&\r\n selectedDepartment\r\n ) {\r\n disableAddProject = false;\r\n }\r\n\r\n setDisable(disableAddProject);\r\n }, [projectName, selectedCompany, selectedDepartment]);\r\n\r\n const getCompanyList = () => {\r\n fetchCompanies()\r\n .then((response) => {\r\n try {\r\n let mappedData = {};\r\n response.data.companyList.rows.forEach((obj) => {\r\n mappedData = {\r\n [obj._id]: obj.name,\r\n ...mappedData,\r\n };\r\n });\r\n setCompanyList(mappedData);\r\n } catch (err) {\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n })\r\n .catch((err) => {\r\n if (!isCompanyLoading && err?.response?.status === 400) {\r\n if (err?.response?.data?.message) {\r\n notify(err?.response?.data?.message, {type: 'error'});\r\n } else {\r\n notify(err?.response?.data?.errors?.details[0]?.message, {type: 'error'});\r\n }\r\n } else {\r\n notify(err.response?.data?.message, {type: 'error'});\r\n }\r\n });\r\n };\r\n\r\n const getCompanyDetails = () => {\r\n fetchCompanyDetails()\r\n .then((response) => {\r\n const mappedData = {\r\n [response?.data?.company?._id]: response?.data?.company?.name,\r\n };\r\n setSelectedCompany(response?.data?.company?._id);\r\n setCompanyList(mappedData);\r\n setIsDefaultCompany(true);\r\n })\r\n .catch((err) => {\r\n if (!isCompanyDetailsLoading && err?.response?.status === 400) {\r\n if (err?.response?.data?.message) {\r\n notify(err?.response?.data?.message, {type: 'error'});\r\n } else {\r\n notify(err?.response?.data?.errors?.details[0]?.message, {type: 'error'});\r\n }\r\n } else {\r\n notify(err.response?.data?.message, {type: 'error'});\r\n }\r\n });\r\n };\r\n\r\n const getDepartmentList = () => {\r\n fetchDepartments()\r\n .then((response) => {\r\n try {\r\n let mappedData = {};\r\n response.data.departmentList.rows.forEach((obj) => {\r\n mappedData = {\r\n [obj._id]: obj.name,\r\n ...mappedData,\r\n };\r\n });\r\n setDepartmentList(mappedData);\r\n } catch (err) {\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n })\r\n .catch((err) => {\r\n if (!isDepartmentLoading && err?.response?.status === 400) {\r\n if (err?.response?.data?.message) {\r\n notify(err?.response?.data?.message, {type: 'error'});\r\n } else {\r\n notify(err?.response?.data?.errors?.details[0]?.message, {type: 'error'});\r\n }\r\n } else {\r\n notify(err.response?.data?.message, {type: 'error'});\r\n }\r\n });\r\n };\r\n\r\n const handleProjectNameEdit = async (e) => {\r\n setTouched(true);\r\n const {value = ''} = e.target;\r\n if (value.trim() === '') {\r\n setError('This field is required');\r\n setProjectName(value.trim());\r\n } else {\r\n setProjectName(value);\r\n if (value?.length > 2) {\r\n if (!PROJECT_NAME_REGEX.test(value)) {\r\n setError(PROJECT_NAME_MESSAGE);\r\n } else {\r\n setError('');\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleChangeDepartment = (e) => {\r\n if (e) {\r\n setSelectedDepartment(e);\r\n }\r\n };\r\n\r\n const handleChangeCompany = (e) => {\r\n if (e) {\r\n setSelectedCompany(e);\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n setError('');\r\n setProjectName('');\r\n setSelectedDepartment('');\r\n setSelectedCompany('');\r\n close(false);\r\n };\r\n\r\n const addProject = async () => {\r\n setIsLoading(true);\r\n const response = await createProjectService({\r\n data: {\r\n projectName,\r\n createDepartmentId: departmentId || selectedDepartment,\r\n companyIdValue: companyId || selectedCompany,\r\n departmentIdValue: departmentId || selectedDepartment,\r\n },\r\n });\r\n if (response?.status === 201) {\r\n notify(response?.data?.message, {type: getToastType(response.status)});\r\n setDisable(true);\r\n handleClose();\r\n reRender();\r\n } else {\r\n if (response?.status === 400) {\r\n notify(response?.data?.errors?.details[0]?.message, {type: 'error'});\r\n }\r\n setError(response?.data?.message);\r\n }\r\n setIsLoading(false);\r\n };\r\n return (\r\n <>\r\n <BlockingLoader open={isLoading} />\r\n <ConfirmationBox\r\n open={open}\r\n headerContent={`${ACTIONS.PROJECTNAME}`}\r\n secondaryBtnLabel={ACTIONS.CLOSE}\r\n secondaryBtnHandler={handleClose}\r\n primaryBtnLabel=\"Add Project\"\r\n primaryBtnHandler={addProject}\r\n bodyContent={\r\n <EditModelBodyContent\r\n projectName={projectName}\r\n changeHandler={handleProjectNameEdit}\r\n error={error}\r\n touched={touched}\r\n departments={departmentList}\r\n selectedDepartment={selectedDepartment}\r\n changeDepartment={handleChangeDepartment}\r\n selectedCompany={selectedCompany}\r\n changeCompany={handleChangeCompany}\r\n userinfo={userinfo}\r\n companies={companyList}\r\n isDefaultCompany={isDefaultCompany}\r\n isDefaultDepartment={isDefaultDepartment}\r\n />\r\n }\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnId=\"cancelDeleteCompany\"\r\n primaryBtnId=\"deleteCompany\"\r\n // disablePrimaryBtn={disable}\r\n disablePrimaryBtn={error || disable}\r\n />\r\n </>\r\n );\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport {Link} from 'react-router-dom';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport List from '@mui/material/List';\r\nimport ListItem from '@mui/material/ListItem';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport ActionDropdown from './ProjectListActionDropdown';\r\nimport CreateProject from './CreateProject';\r\nimport {RECENT_API_ROWS_LENGTH} from '../../constants';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\n\r\nexport default function SideBar(props) {\r\n // props destructuring\r\n const {selectedTab} = props;\r\n\r\n // redux related extraction\r\n const {projectList} = useSelector((state) => state);\r\n const mockListUpdated = useSelector((state) => state?.mockList?.response?.data?.mockList);\r\n const dispatch = useDispatch();\r\n const [reRender, setReRender] = useState(false);\r\n // Role based UI elements\r\n const isCreateProjectEnabled = useRolePermission('project', 'create');\r\n const isUpdateProjectEnabled = useRolePermission('project', 'update');\r\n\r\n // useEffect calls\r\n useEffect(() => {\r\n dispatch({type: 'PROJECT_LIST'});\r\n dispatch({\r\n type: 'MOCK_LIST',\r\n data: {\r\n limit: RECENT_API_ROWS_LENGTH,\r\n offset: 0,\r\n },\r\n });\r\n }, [reRender]);\r\n\r\n useEffect(() => {\r\n dispatch({type: 'PROJECT_LIST'});\r\n }, [mockListUpdated]);\r\n\r\n // component functions\r\n\r\n const [currentProject, setCurrentProject] = useState('');\r\n const [isCreateProjectModalOpen, setIsCreateProjectModalOpen] = useState(false);\r\n\r\n const handleReRender = () => {\r\n setReRender(!reRender);\r\n };\r\n\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n const {type = false} = projectList?.response;\r\n\r\n const listItemCss =\r\n 'w-52 h-[30px] hover:bg-white px-2 py-[6px] truncate text-sm cursor-pointer flex justify-between font-sans';\r\n return (\r\n <div className=\"pt-1 w-56 min-h-full border-solid border-0 border-r-2 border-lineColor bg-dashboardBg\">\r\n <List className=\"list-none pl-3 pr-3\">\r\n <Link to=\"/dashboard\" className=\"no-underline text-black\">\r\n <ListItem\r\n className={listItemCss}\r\n style={selectedTab === '/dashboard' ? {backgroundColor: '#EDF2FF'} : {}}\r\n >\r\n Quick Access\r\n </ListItem>\r\n </Link>\r\n <Link to=\"/dashboard/api-list\" className=\"no-underline text-black\">\r\n <ListItem\r\n className={listItemCss}\r\n style={selectedTab === '/dashboard/api-list' ? {backgroundColor: '#EDF2FF'} : {}}\r\n >\r\n API Listing\r\n </ListItem>\r\n </Link>\r\n <hr className=\"my-[7px] border-solid border-lineColor\" />\r\n <ListItem className=\"w-52 h-8 px-2 mb-1 flex justify-between text-[13px] text-[#959595] \">\r\n <div data-testid=\"project-heading\">Projects</div>\r\n {isCreateProjectEnabled && (\r\n <div\r\n className=\"bg-primary pt-[1px] w-8 h-6 rounded text-white text-center cursor-pointer\"\r\n onClick={() => {\r\n setIsCreateProjectModalOpen(true);\r\n }}\r\n >\r\n <AddIcon fontSize=\"small\" />\r\n </div>\r\n )}\r\n </ListItem>\r\n </List>\r\n <List className=\"list-none pl-3 pr-3 h-screen\toverflow-y-scroll overflow-x-hidden custom-scrollbar\">\r\n {type &&\r\n projectList?.response?.projectList?.length > 0 &&\r\n projectList?.response?.projectList.map((project) => (\r\n <ListItem\r\n onMouseOver={() => setCurrentProject(project.projectName)}\r\n onMouseLeave={() => setCurrentProject('')}\r\n className={listItemCss}\r\n style={\r\n selectedTab === `/dashboard/api-list/${project._id}`\r\n ? {backgroundColor: '#EDF2FF'}\r\n : {}\r\n }\r\n >\r\n <Link\r\n to={`/dashboard/api-list/${project._id}`}\r\n className=\"no-underline text-black !contents\"\r\n >\r\n <div className=\"!w-36 truncate\">{project.projectName}</div>\r\n <div>{project.count}</div>\r\n </Link>\r\n {isUpdateProjectEnabled && (\r\n <div>\r\n <ActionDropdown\r\n projectName={project.projectName}\r\n projectDepartment={project.departmentId}\r\n projectDepartmentName={project.departmentName}\r\n id={project._id}\r\n currentProject={currentProject}\r\n setCurrentProject={setCurrentProject}\r\n mockCount={project.count}\r\n reRender={handleReRender}\r\n authenticationStatus={project.authenticationType}\r\n userId={project.userId}\r\n />\r\n </div>\r\n )}\r\n </ListItem>\r\n ))}\r\n <CreateProject\r\n open={isCreateProjectModalOpen}\r\n close={setIsCreateProjectModalOpen}\r\n reRender={handleReRender}\r\n />\r\n </List>\r\n </div>\r\n );\r\n}\r\n","/* eslint-disable jsx-a11y/mouse-events-have-key-events */\r\nimport React, {useEffect, useState} from 'react';\r\nimport Typography from '@mui/material/Typography';\r\nimport ModeIcon from '@mui/icons-material/Mode';\r\nimport TextField from '@mui/material/TextField';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport {\r\n PROJECT_NAME_REGEX,\r\n PROJECT_NAME_MESSAGE,\r\n ATTRS,\r\n PROJECT_LIST_COLOR_CODE,\r\n} from '../../../constants/dashboard';\r\n\r\nimport projectEditService from '../../shared/service/projectEdit';\r\nimport notify from '../../shared/utils/toast';\r\nimport {getToastType} from '../../shared/utils/helper';\r\nimport {RECENT_API_ROWS_LENGTH} from '../../../constants';\r\nimport useRolePermission from '../../../hooks/useRolePermission';\r\n\r\nfunction TopActionDashboardContainer(props) {\r\n const {projectId} = props;\r\n const [projName, setProjName] = useState();\r\n const [copyProjName, setCopyProjName] = useState();\r\n const [error, setError] = useState('');\r\n const [isEnabled, setEnabled] = useState(false);\r\n const dispatch = useDispatch();\r\n const projectList = useSelector((state) => state.projectList?.response?.projectList);\r\n const isUpdateProjectEnabled = useRolePermission('project', 'update');\r\n useEffect(() => {\r\n const project = projectList.filter((row) => row._id === projectId);\r\n setProjName(project[0]?.projectName);\r\n setCopyProjName(project[0]?.projectName);\r\n }, [projectId, projectList]);\r\n const renderViewOnly = () => (\r\n <>\r\n <Typography\r\n component=\"span\"\r\n sx={{flexGrow: 1, marginLeft: '15px', color: PROJECT_LIST_COLOR_CODE}}\r\n >\r\n {projName}\r\n </Typography>\r\n {isUpdateProjectEnabled && <ModeIcon fontSize=\"small\" />}\r\n </>\r\n );\r\n const handleProjectEdit = (e) => {\r\n if (e.target.value.trim() === '') {\r\n setError('This field is required');\r\n setProjName(e.target.value.trim());\r\n } else {\r\n setProjName(e.target.value.trim());\r\n if (e.target.value.trim().length > 2) {\r\n if (!PROJECT_NAME_REGEX.test(e.target.value.trim())) {\r\n setError(PROJECT_NAME_MESSAGE);\r\n } else {\r\n setError('');\r\n }\r\n } else {\r\n setError('Length of project must be greater than 2');\r\n }\r\n }\r\n };\r\n\r\n const handleSubmit = async () => {\r\n if (projName !== copyProjName && error === '') {\r\n const response = await projectEditService({payload: {projectName: projName}, id: projectId});\r\n if (response?.status === 201) {\r\n notify(response?.data?.message, {type: getToastType(response.status)});\r\n dispatch({type: 'PROJECT_LIST'});\r\n dispatch({\r\n type: 'MOCK_LIST',\r\n data: {\r\n limit: RECENT_API_ROWS_LENGTH,\r\n offset: 0,\r\n },\r\n });\r\n } else {\r\n console.log('error');\r\n }\r\n }\r\n };\r\n\r\n const renderContent = () => {\r\n if (isEnabled && isUpdateProjectEnabled) {\r\n return (\r\n <div className=\"flex\">\r\n <div>\r\n <TextField\r\n id=\"project-name\"\r\n data-testid=\"project-name\"\r\n className=\"mb-2.5 m-4 pb-1.5\"\r\n defaultValue={projName}\r\n value={projName}\r\n onChange={(e) => handleProjectEdit(e)}\r\n onMouseLeave={() => handleSubmit()}\r\n />\r\n </div>\r\n <div>{error && <p className=\"ml-1 text-sm text-red-500\">{error}</p>}</div>\r\n </div>\r\n );\r\n }\r\n return renderViewOnly();\r\n };\r\n\r\n const renderProjectName = () => {\r\n if (projectId) {\r\n return (\r\n <div onMouseOver={() => setEnabled(true)} onMouseLeave={() => setEnabled(false)}>\r\n {renderContent()}\r\n </div>\r\n );\r\n }\r\n return (\r\n <Typography\r\n component=\"span\"\r\n sx={{flexGrow: 1, marginLeft: '15px', color: PROJECT_LIST_COLOR_CODE}}\r\n >\r\n {ATTRS.PROJECT_LIST_NAME}\r\n </Typography>\r\n );\r\n };\r\n\r\n return (\r\n <div className=\"h-12 top-16 flex items-center bg-white bg-clip-padding bg-no-repeat bg-origin-padding shadow-[0px_2px_5px_0px_rgba(0,0,0,0.082)] opacity-100\">\r\n <div className=\"\">{renderProjectName()}</div>\r\n {/* {projectId && (\r\n <div className=\"px-4 flex items-center ml-auto mr-1\">\r\n <div className=\"\">\r\n <Typography component=\"span\" sx={{flexGrow: 1, color: AUTHENTICATION_COLOR_CODE}}>\r\n {ATTRS.AUTHENTICATION}:{' '}\r\n </Typography>\r\n <Typography component=\"span\" sx={{flexGrow: 1, color: AUTHENTICATION_STATE}}>\r\n {authenticationType}\r\n </Typography>\r\n </div>\r\n <div className=\"pl-1\">\r\n <ProjectListActionDropdown selectedData={selectedData} />\r\n </div>\r\n </div>\r\n )} */}\r\n </div>\r\n );\r\n}\r\n\r\nexport default TopActionDashboardContainer;\r\n","import React, {useState, useEffect} from 'react';\r\nimport Button from '@mui/material/Button';\r\nimport TuneIcon from '@mui/icons-material/Tune';\r\nimport FiltersDialog from '../../shared/units/FiltersDialog';\r\nimport {FILTER_MENU_DATA, FILTER_MENU} from '../../../constants/dashboard';\r\n\r\nexport default function FilterContainer(props) {\r\n const {handleSelectedFilterMenu, filterDataValues = []} = props;\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const filtersInitialState = {\r\n allowedMethods: [],\r\n status: [],\r\n authenticationType: [],\r\n };\r\n const [filterValues, setFilterValues] = useState(filtersInitialState);\r\n\r\n useEffect(() => {\r\n setFilterValues(filterDataValues);\r\n }, [filterDataValues]);\r\n\r\n const clearMenu = () => {\r\n setFilterValues(() => filtersInitialState);\r\n handleSelectedFilterMenu(filtersInitialState);\r\n };\r\n\r\n const selectMenu = (event, valueType) => {\r\n const {value} = event.currentTarget.dataset;\r\n const optionTypeData = filterValues[FILTER_MENU[valueType]];\r\n\r\n if (optionTypeData.indexOf(value) === -1) {\r\n if (value === 'any') {\r\n setFilterValues((prevFilterVal) => ({\r\n ...prevFilterVal,\r\n [FILTER_MENU[valueType]]: ['any'],\r\n }));\r\n handleSelectedFilterMenu({\r\n ...filterValues,\r\n [FILTER_MENU[valueType]]: ['any'],\r\n });\r\n } else {\r\n let list = filterValues[FILTER_MENU[valueType]].slice();\r\n list = list.filter((e) => e !== 'any');\r\n setFilterValues((prevFilterValue) => ({\r\n ...prevFilterValue,\r\n [FILTER_MENU[valueType]]: [...list, value],\r\n }));\r\n handleSelectedFilterMenu({\r\n ...filterValues,\r\n [FILTER_MENU[valueType]]: [...list, value],\r\n });\r\n }\r\n } else {\r\n const list = [...optionTypeData];\r\n const index = list.indexOf(value);\r\n if (index !== -1) {\r\n list.splice(index, 1);\r\n setFilterValues((prevFilterValue) => ({\r\n ...prevFilterValue,\r\n [FILTER_MENU[valueType]]: list,\r\n }));\r\n handleSelectedFilterMenu({\r\n ...filterValues,\r\n [FILTER_MENU[valueType]]: list,\r\n });\r\n }\r\n }\r\n };\r\n const handleFilterMenu = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleFilterMenuClose = (event) => {\r\n setAnchorEl(!open);\r\n };\r\n\r\n return (\r\n <>\r\n <Button\r\n id=\"basic-button\"\r\n aria-controls={open ? 'basic-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleFilterMenu}\r\n >\r\n Filter <TuneIcon />\r\n </Button>\r\n <FiltersDialog\r\n menudata={FILTER_MENU_DATA}\r\n filterValues={filterValues}\r\n filterMenuMapping={FILTER_MENU}\r\n showRadioIcon={false}\r\n open={open}\r\n handleClose={handleFilterMenuClose}\r\n clearMenu={clearMenu}\r\n selectMenu={selectMenu}\r\n anchorEl={anchorEl}\r\n />\r\n </>\r\n );\r\n}\r\n","import React, {useState} from 'react';\r\nimport Button from '@mui/material/Button';\r\nimport SwapVertIcon from '@mui/icons-material/SwapVert';\r\nimport FiltersDialog from '../../shared/units/FiltersDialog';\r\nimport {SORTING_DATA} from '../../../constants/dashboard';\r\n\r\nexport default function SortingContainer(props) {\r\n const {handleSelectedFilterMenu} = props;\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [defaultRadioValue, setRadioBtnValue] = useState('updatenewtoold');\r\n const open = Boolean(anchorEl);\r\n\r\n const handleSortMenu = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleSortMenuClose = () => {\r\n setAnchorEl(!open);\r\n };\r\n\r\n const onRadioBtnChange = (e) => {\r\n setRadioBtnValue(e.target.value);\r\n handleSelectedFilterMenu(e.target.value);\r\n handleSortMenuClose();\r\n };\r\n\r\n return (\r\n <>\r\n <Button\r\n id=\"basic-button\"\r\n className=\"p-0 !min-w-[28px] hover:bg-green\"\r\n aria-controls={open ? 'basic-menu' : undefined}\r\n aria-haspopup=\"true\"\r\n aria-expanded={open ? 'true' : undefined}\r\n onClick={handleSortMenu}\r\n >\r\n Sort <SwapVertIcon />\r\n </Button>\r\n <FiltersDialog\r\n menudata={SORTING_DATA}\r\n showClearBtn={false}\r\n showCloseBtn={false}\r\n showCheckIcon={false}\r\n open={open}\r\n handleClose={handleSortMenuClose}\r\n defaultValue={defaultRadioValue}\r\n onRadioBtnChange={onRadioBtnChange}\r\n anchorEl={anchorEl}\r\n />\r\n </>\r\n );\r\n}\r\n","import React, {useState} from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport ConfirmationBox from '../../shared/units/ConfirmationBox';\r\nimport {ACTIONS} from '../../../constants/dashboard';\r\nimport {addTooltipWrapper, getDeleteModelContent} from '../utils/dashboardUtils';\r\n\r\nexport default function DeleteContainer(props) {\r\n const {data, content, onDelete, classes} = props;\r\n\r\n const [isDeleteModelOpen, setIsDeleteModelOpen] = useState(false);\r\n\r\n const handleDeleteConfirmation = () => {\r\n setIsDeleteModelOpen(true);\r\n };\r\n\r\n const closeDeleteModel = () => {\r\n setIsDeleteModelOpen(false);\r\n };\r\n\r\n const handleDelete = () => {\r\n onDelete(data);\r\n closeDeleteModel();\r\n };\r\n\r\n const getDeleteModelBodyContent = () => content || getDeleteModelContent(data?.apiName?.value);\r\n\r\n const deleteClass = `cursor-pointer ${classes}`;\r\n\r\n return (\r\n <>\r\n <Box className=\"mx-3\">\r\n {addTooltipWrapper(\r\n <DeleteIcon\r\n color=\"primary\"\r\n size=\"large\"\r\n className={deleteClass}\r\n onClick={handleDeleteConfirmation}\r\n />,\r\n ACTIONS.DELETE\r\n )}\r\n </Box>\r\n\r\n <ConfirmationBox\r\n open={isDeleteModelOpen}\r\n headerContent=\"Are you sure ?\"\r\n secondaryBtnLabel={ACTIONS.CLOSE}\r\n secondaryBtnHandler={closeDeleteModel}\r\n primaryBtnLabel={ACTIONS.DELETE}\r\n primaryBtnHandler={handleDelete}\r\n bodyContent={getDeleteModelBodyContent()}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnId=\"cancelDeleteApi\"\r\n primaryBtnId=\"deleteApi\"\r\n />\r\n </>\r\n );\r\n}\r\n","import React, {useState, useEffect} from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Switch from '@mui/material/Switch';\r\nimport {ATTRS} from '../../../constants/dashboard';\r\nimport {addTooltipWrapper} from '../utils/dashboardUtils';\r\n\r\nexport default function ToggleContainer(props) {\r\n const {onToggle, label, classes, disabled} = props;\r\n const isMockEnabled = props.isMockUpdated === 'enabled';\r\n const [checked, setChecked] = useState(isMockEnabled);\r\n\r\n const handleToggle = (e) => {\r\n setChecked(e.target.checked);\r\n const toggleStatus = e.target.checked ? ATTRS.ENABLED : ATTRS.DISABLED;\r\n onToggle(toggleStatus);\r\n };\r\n\r\n const toggleClass = `mx-3 ${classes}`;\r\n\r\n useEffect(() => {\r\n if (!props.isMockUpdated) {\r\n setChecked(checked);\r\n }\r\n }, [props.isMockUpdated]);\r\n return (\r\n <Box className={toggleClass}>\r\n {addTooltipWrapper(\r\n <Switch\r\n className=\"cursor-pointer text-base global-switch-icon-hover\"\r\n checked={checked}\r\n onChange={handleToggle}\r\n inputProps={{'aria-label': 'controlled'}}\r\n disabled={disabled}\r\n />,\r\n label\r\n )}\r\n </Box>\r\n );\r\n}\r\n","import React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport FileDownloadOutlinedIcon from '@mui/icons-material/FileDownloadOutlined';\r\nimport {addTooltipWrapper} from '../utils/dashboardUtils';\r\n\r\nexport default function DownloadContainer(props) {\r\n const {onClick, label} = props;\r\n\r\n return (\r\n <Box className=\"mx-3\">\r\n {addTooltipWrapper(\r\n <FileDownloadOutlinedIcon\r\n color=\"primary\"\r\n size=\"medium\"\r\n className=\"cursor-pointer\"\r\n onClick={onClick}\r\n />,\r\n label\r\n )}\r\n </Box>\r\n );\r\n}\r\n","import React from 'react';\r\nimport Grid from '@mui/material/Grid';\r\nimport {COLOR_CODES} from '../../../constants';\r\nimport BasicTable from '../../shared/units/BasicTable';\r\n\r\nfunction ImportedAPIStatusContainer(props) {\r\n const {title, data} = props;\r\n\r\n return (\r\n <Grid>\r\n <Grid className={`NunitoSansBold text-sm text-[${COLOR_CODES.headingTitle3}]`}>{title}</Grid>\r\n <Grid item size={12} className=\"pl-[15px] mt-2\">\r\n <BasicTable\r\n onHoverContent={() => {}}\r\n hoverEffect={false}\r\n maxHeight={350}\r\n columns={[\r\n {\r\n id: 'success',\r\n label: 'Status',\r\n },\r\n {\r\n id: 'name',\r\n label: 'Name',\r\n },\r\n {\r\n id: 'endpoint',\r\n label: 'Endpoint',\r\n },\r\n {\r\n id: 'info',\r\n label: 'Info',\r\n },\r\n ]}\r\n tableData={data}\r\n totalRecords={data.length}\r\n defaultSortOrder=\"asc\"\r\n cellClassName=\"global-table-body-cell NunitoSansSemibold\"\r\n headerCellClass=\"global-table-header-cell NunitoSansRegular\"\r\n hoverClassName=\"bg-white h-14 w-36 p-2.5 absolute right-16\"\r\n tableWrapperClassName=\"shadow-none\"\r\n tableClassName=\"overflow-auto\"\r\n />\r\n </Grid>\r\n </Grid>\r\n );\r\n}\r\n\r\nexport default ImportedAPIStatusContainer;\r\n","import axios from '../modules/shared/service/axiosInstance';\r\n\r\nconst importMockService = (request, projectId) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/import`;\r\n\r\n return axios({\r\n method: 'post',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.data,\r\n params: {projectId},\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\nexport default importMockService;\r\n","const initialState = {\r\n projectId: null,\r\n};\r\n\r\n// Actions\r\nexport const SELECTED_PROEJCT_ID = 'SELECTED_PROEJCT_ID';\r\n\r\n// Action Creators\r\nexport const setSelectedProject = (payload) => ({\r\n type: SELECTED_PROEJCT_ID,\r\n payload,\r\n});\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function getSelectedProject(state = initialState, action) {\r\n switch (action.type) {\r\n case SELECTED_PROEJCT_ID:\r\n return action.payload;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import axios from '../modules/shared/service/axiosInstance';\r\n\r\nconst exportMockService = (request) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/export/`;\r\n console.log(request);\r\n return axios({\r\n method: 'post',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.data,\r\n })\r\n .then((response) => response.data)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\nexport default exportMockService;\r\n","export const USER_MANAGEMENT = 'User Management';\r\nexport const USER_LISTING = 'User Listing';\r\nexport const CREATE_USER = 'Create User';\r\nexport const ACCESS_RIGHT = 'Access rights';\r\nexport const ADMIN = 'Admin';\r\nexport const MANAGER = 'Manager';\r\nexport const DEVELOPER = 'Developer';\r\nexport const EDIT = 'Edit';\r\nexport const EDIT_USER = 'Edit User';\r\nexport const DELETE = 'Delete';\r\nexport const CANCEL = 'Cancel';\r\nexport const CREATE = 'Create';\r\nexport const ENABLE = 'Enable';\r\nexport const DISABLE = 'Disable';\r\nexport const ALERT = 'Alert';\r\nexport const OK = 'OK';\r\nexport const SHOW_PASSWORD = 'Generate Password';\r\nexport const ADD_PROJECT = 'Assign Project';\r\nexport const DELETE_USER_MSG = 'will be deleted';\r\nexport const ENABLE_DISABLE_USER_MSG = 'will be ';\r\nexport const CONFIRMATION_HEADER_TITLE = 'Are you sure?';\r\nexport const CONFIRMATION_PRIMARY_BTN_LABEL = 'Yes, confirm';\r\nexport const CONFIRMATION_SECONDARY_BTN_LABEL = 'No, cancel';\r\nexport const NAME = 'name';\r\nexport const NAME_VALIDATION_MESSAGE = 'Please enter name';\r\nexport const EMPTY_DOMAIN_VALIDATION_MESSAGE = 'Please enter domain';\r\nexport const WRONG_DOMAIN_VALIDATION_MESSAGE = 'Please enter domain';\r\nexport const STATUS_VALIDATION_MESSAGE = 'Please select status';\r\nexport const DIALOG_TITLE_ICON_TOOLTIP =\r\n 'An API URL is a web address that is used to access an API (Application Programming Interface)';\r\nexport const USER_SUBTITLE_CONTENT = 'Add user for different roles for iREST access';\r\nexport const ADD_PROJECT_CONTENT = 'Assign projects for different users for iRest access';\r\nexport const DUPLICATE_FIELD_MSG = 'This field is already exist';\r\nexport const EDITED_RECORD_MOVED_MSG =\r\n 'Record has been updated successfully, do you want to move to page 1.';\r\nexport const COLUMNS = [\r\n {\r\n id: 'name',\r\n label: 'User Name',\r\n },\r\n {\r\n id: 'email',\r\n label: 'Mail ID',\r\n },\r\n {\r\n id: 'role',\r\n label: 'Role',\r\n },\r\n {\r\n id: 'company',\r\n label: 'Company',\r\n },\r\n {\r\n id: 'status',\r\n label: 'Status',\r\n },\r\n];\r\n\r\nexport const VALIDATION_TEXT = {\r\n NAME: {\r\n EMPTY: 'Please enter user name',\r\n WRONG: 'Please enter user name',\r\n },\r\n EMAIL: {\r\n EMPTY: 'Please enter email',\r\n WRONG: 'Please enter correct email',\r\n },\r\n ROLE: {\r\n EMPTY: 'Please select role',\r\n WRONG: 'Please select role',\r\n },\r\n COMPANY: {\r\n EMPTY: 'Please select company',\r\n WRONG: 'Please select company',\r\n },\r\n};\r\nexport const EMAIL_REGEX = /\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*/;\r\nexport const PAGE_TITLE = 'User Management - iRest';\r\nexport const COPIED_TO_CLIPBOARD = 'and copied to the clipboard';\r\nexport const ROLE_MAPPING = {\r\n subuser: 'Sub user',\r\n individual: 'Individual',\r\n companyadmin: 'Company admin',\r\n poc: 'POC',\r\n};\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport {useNavigate, useLocation} from 'react-router-dom';\r\nimport {styled} from '@mui/material/styles';\r\nimport AddIcon from '@mui/icons-material/Add';\r\nimport FileDownLoadIcon from '@mui/icons-material/FileDownload';\r\nimport FileUploadIcon from '@mui/icons-material/FileUpload';\r\nimport Button from '@mui/material/Button';\r\nimport Typography from '@mui/material/Typography';\r\nimport Chip from '@mui/material/Chip';\r\nimport Backdrop from '@mui/material/Backdrop';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\nimport FilterContainer from './FilterContainer';\r\nimport SortingContainer from './SortingContainer';\r\nimport DeleteContainer from '../actions/DeleteContainer';\r\nimport ToggleContainer from '../actions/ToggleContainer';\r\nimport DownloadContainer from '../actions/DownloadContainer';\r\nimport ImportedAPIStatusContainer from './ImportedAPIStatusContainer';\r\nimport {ATTRS, AUTH_TYPE_COLOR_CODE} from '../../../constants/dashboard';\r\nimport importMockService from '../../../ducks/importApiDuck';\r\nimport {setSelectedProject} from '../../../ducks/selectedProjectDuck';\r\nimport {\r\n getSelectedFilterData,\r\n getSortingAction,\r\n transformData,\r\n getListKey,\r\n getAllRunningStatus,\r\n getDeleteSelectedModelBodyContent,\r\n} from '../utils/dashboardUtils';\r\nimport {getToastType} from '../../shared/utils/helper';\r\nimport DialogBox from '../../shared/units/Dialog';\r\nimport notify from '../../shared/utils/toast';\r\nimport {mockListService, editMockService} from '../../../ducks/mockListDuck';\r\nimport exportMockService from '../../../ducks/exportApiDuck';\r\nimport {IREST_ROUTES, DEFAULT_PAGINATION} from '../../../constants';\r\nimport {ALERT, OK} from '../../users/constant';\r\n\r\nconst ListItem = styled('li')(({theme}) => ({\r\n margin: theme.spacing(0.5),\r\n listStyle: 'none',\r\n}));\r\n\r\nfunction BottomActionDashboardContainer(props) {\r\n const {\r\n handleFilterAction,\r\n handleApiListSortingAction,\r\n selectedRows,\r\n mockListData,\r\n filterAction,\r\n id,\r\n projectId,\r\n } = props;\r\n const [requestedMethod, setRequestedMethod] = useState([]);\r\n const [apiStatus, setApiStatus] = useState([]);\r\n const [authType, setAuthType] = useState([]);\r\n const [filterData, setFilterData] = useState({});\r\n const [showLoader, setShowLoader] = useState(false);\r\n const [importAPISuccessDialogOpen, setImportAPISuccessDialogOpen] = useState(false);\r\n const [importMockResponse, setImportMockResponse] = useState([]);\r\n const mockParams = useSelector((state) => state?.mockList?.response?.config?.params);\r\n const {projectList} = useSelector((state) => state);\r\n const {deleteMock} = useSelector((state) => state);\r\n const [isBulkDelete, setBulkDelete] = useState(false);\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n\r\n React.useEffect(() => {\r\n setRequestedMethod([]);\r\n setApiStatus([]);\r\n setAuthType([]);\r\n setFilterData([]);\r\n }, [id]);\r\n\r\n useEffect(() => {\r\n setShowLoader(false);\r\n if (isBulkDelete && deleteMock?.response?.status === 202) {\r\n notify(deleteMock?.response?.data?.message, {type: getToastType(200)});\r\n } else {\r\n notify(isBulkDelete && deleteMock?.response?.data?.message, {type: getToastType(403)});\r\n }\r\n setBulkDelete(false);\r\n }, [deleteMock?.response]);\r\n\r\n const handleSelectedFilterMenu = (newFilterDataModel) => {\r\n const {authTypeSelect, apiStatusSelect, requestedMethodSelect} =\r\n getSelectedFilterData(newFilterDataModel);\r\n setAuthType(authTypeSelect);\r\n setApiStatus(apiStatusSelect);\r\n setRequestedMethod(requestedMethodSelect);\r\n setFilterData(newFilterDataModel);\r\n handleFilterAction(newFilterDataModel);\r\n };\r\n\r\n const handleSelectedSortingMenu = (selectedSorting) => {\r\n const sortedActionDAta = getSortingAction(selectedSorting);\r\n handleApiListSortingAction(sortedActionDAta);\r\n };\r\n\r\n // Need to call another mock api as its calling multiple mockAPI individually\r\n const handleDownload = async (event, done) => {\r\n // eslint-disable-next-line no-shadow\r\n const mockList = await mockListService({data: {all: true}});\r\n const promises = await selectedRows?.map(async (rowId) => {\r\n const mockDetails = await editMockService({data: rowId});\r\n return mockDetails;\r\n });\r\n const details = await Promise.all(promises);\r\n details?.forEach((mockValue) => {\r\n const index = mockList?.data?.mockList?.findIndex(\r\n (item) => item?._id === mockValue?.mock?._id\r\n );\r\n const detailedMock = {...mockList?.data?.mockList[index], ...mockValue.mock};\r\n mockList.data.mockList[index] = detailedMock;\r\n });\r\n\r\n if (mockList) {\r\n const transformedData = transformData(mockList?.data);\r\n const jsonString = `data:text/json;chatset=utf-8,${encodeURIComponent(\r\n JSON.stringify(transformedData)\r\n )}`;\r\n const link = document.createElement('a');\r\n link.href = jsonString;\r\n link.download = 'PostmanCollection.json';\r\n link.click();\r\n }\r\n };\r\n\r\n const handleClickToRun = (mockStatus) => {\r\n dispatch({\r\n type: 'MOCK_STATUS',\r\n data: {\r\n mockIds: selectedRows,\r\n mockStatus,\r\n },\r\n });\r\n };\r\n\r\n const handleDeleteRequestMethod = (chipToDelete) => () => {\r\n const activeRequestMethod = requestedMethod?.filter((chip) => chip.key !== chipToDelete.key);\r\n const activeRequestMethodList = getListKey(activeRequestMethod);\r\n const filterModel = {...filterData, allowedMethods: activeRequestMethodList};\r\n setRequestedMethod(activeRequestMethod);\r\n setFilterData(filterModel);\r\n handleFilterAction(filterModel);\r\n };\r\n\r\n const handleDeleteApiStatus = (chipToDelete) => () => {\r\n const activeApiStatus = apiStatus?.filter((chip) => chip.key !== chipToDelete.key);\r\n const activeApiStatusList = getListKey(activeApiStatus);\r\n const filterModel = {...filterData, status: activeApiStatusList};\r\n setApiStatus(activeApiStatus);\r\n setFilterData(filterModel);\r\n handleFilterAction(filterModel);\r\n };\r\n\r\n const handleDeleteAuthType = (chipToDelete) => () => {\r\n const activeAuthType = authType?.filter((chip) => chip.key !== chipToDelete.key);\r\n const activeAuthTypeList = getListKey(activeAuthType);\r\n const filterModel = {...filterData, authenticationType: activeAuthTypeList};\r\n setAuthType(activeAuthType);\r\n setFilterData(filterModel);\r\n handleFilterAction(filterModel);\r\n };\r\n\r\n // Need to check once api completed as it is pending from BE side\r\n const handleDelete = () => {\r\n setShowLoader(true);\r\n setBulkDelete(true);\r\n const {data} = mockListData;\r\n const lastPage = data?.totalCount && Math.ceil(data.totalCount / DEFAULT_PAGINATION);\r\n const currentPage = data?.offset && data.offset / DEFAULT_PAGINATION + 1;\r\n let currentOffset = data?.offset;\r\n if (lastPage === currentPage && data?.mockList?.length === selectedRows?.length) {\r\n currentOffset = data?.offset && data.offset - DEFAULT_PAGINATION;\r\n }\r\n dispatch({\r\n type: 'DELETE_MOCK_BULK',\r\n data: {\r\n id: selectedRows,\r\n data: {...mockParams, offset: currentOffset},\r\n },\r\n });\r\n };\r\n\r\n // export functionality\r\n const transformApiData = (data) => {\r\n const apiRes = {};\r\n for (const key of data) {\r\n apiRes[key.method] = JSON.parse(key.successResponse);\r\n }\r\n return apiRes;\r\n };\r\n\r\n const transformExportData = (dataObj) => {\r\n const mockArray = dataObj.mockList.map((data) => ({\r\n status: data.status,\r\n projectName: data.projectName,\r\n serviceResponseType: data.serviceResponseType,\r\n referenceId: data.referenceId,\r\n path: data.path,\r\n endpoint: data.endpointRequestPath,\r\n endpointRequestPath: data.endpointRequestPath,\r\n statusCode: data.statusCode,\r\n isDelay: data.isDelay === null ? false : data.isDelay,\r\n delaySeconds: data.delaySeconds,\r\n headers: JSON.parse(data.headers),\r\n params: JSON.parse(data.params),\r\n contentEncoding: data.contentEncoding,\r\n contentType: data.contentType,\r\n mockName: data.mockName,\r\n mockStatus: data.mockStatus,\r\n isDynamicResponse: data.isDynamicResponse === null ? false : data.isDynamicResponse,\r\n isSchema: data.isSchema === null ? false : data.isSchema,\r\n dynamicResponseKey: data.dynamicResponseKey,\r\n dynamicResponseRandom:\r\n data.dynamicResponseRandom === null ? false : data.dynamicResponseRandom,\r\n dynamicResponseSpecific:\r\n data.dynamicResponseSpecific === null ? false : data.dynamicResponseSpecific,\r\n dynamicResponseSpecificKeyValue: data.dynamicResponseSpecificKeyValue,\r\n isDynamicImportCount: data.isDynamicImportCount === null ? false : data.isDynamicImportCount,\r\n dynamicImportCount: data.dynamicImportCount,\r\n isDynamicImportSize: data.isDynamicImportSize === null ? false : data.isDynamicImportSize,\r\n dynamicImportSize: data.dynamicImportSize,\r\n isBulkDataCount: data.isBulkDataCount === null ? false : data.isBulkDataCount,\r\n bulkDataCount: data.bulkDataCount,\r\n isBulkDataSize: data.isBulkDataSize === null ? false : data.isBulkDataSize,\r\n bulkDataSize: data.bulkDataSize,\r\n allowedMethods: data.allowedMethods,\r\n authenticationType: data.authenticationType,\r\n userId: data.userId,\r\n projectId: data.projectId,\r\n serviceResponseBody:\r\n data.ServiceResponses.length > 0 ? data.ServiceResponses[0].serviceResponseBody : [],\r\n ApiResponseSchemaTypes: transformApiData(data.ApiResponseSchemaTypes),\r\n }));\r\n\r\n return mockArray;\r\n };\r\n\r\n const getFileName = () => {\r\n const newDate = new Date();\r\n return `ExportMock-${newDate.toLocaleString()}.json`;\r\n };\r\n\r\n const reloadMocks = () => {\r\n dispatch({\r\n type: 'MOCK_LIST',\r\n data: {\r\n projectId,\r\n limit: DEFAULT_PAGINATION,\r\n offset: 0,\r\n },\r\n });\r\n dispatch({type: 'PROJECT_LIST'});\r\n };\r\n\r\n const handleExportMock = async (event, done) => {\r\n const mockIds = selectedRows;\r\n const mockDetails = await exportMockService({data: {mockIds}});\r\n if (mockDetails) {\r\n const transformedExportData = transformExportData(mockDetails);\r\n const jsonString = `data:text/json;chatset=utf-8,${encodeURIComponent(\r\n JSON.stringify(transformedExportData)\r\n )}`;\r\n const link = document.createElement('a');\r\n link.href = jsonString;\r\n link.download = getFileName();\r\n link.click();\r\n notify('Data exported successfully!', {type: getToastType(200)});\r\n }\r\n };\r\n\r\n const importMock = async (data) => {\r\n setShowLoader(true);\r\n const response = await importMockService({data}, projectId);\r\n if (response) {\r\n if (response.status === 201) {\r\n if (response.data?.importedMockList) {\r\n setImportMockResponse(response.data);\r\n setImportAPISuccessDialogOpen(true);\r\n }\r\n setShowLoader(false);\r\n } else {\r\n notify(response.data?.message, {type: getToastType(response?.status)});\r\n setShowLoader(false);\r\n }\r\n reloadMocks();\r\n }\r\n };\r\n\r\n const uploadFileForJSON = async (file) => {\r\n const formData = new FormData();\r\n formData.set('file', file);\r\n importMock(formData);\r\n };\r\n\r\n const {key: mockStatusData, isAllRunningStateSame} =\r\n (selectedRows?.length && getAllRunningStatus(mockListData, selectedRows)) || false;\r\n\r\n const handleCreateMock = () => {\r\n const pathnames = location?.pathname.split('/').filter((x) => x);\r\n if (pathnames[2]) {\r\n dispatch(setSelectedProject({projectId: pathnames[2]}));\r\n } else {\r\n dispatch(setSelectedProject({projectId: null}));\r\n }\r\n navigate(IREST_ROUTES.CREATE_MOCK, {replace: true});\r\n };\r\n\r\n const closeImportAPIModal = () => {\r\n setImportAPISuccessDialogOpen(false);\r\n setImportMockResponse([]);\r\n };\r\n\r\n return (\r\n <div className=\"min-h-[42px] px-4 mt-1.5 flex items-center bg-white bg-clip-padding bg-no-repeat bg-origin-padding opacity-100\">\r\n <div className=\"contents\">\r\n {projectList?.response?.projectList?.length ? (\r\n <Button\r\n variant=\"contained\"\r\n size=\"small\"\r\n className=\"min-w-fit rounded\"\r\n startIcon={<AddIcon />}\r\n onClick={handleCreateMock}\r\n >\r\n {ATTRS.NEW_API}\r\n </Button>\r\n ) : (\r\n <div />\r\n )}\r\n {projectId && (\r\n <Button\r\n variant=\"contained\"\r\n size=\"small\"\r\n className=\"min-w-fit ml-1.5 rounded\"\r\n startIcon={<FileUploadIcon />}\r\n component=\"label\"\r\n >\r\n {ATTRS.IMPORT_API}\r\n <input\r\n name=\"fileInput\"\r\n id=\"fileInput\"\r\n type=\"file\"\r\n hidden\r\n accept=\".json\"\r\n onChange={(event) => {\r\n uploadFileForJSON(event.currentTarget.files[0]);\r\n }}\r\n onClick={(event) => {\r\n event.target.value = null;\r\n }}\r\n />\r\n </Button>\r\n )}\r\n {selectedRows?.length > 0 && (\r\n <Button\r\n variant=\"contained\"\r\n size=\"small\"\r\n className=\"min-w-fit ml-1.5 rounded\"\r\n startIcon={<FileDownLoadIcon />}\r\n onClick={handleExportMock}\r\n >\r\n {ATTRS.EXPORT_API}\r\n </Button>\r\n )}\r\n {selectedRows?.length > 0 && (\r\n <>\r\n <DownloadContainer\r\n onClick={handleDownload}\r\n label={ATTRS.EXPORT_AS_POSTMAN_COLLECTION}\r\n />\r\n\r\n <ToggleContainer\r\n data={mockStatusData?.data}\r\n onToggle={handleClickToRun}\r\n label={ATTRS.CLICK_TO_RUN}\r\n classes=\"pb-2.5\"\r\n disabled={!isAllRunningStateSame}\r\n />\r\n\r\n <DeleteContainer\r\n onDelete={handleDelete}\r\n content={getDeleteSelectedModelBodyContent()}\r\n />\r\n </>\r\n )}\r\n </div>\r\n\r\n <div className=\"px-4 inline-flex flex-wrap items-center ml-auto mr-1\">\r\n {requestedMethod?.length > 0 && (\r\n <div className=\"flex pl-3 items-center\">\r\n <Typography component=\"span\" sx={{flexGrow: 1, color: AUTH_TYPE_COLOR_CODE}}>\r\n {ATTRS.REQUEST_METHOD}\r\n </Typography>\r\n {requestedMethod.map((data) => (\r\n <ListItem key={data.key}>\r\n <Chip label={data.label} onDelete={handleDeleteRequestMethod(data)} />\r\n </ListItem>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {apiStatus?.length > 0 && (\r\n <div className=\"flex pl-3 items-center\">\r\n <Typography component=\"span\" sx={{flexGrow: 1, color: AUTH_TYPE_COLOR_CODE}}>\r\n {ATTRS.API_SPECIFIC}\r\n </Typography>\r\n {apiStatus.map((data) => (\r\n <ListItem key={data.key}>\r\n <Chip label={data.label} onDelete={handleDeleteApiStatus(data)} />\r\n </ListItem>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {authType?.length > 0 && (\r\n <div className=\"flex pl-3 items-center\">\r\n <Typography component=\"span\" sx={{flexGrow: 1, color: AUTH_TYPE_COLOR_CODE}}>\r\n {ATTRS.AUTH_TYPE}\r\n </Typography>\r\n {authType.map((data) => (\r\n <ListItem key={data.key}>\r\n <Chip label={data.label} onDelete={handleDeleteAuthType(data)} />\r\n </ListItem>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n\r\n <div className=\"pl-1\">\r\n <FilterContainer\r\n filterDataValues={filterAction}\r\n handleSelectedFilterMenu={handleSelectedFilterMenu}\r\n />\r\n </div>\r\n\r\n <div className=\"pl-1\">\r\n <SortingContainer handleSelectedFilterMenu={handleSelectedSortingMenu} />\r\n </div>\r\n <DialogBox\r\n open={importAPISuccessDialogOpen}\r\n primaryBtnLabel={OK}\r\n primaryBtnHandler={closeImportAPIModal}\r\n bodyContent={\r\n <ImportedAPIStatusContainer\r\n title={importMockResponse.message || ''}\r\n data={importMockResponse.importedMockList || []}\r\n />\r\n }\r\n dialogTitle={ALERT}\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n showCloseIcon\r\n onClose={closeImportAPIModal}\r\n primaryBtnId=\"primaryBtn\"\r\n />\r\n <Backdrop open={showLoader} className=\"loader-backdrop\">\r\n <CircularProgress />\r\n </Backdrop>\r\n </div>\r\n );\r\n}\r\n\r\nBottomActionDashboardContainer.displayName = 'BottomActionDashboardContainer';\r\nBottomActionDashboardContainer.propTypes = {};\r\nBottomActionDashboardContainer.defaultProps = {};\r\n\r\nexport default BottomActionDashboardContainer;\r\n","import React from 'react';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport {Skeleton} from '@mui/material';\r\n\r\nfunction TableLoader(props) {\r\n const {rowsNum = 10, colsNum = 3} = props;\r\n return (\r\n <>\r\n {[...Array(rowsNum)].map((row, index) => (\r\n <TableRow key={index}>\r\n {[...Array(colsNum)].map((col, ind) => (\r\n <TableCell component=\"th\" scope=\"row\" key={`cellSkeleton${ind}`}>\r\n <Skeleton animation=\"wave\" variant=\"text\" />\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n ))}\r\n </>\r\n );\r\n}\r\n\r\nexport default TableLoader;\r\n","import React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport PlayArrowIcon from '@mui/icons-material/PlayArrow';\r\nimport {ACTIONS} from '../../../constants/dashboard';\r\nimport {addTooltipWrapper} from '../utils/dashboardUtils';\r\n\r\nexport default function PreviewContainer(props) {\r\n const {onPreview} = props;\r\n\r\n const handlePreview = () => {\r\n onPreview();\r\n };\r\n return (\r\n <Box className=\"mx-3\">\r\n {addTooltipWrapper(\r\n <PlayArrowIcon\r\n color=\"primary\"\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={handlePreview}\r\n />,\r\n ACTIONS.PREVIEW\r\n )}\r\n </Box>\r\n );\r\n}\r\n","import React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport {useNavigate} from 'react-router-dom';\r\nimport {ACTIONS} from '../../../constants/dashboard';\r\nimport {addTooltipWrapper} from '../utils/dashboardUtils';\r\n\r\nexport default function EditContainer({data}) {\r\n const navigate = useNavigate();\r\n const handleNavigate = (url) => {\r\n navigate(url, {replace: true});\r\n };\r\n return (\r\n <Box className=\"mx-3\">\r\n {addTooltipWrapper(\r\n <EditIcon\r\n color=\"primary\"\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={() => {\r\n handleNavigate(`/api/edit/${data?.apiName?.apiId}`);\r\n }}\r\n />,\r\n ACTIONS.EDIT\r\n )}\r\n </Box>\r\n );\r\n}\r\n","import React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport LinkIcon from '@mui/icons-material/Link';\r\nimport {ACTIONS} from '../../../constants/dashboard';\r\nimport {addTooltipWrapper} from '../utils/dashboardUtils';\r\n\r\nexport default function CopyUrlContainer(props) {\r\n const {onCopy, data, isUrlCopied = false} = props;\r\n\r\n const handleCopyEndpoint = () => {\r\n onCopy(`${data?.endPoint?.value}?iRest-auth-token=${data?.apiName?.tokenValue}`);\r\n };\r\n\r\n return (\r\n <Box className=\"mx-3\">\r\n {addTooltipWrapper(\r\n <LinkIcon\r\n color=\"primary\"\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={handleCopyEndpoint}\r\n />,\r\n `${isUrlCopied ? ACTIONS.COPIED : ACTIONS.COPY_URL}`\r\n )}\r\n </Box>\r\n );\r\n}\r\n","/* eslint-disable import/no-extraneous-dependencies */\r\nimport React, {useState} from 'react';\r\nimport FormGroup from '@mui/material/FormGroup';\r\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\r\nimport SyncIcon from '@mui/icons-material/Sync';\r\nimport TextField from '@mui/material/TextField';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport Radio from '@mui/material/Radio';\r\nimport RadioGroup from '@mui/material/RadioGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport FormLabel from '@mui/material/FormLabel';\r\nimport ClipboardJS from 'clipboard';\r\nimport {ATTRS} from '../../../constants/dashboard';\r\nimport generateToken from './generateUuidToken';\r\n\r\nexport default function MockAuthenticationForm(props) {\r\n const {tokenData, handleMockAuthData, onRefreshToken, setAuthenticationSpecific} = props;\r\n\r\n const [selectedRadio, setSelectedRadio] = useState(tokenData?.authenticationType);\r\n\r\n const handleFieldChange = (value) => {\r\n handleMockAuthData(value);\r\n };\r\n\r\n const handleChange = (value) => {\r\n setAuthenticationSpecific(value);\r\n setSelectedRadio(value);\r\n };\r\n\r\n const handleRefreshToken = () => {\r\n onRefreshToken(generateToken());\r\n };\r\n\r\n return (\r\n <div className=\"w-{585}\">\r\n <FormControl fullWidth>\r\n <FormLabel id=\"authentication\">{ATTRS.AUTHENTICATION}</FormLabel>\r\n <RadioGroup\r\n row\r\n aria-labelledby=\"demo-row-radio-buttons-group-label\"\r\n name=\"row-radio-buttons-group\"\r\n >\r\n <FormControlLabel\r\n value=\"projectSpecific\"\r\n control={\r\n <Radio\r\n onChange={() => handleChange(ATTRS.PROJECT_SPECIFIC_TEXT)}\r\n checked={selectedRadio === ATTRS.PROJECT_SPECIFIC_TEXT}\r\n />\r\n }\r\n label={ATTRS.PROJECT_SPECIFIC}\r\n />\r\n <FormControlLabel\r\n value=\"apiSpecific\"\r\n control={\r\n <Radio\r\n onChange={() => handleChange(ATTRS.API_SPECIFIC_TEXT)}\r\n checked={selectedRadio === ATTRS.API_SPECIFIC_TEXT}\r\n />\r\n }\r\n label={ATTRS.API_SPECIFIC}\r\n />\r\n <FormControlLabel\r\n value=\"off\"\r\n control={\r\n <Radio\r\n onChange={() => handleChange(ATTRS.OFF_TEXT)}\r\n checked={selectedRadio === ATTRS.OFF_TEXT}\r\n />\r\n }\r\n label={ATTRS.OFF}\r\n />\r\n </RadioGroup>\r\n </FormControl>\r\n\r\n {selectedRadio === ATTRS.API_SPECIFIC_TEXT && (\r\n <div className=\"mt-9\">\r\n <FormControl fullWidth>\r\n <FormLabel id=\"token\">{ATTRS.TOKEN}</FormLabel>\r\n <FormGroup classes=\"inline-block\" row>\r\n <TextField\r\n id=\"token-number\"\r\n data-testid=\"token-number\"\r\n className=\"mb-2.5\"\r\n defaultValue=\"\"\r\n value={tokenData?.token}\r\n onChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'token');\r\n }}\r\n />\r\n\r\n <Tooltip title={ATTRS.COPY_TOKEN}>\r\n <IconButton\r\n aria-label={ATTRS.COPY_TOKEN}\r\n data-clipboard-target=\"#token-number\"\r\n data-clipboard-action=\"copy\"\r\n id=\"mock-token\"\r\n >\r\n <ContentCopyIcon\r\n onClick={() => {\r\n // eslint-disable-next-line no-unused-vars\r\n const clipboardValue = new ClipboardJS('#mock-token');\r\n }}\r\n />\r\n </IconButton>\r\n </Tooltip>\r\n\r\n <Tooltip title={ATTRS.REFRESH_TOKEN}>\r\n <IconButton aria-label={ATTRS.REFRESH_TOKEN}>\r\n <SyncIcon onClick={handleRefreshToken} />\r\n </IconButton>\r\n </Tooltip>\r\n </FormGroup>\r\n </FormControl>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n","import React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport LockIcon from '@mui/icons-material/Lock';\r\nimport {ATTRS} from '../../../constants/dashboard';\r\nimport DialogBox from '../../shared/units/Dialog';\r\nimport MockAuthenticationForm from '../common/MockAuthenticationForm';\r\nimport {addTooltipWrapper} from '../utils/dashboardUtils';\r\n\r\nexport default function AuthenticateContainer(props) {\r\n const {\r\n data,\r\n onSaveAuthenticate,\r\n onFetchAuthenticationData,\r\n onCopy,\r\n onRefresh,\r\n onSetMockAuthData,\r\n authenticationSpecific,\r\n setAuthenticationSpecific,\r\n isShowAuthenticatePopup,\r\n setIsShowAuthenticatePopup,\r\n } = props;\r\n\r\n const tokenData = {\r\n token: data?.apiName?.tokenValue,\r\n userId: data?.apiName?.userId,\r\n authenticationType: data?.apiName?.authenticationType,\r\n };\r\n\r\n const handleShowAuthenticatePopup = () => {\r\n setIsShowAuthenticatePopup(true);\r\n onFetchAuthenticationData(data);\r\n };\r\n\r\n const handleCloseAuthenticatePopup = () => {\r\n setIsShowAuthenticatePopup(false);\r\n };\r\n\r\n const handleAuthenticateSave = () => {\r\n onSaveAuthenticate(tokenData?.token, data);\r\n };\r\n\r\n const handleMockAuthData = (tokenValue) => {\r\n onSetMockAuthData(tokenValue);\r\n };\r\n\r\n const handleCopyToken = () => {\r\n onCopy(tokenData?.token);\r\n };\r\n\r\n return (\r\n <>\r\n <Box className=\"mx-3\">\r\n {addTooltipWrapper(\r\n <LockIcon\r\n color=\"primary\"\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={handleShowAuthenticatePopup}\r\n />,\r\n ATTRS.AUTHENTICATE\r\n )}\r\n </Box>\r\n\r\n <DialogBox\r\n open={isShowAuthenticatePopup}\r\n secondaryBtnLabel={ATTRS.CANCEL}\r\n secondaryBtnHandler={handleCloseAuthenticatePopup}\r\n primaryBtnLabel={ATTRS.SAVE}\r\n primaryBtnHandler={handleAuthenticateSave}\r\n bodyContent={\r\n <MockAuthenticationForm\r\n tokenData={tokenData}\r\n handleMockAuthData={handleMockAuthData}\r\n onCopyToken={handleCopyToken}\r\n onRefreshToken={onRefresh}\r\n authenticationSpecific={authenticationSpecific}\r\n setAuthenticationSpecific={setAuthenticationSpecific}\r\n />\r\n }\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n dialogTitle={ATTRS.MOCK_AUTHENTICATION}\r\n showCloseIcon={false}\r\n primaryBtnId=\"savePrimaryBtn\"\r\n secondaryBtnId=\"cancelSecondaryBtn\"\r\n />\r\n </>\r\n );\r\n}\r\n","import React, {useState} from 'react';\r\nimport PreviewContainer from '../actions/PreviewContainer';\r\nimport EditContainer from '../actions/EditContainer';\r\nimport CopyUrlContainer from '../actions/CopyUrlContainer';\r\nimport AuthenticateContainer from '../actions/AuthenticateContainer';\r\nimport DeleteContainer from '../actions/DeleteContainer';\r\nimport ToggleContainer from '../actions/ToggleContainer';\r\nimport {ATTRS} from '../../../constants/dashboard';\r\nimport {getAuthType} from '../utils/dashboardUtils';\r\nimport {copyToClipboard} from '../../shared/utils/helper';\r\n\r\nfunction MockOverlayActions(props) {\r\n const {\r\n data,\r\n onDelete,\r\n onToggle,\r\n onSaveAuthenticate,\r\n authenticationType,\r\n setAuthenticationType,\r\n isShowAuthenticatePopup,\r\n setIsShowAuthenticatePopup,\r\n onPreviewClick,\r\n } = props;\r\n const [authTokenData, setAuthTokenData] = useState({...data});\r\n const [isUrlCopied, setIsUrlCopied] = useState(false);\r\n const onCopyData = (value) => {\r\n copyToClipboard(value);\r\n setIsUrlCopied(true);\r\n };\r\n\r\n /** Authenticate starts */\r\n const handleFetchAuthenticationData = (rowData) => {\r\n const authType = getAuthType(rowData);\r\n setAuthenticationType(authType);\r\n };\r\n\r\n const handleMockAuthData = (tokenVal) => {\r\n const authTokenDataModel = {...data, apiName: {...data?.apiName, tokenValue: tokenVal}};\r\n setAuthTokenData(authTokenDataModel);\r\n };\r\n\r\n const handleSaveAuthenticate = (value, rowData) => {\r\n onSaveAuthenticate(value, rowData);\r\n };\r\n\r\n const handleRefreshToken = (tokenVal) => {\r\n data.apiName.tokenValue = tokenVal;\r\n setAuthTokenData({...data});\r\n };\r\n /** Authenticate ends */\r\n\r\n /** Toggle starts */\r\n const handleToggle = (toggleStatus) => {\r\n onToggle(data, toggleStatus);\r\n };\r\n /** Toggle ends */\r\n return (\r\n <div className=\"flex w-full\">\r\n <PreviewContainer\r\n onPreview={() => {\r\n onPreviewClick(data);\r\n }}\r\n />\r\n\r\n <EditContainer data={data} />\r\n\r\n <CopyUrlContainer data={data} onCopy={onCopyData} isUrlCopied={isUrlCopied} />\r\n\r\n <AuthenticateContainer\r\n data={authTokenData}\r\n onCopy={onCopyData}\r\n onRefresh={handleRefreshToken}\r\n onSaveAuthenticate={handleSaveAuthenticate}\r\n onSetMockAuthData={handleMockAuthData}\r\n onFetchAuthenticationData={handleFetchAuthenticationData}\r\n authenticationSpecific={authenticationType}\r\n setAuthenticationSpecific={setAuthenticationType}\r\n isShowAuthenticatePopup={isShowAuthenticatePopup}\r\n setIsShowAuthenticatePopup={setIsShowAuthenticatePopup}\r\n />\r\n\r\n <DeleteContainer data={data} onDelete={onDelete} classes=\"text-base mt-1.5\" />\r\n\r\n <ToggleContainer\r\n data={data}\r\n onToggle={handleToggle}\r\n label={ATTRS.ENABLE_OR_DISABLE}\r\n isMockUpdated={data?.apiName?.mockStatus}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default MockOverlayActions;\r\n","import React from 'react';\r\nimport 'rapidoc';\r\n\r\nfunction RapiDoc({\r\n style,\r\n data,\r\n renderStyle = 'read',\r\n showHeader = true,\r\n showInfo = true,\r\n allowAuthentication = true,\r\n allowAdvancedSearch = true,\r\n allowSpecFileLoad = true,\r\n allowSearch = true,\r\n usePathInNavBar = true,\r\n keyName,\r\n keyValue,\r\n keyLocation,\r\n}) {\r\n return (\r\n <rapi-doc\r\n data-testid=\"rapidocflow\"\r\n style={style || {height: '100vh', width: '100%'}}\r\n ref={data}\r\n theme=\"light\"\r\n header-color=\"#004F9F\"\r\n primary-color=\"#004F9F\"\r\n render-style={renderStyle || 'read'}\r\n show-header={showHeader || true}\r\n show-info={showInfo || true}\r\n allow-authentication={allowAuthentication || true}\r\n allow-advanced-search={allowAdvancedSearch || true}\r\n allow-spec-file-load={allowSpecFileLoad || true}\r\n allow-search={allowSearch || true}\r\n use-path-in-nav-bar={usePathInNavBar || false}\r\n show-method-in-nav-bar=\"as-colored-text\"\r\n api-key-name={keyName}\r\n api-key-value={keyValue}\r\n api-key-location={keyLocation || ''}\r\n />\r\n );\r\n}\r\n\r\nexport default RapiDoc;\r\n","import React, {useEffect, useRef} from 'react';\r\nimport {useSelector, connect, useDispatch} from 'react-redux';\r\nimport RapiDoc from '../shared/units/RapiDoc';\r\nimport '../shared/css/rapidoc.css';\r\nimport {DEFAULT_PAGINATION} from '../../constants';\r\n\r\nfunction MocklistWrapper() {\r\n const method = {\r\n get: [\r\n {\r\n in: 'query',\r\n name: 'irest-record-id',\r\n description: ' irest-record-id',\r\n required: false,\r\n schema: {\r\n type: 'object',\r\n required: ['irest-record-id'],\r\n properties: {\r\n 'irest-record-id': {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n post: [\r\n {\r\n in: 'body',\r\n name: 'body',\r\n description: 'Post api call',\r\n required: true,\r\n schema: {\r\n type: 'object',\r\n required: ['Body'],\r\n properties: {\r\n Body: {\r\n type: 'object',\r\n example: {},\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n patch: [\r\n {\r\n in: 'query',\r\n name: 'irest-record-id',\r\n description: ' irest-record-id',\r\n required: true,\r\n schema: {\r\n type: 'object',\r\n required: ['irest-record-id'],\r\n properties: {\r\n 'irest-record-id': {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n },\r\n },\r\n },\r\n {\r\n in: 'body',\r\n name: 'body',\r\n description: 'Item id that needs to be updated and its name',\r\n required: true,\r\n schema: {\r\n type: 'object',\r\n required: ['irest-record-id'],\r\n properties: {\r\n Body: {\r\n type: 'object',\r\n example: {},\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n put: [\r\n {\r\n in: 'query',\r\n name: 'irest-record-id',\r\n description: ' irest-record-id',\r\n required: true,\r\n schema: {\r\n type: 'object',\r\n required: ['irest-record-id'],\r\n properties: {\r\n 'irest-record-id': {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n },\r\n },\r\n },\r\n {\r\n in: 'body',\r\n name: 'body',\r\n description: 'Item id that needs to be updated and its name',\r\n required: true,\r\n schema: {\r\n type: 'object',\r\n required: ['irest-record-id'],\r\n properties: {\r\n Body: {\r\n type: 'object',\r\n example: {},\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n delete: [\r\n {\r\n in: 'query',\r\n name: 'irest-record-id',\r\n description: ' irest-record-id',\r\n required: true,\r\n schema: {\r\n type: 'object',\r\n required: ['irest-record-id'],\r\n properties: {\r\n 'irest-record-id': {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n },\r\n },\r\n },\r\n ],\r\n };\r\n const data = useRef(null);\r\n const result = {};\r\n const mockListResponse = useSelector((state) => state?.mockList?.response);\r\n const dispatch = useDispatch();\r\n const mocklist = mockListResponse?.data?.mockList;\r\n mocklist?.forEach((item) => {\r\n const {statusCode} = item;\r\n const staticFields = {\r\n apitype: item.serviceResponseType,\r\n endpoint: item.endpoint.split('/').pop(),\r\n tags: [item.projectName],\r\n description: 'About iRest',\r\n operationId: '',\r\n consumes: ['application/json'],\r\n produces: ['application/json'],\r\n responses: {\r\n [statusCode]: {\r\n description: statusCode === '200' ? 'successful operation' : '',\r\n },\r\n },\r\n };\r\n const host = window.location.href.split('/dashboard');\r\n const dataurl = item.endpoint.split(host[0]);\r\n const methods = {};\r\n item?.allowedMethods?.forEach((apiMethod) => {\r\n methods[apiMethod.toLowerCase()] = {\r\n ...staticFields,\r\n summary: staticFields.endpoint,\r\n parameters:\r\n staticFields.apitype.toLowerCase() === 'default' ? '' : method[apiMethod.toLowerCase()],\r\n };\r\n });\r\n result[dataurl[1]] = {\r\n ...methods,\r\n };\r\n });\r\n\r\n const spec = () => {\r\n const strSpec = {\r\n swagger: '2.0',\r\n info: {\r\n description: '',\r\n version: '1.0.6',\r\n title: 'Swagger iRest',\r\n termsOfService: 'http://swagger.io/terms/',\r\n contact: {\r\n email: 'iRest@impetus.com',\r\n },\r\n license: {\r\n name: 'Apache 2.0',\r\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html',\r\n },\r\n },\r\n host: 'iRest.swagger.io',\r\n basePath: '/v2',\r\n tags: [\r\n {\r\n name: 'iRest',\r\n description: 'Everything about iRest',\r\n externalDocs: {\r\n description: 'Find out more',\r\n url: 'http://swagger.io',\r\n },\r\n },\r\n ],\r\n\r\n paths: {...result},\r\n securityDefinitions: {\r\n api_key: {\r\n type: 'apiKey',\r\n name: 'api_key',\r\n in: 'header',\r\n },\r\n iRest_auth: {\r\n type: 'oauth2',\r\n authorizationUrl: 'https://iRest.swagger.io/oauth/authorize',\r\n flow: 'implicit',\r\n scopes: {\r\n 'read:iRest': 'read your iRest',\r\n 'write:iRest': 'modify iRest in your account',\r\n },\r\n },\r\n },\r\n definitions: {\r\n Category: {\r\n type: 'object',\r\n properties: {\r\n id: {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n name: {\r\n type: 'string',\r\n },\r\n },\r\n xml: {\r\n name: 'Category',\r\n },\r\n },\r\n iRest: {\r\n type: 'object',\r\n required: ['name'],\r\n properties: {\r\n id: {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n category: {\r\n $ref: '#/definitions/Category',\r\n },\r\n name: {\r\n type: 'string',\r\n example: 'iRest',\r\n },\r\n tags: {\r\n type: 'array',\r\n xml: {\r\n wrapped: true,\r\n },\r\n items: {\r\n xml: {\r\n name: 'tag',\r\n },\r\n $ref: '#/definitions/Tag',\r\n },\r\n },\r\n },\r\n xml: {\r\n name: 'iRest',\r\n },\r\n },\r\n Tag: {\r\n type: 'object',\r\n properties: {\r\n id: {\r\n type: 'integer',\r\n format: 'int64',\r\n },\r\n name: {\r\n type: 'string',\r\n },\r\n },\r\n xml: {\r\n name: 'Tag',\r\n },\r\n },\r\n },\r\n externalDocs: {\r\n description: 'Find out more about Swagger',\r\n url: 'http://swagger.io',\r\n },\r\n };\r\n data.current.loadSpec(strSpec);\r\n };\r\n\r\n const projectId = window?.location?.pathname?.split('/')[3];\r\n\r\n useEffect(() => {\r\n spec();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (projectId) {\r\n dispatch({\r\n type: 'MOCK_LIST',\r\n data: {\r\n projectId,\r\n limit: DEFAULT_PAGINATION,\r\n },\r\n });\r\n }\r\n }, [projectId]);\r\n\r\n return (\r\n <div>\r\n <RapiDoc\r\n renderStyle=\"focused\"\r\n data={data}\r\n showHeader=\"false\"\r\n showInfo=\"false\"\r\n allowAuthentication=\"false\"\r\n allowAdvancedSearch=\"false\"\r\n allowSpecFileLoad=\"false\"\r\n usePathInNavBar=\"true\"\r\n keyName=\"rapidDoc\"\r\n keyValue=\"true\"\r\n keyLocation=\"query\"\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default connect(null)(MocklistWrapper);\r\n","import React, {useState, useEffect, useRef} from 'react';\r\nimport RapiDoc from '../shared/units/RapiDoc';\r\nimport '../shared/css/rapidoc.css';\r\n\r\nfunction PreviewWrapper(props) {\r\n const dataRef = useRef(null);\r\n const [result, setResult] = useState({});\r\n\r\n const spec = () => {\r\n const strSpec = {\r\n swagger: '2.0',\r\n info: {\r\n description: '',\r\n version: '',\r\n title: '',\r\n termsOfService: '',\r\n contact: {\r\n email: '',\r\n },\r\n },\r\n host: 'iRest.swagger.io',\r\n basePath: '/v2',\r\n tags: [\r\n {\r\n name: 'iRest',\r\n description: 'Everything about iRest',\r\n externalDocs: {\r\n description: 'Find out more',\r\n url: 'http://swagger.io',\r\n },\r\n },\r\n ],\r\n paths: {...result},\r\n securityDefinitions: {\r\n api_key: {\r\n type: 'apiKey',\r\n name: 'api_key',\r\n in: 'header',\r\n },\r\n iRest_auth: {\r\n type: 'oauth2',\r\n authorizationUrl: 'https://iRest.swagger.io/oauth/authorize',\r\n flow: 'implicit',\r\n scopes: {\r\n 'read:iRest': 'read your iRest',\r\n 'write:iRest': 'modify iRest in your account',\r\n },\r\n },\r\n },\r\n definitions: {},\r\n externalDocs: {\r\n description: 'Find out more about Swagger',\r\n url: 'http://swagger.io',\r\n },\r\n };\r\n dataRef.current.loadSpec(strSpec);\r\n };\r\n\r\n useEffect(() => {\r\n spec();\r\n }, [result]);\r\n\r\n useEffect(() => {\r\n if (props?.mock?.mockUrl) {\r\n const {EXPRESS_REST_BASE_URL} = process.env;\r\n const newApi = `${EXPRESS_REST_BASE_URL}/mockPreview?tempId=${props?.mock?.id}`;\r\n const method = JSON.parse(props.method)[0].toLowerCase();\r\n const postMethod = JSON.parse(props.method)[1]?.toLowerCase();\r\n const statusCode = props?.statusCode;\r\n setResult({\r\n [newApi]: {\r\n [method]: {\r\n summary: '',\r\n description: props?.mock?.mockName,\r\n operationId: '',\r\n consumes: ['multipart/form-data'],\r\n produces: ['application/json'],\r\n parameters: [],\r\n responses: {\r\n [statusCode]: {\r\n description: statusCode === '200' ? 'successful operation' : '',\r\n schema: {\r\n $ref: '#/definitions/iRest',\r\n },\r\n },\r\n },\r\n },\r\n [postMethod]: {\r\n summary: '',\r\n description: props?.mock?.mockName,\r\n operationId: '',\r\n consumes: ['multipart/form-data'],\r\n produces: ['application/json'],\r\n parameters: [],\r\n responses: {\r\n [statusCode]: {\r\n description: statusCode === '200' ? 'successful operation' : '',\r\n schema: {\r\n $ref: '#/definitions/iRest',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n });\r\n }\r\n }, [props.mock]);\r\n\r\n return (\r\n <div className=\"preview-wrapper\">\r\n <RapiDoc\r\n style={{height: '100vh', width: 'inherit', marginLeft: '-20px', marginTop: '-20px'}}\r\n data={dataRef}\r\n renderStyle=\"focused\"\r\n showHeader=\"false\"\r\n showInfo=\"false\"\r\n allowAuthentication=\"false\"\r\n allowAdvancedSearch=\"false\"\r\n allowSpecFileLoad=\"false\"\r\n allowSearch=\"false\"\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default PreviewWrapper;\r\n","import React, {useEffect} from 'react';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport MocklistWrapper from './MocklistWrapper';\r\nimport PreviewWrapper from './PreviewWrapper';\r\n\r\nfunction Preview(props) {\r\n const [data, setData] = React.useState({});\r\n const {setIsPreviewModalOpen, previewOverlay = false} = props;\r\n\r\n useEffect(() => {\r\n if (props?.mockResponse) {\r\n setData(props);\r\n }\r\n }, [props]);\r\n\r\n const handleClose = () => {\r\n setIsPreviewModalOpen(false);\r\n };\r\n\r\n window.location.hash = '';\r\n\r\n return (\r\n <div className={` ${!previewOverlay ? 'pl-[19px] pt-[21px]' : ''} `}>\r\n <div className=\"rapidoc-modal\">\r\n {!previewOverlay ? (\r\n <PreviewWrapper\r\n mock={data}\r\n method={props?.allowedMethods?.length > 0 ? props.allowedMethods : ['GET']}\r\n statusCode={props?.statusCode}\r\n />\r\n ) : (\r\n <MocklistWrapper />\r\n )}\r\n </div>\r\n <div\r\n className={`absolute flex justify-end right-[10px] ${\r\n !previewOverlay ? 'top-[80px]' : 'top-[8px]'\r\n }`}\r\n >\r\n <IconButton aria-label=\"delete\">\r\n <CloseIcon onClick={handleClose} />\r\n </IconButton>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Preview;\r\n","import React from 'react';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport Slide from '@mui/material/Slide';\r\nimport Preview from '../../mockDetail/preview';\r\n\r\nconst Transition = React.forwardRef((props, ref) => <Slide direction=\"up\" ref={ref} {...props} />);\r\n\r\nfunction PreviewOverlay({setIsPreviewModalOpen}) {\r\n return (\r\n <Dialog\r\n fullScreen\r\n open\r\n onClose={() => setIsPreviewModalOpen(false)}\r\n TransitionComponent={Transition}\r\n >\r\n <Preview setIsPreviewModalOpen={setIsPreviewModalOpen} previewOverlay />\r\n </Dialog>\r\n );\r\n}\r\n\r\nexport default PreviewOverlay;\r\n","import React, {useState} from 'react';\r\nimport BasicTable from '../../shared/units/BasicTable';\r\nimport TableLoader from '../../shared/units/TableLoader';\r\nimport MockOverlayActions from './MockOverlayActions';\r\nimport {DEFAULT_PAGINATION} from '../../../constants';\r\nimport PreviewOverlay from './PreviewOverlay';\r\n\r\nexport default function TableListContainer(props) {\r\n const {\r\n projectId,\r\n offset,\r\n columns,\r\n projectListData,\r\n checkboxSelection = false,\r\n totalMocks,\r\n onDelete,\r\n onToggle,\r\n onSaveAuthenticate,\r\n onPaginationChange,\r\n handleSelectedRow,\r\n defaultPage,\r\n setPage,\r\n authenticationType,\r\n setAuthenticationType,\r\n isShowAuthenticatePopup,\r\n setIsShowAuthenticatePopup,\r\n isMockUpdated,\r\n showSorting = true,\r\n handleSortCall = () => {},\r\n } = props;\r\n\r\n const [previewData, setPreviewData] = useState('');\r\n const [isPreviewModalOpen, setIsPreviewModalOpen] = useState(false);\r\n\r\n const onPreviewClick = (mockData) => {\r\n setIsPreviewModalOpen(true);\r\n setPreviewData(mockData);\r\n };\r\n\r\n const renderMockTableCellActions = (rowData) => (\r\n <MockOverlayActions\r\n offset={offset}\r\n projectId={projectId}\r\n data={rowData}\r\n mockListData={projectListData}\r\n onDelete={onDelete}\r\n onToggle={onToggle}\r\n onSaveAuthenticate={onSaveAuthenticate}\r\n authenticationType={authenticationType}\r\n setAuthenticationType={setAuthenticationType}\r\n isShowAuthenticatePopup={isShowAuthenticatePopup}\r\n setIsShowAuthenticatePopup={setIsShowAuthenticatePopup}\r\n isMockUpdated={isMockUpdated}\r\n onPreviewClick={onPreviewClick}\r\n />\r\n );\r\n\r\n return (\r\n <>\r\n {isPreviewModalOpen && previewData && (\r\n <PreviewOverlay previewData={previewData} setIsPreviewModalOpen={setIsPreviewModalOpen} />\r\n )}\r\n {!isPreviewModalOpen && (\r\n <BasicTable\r\n columns={columns}\r\n tableData={projectListData}\r\n onHoverContent={(data) => renderMockTableCellActions(data)}\r\n onMouseLeave={() => setIsShowAuthenticatePopup(false)}\r\n handleSortCall={handleSortCall}\r\n showPagination\r\n sortByColumn=\"apiName\"\r\n defaultPage={defaultPage}\r\n setPage={setPage}\r\n defaultSortOrder=\"asc\"\r\n sortAllowed={showSorting}\r\n checkboxSelection={checkboxSelection}\r\n getPageNumber={onPaginationChange}\r\n handleSelectedRow={handleSelectedRow}\r\n totalRecords={totalMocks}\r\n cellClassName=\"global-table-body-cell NunitoSansSemibold truncate !max-w-[150px]\"\r\n headerCellClass=\"global-table-header-cell NunitoSansRegular\"\r\n hoverClassName=\"p-2 bg-white w-80 table-row group-hover:opacity-100 group-hover:transition-all\"\r\n tableWrapperClass=\"shadow-none h-fit overflow-x-auto\"\r\n loaderComponent={<TableLoader rowsNum={DEFAULT_PAGINATION} colsNum={8} />}\r\n />\r\n )}\r\n </>\r\n );\r\n}\r\n","import React, {useState, useEffect, useContext} from 'react';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport TableListContainer from '../common/TableListContainer';\r\nimport {ATTRS} from '../../../constants/dashboard';\r\nimport {RECENT_API_LIST_HEADS as COLUMNS, DEFAULT_PAGINATION} from '../../../constants';\r\nimport {\r\n createTableData,\r\n getUpdatedMockData,\r\n getRunningState,\r\n getUpdatedTableData,\r\n} from '../utils/dashboardUtils';\r\nimport notify from '../../shared/utils/toast';\r\nimport BlockingLoader from '../../shared/units/BlockingLoader';\r\nimport {SearchAPIContext} from '../../../containers/PrivateRoute';\r\n\r\nexport default function ApiListingContainer(props) {\r\n const [isLoader, setIsLoader] = useState(false);\r\n const [projectListData, setProjectListData] = useState([]);\r\n const [authTokenData, setAuthTokenData] = useState({});\r\n const [authenticationType, setAuthenticationType] = useState('');\r\n const [isShowAuthenticatePopup, setIsShowAuthenticatePopup] = useState(false);\r\n const [page, setPage] = useState(1);\r\n const {searchAPI} = useContext(SearchAPIContext);\r\n\r\n const {\r\n id,\r\n filterAction,\r\n sortingAction,\r\n handleSelectedRow,\r\n offset,\r\n setOffset,\r\n handleBulkToggle,\r\n projectId,\r\n } = props;\r\n\r\n const projectList = useSelector((state) => state?.mockList?.response?.data?.mockList);\r\n const totalCount = useSelector((state) => state?.mockList?.response?.data?.totalCount) || 0;\r\n const currentPageOffset = useSelector((state) => state?.mockList?.response?.data?.offset);\r\n const mockListData = useSelector((state) => state?.updateToken?.response?.data?.mockList);\r\n const mockStatusUpdated = useSelector((state) => state?.mockStatus?.response?.mock);\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n setIsLoader(true);\r\n setProjectListData([]);\r\n setAuthTokenData([]);\r\n setPage(1);\r\n }, [id]);\r\n\r\n useEffect(() => {\r\n setIsLoader(true);\r\n dispatch({\r\n type: 'MOCK_LIST',\r\n data: {\r\n projectId,\r\n limit: DEFAULT_PAGINATION,\r\n offset,\r\n ...filterAction,\r\n ...sortingAction,\r\n },\r\n });\r\n }, [id, filterAction, sortingAction, offset, dispatch, mockStatusUpdated]);\r\n\r\n useEffect(() => {\r\n if (typeof projectList !== 'undefined') {\r\n const currentPage = currentPageOffset / DEFAULT_PAGINATION + 1;\r\n let filteredData;\r\n setOffset(currentPageOffset);\r\n setPage(currentPage);\r\n setIsLoader(true);\r\n // Viewing mocks for a specific project\r\n if (projectId) {\r\n filteredData = projectList.filter((details) => details.projectId === projectId);\r\n } else filteredData = projectList;\r\n const result = createTableData(filteredData);\r\n setProjectListData(result);\r\n setIsLoader(false);\r\n }\r\n }, [projectList, currentPageOffset, setOffset]);\r\n\r\n useEffect(() => {\r\n if (typeof mockListData !== 'undefined') {\r\n const currentPage = currentPageOffset / DEFAULT_PAGINATION + 1;\r\n setOffset(currentPageOffset);\r\n setPage(currentPage);\r\n setIsLoader(true);\r\n const result = createTableData(mockListData);\r\n setProjectListData(result);\r\n setIsLoader(false);\r\n setIsShowAuthenticatePopup(false);\r\n }\r\n }, [mockListData, currentPageOffset, setOffset]);\r\n\r\n const onMockDelete = (rowData) => {\r\n setIsLoader(true);\r\n const lastPage = Math.ceil(totalCount / DEFAULT_PAGINATION);\r\n let currentOffset = offset;\r\n if (lastPage === page && projectListData.length === 1) {\r\n currentOffset = offset - DEFAULT_PAGINATION;\r\n }\r\n dispatch({\r\n type: 'DELETE_MOCK',\r\n data: {\r\n id: rowData?.apiName?.apiId,\r\n data: {\r\n projectId,\r\n limit: DEFAULT_PAGINATION,\r\n offset: currentOffset,\r\n ...filterAction,\r\n ...sortingAction,\r\n },\r\n },\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n setIsLoader(false);\r\n }, [mockStatusUpdated?.[0]?.mockStatus]);\r\n\r\n const onMockToggle = (data, mockStatus) => {\r\n setIsLoader(true);\r\n const model = {...data};\r\n const apiModel = {...model?.apiName, mockStatus};\r\n const runningState = getRunningState(apiModel);\r\n const rowData = {...model, apiName: {...apiModel}, status: {value: runningState}};\r\n\r\n dispatch({\r\n type: 'MOCK_STATUS',\r\n data: {\r\n mockIds: [rowData?.apiName?.apiId],\r\n mockStatus: rowData?.apiName?.mockStatus,\r\n },\r\n });\r\n const result = getUpdatedMockData(rowData, projectListData);\r\n setProjectListData(result);\r\n handleBulkToggle(result);\r\n };\r\n\r\n const onSaveMockAuthenticate = (value, rowData) => {\r\n setIsLoader(true);\r\n const updatedData = {\r\n id: rowData?.apiName?.apiId,\r\n userId: rowData?.apiName?.userId,\r\n token: value,\r\n authenticationType:\r\n authenticationType === '' ? rowData?.apiName?.authenticationType : authenticationType,\r\n };\r\n\r\n dispatch({\r\n type: 'UPDATE_TOKEN',\r\n isMockToken: true,\r\n data: updatedData,\r\n filter: {\r\n data: getUpdatedTableData(projectList, updatedData),\r\n projectName: id,\r\n limit: DEFAULT_PAGINATION,\r\n offset,\r\n },\r\n });\r\n };\r\n\r\n const onCopyData = (value) => {\r\n const textField = document.createElement('textarea');\r\n textField.innerText = value;\r\n document.body.appendChild(textField);\r\n textField.select();\r\n document.execCommand('copy');\r\n textField.remove();\r\n notify(ATTRS.COPIED, {type: 'info'});\r\n };\r\n\r\n const handleMockAuthData = (tokenVal) => {\r\n const authTokenDataModel = {...authTokenData, token: tokenVal};\r\n setAuthTokenData(authTokenDataModel);\r\n };\r\n\r\n const handlePagination = (newPage) => {\r\n const currentPage = newPage - 1;\r\n const newOffset = DEFAULT_PAGINATION * currentPage;\r\n setOffset(newOffset);\r\n handleSelectedRow([]);\r\n };\r\n\r\n const handleSortCall = (order, sortBy) => {\r\n dispatch({\r\n type: 'MOCK_LIST',\r\n data: {\r\n projectId,\r\n limit: DEFAULT_PAGINATION,\r\n offset,\r\n ...filterAction,\r\n order,\r\n sortBy,\r\n search: searchAPI,\r\n },\r\n });\r\n };\r\n\r\n const renderListingContainer = () => (\r\n <TableListContainer\r\n columns={COLUMNS}\r\n checkboxSelection\r\n projectListData={projectListData}\r\n totalMocks={totalCount}\r\n onCopy={onCopyData}\r\n onDelete={onMockDelete}\r\n onToggle={onMockToggle}\r\n onSaveAuthenticate={onSaveMockAuthenticate}\r\n onSetMockAuthData={handleMockAuthData}\r\n onPaginationChange={handlePagination}\r\n handleSelectedRow={handleSelectedRow}\r\n defaultPage={page}\r\n setPage={setPage}\r\n authenticationType={authenticationType}\r\n setAuthenticationType={setAuthenticationType}\r\n offset={offset}\r\n projectId={id}\r\n isShowAuthenticatePopup={isShowAuthenticatePopup}\r\n setIsShowAuthenticatePopup={setIsShowAuthenticatePopup}\r\n handleSortCall={handleSortCall}\r\n />\r\n );\r\n\r\n const renderSkeletonLoader = () => <BlockingLoader open />;\r\n\r\n return (\r\n <div className=\"w-full px-4\">\r\n {isLoader && renderSkeletonLoader()}\r\n {renderListingContainer()}\r\n </div>\r\n );\r\n}\r\n","import React, {useState, useEffect} from 'react';\r\nimport {useSelector} from 'react-redux';\r\nimport TopActionDashboardContainer from './TopActionDashboardContainer';\r\nimport BottomActionDashboardContainer from './BottomActionDashboardContainer';\r\nimport ApiListingContainer from './ApiListingContainer';\r\nimport {createTableData} from '../utils/dashboardUtils';\r\n\r\nfunction ApiListingDashboard(props) {\r\n const {projectId} = props;\r\n const [selectedRow, setSelectedRow] = useState([]);\r\n const [filterAction, setFilterAction] = useState({\r\n allowedMethods: [],\r\n status: [],\r\n authenticationType: [],\r\n });\r\n const [sortingAction, setSortingAction] = useState({});\r\n const [offset, setOffset] = useState(0);\r\n const mockListData = useSelector((state) => state?.mockList?.response?.data?.mockList);\r\n\r\n const [mockListState, setMockListState] = useState([]);\r\n\r\n useEffect(() => {\r\n setOffset(0);\r\n setSelectedRow([]);\r\n setFilterAction({\r\n allowedMethods: [],\r\n status: [],\r\n authenticationType: [],\r\n });\r\n }, [projectId]);\r\n\r\n useEffect(() => {\r\n if (typeof mockListData !== 'undefined') {\r\n const result = createTableData(mockListData);\r\n setSelectedRow([]);\r\n setMockListState(result);\r\n }\r\n }, [mockListData]);\r\n\r\n const handleSelectedRowData = (selectedData) => {\r\n setSelectedRow(selectedData);\r\n };\r\n\r\n const handleFilterAction = (actionData) => {\r\n setFilterAction(actionData);\r\n };\r\n\r\n const handleApiListSortingAction = (sortedBy) => {\r\n setSortingAction(sortedBy);\r\n };\r\n\r\n const handleBulkToggle = (data) => {\r\n setMockListState(data);\r\n };\r\n\r\n return (\r\n <div className=\"w-screen\">\r\n <TopActionDashboardContainer projectId={projectId} selectedData={selectedRow} />\r\n\r\n <BottomActionDashboardContainer\r\n projectId={projectId}\r\n filterAction={filterAction}\r\n handleFilterAction={handleFilterAction}\r\n handleApiListSortingAction={handleApiListSortingAction}\r\n selectedRows={selectedRow}\r\n mockListData={mockListState}\r\n />\r\n\r\n <ApiListingContainer\r\n projectId={projectId}\r\n filterAction={filterAction}\r\n sortingAction={sortingAction}\r\n offset={offset}\r\n setOffset={setOffset}\r\n handleSelectedRow={handleSelectedRowData}\r\n handleBulkToggle={handleBulkToggle}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default ApiListingDashboard;\r\n","/* eslint-disable react/jsx-boolean-value */\r\nimport React from 'react';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport LockIcon from '@mui/icons-material/Lock';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport Box from '@mui/material/Box';\r\nimport FileDownloadOutlinedIcon from '@mui/icons-material/FileDownloadOutlined';\r\nimport {DownloadPostmanCollection} from './DownloadPostmanCollection';\r\nimport useRolePermission from '../../../hooks/useRolePermission';\r\n\r\nfunction AddTooltipWrapper(iconComponent, title) {\r\n return (\r\n <Tooltip title={title} placement=\"bottom\">\r\n {iconComponent}\r\n </Tooltip>\r\n );\r\n}\r\n\r\nfunction ProjectOverlayAction(props) {\r\n const {\r\n data,\r\n setSelectedProjectId,\r\n openDeleteModal,\r\n openEditModal,\r\n setProjectName,\r\n openAuthenticateModel,\r\n projectName,\r\n setDepartmentName,\r\n setAuthStatus,\r\n onFetchAuthenticationData,\r\n setSelectedUserId,\r\n } = props;\r\n\r\n const canEdit = useRolePermission('project', 'update');\r\n const isApiCountZero = data?.apiCount?.value === 0;\r\n setSelectedProjectId(data?.projectName?.id);\r\n setSelectedUserId(data?.projectName?.userId);\r\n setProjectName(data.projectName.value);\r\n projectName(data.projectName.value);\r\n setDepartmentName(data?.departmentName?.id);\r\n\r\n const editClickHandler = () => {\r\n openEditModal(true);\r\n };\r\n const authenticateClickHandler = () => {\r\n setAuthStatus(data.authType?.checked);\r\n onFetchAuthenticationData(data?.projectName?.id);\r\n openAuthenticateModel(true);\r\n };\r\n const deleteClickHandler = () => {\r\n openDeleteModal(true);\r\n };\r\n\r\n const handlePostmanCollectionDownloadBtn = () => {\r\n DownloadPostmanCollection(data.projectName.value);\r\n };\r\n\r\n return (\r\n <div className=\"flex w-full\">\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <EditIcon\r\n color={canEdit ? 'primary' : 'disabled'}\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={canEdit ? editClickHandler : () => {}}\r\n disabled\r\n />,\r\n 'Edit'\r\n )}\r\n </Box>\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <LockIcon\r\n color={canEdit ? 'primary' : 'disabled'}\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={canEdit ? authenticateClickHandler : () => {}}\r\n />,\r\n 'Authenticate'\r\n )}\r\n </Box>\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <DeleteIcon\r\n color={canEdit ? 'primary' : 'disabled'}\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={canEdit ? deleteClickHandler : () => {}}\r\n />,\r\n 'Delete'\r\n )}\r\n </Box>\r\n <Box className=\"mx-3\">\r\n {!isApiCountZero &&\r\n AddTooltipWrapper(\r\n <FileDownloadOutlinedIcon\r\n color=\"primary\"\r\n size=\"medium\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={handlePostmanCollectionDownloadBtn}\r\n />,\r\n 'Export as Postman collection'\r\n )}\r\n </Box>\r\n </div>\r\n );\r\n}\r\n\r\nexport default ProjectOverlayAction;\r\n","import React, {useState} from 'react';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport BasicTable from '../../shared/units/BasicTable';\r\nimport {FREQUENT_PROJECT_LIST_HEADS} from '../../../constants';\r\nimport ProjectOverlayActions from '../common/ProjectOverlayActions';\r\nimport DeleteContainer from '../actions/DeleteProject';\r\nimport EditContainer from '../actions/EditProject';\r\nimport AuthenticateContainer from '../actions/AuthenticateProject';\r\nimport BlockingLoader from '../../shared/units/BlockingLoader';\r\n\r\nexport default function FrequentProjectList(props) {\r\n const {isProjectTableHidden, frequestProjectList, reRender} = props;\r\n const [selectedProjectId, setSelectedProjectId] = useState('');\r\n const [selectedUserId, setSelectedUserId] = useState('');\r\n const [selectedprojectName, setSelectedProjectName] = useState('');\r\n // Modal handler\r\n const [isDeleteModelOpen, setIsDeleteModelOpen] = useState(false);\r\n const [isEditModelOpen, setIsEditModelOpen] = useState(false);\r\n const [isAuthenticateModelOpen, setIsAuthenticateModelOpen] = useState(false);\r\n\r\n const tokenData = useSelector((state) => state?.fetchToken?.response);\r\n const userinfo = useSelector((state) => state.userinfo);\r\n const dispatch = useDispatch();\r\n\r\n const onFetchAuthenticationData = (id) => {\r\n dispatch({type: 'FETCH_TOKEN', isMockToken: false, data: id});\r\n };\r\n const [name, setName] = useState('');\r\n const [authStatus, setAuthStatus] = useState(false);\r\n const [token, setToken] = useState(tokenData?.token);\r\n const [departments, setDepartments] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [editProjectDepartment, setEditProjectDepartment] = useState('');\r\n\r\n React.useEffect(() => {\r\n setToken(tokenData?.token);\r\n }, [tokenData]);\r\n\r\n const setUserDepartments = () => {\r\n if (userinfo?.departments?.length > 0) {\r\n let departmentList = {};\r\n userinfo.departments.forEach((element) => {\r\n departmentList = {\r\n ...departmentList,\r\n [`${element._id}`]: element.name,\r\n };\r\n });\r\n setDepartments(departmentList);\r\n }\r\n };\r\n\r\n const handleSetIsLoading = (loading) => {\r\n setIsLoading(loading);\r\n };\r\n\r\n return !isProjectTableHidden ? (\r\n <>\r\n <EditContainer\r\n closeModel={setIsEditModelOpen}\r\n isEditModelOpen={isEditModelOpen}\r\n projectName={name}\r\n projectDepartment={editProjectDepartment}\r\n setProjectName={setName}\r\n setProjectDepartment={setEditProjectDepartment}\r\n id={selectedProjectId}\r\n isFrequentProjList\r\n reRender={reRender}\r\n departments={departments}\r\n />\r\n <DeleteContainer\r\n closeModel={setIsDeleteModelOpen}\r\n handleSetIsLoading={handleSetIsLoading}\r\n projectName={selectedprojectName}\r\n id={selectedProjectId}\r\n isDeleteModelOpen={isDeleteModelOpen}\r\n reRender={reRender}\r\n />\r\n <AuthenticateContainer\r\n showAuthModel={isAuthenticateModelOpen}\r\n closeModel={setIsAuthenticateModelOpen}\r\n id={selectedProjectId}\r\n authentication={authStatus}\r\n setAuthentication={setAuthStatus}\r\n token={token}\r\n setToken={setToken}\r\n userId={selectedUserId}\r\n reRender={reRender}\r\n handleSetIsLoading={handleSetIsLoading}\r\n />\r\n {isLoading ? (\r\n <BlockingLoader open />\r\n ) : (\r\n <BasicTable\r\n columns={FREQUENT_PROJECT_LIST_HEADS}\r\n tableData={frequestProjectList}\r\n // eslint-disable-next-line react/no-unstable-nested-components\r\n onHoverContent={(data) => (\r\n <ProjectOverlayActions\r\n data={data}\r\n setSelectedProjectId={setSelectedProjectId}\r\n openDeleteModal={setIsDeleteModelOpen}\r\n openEditModal={(open) => {\r\n if (open) setUserDepartments();\r\n setIsEditModelOpen(open);\r\n }}\r\n openAuthenticateModel={setIsAuthenticateModelOpen}\r\n setProjectName={setSelectedProjectName}\r\n onFetchAuthenticationData={onFetchAuthenticationData}\r\n setAuthStatus={setAuthStatus}\r\n projectName={setName}\r\n setDepartmentName={setEditProjectDepartment}\r\n setSelectedUserId={setSelectedUserId}\r\n />\r\n )}\r\n showPagination={false}\r\n tableRecordsPerPage={5}\r\n defaultPage={0}\r\n sortAllowed={false}\r\n cellClassName=\"global-table-body-cell NunitoSansSemibold truncate !max-w-[200px]\"\r\n headerCellClass=\"global-table-header-cell NunitoSansRegular\"\r\n hoverClassName=\"p-2 bg-white w-80 table-row group-hover:opacity-100 group-hover:transition-all\"\r\n tableWrapperClass=\"shadow-none h-fit\"\r\n />\r\n )}\r\n </>\r\n ) : null;\r\n}\r\n","import React from 'react';\r\nimport {RECENT_API_LIST_HEADS} from '../../../constants';\r\nimport TableListContainer from '../common/TableListContainer';\r\n\r\nexport default function RecentApiList(props) {\r\n const {\r\n isMockTableHidden,\r\n recentMocks,\r\n onCopy,\r\n onDelete,\r\n onToggle,\r\n isShowAuthenticatePopup,\r\n setIsShowAuthenticatePopup,\r\n authenticationType,\r\n setAuthenticationType,\r\n handleMockAuthData,\r\n onSaveMockAuthenticate,\r\n isMockUpdated,\r\n } = props;\r\n\r\n return !isMockTableHidden ? (\r\n <TableListContainer\r\n columns={RECENT_API_LIST_HEADS}\r\n checkboxSelection={false}\r\n projectListData={recentMocks}\r\n totalMocks={0}\r\n onCopy={onCopy}\r\n onDelete={onDelete}\r\n onToggle={onToggle}\r\n onSaveAuthenticate={onSaveMockAuthenticate}\r\n onSetMockAuthData={handleMockAuthData}\r\n authenticationType={authenticationType}\r\n setAuthenticationType={setAuthenticationType}\r\n isShowAuthenticatePopup={isShowAuthenticatePopup}\r\n setIsShowAuthenticatePopup={setIsShowAuthenticatePopup}\r\n isMockUpdated={isMockUpdated}\r\n showSorting={false}\r\n />\r\n ) : null;\r\n}\r\n","import React, {useState, useEffect} from 'react';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\r\nimport KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight';\r\nimport dayjs from 'dayjs';\r\nimport {RECENT_API_ROWS_LENGTH, RECENT_API_PROJECT_LENGTH} from '../../../constants';\r\nimport {ATTRS} from '../../../constants/dashboard';\r\nimport FrequentProjectList from './frequentProjectList';\r\nimport RecentApiList from './recentApiList';\r\nimport {\r\n createTableData,\r\n getRunningState,\r\n getUpdatedMockData,\r\n getUpdatedTableData,\r\n} from '../utils/dashboardUtils';\r\nimport notify from '../../shared/utils/toast';\r\nimport BlockingLoader from '../../shared/units/BlockingLoader';\r\n\r\nexport default function QuickAccessDashboard(props) {\r\n const [frequestProjectList, setFrequentProjectList] = useState([]);\r\n const [recentMocks, setRecentMocks] = useState([]);\r\n\r\n const [isProjectTableHidden, setIsProjectTableHidden] = useState(false);\r\n const [isMockTableHidden, setIsMockTableHidden] = useState(false);\r\n\r\n const [projectCount, setProjectCount] = useState(0);\r\n const [mockCount, setMockCount] = useState(0);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const [authTokenData, setAuthTokenData] = useState({});\r\n const [authenticationType, setAuthenticationType] = useState('');\r\n const [isShowAuthenticatePopup, setIsShowAuthenticatePopup] = useState(false);\r\n\r\n const {projectList, mockList} = useSelector((state) => state);\r\n const mockListData = useSelector((state) => state?.updateToken?.response?.data?.mockList);\r\n const mockStatusUpdated = useSelector((state) => state?.mockStatus?.response?.mock);\r\n const dispatch = useDispatch();\r\n\r\n const [reRender, setReRender] = useState(false);\r\n\r\n const Token = useSelector((state) => state?.updateToken);\r\n\r\n // useEffect calls\r\n useEffect(() => {\r\n dispatch({type: 'PROJECT_LIST'});\r\n dispatch({\r\n type: 'MOCK_LIST',\r\n data: {\r\n limit: RECENT_API_ROWS_LENGTH,\r\n offset: 0,\r\n },\r\n });\r\n }, [Token.response, reRender]);\r\n\r\n useEffect(() => {\r\n if (\r\n typeof mockList !== 'undefined' &&\r\n mockList.response?.type &&\r\n mockList?.response?.data?.mockList?.length > 0\r\n ) {\r\n const list = createTableData(mockList?.response?.data?.mockList);\r\n setRecentMocks(list);\r\n setMockCount(list.length);\r\n setIsLoading(false);\r\n }\r\n }, [mockList]);\r\n\r\n useEffect(() => {\r\n if (typeof mockListData !== 'undefined') {\r\n const result = createTableData(mockListData);\r\n setRecentMocks(result);\r\n setMockCount(result.length);\r\n setIsShowAuthenticatePopup(false);\r\n setIsLoading(false);\r\n }\r\n }, [mockListData]);\r\n\r\n useEffect(() => {\r\n if (projectList?.response?.projectList?.length === 0) {\r\n setProjectCount(0);\r\n setIsProjectTableHidden(false);\r\n setFrequentProjectList([]);\r\n }\r\n if (mockList?.response?.data?.mockList?.length === 0) {\r\n setMockCount(0);\r\n setIsMockTableHidden(false);\r\n setRecentMocks([]);\r\n }\r\n if (projectList?.response?.projectList?.length > 0) {\r\n const list = projectList.response?.projectList.map((project) => ({\r\n projectName: {\r\n value: project.projectName,\r\n id: project._id,\r\n userId: project.userId,\r\n },\r\n departmentName: {\r\n value: project.departmentName,\r\n id: project.departmentId,\r\n },\r\n apiCount: {\r\n value: project.count,\r\n },\r\n authType: {\r\n value: `${project.authenticationType ? 'On' : 'Off'}`,\r\n checked: project.authenticationType,\r\n },\r\n updatedOn: {\r\n value: dayjs(new Date(project.updatedAt)).format('DD/MM/YYYY HH:mm'),\r\n },\r\n }));\r\n setFrequentProjectList(list.slice(0, RECENT_API_PROJECT_LENGTH));\r\n setProjectCount(list.length);\r\n }\r\n\r\n if (mockList?.response?.data?.mockList?.length > 0) {\r\n const list = createTableData(mockList?.response?.data?.mockList);\r\n\r\n // setRecentMocks(list);\r\n setRecentMocks(list.slice(0, 5));\r\n setMockCount(list.length);\r\n }\r\n setIsLoading(false);\r\n }, [projectList, mockList]);\r\n\r\n useEffect(() => {\r\n setIsLoading(false);\r\n }, [mockStatusUpdated?.[0]?.mockStatus]);\r\n\r\n const handleProjectTableVisibility = () => {\r\n setIsProjectTableHidden(!isProjectTableHidden);\r\n };\r\n\r\n const handleMockTableVisibility = () => {\r\n setIsMockTableHidden(!isMockTableHidden);\r\n };\r\n\r\n const handleMockDelete = (rowData) => {\r\n setIsLoading(true);\r\n dispatch({\r\n type: 'DELETE_MOCK',\r\n data: {\r\n id: rowData?.apiName?.apiId,\r\n data: {\r\n limit: RECENT_API_ROWS_LENGTH,\r\n offset: 0,\r\n },\r\n },\r\n });\r\n };\r\n\r\n const handleMockToggle = (data, mockStatus) => {\r\n setIsLoading(true);\r\n const model = {...data};\r\n const apiModel = {...model?.apiName, mockStatus};\r\n const runningState = getRunningState(apiModel);\r\n const rowData = {...model, apiName: {...apiModel}, status: {value: runningState}};\r\n\r\n dispatch({\r\n type: 'MOCK_STATUS',\r\n data: {\r\n mockIds: [rowData?.apiName?.apiId],\r\n mockStatus: rowData?.apiName?.mockStatus,\r\n },\r\n });\r\n const result = getUpdatedMockData(rowData, recentMocks);\r\n setRecentMocks(result);\r\n };\r\n\r\n const handleReRender = () => {\r\n setReRender(!reRender);\r\n };\r\n\r\n const onCopyData = (value) => {\r\n const textField = document.createElement('textarea');\r\n textField.innerText = value;\r\n document.body.appendChild(textField);\r\n textField.select();\r\n document.execCommand('copy');\r\n textField.remove();\r\n notify(ATTRS.COPIED, {type: 'info'});\r\n };\r\n\r\n const onSaveMockAuthenticate = (value, rowData) => {\r\n setIsLoading(true);\r\n const updatedData = {\r\n id: rowData?.apiName?.apiId,\r\n userId: rowData?.apiName?.userId,\r\n token: value,\r\n authenticationType:\r\n authenticationType === '' ? rowData?.apiName?.authenticationType : authenticationType,\r\n };\r\n\r\n dispatch({\r\n type: 'UPDATE_TOKEN',\r\n isMockToken: true,\r\n data: updatedData,\r\n filter: {\r\n data: getUpdatedTableData(mockList?.response?.data?.mockList, updatedData),\r\n limit: RECENT_API_ROWS_LENGTH,\r\n offset: 0,\r\n },\r\n });\r\n };\r\n\r\n const handleMockAuthData = (tokenVal) => {\r\n const authTokenDataModel = {...authTokenData, token: tokenVal};\r\n setAuthTokenData(authTokenDataModel);\r\n };\r\n\r\n return (\r\n <div className=\"w-full px-[10px]\">\r\n <div className=\"h-10 text-sm font-extrabold py-[14px] px-1 flex\">\r\n <div className=\"px-1\" onClick={handleProjectTableVisibility}>\r\n {isProjectTableHidden ? <KeyboardArrowRightIcon /> : <KeyboardArrowDownIcon />}\r\n </div>\r\n <div className=\"pt-[2px]\">{`Frequent Projects (${projectCount})`}</div>\r\n </div>\r\n <FrequentProjectList\r\n isProjectTableHidden={isProjectTableHidden}\r\n frequestProjectList={frequestProjectList}\r\n reRender={handleReRender}\r\n />\r\n <div className=\"h-10 text-sm font-extrabold py-[14px] px-1 flex\">\r\n <div className=\"px-1\" onClick={handleMockTableVisibility}>\r\n {isMockTableHidden ? <KeyboardArrowRightIcon /> : <KeyboardArrowDownIcon />}\r\n </div>\r\n <div className=\"pt-[2px]\">{`Recent APIs (${mockCount})`}</div>\r\n </div>\r\n {isLoading ? (\r\n <BlockingLoader open />\r\n ) : (\r\n <RecentApiList\r\n isMockTableHidden={isMockTableHidden}\r\n recentMocks={recentMocks}\r\n onDelete={handleMockDelete}\r\n onToggle={handleMockToggle}\r\n isMockUpdated={mockStatusUpdated?.length}\r\n isShowAuthenticatePopup={isShowAuthenticatePopup}\r\n setIsShowAuthenticatePopup={setIsShowAuthenticatePopup}\r\n authenticationType={authenticationType}\r\n setAuthenticationType={setAuthenticationType}\r\n authTokenData={authTokenData}\r\n setAuthTokenData={setAuthTokenData}\r\n onCopy={onCopyData}\r\n handleMockAuthData={handleMockAuthData}\r\n onSaveMockAuthenticate={onSaveMockAuthenticate}\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n","import React from 'react';\r\nimport {Box, Button, Typography} from '@mui/material';\r\nimport {grey} from '@mui/material/colors';\r\nimport {Link} from 'react-router-dom';\r\n\r\nconst primary = grey[300]; // #f44336\r\n\r\nexport default function Error() {\r\n return (\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n width: '100%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n minHeight: '100vh',\r\n backgroundColor: primary,\r\n }}\r\n >\r\n <Typography variant=\"h1\" style={{color: 'black'}}>\r\n 404\r\n </Typography>\r\n <Typography variant=\"h6\" style={{color: 'black'}}>\r\n The page you’re looking for doesn’t exist.\r\n </Typography>\r\n <Link to=\"/dashboard\">\r\n <Button variant=\"contained\">Back Home</Button>\r\n </Link>\r\n </Box>\r\n );\r\n}\r\n","import React from 'react';\r\nimport {useLocation} from 'react-router-dom';\r\nimport SideBar from '../../containers/sideBar';\r\nimport ApiListingDashboard from './apiListing/ApiListingDashboard';\r\nimport QuickAccessDashboard from './quickAccessDashboard';\r\nimport Error from '../shared/units/Error';\r\n\r\nexport default function Dashboard(props) {\r\n const location = useLocation();\r\n const {pathname} = location;\r\n\r\n const selectDashboard = (path = '/dashboard') => {\r\n const id = path.split('/')[3] || '';\r\n switch (path) {\r\n case '/dashboard':\r\n return <QuickAccessDashboard />;\r\n case '/dashboard/api-list':\r\n return <ApiListingDashboard projectId={id} />;\r\n case `/dashboard/api-list/${id}`:\r\n return <ApiListingDashboard projectId={id} />;\r\n default:\r\n return <Error />;\r\n }\r\n };\r\n return (\r\n <div className=\"w-full h-screen bg-dashboardBg flex\">\r\n <SideBar selectedTab={pathname} />\r\n {selectDashboard(pathname)}\r\n </div>\r\n );\r\n}\r\n","export const COMPANY_MANAGEMENT = 'Company Management';\r\nexport const COMPANY_LIST_DOMAIN = 'Company List and Domain';\r\nexport const CREATE_COMPANY = 'Create Company';\r\nexport const ACCESS_RIGHT = 'Access rights';\r\nexport const ADMIN = 'Admin';\r\nexport const MANAGER = 'Manager';\r\nexport const DEVELOPER = 'Developer';\r\nexport const EDIT = 'Edit';\r\nexport const SAVE = 'Save';\r\nexport const VIEW_DEPARTMENTS = 'View Departments';\r\nexport const VIEW_USERS = 'View Users';\r\nexport const EDIT_COMPANY = 'Edit Company';\r\nexport const DELETE = 'Delete';\r\nexport const CANCEL = 'Cancel';\r\nexport const CREATE = 'Create';\r\nexport const DELETE_COMPANY_MSG = 'will be deleted';\r\nexport const CONFIRMATION_HEADER_TITLE = 'Are you sure?';\r\nexport const CONFIRMATION_PRIMARY_BTN_LABEL = 'Yes, confirm';\r\nexport const CONFIRMATION_SECONDARY_BTN_LABEL = 'No, cancel';\r\nexport const STATUS = 'status';\r\nexport const NAME_VALIDATION_MESSAGE = 'Please enter name';\r\nexport const EMPTY_DOMAIN_VALIDATION_MESSAGE = 'Please enter domain';\r\nexport const WRONG_DOMAIN_VALIDATION_MESSAGE = 'Please enter domain';\r\nexport const DOMAIN_NOT_EDITABLE = 'Domain name cannot be edited afterwards';\r\nexport const STATUS_VALIDATION_MESSAGE = 'Please select status';\r\nexport const DIALOG_TITLE_ICON_TOOLTIP =\r\n 'An API URL is a web address that is used to access an API (Application Programming Interface)';\r\nexport const COMPANY_DIALOG_TITLE_ICON_TOOLTIP =\r\n 'A company is created to add different departments in it which is used to create a project.';\r\nexport const COMPANY_SUBTITLE_CONTENT = 'Add a company for creating departments and projects in it';\r\nexport const DUPLICATE_FIELD_MSG = 'This field is already exist';\r\nexport const EDITED_RECORD_MOVED_MSG =\r\n 'Record has been updated successfully, do you want to move to page 1.';\r\nexport const COLUMNS = [\r\n {\r\n id: 'name',\r\n label: 'Name',\r\n },\r\n {\r\n id: 'domain',\r\n label: 'Domain',\r\n },\r\n {\r\n id: 'status',\r\n label: 'Status',\r\n },\r\n];\r\n\r\nexport const VALIDATION_TEXT = {\r\n NAME: {\r\n EMPTY: 'Please enter name',\r\n WRONG: 'Please enter name',\r\n },\r\n DOMAIN: {\r\n EMPTY: 'Please enter domain',\r\n WRONG: 'Please enter correct domain',\r\n },\r\n STATUS: {\r\n EMPTY: 'Please select status',\r\n WRONG: 'Please select status',\r\n },\r\n};\r\n// eslint-disable-next-line prefer-regex-literals\r\nexport const DOMAIN_REGEX = new RegExp(/^(?!-)[A-Za-z0-9-]+([\\-\\.]{1}[a-z0-9]+)*\\.[A-Za-z]{2,6}$/);\r\nexport const PAGE_TITLE = 'Company Management - iRest';\r\nexport const MENU_OPTIONS = {\r\n enabled: 'Enabled',\r\n disabled: 'Disabled',\r\n};\r\n","/* eslint-disable react/jsx-boolean-value */\r\nimport React from 'react';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport GroupIcon from '@mui/icons-material/Group';\r\nimport Box from '@mui/material/Box';\r\nimport {EDIT, DELETE, VIEW_DEPARTMENTS, VIEW_USERS} from './constant';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\n\r\nfunction AddTooltipWrapper(iconComponent, title) {\r\n return (\r\n <Tooltip title={title} placement=\"bottom\">\r\n {iconComponent}\r\n </Tooltip>\r\n );\r\n}\r\n\r\nfunction CompanyRowOverlay(props) {\r\n const {\r\n data,\r\n setHoverData,\r\n editClickHandler,\r\n deleteClickHandler,\r\n viewDepartmentHandler,\r\n viewUserHandler,\r\n } = props;\r\n const viewDepartmentAccess = useRolePermission('department', 'read');\r\n const updateCompanyAccess = useRolePermission('company', 'update');\r\n const deleteCompanyAccess = useRolePermission('company', 'delete');\r\n\r\n React.useEffect(() => {\r\n setHoverData(data);\r\n });\r\n\r\n const clickHandler = (haveAccess, actionFn) => {\r\n if (haveAccess) actionFn();\r\n };\r\n\r\n return (\r\n <tr className=\"flex w-full\">\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <VisibilityIcon\r\n color={viewDepartmentAccess ? 'primary' : 'disabled'}\r\n size=\"small\"\r\n className={\r\n viewDepartmentAccess\r\n ? 'cursor-pointer text-base mt-1.5'\r\n : 'cursor-no-drop text-base mt-1.5'\r\n }\r\n onClick={() => clickHandler(viewDepartmentAccess, viewDepartmentHandler)}\r\n />,\r\n VIEW_DEPARTMENTS\r\n )}\r\n </Box>\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <GroupIcon\r\n color=\"primary\"\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={viewUserHandler}\r\n />,\r\n VIEW_USERS\r\n )}\r\n </Box>\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <EditIcon\r\n color={updateCompanyAccess ? 'primary' : 'disabled'}\r\n size=\"small\"\r\n className={\r\n updateCompanyAccess\r\n ? 'cursor-pointer text-base mt-1.5'\r\n : 'cursor-no-drop text-base mt-1.5'\r\n }\r\n onClick={() => clickHandler(updateCompanyAccess, editClickHandler)}\r\n />,\r\n EDIT\r\n )}\r\n </Box>\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <DeleteIcon\r\n color={deleteCompanyAccess ? 'primary' : 'disabled'}\r\n size=\"small\"\r\n className={\r\n deleteCompanyAccess\r\n ? 'cursor-pointer text-base mt-1.5'\r\n : 'cursor-no-drop text-base mt-1.5'\r\n }\r\n onClick={() => clickHandler(deleteCompanyAccess, deleteClickHandler)}\r\n />,\r\n DELETE\r\n )}\r\n </Box>\r\n </tr>\r\n );\r\n}\r\n\r\nexport default CompanyRowOverlay;\r\n","import React from 'react';\r\nimport {useSelector} from 'react-redux';\r\nimport TextField from '@mui/material/TextField';\r\nimport SimpleSelectDropdown from '../shared/units/SimpleSelectDropdown';\r\nimport {VALIDATION_TEXT, DOMAIN_REGEX, MENU_OPTIONS, DOMAIN_NOT_EDITABLE} from './constant';\r\n\r\nfunction CreateEditCompanyForm(props) {\r\n const {companyData, setCompanyData, formView = 'create'} = props;\r\n const companyStoreData = useSelector((state) => state?.companyList);\r\n\r\n const handleFieldChange = (enterValue, key, eventType = '') => {\r\n let currentCompany = companyStoreData?.response?.data?.companyList.rows;\r\n if (currentCompany.length > 0 && Object.keys(companyData).length > 0) {\r\n currentCompany = currentCompany.find((c) => c._id === companyData?._id?.value);\r\n }\r\n let isError = enterValue === '' || enterValue === null;\r\n let errorMsg = (isError && VALIDATION_TEXT[key.toUpperCase()].EMPTY) || '';\r\n const createDuplicateCondition = formView === 'create';\r\n const editDuplicateCondition = formView === 'edit';\r\n if (key === 'domain' && !isError && !DOMAIN_REGEX.test(enterValue)) {\r\n isError = true;\r\n errorMsg = VALIDATION_TEXT.DOMAIN.WRONG;\r\n }\r\n if (createDuplicateCondition || editDuplicateCondition) {\r\n setCompanyData((data) => ({\r\n ...data,\r\n [key]: {\r\n value: enterValue?.trim(),\r\n error: isError,\r\n errorMsg,\r\n },\r\n }));\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"company-name\">Name</label>\r\n </div>\r\n <TextField\r\n id=\"company-name\"\r\n data-testid=\"company-name\"\r\n className=\"h-[54px] mb-2.5\"\r\n defaultValue={companyData?.name?.value}\r\n onChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'name');\r\n }}\r\n required\r\n error={companyData?.name?.error}\r\n helperText={companyData?.name?.error && companyData?.name?.errorMsg}\r\n />\r\n </div>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"company-domain\">Domain</label>\r\n </div>\r\n <TextField\r\n required\r\n id=\"company-domain\"\r\n data-testid=\"company-domain\"\r\n className=\"h-[54px] mb-2.5\"\r\n defaultValue={companyData?.domain?.value}\r\n onChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'domain');\r\n }}\r\n error={companyData?.domain?.error}\r\n helperText={\r\n companyData?.domain?.error ? companyData?.domain?.errorMsg : DOMAIN_NOT_EDITABLE\r\n }\r\n disabled={formView === 'edit'}\r\n />\r\n </div>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-select\">Status</label>\r\n </div>\r\n <SimpleSelectDropdown\r\n id=\"global-simple-select\"\r\n handleChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'status');\r\n }}\r\n selectedValue={companyData?.status?.value}\r\n menuOptions={MENU_OPTIONS}\r\n required\r\n hasError={companyData?.status?.error}\r\n helperText={companyData?.status?.error && companyData?.status?.errorMsg}\r\n />\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default CreateEditCompanyForm;\r\n","/* eslint-disable no-case-declarations */\r\nimport {put, call} from 'redux-saga/effects';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport client from '../modules/shared/service/axiosInstance';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const COMPANY_LIST = 'COMPANY_LIST';\r\nexport const COMPANY_LIST_PENDING = 'COMPANY_LIST_PENDING';\r\nexport const COMPANY_LIST_SUCCESS = 'COMPANY_LIST_SUCCESS';\r\nexport const COMPANY_LIST_ERROR = 'COMPANY_LIST_ERROR';\r\nexport const COMPANY_LIST_CURRENT_PAGE = 'COMPANY_LIST_CURRENT_PAGE';\r\nexport const COMPANY_LIST_CURRENT_PAGE_SUCCESS = 'COMPANY_LIST_CURRENT_PAGE_SUCCESS';\r\nexport const COMPANY_LIST_REMOVE_RECORD = 'COMPANY_LIST_REMOVE_RECORD';\r\nexport const COMPANY_LIST_ADD_RECORD = 'COMPANY_LIST_ADD_RECORD';\r\nexport const COMPANY_LIST_UPDATE_RECORD = 'COMPANY_LIST_UPDATE_RECORD';\r\n\r\n// Initial State\r\nconst companyListInitialState = {\r\n response: {\r\n data: null,\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const fetchCompanyList = (data) => ({\r\n type: COMPANY_LIST,\r\n data,\r\n});\r\nexport const isCompanyListPending = (isPending) => ({\r\n type: COMPANY_LIST_PENDING,\r\n isPending,\r\n});\r\nexport const companyTableCurrentPage = (pageNumber) => ({\r\n type: COMPANY_LIST_CURRENT_PAGE,\r\n pageNumber,\r\n});\r\nexport const removeCompanyListRecord = (recordId) => ({\r\n type: COMPANY_LIST_REMOVE_RECORD,\r\n recordId,\r\n});\r\nexport const addNewCompanyToList = (companyData) => ({\r\n type: COMPANY_LIST_ADD_RECORD,\r\n companyData,\r\n});\r\nexport const updateCompanyToList = (updatedCompanyRecord, companyTablePage) => ({\r\n type: COMPANY_LIST_UPDATE_RECORD,\r\n updatedCompanyRecord,\r\n companyTablePage,\r\n});\r\n\r\n// Service\r\nexport const companyListService = ({data}) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/company/list`;\r\n\r\n return client({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n params: data,\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* companyListSaga(payload) {\r\n let resStatus = null;\r\n try {\r\n yield put(isCompanyListPending(true));\r\n const response = yield call(companyListService, payload);\r\n resStatus = response?.response;\r\n response.type = COMPANY_LIST_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(COMPANY_LIST_SUCCESS, response));\r\n yield put(isCompanyListPending(false));\r\n } catch (error) {\r\n if (resStatus.status === 403) {\r\n yield put(responseSuccessOrFailureAction(COMPANY_LIST_ERROR));\r\n notify(resStatus.data.message, {type: 'error'});\r\n } else {\r\n yield put(responseSuccessOrFailureAction(COMPANY_LIST_ERROR));\r\n notify('No Company Exists!', {type: 'error'});\r\n }\r\n }\r\n}\r\n\r\nexport function* companyTableCurrentPageSaga(payload) {\r\n try {\r\n yield put(responseSuccessOrFailureAction(COMPANY_LIST_CURRENT_PAGE_SUCCESS, payload));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(COMPANY_LIST_ERROR));\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function companyList(state = companyListInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case COMPANY_LIST_SUCCESS:\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n data: {\r\n ...state.response.data,\r\n companyList: {\r\n ...response?.data?.companyList,\r\n totalCount: Math.ceil(response.data.companyList.count / 10) - 1,\r\n },\r\n },\r\n },\r\n isPending: false,\r\n };\r\n case COMPANY_LIST_ERROR:\r\n return {...state, response, isPending: false};\r\n case COMPANY_LIST_PENDING:\r\n return {...state, isPending: action.isPending};\r\n case COMPANY_LIST_CURRENT_PAGE_SUCCESS:\r\n return {...state, pageNumber: action.data.pageNumber};\r\n case COMPANY_LIST_REMOVE_RECORD:\r\n // eslint-disable-next-line no-case-declarations\r\n const list = state?.response?.data?.companyList.rows.filter(\r\n (record) => record._id !== action.recordId\r\n );\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n data: {\r\n ...state.response.data,\r\n companyList: {\r\n ...state.response.data.companyList,\r\n count: state.response.data.companyList.count - 1,\r\n rows: list,\r\n },\r\n },\r\n },\r\n };\r\n case COMPANY_LIST_ADD_RECORD:\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n data: {\r\n ...state.response.data,\r\n companyList: {\r\n ...state.response.data.companyList,\r\n rows: [...state.response.data.companyList.rows, action.companyData],\r\n },\r\n },\r\n },\r\n };\r\n case COMPANY_LIST_UPDATE_RECORD:\r\n const {\r\n name = '',\r\n domain = '',\r\n status = '',\r\n createdBy = '',\r\n id,\r\n } = action?.updatedCompanyRecord || {};\r\n const updatedRecordIndex = state?.response?.data?.companyList.rows.findIndex(\r\n (singleRec) => singleRec._id === action?.updatedCompanyRecord?.id\r\n );\r\n const arr = state?.response?.data?.companyList.rows;\r\n arr.splice(updatedRecordIndex, 1);\r\n arr.unshift({\r\n ...arr[updatedRecordIndex],\r\n name,\r\n domain,\r\n status,\r\n createdBy,\r\n _id: id,\r\n });\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n data: {\r\n ...state.response.data,\r\n companyList: {\r\n ...state.response.data.companyList,\r\n rows: [...state.response.data.companyList.rows],\r\n },\r\n },\r\n },\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {getToastType} from '../modules/shared/utils/helper';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\nimport {companyTableCurrentPage, fetchCompanyList} from './companyListDuck';\r\n\r\n// ActionTypes\r\nexport const DELETE_COMPANY = 'DELETE_COMPANY';\r\nexport const DELETE_COMPANY_PENDING = 'DELETE_COMPANY_PENDING';\r\nexport const DELETE_COMPANY_SUCCESS = 'DELETE_COMPANY_SUCCESS';\r\nexport const DELETE_COMPANY_ERROR = 'DELETE_COMPANY_ERROR';\r\n\r\n// Initial State\r\nconst deleteCompanyInitialState = {\r\n response: {\r\n data: null,\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const deleteCompanyAction = (\r\n data,\r\n recordDetail,\r\n existingCompanies,\r\n companyTablePage,\r\n totalPages\r\n) => ({\r\n type: DELETE_COMPANY,\r\n data,\r\n recordDetail,\r\n existingCompanies,\r\n companyTablePage,\r\n totalPages,\r\n});\r\nexport const isDeleteCompanyPending = (isPending) => ({\r\n type: DELETE_COMPANY_PENDING,\r\n isPending,\r\n});\r\n\r\n// Services\r\nexport const deleteCompanyService = (data) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/company/`;\r\n const params = data.data.id;\r\n return axios({\r\n method: 'delete',\r\n url: API_ENDPOINT + params,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* deleteCompanySaga(payload) {\r\n try {\r\n const {existingCompanies, companyTablePage} = payload;\r\n yield put(isDeleteCompanyPending(true));\r\n const response = yield call(deleteCompanyService, payload);\r\n if (response.status === 202) {\r\n const pageNumber =\r\n existingCompanies?.rows?.length === 1 ? companyTablePage - 1 : companyTablePage;\r\n yield put(fetchCompanyList({page: pageNumber, limit: 10}));\r\n yield put(companyTableCurrentPage(pageNumber));\r\n }\r\n\r\n response.type = DELETE_COMPANY_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(DELETE_COMPANY_SUCCESS, response));\r\n yield put(isDeleteCompanyPending(false));\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n } catch (error) {\r\n yield put(\r\n responseSuccessOrFailureAction(DELETE_COMPANY_ERROR, {message: 'Something Went Wrong.'})\r\n );\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function deleteCompany(state = deleteCompanyInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case DELETE_COMPANY_SUCCESS:\r\n return {...state, response, isPending: false};\r\n case DELETE_COMPANY_ERROR:\r\n return {...state, response, isPending: false};\r\n case DELETE_COMPANY_PENDING:\r\n return {...state, isPending: action.isPending};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {getToastType} from '../modules/shared/utils/helper';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\nimport {updateCompanyToList} from './companyListDuck';\r\n\r\n// Actions\r\nexport const GET_COMPANY_BY_ID = 'GET_COMPANY_BY_ID';\r\nexport const GET_COMPANY_BY_ID_PENDING = 'GET_COMPANY_BY_ID_PENDING';\r\nexport const GET_COMPANY_BY_ID_SUCCESS = 'GET_COMPANY_BY_ID_SUCCESS';\r\nexport const GET_COMPANY_BY_ID_ERROR = 'GET_COMPANY_BY_ID_ERROR';\r\nexport const GET_COMPANY_BY_ID_RESET = 'GET_COMPANY_BY_ID_RESET';\r\nexport const HIDE_MODEL = 'HIDE_MODEL';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n modal: false,\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const GetCompanyById = (data, companyTablePage) => ({\r\n type: GET_COMPANY_BY_ID,\r\n data,\r\n companyTablePage,\r\n});\r\nexport const isGetCompanyByIdPending = (isPending) => ({\r\n type: GET_COMPANY_BY_ID_PENDING,\r\n isPending,\r\n});\r\nexport const resetCompanyIDDetails = (modal) => ({\r\n type: GET_COMPANY_BY_ID_RESET,\r\n data: {modal},\r\n});\r\nexport const hideModelHandler = () => ({\r\n type: HIDE_MODEL,\r\n});\r\n\r\n// Service\r\nexport const getCompanyByIdService = (data) => {\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n const {id, status, name, domain, createdBy} = data?.data;\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/company/${id}`;\r\n // const API_ENDPOINT = 'http://localhost:9000/api/rest/updatecompany/c1';\r\n\r\n return axios({\r\n method: 'put',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: {\r\n name,\r\n domain,\r\n status,\r\n createdBy,\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* getCompanySaga(payload) {\r\n try {\r\n yield put(isGetCompanyByIdPending(true));\r\n const response = yield call(getCompanyByIdService, payload);\r\n response.type = GET_COMPANY_BY_ID_SUCCESS;\r\n if (response.status === 200) {\r\n yield put(updateCompanyToList(payload?.data, payload?.companyTablePage));\r\n yield put(responseSuccessOrFailureAction(GET_COMPANY_BY_ID_SUCCESS, response));\r\n yield put(resetCompanyIDDetails(true));\r\n } else {\r\n yield put(responseSuccessOrFailureAction(GET_COMPANY_BY_ID_ERROR, response));\r\n yield put(resetCompanyIDDetails(false));\r\n }\r\n // yield put(isGetCompanyByIdPending(false));\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(GET_COMPANY_BY_ID_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function getCompany(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case GET_COMPANY_BY_ID_SUCCESS:\r\n return {...state, response, isPending: false, modal: true};\r\n case GET_COMPANY_BY_ID_ERROR:\r\n return {...state, response, isPending: false, modal: false};\r\n case GET_COMPANY_BY_ID_PENDING:\r\n return {...state, isPending: action.isPending};\r\n case HIDE_MODEL:\r\n return {...state, modal: false};\r\n case GET_COMPANY_BY_ID_RESET:\r\n return {\r\n ...initialState,\r\n ...response,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import React from 'react';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport {useNavigate} from 'react-router-dom';\r\nimport Grid from '@mui/material/Grid';\r\nimport Button from '@mui/material/Button';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport axios from 'axios';\r\nimport BasicTable from '../shared/units/BasicTable';\r\nimport DialogBox from '../shared/units/Dialog';\r\nimport CompanyRowOverlay from './CompanyRowOverlay';\r\nimport CreateEditCompanyForm from './CreateEditCompanyForm';\r\nimport TableLoader from '../shared/units/TableLoader';\r\nimport {fetchCompanyList, companyTableCurrentPage} from '../../ducks/companyListDuck';\r\nimport {createTableRowData} from '../shared/utils/helper';\r\nimport ConfirmationBox from '../shared/units/ConfirmationBox';\r\nimport {deleteCompanyAction} from '../../ducks/deleteCompanyDuck';\r\nimport {hideModelHandler} from '../../ducks/getCompanyDuck';\r\nimport notify from '../shared/utils/toast';\r\n\r\nimport {\r\n COMPANY_LIST_DOMAIN,\r\n COMPANY_SUBTITLE_CONTENT,\r\n CREATE_COMPANY,\r\n COLUMNS,\r\n CREATE,\r\n CANCEL,\r\n COMPANY_DIALOG_TITLE_ICON_TOOLTIP,\r\n STATUS,\r\n SAVE,\r\n EDIT_COMPANY,\r\n CONFIRMATION_HEADER_TITLE,\r\n DELETE_COMPANY_MSG,\r\n CONFIRMATION_SECONDARY_BTN_LABEL,\r\n CONFIRMATION_PRIMARY_BTN_LABEL,\r\n EDITED_RECORD_MOVED_MSG,\r\n} from './constant';\r\nimport {COLOR_CODES} from '../../constants';\r\nimport BlockingLoader from '../shared/units/BlockingLoader';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\nimport useAxios from '../shared/hooks/useAxios';\r\nimport {CREATE_COMPANY_ENDPOINT, EDIT_COMPANY_ENDPOINT} from '../../constants/endpoints';\r\n\r\nfunction CompanyList() {\r\n const navigate = useNavigate();\r\n const userinfo = useSelector((state) => state.userinfo);\r\n const deleteCompany = useSelector((state) => state.deleteCompany);\r\n const companyListData = useSelector((state) => state?.companyList?.response?.data?.companyList);\r\n const companyTablePage = useSelector((state) => state?.companyList?.pageNumber);\r\n const isCompanyListPending = useSelector((state) => state?.companyList?.isPending);\r\n const dispatch = useDispatch();\r\n const source = axios.CancelToken.source();\r\n const companyDataInitialValue = {\r\n name: {value: '', error: false, errorMsg: ''},\r\n domain: {value: '', error: false, errorMsg: ''},\r\n status: {value: 'enabled', error: false, errorMsg: ''},\r\n };\r\n\r\n const [tableData, setTableData] = React.useState([]);\r\n const [isDialogOpen, setDialogOpen] = React.useState(false);\r\n const [hasCompanyFormError, companyFormErrorCheck] = React.useState(true);\r\n const [companyData, setCompanyData] = React.useState(companyDataInitialValue);\r\n const [isLoading, setLoading] = React.useState(false);\r\n\r\n const [isEditDialogOpen, setEditDialogOpen] = React.useState(false);\r\n const [isDeleteCompanyCnfrmOpen, setDeleteCompanyCnfrmOpen] = React.useState(false);\r\n const [hasEditCompanyFormError, editCompanyFormErrorCheck] = React.useState(false);\r\n const [editCompanyData, setEditCompanyData] = React.useState(companyDataInitialValue);\r\n const [searchText, setSearchText] = React.useState('');\r\n\r\n const [hoverData, setHoverData] = React.useState(null);\r\n const [showPaginationModal, setPaginationModal] = React.useState(false);\r\n\r\n const companyPermissionCreate = useRolePermission('company', 'create');\r\n const [{loading: isLoadingCompanyCreate}, executeCreateCompany] = useAxios(\r\n {method: 'post'},\r\n {manual: true}\r\n );\r\n const [{loading: isLoadingCompanyEdit}, executeEditCompany] = useAxios(\r\n {method: 'put'},\r\n {manual: true}\r\n );\r\n\r\n const deleteCompanyCancelBtnHandler = () => {\r\n setDeleteCompanyCnfrmOpen(false);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (isLoading) {\r\n setEditDialogOpen(true);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (deleteCompany?.response?.status === 202) {\r\n setDeleteCompanyCnfrmOpen(false);\r\n }\r\n }, [deleteCompany]);\r\n\r\n const deleteCompanyConfirmBtnHandler = () => {\r\n dispatch(\r\n deleteCompanyAction(\r\n {id: hoverData?._id?.value},\r\n hoverData,\r\n companyListData,\r\n companyTablePage,\r\n companyListData?.totalCount\r\n )\r\n );\r\n };\r\n\r\n const editClickHandler = () => {\r\n setEditDialogOpen(true);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (isEditDialogOpen) {\r\n let dataToBeEdited = {...hoverData};\r\n Object.keys(dataToBeEdited).forEach((key) => {\r\n dataToBeEdited = {\r\n ...dataToBeEdited,\r\n [key]: {\r\n value: dataToBeEdited[key].value,\r\n error: false,\r\n errorMsg: '',\r\n },\r\n };\r\n });\r\n setEditCompanyData(dataToBeEdited);\r\n }\r\n }, [isEditDialogOpen]);\r\n\r\n const deleteClickHandler = () => {\r\n setDeleteCompanyCnfrmOpen(true);\r\n };\r\n\r\n React.useEffect(() => {\r\n let isError = false;\r\n // eslint-disable-next-line array-callback-return\r\n Object.keys(editCompanyData).every((key) => {\r\n isError =\r\n editCompanyData[key]?.value === null ||\r\n editCompanyData[key]?.value === '' ||\r\n editCompanyData[key]?.error;\r\n if (isError) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n editCompanyFormErrorCheck(isError);\r\n }, [editCompanyData]);\r\n\r\n const getFieldDataResponse = (field, state, serverErrors) => {\r\n const errorField = serverErrors.find((e) => e?.field === field);\r\n const isError = errorField === undefined;\r\n return {\r\n value: state[field]?.value,\r\n error: !isError,\r\n errorMsg: !isError ? errorField.message : '',\r\n };\r\n };\r\n\r\n const editPrimaryBtnHandler = () => {\r\n let payload = {\r\n createdBy: userinfo.id,\r\n id: hoverData?._id?.value,\r\n };\r\n Object.keys(editCompanyData).forEach((key) => {\r\n payload = {\r\n ...payload,\r\n [key]: editCompanyData[key]?.value,\r\n };\r\n });\r\n\r\n executeEditCompany({\r\n url: `${EDIT_COMPANY_ENDPOINT}/${payload.id}`,\r\n data: {\r\n createdBy: payload.createdBy,\r\n domain: payload.domain,\r\n name: payload.name,\r\n status: payload.status,\r\n },\r\n }).then((response) => {\r\n if (response?.status === 200) {\r\n if (companyTablePage === 1) {\r\n dispatch(fetchCompanyList({page: 1, limit: 10, search: searchText}));\r\n dispatch(hideModelHandler());\r\n }\r\n notify(response?.data?.message, {type: 'success'});\r\n setEditDialogOpen(false);\r\n setPaginationModal(true);\r\n } else if (\r\n response !== undefined &&\r\n Object.keys(response).length > 0 &&\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n 'status' in response &&\r\n response?.status !== ''\r\n ) {\r\n const serverErrors = response?.data?.errors;\r\n setPaginationModal(false);\r\n\r\n if (serverErrors) {\r\n setEditCompanyData((prevState) => ({\r\n ...prevState,\r\n name: getFieldDataResponse('name', prevState, serverErrors),\r\n domain: getFieldDataResponse('domain', prevState, serverErrors),\r\n }));\r\n }\r\n }\r\n });\r\n };\r\n\r\n const editSecondaryBtnHandler = () => {\r\n setEditDialogOpen(false);\r\n };\r\n\r\n const editRecordNoConfirmationHandler = () => {\r\n setPaginationModal(false);\r\n };\r\n\r\n const editRecordYesConfirmationHandler = () => {\r\n dispatch(fetchCompanyList({page: 1, limit: 10, search: searchText}));\r\n setPaginationModal(false);\r\n dispatch(companyTableCurrentPage(1));\r\n };\r\n\r\n React.useEffect(() => {\r\n dispatch(fetchCompanyList({page: 1, limit: 10, search: searchText}));\r\n dispatch(companyTableCurrentPage(1));\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const flag = isLoadingCompanyCreate || isLoadingCompanyEdit || deleteCompany.isPending;\r\n if (flag) {\r\n setLoading(true);\r\n } else {\r\n setLoading(false);\r\n }\r\n }, [isLoadingCompanyCreate, isLoadingCompanyEdit, deleteCompany]);\r\n\r\n React.useEffect(() => {\r\n if (companyListData?.rows !== undefined) {\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n const copyCompanyList = [...companyListData?.rows];\r\n const result = copyCompanyList.map((company) => createTableRowData(company, COLUMNS));\r\n setTableData(result);\r\n }\r\n }, [companyListData?.rows]);\r\n\r\n const handleRedirection = (url) => {\r\n navigate(url, {replace: true});\r\n };\r\n\r\n const viewDepartmentHandler = () => {\r\n handleRedirection(`/company/${hoverData?._id?.value}/department`);\r\n };\r\n\r\n const viewUserHandler = () => {\r\n handleRedirection(`/company/${hoverData?._id?.value}/users`);\r\n };\r\n\r\n React.useEffect(() => {\r\n let isError = false;\r\n // eslint-disable-next-line array-callback-return\r\n Object.keys(companyData).every((key) => {\r\n isError =\r\n companyData[key]?.value === null ||\r\n companyData[key]?.value === '' ||\r\n companyData[key]?.error;\r\n if (isError) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n companyFormErrorCheck(isError);\r\n }, [companyData]);\r\n\r\n const updateTableCurrentPage = (page) => {\r\n dispatch(fetchCompanyList({page, limit: 10, search: searchText}));\r\n dispatch(companyTableCurrentPage(page));\r\n };\r\n\r\n const openCompanyCreateDialog = () => {\r\n setDialogOpen(!isDialogOpen);\r\n };\r\n\r\n const creteCompanyBtnHandler = () => {\r\n let obj = {};\r\n let payload = {\r\n createdBy: userinfo.id,\r\n };\r\n let isError = false;\r\n Object.keys(companyData).forEach((key) => {\r\n isError = companyData[key]?.value === null || companyData[key]?.value === '';\r\n obj = {\r\n ...obj,\r\n [key]: {\r\n value: companyData[key]?.value,\r\n error: isError,\r\n },\r\n };\r\n payload = {\r\n ...payload,\r\n [key]: companyData[key]?.value,\r\n };\r\n });\r\n if (!isError) {\r\n // dispatch(createCompanyAction(payload));\r\n executeCreateCompany({\r\n url: `${CREATE_COMPANY_ENDPOINT}`,\r\n data: payload,\r\n }).then((response) => {\r\n if (response?.status === 201) {\r\n setCompanyData(companyDataInitialValue);\r\n dispatch(fetchCompanyList({page: 0, limit: 10, search: searchText}));\r\n setDialogOpen(false);\r\n notify(response?.data?.message, {type: 'success'});\r\n } else if (\r\n response !== undefined &&\r\n Object.keys(response).length > 0 &&\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n 'status' in response &&\r\n response?.status !== ''\r\n ) {\r\n const serverErrors = response?.data?.errors;\r\n if (serverErrors) {\r\n setCompanyData((prevState) => ({\r\n ...prevState,\r\n name: getFieldDataResponse('name', prevState, serverErrors),\r\n domain: getFieldDataResponse('domain', prevState, serverErrors),\r\n }));\r\n }\r\n }\r\n });\r\n } else {\r\n setCompanyData(obj);\r\n }\r\n };\r\n\r\n const cancelCreateBtnHandler = () => {\r\n setCompanyData(companyDataInitialValue);\r\n openCompanyCreateDialog();\r\n };\r\n\r\n const handleSortCall = (order, sortBy) => {\r\n dispatch(\r\n fetchCompanyList({page: companyTablePage - 1, limit: 10, order, sortBy, search: searchText})\r\n );\r\n };\r\n\r\n return (\r\n <Grid item size={{xs: 12}}>\r\n <BlockingLoader open={isLoading} />\r\n\r\n <Grid item className=\"flex flex-row p-[15px] pb-0\">\r\n <Grid className={`NunitoSansBold text-sm text-[${COLOR_CODES.headingTitle3}]`}>\r\n {COMPANY_LIST_DOMAIN}\r\n </Grid>\r\n <Grid className=\"ml-auto\">\r\n <Grid className=\"flex flex-row mt-5\">\r\n <div className=\"w-52 h-8 sm:w-80 sm:h-8 rounded bg-slate-100 font-sans text-sm text-search-text mr-2 mt-0.5 flex\">\r\n <span className=\"rounded px-2 py-1 w-4 h-4 pr-7 bg-inherit\">\r\n <SearchIcon />\r\n </span>\r\n <input\r\n className=\"w-full bg-inherit border-none outline-none rounded\"\r\n type=\"text\"\r\n placeholder=\"Search by Company name or domain\"\r\n value={searchText}\r\n onChange={(e) => {\r\n setSearchText(e.target.value);\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n dispatch(\r\n fetchCompanyList({\r\n page: companyTablePage - 1,\r\n limit: 10,\r\n search: searchText,\r\n })\r\n );\r\n }\r\n }}\r\n />\r\n </div>\r\n {companyPermissionCreate && (\r\n <Button\r\n data-testId=\"creat-company-button\"\r\n className=\"h-9 rounded text-[13px] p-0 font-NunitoSansSemibold w-[133px]\"\r\n onClick={openCompanyCreateDialog}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n >\r\n {CREATE_COMPANY}\r\n </Button>\r\n )}\r\n </Grid>\r\n <DialogBox\r\n open={isDialogOpen}\r\n primaryBtnLabel={CREATE}\r\n primaryBtnHandler={creteCompanyBtnHandler}\r\n secondaryBtnHandler={cancelCreateBtnHandler}\r\n secondaryBtnLabel={CANCEL}\r\n bodyContent={\r\n <CreateEditCompanyForm\r\n companyData={companyData}\r\n setCompanyData={setCompanyData}\r\n source={source}\r\n />\r\n }\r\n dialogTitle={CREATE_COMPANY}\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n showCloseIcon={false}\r\n primaryBtnId=\"primaryBtn\"\r\n secondaryBtnId=\"secondaryBtn\"\r\n isDialogTitleIconVisible\r\n dialogTitleIcon={\r\n <Tooltip title={COMPANY_DIALOG_TITLE_ICON_TOOLTIP} placement=\"right-start\">\r\n <InfoIcon color=\"disabled\" className=\"global-mockscreen-info-icon\" />\r\n </Tooltip>\r\n }\r\n isSubtitleVisible\r\n SubtitleContent={COMPANY_SUBTITLE_CONTENT}\r\n isPrimaryBtnDisabled={hasCompanyFormError}\r\n />\r\n <DialogBox\r\n open={isEditDialogOpen}\r\n primaryBtnLabel={SAVE}\r\n primaryBtnHandler={editPrimaryBtnHandler}\r\n secondaryBtnHandler={editSecondaryBtnHandler}\r\n secondaryBtnLabel={CANCEL}\r\n bodyContent={\r\n <CreateEditCompanyForm\r\n companyData={editCompanyData}\r\n setCompanyData={setEditCompanyData}\r\n editCompanyFormErrorCheck={editCompanyFormErrorCheck}\r\n formView=\"edit\"\r\n />\r\n }\r\n dialogTitle={EDIT_COMPANY}\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n showCloseIcon={false}\r\n primaryBtnId=\"editPrimaryBtn\"\r\n secondaryBtnId=\"editSecondaryBtn\"\r\n isDialogTitleIconVisible\r\n dialogTitleIcon={\r\n <Tooltip title={COMPANY_DIALOG_TITLE_ICON_TOOLTIP} placement=\"right-start\">\r\n <InfoIcon color=\"disabled\" className=\"global-mockscreen-info-icon\" />\r\n </Tooltip>\r\n }\r\n isSubtitleVisible\r\n SubtitleContent={COMPANY_SUBTITLE_CONTENT}\r\n isPrimaryBtnDisabled={hasEditCompanyFormError}\r\n />\r\n <ConfirmationBox\r\n open={showPaginationModal}\r\n headerContent={CONFIRMATION_HEADER_TITLE}\r\n secondaryBtnLabel={CONFIRMATION_SECONDARY_BTN_LABEL}\r\n secondaryBtnHandler={editRecordNoConfirmationHandler}\r\n primaryBtnLabel={CONFIRMATION_PRIMARY_BTN_LABEL}\r\n primaryBtnHandler={editRecordYesConfirmationHandler}\r\n bodyContent={EDITED_RECORD_MOVED_MSG}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n />\r\n <ConfirmationBox\r\n open={isDeleteCompanyCnfrmOpen}\r\n showLoader={deleteCompany?.isPending}\r\n headerContent={CONFIRMATION_HEADER_TITLE}\r\n secondaryBtnLabel={CONFIRMATION_SECONDARY_BTN_LABEL}\r\n secondaryBtnHandler={deleteCompanyCancelBtnHandler}\r\n primaryBtnLabel={CONFIRMATION_PRIMARY_BTN_LABEL}\r\n primaryBtnHandler={deleteCompanyConfirmBtnHandler}\r\n bodyContent={`Company ${hoverData?.name?.value} ${DELETE_COMPANY_MSG}`}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnId=\"cancelDeleteCompany\"\r\n primaryBtnId=\"deleteCompany\"\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid item size={{xs: 12}} className=\"pl-[15px] pr-[30px]\">\r\n <BasicTable\r\n handleSortCall={handleSortCall}\r\n columns={COLUMNS}\r\n tableData={tableData}\r\n // eslint-disable-next-line react/no-unstable-nested-components\r\n onHoverContent={(data) => (\r\n <CompanyRowOverlay\r\n data={data}\r\n setHoverData={setHoverData}\r\n editClickHandler={editClickHandler}\r\n deleteClickHandler={deleteClickHandler}\r\n viewDepartmentHandler={viewDepartmentHandler}\r\n viewUserHandler={viewUserHandler}\r\n />\r\n )}\r\n showPagination={companyListData?.count > 10}\r\n totalRecords={companyListData?.count}\r\n sortByColumn={STATUS}\r\n defaultPage={companyTablePage}\r\n getPageNumber={updateTableCurrentPage}\r\n defaultSortOrder=\"asc\"\r\n cellClassName=\"global-table-body-cell NunitoSansSemibold\"\r\n headerCellClass=\"global-table-header-cell NunitoSansRegular\"\r\n hoverClassName=\"bg-white h-14 w-40 p-2 absolute right-3\"\r\n tableWrapperClassName=\"shadow-none\"\r\n showLoader={isCompanyListPending}\r\n loaderComponent={<TableLoader rowsNum={10} colsNum={4} />}\r\n />\r\n </Grid>\r\n </Grid>\r\n );\r\n}\r\n\r\nexport default CompanyList;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useLocation, Link as RouterLink} from 'react-router-dom';\r\nimport {Breadcrumbs, Typography, Link} from '@mui/material';\r\nimport NavigateNextIcon from '@mui/icons-material/NavigateNext';\r\nimport axios from '../service/axiosInstance';\r\n\r\nexport default function Breadcrumb() {\r\n const [pathList, setPathList] = useState([]);\r\n\r\n const location = useLocation();\r\n const pathnames = location?.pathname.split('/').filter((x) => x);\r\n\r\n const toTitleCase = (str) => {\r\n const plural = str === 'department' || str === 'project' ? '(s)' : '';\r\n return str.replace(\r\n /\\b\\w+/g,\r\n (s) => s.charAt(0).toUpperCase() + s.substr(1).toLowerCase() + plural\r\n );\r\n };\r\n\r\n const callIdApi = async (id, value) => {\r\n const {API_BASE_URL} = process.env;\r\n const params = {\r\n id,\r\n type: value,\r\n };\r\n const API_ENDPOINT = `${API_BASE_URL}/getHierarchy`;\r\n const response = await axios({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n params,\r\n });\r\n return response.data;\r\n };\r\n\r\n const mapUrl = async () => {\r\n let obj = {};\r\n if (pathnames[3]) {\r\n obj = await callIdApi(pathnames[3], 'department');\r\n } else if (pathnames[1]) {\r\n obj = await callIdApi(pathnames[1], 'company');\r\n }\r\n const pathArray = [];\r\n pathnames.forEach((element, index) => {\r\n const pathObj = {};\r\n pathObj.actualValue = element;\r\n if (index === 1) {\r\n pathObj.displayValue = obj?.companyName;\r\n } else if (index === 3) {\r\n pathObj.displayValue = obj?.departmentName;\r\n } else {\r\n pathObj.displayValue = toTitleCase(element);\r\n }\r\n pathArray.push(pathObj);\r\n });\r\n setPathList(pathArray);\r\n };\r\n\r\n useEffect(() => {\r\n mapUrl();\r\n }, [pathnames.length]);\r\n\r\n return (\r\n <div>\r\n {pathList && (\r\n <Breadcrumbs separator={<NavigateNextIcon fontSize=\"small\" />} aria-label=\"Breadcrumb\">\r\n <Link color=\"inherit\" component={RouterLink} to=\"/dashboard\" key=\"dashboard\">\r\n Dashboard\r\n </Link>\r\n {pathList.map((path, index) => {\r\n const last = index === pathList.length - 1;\r\n const to = `/${pathList\r\n .slice(0, index + 1)\r\n .map((v) => v.actualValue)\r\n .join('/')}`;\r\n return last || path.actualValue.includes('-') || path.actualValue === 'DEFAULT' ? (\r\n <Typography color=\"textPrimary\" key={to}>\r\n {path.displayValue}\r\n </Typography>\r\n ) : (\r\n <Link color=\"inherit\" component={RouterLink} to={to} key={to}>\r\n {path.displayValue}\r\n </Link>\r\n );\r\n })}\r\n </Breadcrumbs>\r\n )}\r\n </div>\r\n );\r\n}\r\n","import React from 'react';\r\nimport Grid from '@mui/material/Grid';\r\nimport {Helmet} from 'react-helmet';\r\nimport CompanyList from './CompanyList';\r\nimport Breadcrumb from '../shared/units/Breadcrumb';\r\nimport {PAGE_TITLE} from './constant';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\n\r\nfunction CompanyDetails() {\r\n const companyPermissionRead = useRolePermission('company', 'read');\r\n return (\r\n <>\r\n <Helmet>\r\n <title>{PAGE_TITLE}</title>\r\n <meta name=\"description\" content=\"CompanyDetails - iRest\" />\r\n </Helmet>\r\n <div id=\"companydetail\">\r\n <Grid className=\"shadow-lg bg-[#FFF] px-[15px] py-[10px]\">\r\n <Breadcrumb />\r\n </Grid>\r\n <Grid container className=\"m-0\">\r\n {companyPermissionRead && <CompanyList />}\r\n </Grid>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default CompanyDetails;\r\n","/* eslint-disable react/jsx-boolean-value */\r\nimport React from 'react';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline';\r\nimport WorkOffOutlinedIcon from '@mui/icons-material/WorkOffOutlined';\r\nimport WorkOutlineOutlinedIcon from '@mui/icons-material/WorkOutlineOutlined';\r\nimport KeyIcon from '@mui/icons-material/Key';\r\nimport Box from '@mui/material/Box';\r\nimport {useSelector} from 'react-redux';\r\nimport {EDIT, DELETE, ADD_PROJECT, ENABLE, DISABLE, SHOW_PASSWORD} from './constant';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\n\r\nfunction AddTooltipWrapper(iconComponent, title) {\r\n return (\r\n <Tooltip title={title} placement=\"bottom\">\r\n {iconComponent}\r\n </Tooltip>\r\n );\r\n}\r\n\r\nfunction UserTableCellHover(props) {\r\n const {\r\n data,\r\n setHoverData,\r\n editClickHandler,\r\n deleteClickHandler,\r\n addProjectHandler,\r\n enableHandler,\r\n disableHandler,\r\n generatePassword,\r\n } = props;\r\n\r\n const canEdit = useRolePermission('user', 'update', data.role.value);\r\n const userinfo = useSelector((state) => state.userinfo);\r\n const isSelf = userinfo.id === data._id?.value;\r\n\r\n React.useEffect(() => {\r\n setHoverData(data);\r\n }, []);\r\n return canEdit || isSelf ? (\r\n <tr className=\"flex w-full\">\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <EditIcon\r\n color={isSelf ? 'disabled' : 'primary'}\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={isSelf ? () => {} : editClickHandler}\r\n />,\r\n EDIT\r\n )}\r\n </Box>\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <DeleteIcon\r\n color={isSelf ? 'disabled' : 'primary'}\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={isSelf ? () => {} : deleteClickHandler}\r\n />,\r\n DELETE\r\n )}\r\n </Box>\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <AddCircleOutlineIcon\r\n color={isSelf ? 'disabled' : 'primary'}\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={isSelf ? () => {} : addProjectHandler}\r\n />,\r\n ADD_PROJECT\r\n )}\r\n </Box>\r\n {data?.status?.id === 'enabled' ? (\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <WorkOffOutlinedIcon\r\n color={isSelf ? 'disabled' : 'primary'}\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={isSelf ? () => {} : disableHandler}\r\n />,\r\n DISABLE\r\n )}\r\n </Box>\r\n ) : (\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <WorkOutlineOutlinedIcon\r\n color={isSelf ? 'disabled' : 'primary'}\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={isSelf ? () => {} : enableHandler}\r\n />,\r\n ENABLE\r\n )}\r\n </Box>\r\n )}\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <KeyIcon\r\n color=\"primary\"\r\n size=\"small\"\r\n className=\"cursor-pointer text-base mt-1.5\"\r\n onClick={generatePassword}\r\n />,\r\n SHOW_PASSWORD\r\n )}\r\n </Box>\r\n </tr>\r\n ) : (\r\n <div className=\"ml-2 mt-2\">{data?.status?.value}</div>\r\n );\r\n}\r\nexport default UserTableCellHover;\r\n","import * as React from 'react';\r\nimport Chip from '@mui/material/Chip';\r\nimport Box from '@mui/material/Box';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport ListItemText from '@mui/material/ListItemText';\r\nimport Select from '@mui/material/Select';\r\nimport Checkbox from '@mui/material/Checkbox';\r\n\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\n\r\nexport default function MultipleSelectCheckmarks(props) {\r\n const {options, onChangeLabel, selected, disabled} = props;\r\n\r\n const getIndex = (id) => options.findIndex((option) => option.id === id);\r\n return (\r\n <div>\r\n <FormControl className=\"w-full select-wrapper\">\r\n <Select\r\n className=\"select-multi-dropdown simpleSelect multi-select-dropdown\"\r\n id=\"demo-multiple-checkbox\"\r\n multiple\r\n value={selected}\r\n onChange={(e) => onChangeLabel(e)}\r\n IconComponent={ExpandMoreIcon}\r\n renderValue={(selectedVal) => (\r\n <Box className=\"flex flex-wrap gap-1.5\">\r\n {selectedVal.map(\r\n (value, index) =>\r\n index < 2 && (\r\n <Chip\r\n key={value}\r\n label={options[getIndex(value)]?.value}\r\n className=\"multiselect-chip border-[#476BC3]\"\r\n variant=\"outlined\"\r\n />\r\n )\r\n )}\r\n {selectedVal.length > 2 && (\r\n <span className=\"more-selected-element\">{selectedVal.length - 2} more</span>\r\n )}\r\n </Box>\r\n )}\r\n MenuProps={MenuProps}\r\n disabled={disabled}\r\n >\r\n {options.map((name) => (\r\n <MenuItem key={name.id} value={name.id} className=\"global-simpleselect-option-layout\">\r\n <Checkbox checked={selected?.indexOf(name.id) > -1} />\r\n <ListItemText primary={name.value} />\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </div>\r\n );\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport useAxios from 'axios-hooks';\r\nimport {useParams, useLocation} from 'react-router-dom';\r\nimport {useSelector} from 'react-redux';\r\nimport TextField from '@mui/material/TextField';\r\nimport SimpleSelectDropdown from '../shared/units/SimpleSelectDropdown';\r\nimport MultiSelectDropdown from '../shared/units/MultiSelectDropDownForModal';\r\nimport {EMAIL_REGEX, VALIDATION_TEXT} from './constant';\r\nimport {ROLES} from '../../constants/index';\r\nimport {DEPARTMENT_LIST_API_ENDPOINT} from '../../constants/endpoints';\r\nimport notify from '../shared/utils/toast';\r\n\r\nfunction CreateEditUserForm(props) {\r\n const {userData, setUserData, companyOptions, roleOptions, formView = 'create'} = props;\r\n const [companyName, setCompanyName] = useState(null);\r\n const {companyId} = useParams();\r\n const location = useLocation();\r\n const [{isLoading}, fetchDepartments] = useAxios(\r\n {\r\n url: `${DEPARTMENT_LIST_API_ENDPOINT}?companyId=${companyId}`,\r\n method: 'get',\r\n },\r\n {\r\n manual: true,\r\n }\r\n );\r\n const userStoreData = useSelector((state) => state?.userList);\r\n const [companyNameObject, setCompanyNameObject] = useState({});\r\n const [departmentList, setDepartmentList] = useState([]);\r\n\r\n const handleFieldChange = (enterValue, key, eventType = '') => {\r\n let currentUser = userStoreData?.response?.data?.userList.rows;\r\n let companyIdVal;\r\n if (currentUser?.length > 0 && Object.keys(userData).length > 0) {\r\n currentUser = currentUser.find((c) => c._id === userData?._id?.value);\r\n }\r\n let isError = enterValue === '' || enterValue === null;\r\n let errorMsg = (isError && VALIDATION_TEXT[key.toUpperCase()].EMPTY) || '';\r\n const createDuplicateCondition = formView === 'create';\r\n const editDuplicateCondition = formView === 'edit';\r\n\r\n if (key === 'email' && !isError && !EMAIL_REGEX.test(enterValue)) {\r\n isError = true;\r\n errorMsg = VALIDATION_TEXT.EMAIL.WRONG;\r\n }\r\n\r\n if (key === 'company') {\r\n companyIdVal = Object.keys(companyOptions).find((obj) => companyOptions[obj] === enterValue);\r\n }\r\n\r\n // Clear other roles if subuser is selected\r\n if (key === 'roleId' && enterValue?.length > 1) {\r\n const lastSelectedRole = enterValue[enterValue.length - 1];\r\n enterValue.splice(0, enterValue.length);\r\n enterValue.push(lastSelectedRole);\r\n }\r\n\r\n // Clear departments if selected role is subuser\r\n if (key === 'roleId' && enterValue?.length === 1 && enterValue?.includes(ROLES.SUB_USER)) {\r\n setUserData((data) => ({\r\n ...data,\r\n departmentIds: {\r\n value: [],\r\n error: isError,\r\n errorMsg,\r\n },\r\n }));\r\n }\r\n\r\n // Set default role if selected role is CA\r\n if (key === 'roleId' && enterValue?.length === 1 && enterValue?.includes(ROLES.COMPANY_ADMIN)) {\r\n setUserData((data) => ({\r\n ...data,\r\n departmentIds: {\r\n value: [departmentList.find((dept) => dept.value === 'Default')?.id],\r\n error: isError,\r\n errorMsg,\r\n },\r\n }));\r\n }\r\n\r\n // If role is subuser, allow only one department\r\n if (\r\n key === 'departmentIds' &&\r\n userData?.roleId?.value.length === 1 &&\r\n userData?.roleId?.value.includes(ROLES.SUB_USER)\r\n ) {\r\n if (enterValue?.length > 1) {\r\n enterValue.splice(0, 1);\r\n }\r\n }\r\n if (createDuplicateCondition || editDuplicateCondition) {\r\n setUserData((data) => ({\r\n ...data,\r\n [key]: {\r\n value: Array.isArray(enterValue) ? enterValue : enterValue?.trim(),\r\n error: isError,\r\n errorMsg,\r\n },\r\n companyId:\r\n key === 'company'\r\n ? {\r\n value: companyIdVal,\r\n error: isError,\r\n errorMsg,\r\n }\r\n : data?.companyId,\r\n ...(key === 'company' && {\r\n email: {\r\n value: data.email.value,\r\n error: false,\r\n errorMsg: '',\r\n },\r\n }),\r\n }));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n handleFieldChange(companyOptions[`${companyId}`], 'company');\r\n fetchDepartments()\r\n .then((response) => {\r\n try {\r\n const mappedData = response.data.departmentList.rows.map((obj) => ({\r\n id: obj._id,\r\n value: obj.name,\r\n }));\r\n setDepartmentList(mappedData);\r\n setCompanyName(response.data.departmentList.company);\r\n } catch (err) {\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n })\r\n .catch((error) => {\r\n if (!isLoading && error?.response?.status === 400) {\r\n if (error?.response?.data?.message) {\r\n notify(error?.response?.data?.message, {type: 'error'});\r\n } else {\r\n notify(error?.response?.data?.errors?.details[0]?.message, {type: 'error'});\r\n }\r\n } else {\r\n notify(error.response?.data?.message, {type: 'error'});\r\n }\r\n });\r\n\r\n if (companyOptions) {\r\n const companyNames = Object.entries(companyOptions).map(([key, value]) => ({[value]: value}));\r\n setCompanyNameObject(Object.assign({}, ...companyNames));\r\n }\r\n }, [companyOptions]);\r\n\r\n return (\r\n <>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"user-name\">Name</label>\r\n </div>\r\n <TextField\r\n id=\"user-name\"\r\n data-testid=\"user-name\"\r\n className=\"h-[54px] mb-1.5\"\r\n defaultValue={userData?.name?.value}\r\n onChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'name');\r\n }}\r\n required\r\n error={userData?.name?.error}\r\n helperText={userData?.name?.error && userData?.name?.errorMsg}\r\n />\r\n </div>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"user-domain\">Mail ID</label>\r\n </div>\r\n <TextField\r\n required\r\n id=\"user-email\"\r\n data-testid=\"user-email\"\r\n className=\"h-[54px] mb-2\"\r\n defaultValue={userData?.email?.value}\r\n // eslint-disable-next-line prettier/prettier\r\n onChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'email');\r\n }}\r\n disabled={formView === 'edit'}\r\n error={userData?.email?.error}\r\n helperText={userData?.email?.error && userData?.email?.errorMsg}\r\n />\r\n </div>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-selec\">Company</label>\r\n </div>\r\n <SimpleSelectDropdown\r\n id=\"global-simple-select\"\r\n handleChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'company');\r\n }}\r\n selectedValue={companyName}\r\n menuOptions={companyNameObject}\r\n required\r\n hasError={userData?.companyId?.error}\r\n helperText={userData?.companyId?.error && userData?.companyId?.errorMsg}\r\n disabled={formView === 'edit' || !location?.pathname.includes('dashboard')}\r\n />\r\n </div>\r\n <div className=\"mt-6\">\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-selec\">Roles</label>\r\n </div>\r\n <MultiSelectDropdown\r\n className=\"h-[54px] mb-2.5\"\r\n options={roleOptions}\r\n selected={userData?.roleId?.value}\r\n inputLabel=\"Roles\"\r\n onChangeLabel={(e) => {\r\n handleFieldChange(e.target.value, 'roleId');\r\n }}\r\n required\r\n />\r\n </div>\r\n <div className=\"mt-6\">\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-selec\">Department</label>\r\n </div>\r\n <MultiSelectDropdown\r\n className=\"h-[54px] mb-2.5\"\r\n options={departmentList}\r\n selected={userData?.departmentIds?.value}\r\n inputLabel=\"Projects\"\r\n onChangeLabel={(e, selected) => {\r\n handleFieldChange(e.target.value, 'departmentIds');\r\n }}\r\n required\r\n disabled={!userData?.companyId?.value || userData?.roleId?.value?.length === 0}\r\n />\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default CreateEditUserForm;\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {getToastType} from '../modules/shared/utils/helper';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const GET_PROJECT_BY_USER_ID = 'GET_PROJECT_BY_USER_ID';\r\nexport const GET_PROJECT_BY_USER_ID_PENDING = 'GET_PROJECT_BY_USER_ID_PENDING';\r\nexport const GET_PROJECT_BY_USER_ID_SUCCESS = 'GET_PROJECT_BY_USER_ID_SUCCESS';\r\nexport const GET_PROJECT_BY_USER_ID_ERROR = 'GET_PROJECT_BY_USER_ID_ERROR';\r\nexport const GET_PROJECT_BY_USER_ID_RESET = 'GET_PROJECT_BY_USER_ID_RESET';\r\nexport const HIDE_MODEL = 'HIDE_MODEL';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n modal: false,\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const getProjectByUserId = (data) => ({\r\n type: GET_PROJECT_BY_USER_ID,\r\n data,\r\n});\r\nexport const isGetProjectByUserIdPending = (isPending) => ({\r\n type: GET_PROJECT_BY_USER_ID_PENDING,\r\n isPending,\r\n});\r\nexport const hideModelHandler = () => ({\r\n type: HIDE_MODEL,\r\n});\r\n\r\n// Service\r\nexport const getProjectByUserIdService = (data) => {\r\n // eslint-disable-next-line no-unused-vars\r\n const {API_BASE_URL} = process.env;\r\n // const API_ENDPOINT = `${API_BASE_URL}/project/${id}`;\r\n const API_ENDPOINT = 'http://localhost:9000/api/rest/irest/projects/list';\r\n\r\n return axios({\r\n method: 'get',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* getProjectSaga(payload) {\r\n try {\r\n yield put(isGetProjectByUserIdPending(true));\r\n const response = yield call(getProjectByUserIdService, payload);\r\n response.type = GET_PROJECT_BY_USER_ID_SUCCESS;\r\n if (response.status === 200) {\r\n yield put(responseSuccessOrFailureAction(GET_PROJECT_BY_USER_ID_SUCCESS, response));\r\n } else {\r\n yield put(responseSuccessOrFailureAction(GET_PROJECT_BY_USER_ID_ERROR, response));\r\n }\r\n // yield put(isGetProjectByUserIdPending(false));\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(GET_PROJECT_BY_USER_ID_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function getProject(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case GET_PROJECT_BY_USER_ID_SUCCESS:\r\n return {...state, response, isPending: false, modal: true};\r\n case GET_PROJECT_BY_USER_ID_ERROR:\r\n return {...state, response, isPending: false, modal: false};\r\n case GET_PROJECT_BY_USER_ID_PENDING:\r\n return {...state, isPending: action.isPending};\r\n case HIDE_MODEL:\r\n return {...state, modal: false};\r\n case GET_PROJECT_BY_USER_ID_RESET:\r\n return {\r\n ...initialState,\r\n ...response,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import React from 'react';\r\nimport {useSelector, useDispatch} from 'react-redux';\r\nimport TextField from '@mui/material/TextField';\r\nimport MultiSelectDropdown from '../shared/units/MultiSelectDropDownForModal';\r\nimport {getProjectByUserId} from '../../ducks/getProjectsForUser';\r\n\r\nfunction AddEditProjectsForUsers(props) {\r\n // eslint-disable-next-line no-unused-vars\r\n const {userData, setUserData, projectList} = props;\r\n const dispatch = useDispatch();\r\n // eslint-disable-next-line no-unused-vars\r\n const selectedProjectList = useSelector((state) => state);\r\n\r\n React.useEffect(() => {\r\n dispatch(getProjectByUserId());\r\n }, []);\r\n const onChangeHandler = (event) => {\r\n const {\r\n target: {value},\r\n } = event;\r\n setUserData((prev) => ({\r\n ...prev,\r\n projects: {\r\n value: [...value],\r\n error: false,\r\n errorMsg: '',\r\n },\r\n }));\r\n };\r\n\r\n return (\r\n <>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"user-name\">User Name</label>\r\n </div>\r\n <TextField\r\n id=\"user-name\"\r\n data-testid=\"user-name\"\r\n className=\"h-[54px] mb-2.5\"\r\n defaultValue={userData?.name?.value}\r\n required\r\n disabled\r\n />\r\n </div>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"projects\">Projects</label>\r\n </div>\r\n <MultiSelectDropdown\r\n className=\"h-[54px] mb-2.5\"\r\n options={projectList}\r\n selected={userData?.projects?.value}\r\n inputLabel=\"Projects\"\r\n onChangeLabel={onChangeHandler}\r\n />\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default AddEditProjectsForUsers;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useParams} from 'react-router-dom';\r\nimport axios from 'axios';\r\nimport Grid from '@mui/material/Grid';\r\nimport Button from '@mui/material/Button';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport {useSelector} from 'react-redux';\r\nimport BasicTable from '../shared/units/BasicTable';\r\nimport DialogBox from '../shared/units/Dialog';\r\nimport UserTableCellHover from './UserTableCellHover';\r\nimport CreateEditUserForm from './CreateEditUserForm';\r\nimport TableLoader from '../shared/units/TableLoader';\r\nimport {createTableRowData} from '../shared/utils/helper';\r\nimport ConfirmationBox from '../shared/units/ConfirmationBox';\r\nimport {\r\n USER_LISTING,\r\n USER_SUBTITLE_CONTENT,\r\n CREATE_USER,\r\n COLUMNS,\r\n CREATE,\r\n CANCEL,\r\n DIALOG_TITLE_ICON_TOOLTIP,\r\n NAME,\r\n EDIT,\r\n EDIT_USER,\r\n CONFIRMATION_HEADER_TITLE,\r\n DELETE_USER_MSG,\r\n CONFIRMATION_SECONDARY_BTN_LABEL,\r\n CONFIRMATION_PRIMARY_BTN_LABEL,\r\n EDITED_RECORD_MOVED_MSG,\r\n ADD_PROJECT,\r\n ADD_PROJECT_CONTENT,\r\n COPIED_TO_CLIPBOARD,\r\n ROLE_MAPPING,\r\n ENABLE_DISABLE_USER_MSG,\r\n} from './constant';\r\nimport {COLOR_CODES, DEFAULT_PAGINATION} from '../../constants';\r\nimport AssignProjectsForUser from './AssignProjectsForUser';\r\nimport useAxios from '../shared/hooks/useAxios';\r\nimport API_BASE_URL, {\r\n GENERATE_USER_PASSWORD_API_ENDPOINT,\r\n GET_USER_LIST_API_ENDPOINT,\r\n ASSIGN_PROJECT_API_ENDPOINT,\r\n REGISTER_API_ENDPOINT,\r\n ROLE_LIST_API_ENDPOINT,\r\n COMPLANY_LIST_API_ENDPOINT,\r\n DEPARTMENT_LIST_API_ENDPOINT,\r\n GET_ASSIGNED_PROJECT_ENDPOINT,\r\n ATTRIBUTED_DEPARTMENT_LIST_API_ENDPOINT,\r\n} from '../../constants/endpoints';\r\nimport notify from '../shared/utils/toast';\r\nimport BlockingLoader from '../shared/units/BlockingLoader';\r\n\r\nfunction UserList() {\r\n const {companyId} = useParams();\r\n const userinfo = useSelector((state) => state.userinfo);\r\n const userDataInitialValue = {\r\n name: {value: '', error: false, errorMsg: ''},\r\n email: {value: '', error: false, errorMsg: ''},\r\n roleId: {value: [], error: false, errorMsg: ''},\r\n companyId: {value: '', error: false, errorMsg: ''},\r\n company: {value: '', error: false, errorMsg: ''},\r\n departmentIds: {value: [], error: false, errorMsg: ''},\r\n };\r\n const [tableData, setTableData] = useState([]);\r\n const [hoverData, setHoverData] = useState(null);\r\n const [companyListOptions, setCompanyListOptions] = useState({});\r\n const [roleOptions, setRoleOptions] = useState({});\r\n const [projecListOptions, setProjectListOptions] = useState([]);\r\n const [departmentListOptions, setDepartmentListOptions] = useState([]);\r\n const [order, setOrder] = useState('updatedAt');\r\n const [orderBy, setOrderBy] = useState('desc');\r\n const [pageNo, setPageNo] = useState(1);\r\n const [isCreateUserDialogOpen, setIsCreateUserDialogOpen] = useState(false);\r\n const [isEditUserDialogOpen, setIsEditUserDialogOpen] = useState(false);\r\n const [isProjectAssignFormOpen, SetIsProjectAssignFormOpen] = useState(false);\r\n const [isDeleteUserCnfrmOpen, setDeleteUserCnfrmOpen] = useState(false);\r\n const [hasCreateUserFormError, setCreateUserFormError] = useState(true);\r\n const [hasEditUserFormError, setEditUserFormError] = useState(true);\r\n const [hasAssignProjectFormError, setAssignProjectFormError] = useState(true);\r\n const [createUserFormData, setCreateUserFormData] = useState(userDataInitialValue);\r\n const [editUserFormData, setEditUserFormData] = useState(userDataInitialValue);\r\n const [projectAssignFormData, setProjectAssignFormData] = useState({});\r\n const [assignedProject, setAssignedProject] = useState([]);\r\n const [isEditUserSuceessConfirmationOpen, setIsEditUserSuceessConfirmationOpen] = useState(false);\r\n const [confirmUserEnableDisable, setConfirmUserEnableDisable] = useState(false);\r\n const [searchText, setSearchText] = React.useState('');\r\n\r\n const params = {\r\n order: orderBy,\r\n sortBy: order,\r\n page: pageNo,\r\n limit: DEFAULT_PAGINATION,\r\n companyId,\r\n departments: userinfo?.departments,\r\n };\r\n\r\n const [{data: userList, loading: isLoadingUserList}, refetchUserList] = useAxios(\r\n {\r\n method: 'GET',\r\n url: GET_USER_LIST_API_ENDPOINT,\r\n params,\r\n },\r\n {manual: true}\r\n );\r\n\r\n const [{loading: isLoadingUserStatusChange}, executeToggleUserStatus] = useAxios(\r\n {method: 'PATCH'},\r\n {manual: true}\r\n );\r\n const [{loading: isLoadingAssignedProject}, fetchAssignedProject] = useAxios({method: 'POST'});\r\n\r\n const [{loading: isLoadingGenerateUserPassword}, executeGeneratePassword] = useAxios(\r\n {method: 'post'},\r\n {manual: true}\r\n );\r\n\r\n const [{loading: isLoadingAssignProject}, executeAssignProject] = useAxios(\r\n {method: 'post', url: ASSIGN_PROJECT_API_ENDPOINT},\r\n {manual: true}\r\n );\r\n\r\n const [{loading: isLoadingDeleteUser}, executeDeleteUser] = useAxios(\r\n {method: 'delete'},\r\n {manual: true}\r\n );\r\n\r\n const [{loading: isLoadingCreateUser}, executeCreateUser] = useAxios(\r\n {method: 'post', url: REGISTER_API_ENDPOINT},\r\n {manual: true}\r\n );\r\n\r\n const [{loading: isLoadingEditUser}, executeEditUser] = useAxios({method: 'put'}, {manual: true});\r\n\r\n const [{data: roleListData, loading: isLoadingRoleList}, executeRoleList] = useAxios(\r\n {method: 'get'},\r\n {manual: true}\r\n );\r\n\r\n const [{data: companyListData, loading: isLoadingCompanyList}] = useAxios({\r\n method: 'get',\r\n url: COMPLANY_LIST_API_ENDPOINT,\r\n });\r\n\r\n // eslint-disable-next-line prettier/prettier\r\n const [\r\n {data: departmentListData, loading: isLoadingDepartmentList},\r\n executeUserDepartmentList,\r\n // eslint-disable-next-line prettier/prettier\r\n ] = useAxios({method: 'get', url: DEPARTMENT_LIST_API_ENDPOINT}, {manual: true});\r\n\r\n useEffect(() => {\r\n executeRoleList({\r\n url: ROLE_LIST_API_ENDPOINT,\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (userList) {\r\n const response = userList?.userList?.rows;\r\n const result = response.map((user) => createTableRowData(user, COLUMNS));\r\n // eslint-disable-next-line no-unused-expressions\r\n result.forEach((user) => {\r\n const userData = response.find((obj) => obj.company === user.company.value);\r\n user.companyId = {\r\n id: userData.companyId,\r\n value: userData.company,\r\n };\r\n user.status = {\r\n id: user?.status?.value,\r\n value: user?.status?.value === 'enabled' ? 'Enabled' : 'Disabled',\r\n };\r\n });\r\n setTableData(result);\r\n }\r\n }, [\r\n userList,\r\n companyListOptions, // required in case company list API delayed the response\r\n ]);\r\n\r\n useEffect(() => {\r\n refetchUserList({\r\n params: {\r\n ...params,\r\n page: pageNo > 0 ? pageNo - 1 : 0,\r\n order: orderBy.toUpperCase(),\r\n sortBy: order,\r\n companyId,\r\n search: searchText,\r\n },\r\n });\r\n }, [order, orderBy, pageNo]);\r\n\r\n const handleSortCall = (sortOrder, sortBy) => {\r\n refetchUserList({\r\n params: {\r\n ...params,\r\n page: pageNo > 0 ? pageNo - 1 : 0,\r\n order: sortOrder,\r\n sortBy,\r\n companyId,\r\n search: searchText,\r\n },\r\n });\r\n };\r\n\r\n const getAssignedProject = (departmentIds) => {\r\n fetchAssignedProject({\r\n url: `${GET_ASSIGNED_PROJECT_ENDPOINT}${hoverData?._id?.value}`,\r\n data: {departmentIds},\r\n }).then((response) => {\r\n const departmentProject = response?.data?.departmentProjects?.map((project) => ({\r\n id: project._id,\r\n value: project.projectName,\r\n }));\r\n const assignedProjectVal = response?.data?.projectsList?.map((project) => project._id);\r\n setAssignedProject(assignedProjectVal);\r\n setProjectListOptions(departmentProject);\r\n });\r\n };\r\n\r\n const userStatusHandler = (status) => {\r\n setHoverData({\r\n userStatus: status,\r\n ...hoverData,\r\n });\r\n setConfirmUserEnableDisable(true);\r\n };\r\n\r\n const userStatusHandlerConfirmed = () => {\r\n executeToggleUserStatus({\r\n url: `${API_BASE_URL}/user/${hoverData?.userStatus}/${hoverData?._id?.value}`,\r\n });\r\n refetchUserList({\r\n params: {\r\n ...params,\r\n page: pageNo > 0 ? pageNo - 1 : 0,\r\n search: searchText,\r\n },\r\n })\r\n .then((response) => {\r\n notify(response?.data?.message, {type: 'success'});\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n notify('Something went wrong!', {type: 'error'});\r\n });\r\n };\r\n\r\n const generatePassword = () => {\r\n executeGeneratePassword({\r\n url: `${GENERATE_USER_PASSWORD_API_ENDPOINT}/${hoverData?._id?.value}`,\r\n }).then((response) => {\r\n const textField = document.createElement('textarea');\r\n textField.innerText = response?.data?.password;\r\n document.body.appendChild(textField);\r\n textField.select();\r\n document.execCommand('copy');\r\n notify(`${response?.data?.message.slice(0, -1)} ${COPIED_TO_CLIPBOARD}`, {\r\n type: 'success',\r\n });\r\n textField.remove();\r\n });\r\n };\r\n\r\n const updatePageNo = (page) => {\r\n setPageNo(page);\r\n };\r\n\r\n const addProjectHandler = () => {\r\n axios\r\n .get(`${ATTRIBUTED_DEPARTMENT_LIST_API_ENDPOINT}/${hoverData?._id?.value}`)\r\n .then((response) => {\r\n const {departmentList} = response.data;\r\n const departmentIds = departmentList?.map((obj) => obj._id);\r\n getAssignedProject(departmentIds);\r\n SetIsProjectAssignFormOpen(true);\r\n })\r\n .catch((err) => {\r\n notify('Something went wrong!', {type: 'error'});\r\n });\r\n };\r\n\r\n const cancelAddProjectBtnHandler = () => {\r\n SetIsProjectAssignFormOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n let isError = false;\r\n // eslint-disable-next-line array-callback-return\r\n Object.keys(projectAssignFormData).every((key) => {\r\n isError =\r\n projectAssignFormData[key]?.value === null ||\r\n projectAssignFormData[key]?.value === '' ||\r\n projectAssignFormData[key]?.error;\r\n if (isError) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n setAssignProjectFormError(isError);\r\n }, [projectAssignFormData]);\r\n\r\n const addProjectPrimaryHandler = () => {\r\n executeAssignProject({\r\n data: {\r\n assignId: projectAssignFormData?._id?.value,\r\n projectIds: projectAssignFormData?.projects?.value,\r\n },\r\n })\r\n .then((response) => {\r\n SetIsProjectAssignFormOpen(false);\r\n notify(response?.data?.message, {type: 'success'});\r\n })\r\n .catch((err) => {\r\n notify(err.response?.data?.message, {type: 'error'});\r\n });\r\n };\r\n\r\n const deleteUserCancelBtnHandler = () => {\r\n setDeleteUserCnfrmOpen(false);\r\n };\r\n\r\n const deleteUserConfirmBtnHandler = () => {\r\n executeDeleteUser({\r\n url: `${API_BASE_URL}/user/${hoverData?._id?.value}`,\r\n })\r\n .then(() => {\r\n const pageNumber = userList?.userList?.rows?.length === 1 ? pageNo - 1 : pageNo;\r\n refetchUserList({\r\n params: {\r\n ...params,\r\n page: pageNumber > 0 ? pageNumber - 1 : 0,\r\n search: searchText,\r\n },\r\n });\r\n setPageNo(pageNumber);\r\n setDeleteUserCnfrmOpen(false);\r\n })\r\n .catch((err) => {\r\n notify('Something went wrong!', {type: 'error'});\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (isProjectAssignFormOpen) {\r\n let dataToBeEdited = {...hoverData};\r\n Object.keys(dataToBeEdited).forEach((key) => {\r\n dataToBeEdited = {\r\n ...dataToBeEdited,\r\n [key]: {\r\n value: dataToBeEdited[key].value,\r\n error: false,\r\n errorMsg: '',\r\n },\r\n projects: {\r\n value: [...assignedProject],\r\n error: false,\r\n errorMsg: '',\r\n },\r\n };\r\n });\r\n delete dataToBeEdited.companyId;\r\n delete dataToBeEdited.roleId;\r\n delete dataToBeEdited.email;\r\n setProjectAssignFormData(dataToBeEdited);\r\n }\r\n }, [isProjectAssignFormOpen, projecListOptions]);\r\n\r\n const deleteClickHandler = () => {\r\n setDeleteUserCnfrmOpen(true);\r\n };\r\n\r\n const getFieldDataResponse = (field, state, serverErrors) => {\r\n const errorField = serverErrors.find((e) => e.field.toLowerCase() === field);\r\n const isError = errorField === undefined;\r\n return {\r\n value: state[field]?.value,\r\n error: !isError,\r\n errorMsg: !isError ? errorField.message : '',\r\n };\r\n };\r\n\r\n useEffect(() => {\r\n let isError = false;\r\n // eslint-disable-next-line array-callback-return\r\n Object.keys(createUserFormData).every((key) => {\r\n isError =\r\n createUserFormData[key]?.value === null ||\r\n createUserFormData[key]?.value === '' ||\r\n ((key === 'roleId' || key === 'departmentIds') &&\r\n createUserFormData[key]?.value.length === 0) ||\r\n createUserFormData[key]?.error;\r\n if (isError) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n setCreateUserFormError(isError);\r\n }, [createUserFormData]);\r\n\r\n const openUserCreateDialog = () => {\r\n setIsCreateUserDialogOpen(!isCreateUserDialogOpen);\r\n };\r\n\r\n const creteUserBtnHandler = () => {\r\n const iRestUser = JSON.parse(localStorage.getItem('iRestUser'));\r\n let userObject = {};\r\n let data = {\r\n createdBy: userinfo.id,\r\n };\r\n let isError = false;\r\n Object.keys(createUserFormData).forEach((key) => {\r\n isError = createUserFormData[key]?.value === null || createUserFormData[key]?.value === '';\r\n userObject = {\r\n ...userObject,\r\n [key]: {\r\n value: createUserFormData[key]?.value,\r\n error: isError,\r\n },\r\n companyId: {\r\n value: createUserFormData?.companyId?.value,\r\n error: isError,\r\n },\r\n };\r\n delete data.projects;\r\n data = {\r\n ...data,\r\n [key]: createUserFormData[key]?.value,\r\n companyId: createUserFormData?.companyId?.value,\r\n password: 'P@$$W0rd',\r\n };\r\n });\r\n data.role = data.roleId.toString();\r\n\r\n delete data.roleId;\r\n data.roles = iRestUser.roles;\r\n if (!isError) {\r\n executeCreateUser({\r\n data,\r\n })\r\n .then((response) => {\r\n notify(response?.data?.message, {type: 'success'});\r\n if (pageNo === 0) {\r\n refetchUserList({params: {...params, page: 0, search: searchText}});\r\n } else {\r\n setPageNo(0);\r\n }\r\n setCreateUserFormData(userDataInitialValue);\r\n setIsCreateUserDialogOpen(false);\r\n })\r\n .catch((err) => {\r\n if (err.response?.status === 417) {\r\n const serverErrors = err.response?.data?.errors;\r\n if (serverErrors) {\r\n setCreateUserFormData((prevState) => ({\r\n ...prevState,\r\n email: getFieldDataResponse('email', prevState, serverErrors),\r\n }));\r\n }\r\n }\r\n if (err.response?.status === 428) {\r\n notify(err.response?.data?.message, {type: 'error'});\r\n setCreateUserFormData((prevState) => ({\r\n ...prevState,\r\n email: {\r\n value: prevState.email?.value,\r\n error: true,\r\n errorMsg: err.response?.data?.message,\r\n },\r\n }));\r\n } else if (err.response?.status === 400) {\r\n notify(err.response?.data?.errors?.details[0]?.message, {type: 'error'});\r\n } else {\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n });\r\n } else {\r\n setCreateUserFormData(userObject);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (createUserFormData?.companyId?.value) {\r\n executeUserDepartmentList({\r\n params: {\r\n companyId: createUserFormData?.companyId?.value,\r\n },\r\n });\r\n }\r\n }, [createUserFormData?.companyId?.value]);\r\n\r\n const cancelCreateBtnHandler = () => {\r\n setCreateUserFormData(userDataInitialValue);\r\n openUserCreateDialog();\r\n };\r\n\r\n const getAssignedDepartments = async (dataToBeEdited) => {\r\n const departments = await axios.all([\r\n axios.get(`${DEPARTMENT_LIST_API_ENDPOINT}`, {\r\n params: {\r\n companyId: dataToBeEdited?.companyId?.value,\r\n },\r\n }),\r\n axios.get(`${ATTRIBUTED_DEPARTMENT_LIST_API_ENDPOINT}/${dataToBeEdited?._id?.value}`),\r\n ]);\r\n if (departments.length > 0) {\r\n // Populate all department list\r\n const deptOptions = [];\r\n let deptObject = {};\r\n departments[0]?.data?.departmentList?.rows?.forEach((dept) => {\r\n deptObject = {\r\n id: dept?._id,\r\n value: dept?.name,\r\n };\r\n deptOptions.push(deptObject);\r\n deptObject = {};\r\n });\r\n setDepartmentListOptions(deptOptions);\r\n // Select assigned departments\r\n let userData = {...dataToBeEdited};\r\n userData = {\r\n ...dataToBeEdited,\r\n departmentIds: {\r\n value: departments[1]?.data?.departmentList?.map((dept) => dept._id),\r\n error: false,\r\n errorMsg: '',\r\n },\r\n };\r\n Object.assign(dataToBeEdited, userData);\r\n }\r\n setEditUserFormData(dataToBeEdited);\r\n setIsEditUserDialogOpen(true);\r\n };\r\n\r\n const editClickHandler = () => {\r\n let dataToBeEdited = {...hoverData};\r\n Object.keys(dataToBeEdited).forEach((key) => {\r\n dataToBeEdited = {\r\n ...dataToBeEdited,\r\n companyId: {\r\n value: hoverData?.companyId?.id,\r\n error: false,\r\n errorMsg: '',\r\n },\r\n company: {\r\n value: hoverData?.company?.value,\r\n error: false,\r\n errorMsg: '',\r\n },\r\n roleId: {\r\n value: hoverData?.role?.value.split(','),\r\n error: false,\r\n errorMsg: '',\r\n },\r\n departmentIds: {\r\n value: [],\r\n error: false,\r\n errorMsg: '',\r\n },\r\n [key]: {\r\n value: dataToBeEdited[key].value,\r\n error: false,\r\n errorMsg: '',\r\n },\r\n };\r\n });\r\n getAssignedDepartments(dataToBeEdited);\r\n };\r\n\r\n useEffect(() => {\r\n let isError = false;\r\n // eslint-disable-next-line array-callback-return\r\n Object.keys(editUserFormData).every((key) => {\r\n isError =\r\n editUserFormData[key]?.value === null ||\r\n editUserFormData[key]?.value === '' ||\r\n ((key === 'roleId' || key === 'departmentIds') &&\r\n editUserFormData[key]?.value.length === 0) ||\r\n editUserFormData[key]?.error;\r\n if (isError) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n setEditUserFormError(isError);\r\n }, [editUserFormData]);\r\n\r\n const updateTableDataForEditUser = (data) => {\r\n const modifiedTableData = tableData.map((td) => {\r\n if (data._id === td._id?.value) {\r\n return {\r\n name: {value: data?.name},\r\n _id: {value: data?._id},\r\n email: {value: data?.email},\r\n role: {value: data?.role},\r\n company: {value: data?.company},\r\n status: {value: data?.status, id: data?.status?.toLowerCase()},\r\n companyId: {value: data.company, id: data?.companyId},\r\n };\r\n }\r\n return td;\r\n });\r\n setTableData(modifiedTableData);\r\n };\r\n\r\n const editUserFormPrimaryBtnHandler = () => {\r\n const userData = userList?.userList?.rows.find(\r\n (obj) => obj.company === editUserFormData.company.value\r\n );\r\n let data = {\r\n createdBy: userinfo.id,\r\n };\r\n Object.keys(editUserFormData).forEach((key) => {\r\n data = {\r\n ...data,\r\n [key]: editUserFormData[key]?.value,\r\n };\r\n });\r\n data.status = data.status?.toLowerCase();\r\n data.userEmail = editUserFormData?.email?.value;\r\n data.companyId = userData?.companyId;\r\n delete data.roleId; // not required in payload for edit\r\n // instead we need role value\r\n data.role = editUserFormData?.roleId?.value.toString();\r\n executeEditUser({\r\n url: `${API_BASE_URL}/user/${hoverData?._id?.value}/${companyId}`,\r\n data,\r\n })\r\n .then((response) => {\r\n updateTableDataForEditUser({...data, _id: hoverData?._id?.value});\r\n notify(response?.data?.message, {type: 'success'});\r\n if (pageNo === 0) {\r\n refetchUserList({params: {...params, page: 0, search: searchText}});\r\n } else {\r\n setIsEditUserSuceessConfirmationOpen(true);\r\n }\r\n setIsEditUserDialogOpen(false);\r\n })\r\n .catch((err) => {\r\n if (err.response?.status === 417) {\r\n const serverErrors = err.response?.data?.errors;\r\n if (serverErrors) {\r\n setEditUserFormData((prevState) => ({\r\n ...prevState,\r\n email: getFieldDataResponse('email', prevState, serverErrors),\r\n }));\r\n }\r\n }\r\n if (err.response?.status === 428) {\r\n notify(err.response?.data?.message, {type: 'error'});\r\n setEditUserFormData((prevState) => ({\r\n ...prevState,\r\n email: {value: '', error: true, errorMsg: err.response?.data?.message},\r\n }));\r\n } else {\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n });\r\n };\r\n\r\n const editUserFormSecondaryBtnHandler = () => {\r\n setIsEditUserDialogOpen(false);\r\n };\r\n\r\n const editRecordNoConfirmationHandler = () => {\r\n setIsEditUserSuceessConfirmationOpen(false);\r\n };\r\n\r\n const editRecordYesConfirmationHandler = () => {\r\n setIsEditUserSuceessConfirmationOpen(false);\r\n setPageNo(0);\r\n };\r\n\r\n useEffect(() => {\r\n const options = {};\r\n companyListData?.companyList?.rows?.forEach((company) => {\r\n options[company?._id] = company?.name;\r\n });\r\n setCompanyListOptions({...options});\r\n }, [companyListData]);\r\n\r\n useEffect(() => {\r\n const options = [];\r\n let roleObject = {};\r\n roleListData?.roleList?.forEach((role) => {\r\n roleObject.id = role?.role;\r\n roleObject.value = ROLE_MAPPING[role?.role];\r\n options.push(roleObject);\r\n roleObject = {};\r\n });\r\n setRoleOptions(options);\r\n }, [roleListData]);\r\n\r\n useEffect(() => {\r\n const deptOptions = [];\r\n let deptObject = {};\r\n departmentListData?.departmentList?.rows?.forEach((dept) => {\r\n deptObject.id = dept?._id;\r\n deptObject.value = dept?.name;\r\n deptOptions.push(deptObject);\r\n deptObject = {};\r\n });\r\n setDepartmentListOptions(deptOptions);\r\n // Clear previous selected department list once new list is fetched\r\n setCreateUserFormData((prevState) => ({\r\n ...prevState,\r\n departmentIds: {\r\n value: [],\r\n error: false,\r\n errorMsg: '',\r\n },\r\n }));\r\n }, [departmentListData]);\r\n\r\n return (\r\n <Grid item size={12}>\r\n <BlockingLoader\r\n open={\r\n isLoadingUserStatusChange ||\r\n isLoadingGenerateUserPassword ||\r\n isLoadingAssignProject ||\r\n isLoadingCreateUser ||\r\n isLoadingEditUser ||\r\n isLoadingDeleteUser ||\r\n isLoadingUserList ||\r\n isLoadingRoleList ||\r\n isLoadingCompanyList ||\r\n isLoadingDepartmentList ||\r\n isLoadingAssignedProject\r\n }\r\n />\r\n <Grid item className=\"flex flex-row p-[15px] pb-0\">\r\n <Grid className={`NunitoSansBold text-sm text-[${COLOR_CODES.headingTitle3}]`}>\r\n {USER_LISTING}\r\n </Grid>\r\n <Grid className=\"ml-auto\">\r\n <Grid className=\"flex flex-row mt-5\">\r\n <div className=\"w-52 h-8 sm:w-80 sm:h-8 rounded bg-slate-100 font-sans text-sm text-search-text mr-2 mt-0.5 flex\">\r\n <span className=\"rounded px-2 py-1 w-4 h-4 pr-7 bg-inherit\">\r\n <SearchIcon />\r\n </span>\r\n <input\r\n className=\"w-full bg-inherit border-none outline-none rounded\"\r\n type=\"text\"\r\n placeholder=\"Search by User name or email\"\r\n value={searchText}\r\n onChange={(e) => {\r\n setSearchText(e.target.value);\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n setPageNo(0);\r\n refetchUserList({\r\n params: {\r\n ...params,\r\n page: 0,\r\n search: searchText,\r\n },\r\n });\r\n }\r\n }}\r\n />\r\n </div>\r\n <Button\r\n data-testId=\"creat-user-button\"\r\n className=\"h-9 rounded text-[13px] p-0 font-NunitoSansSemibold w-[133px]\"\r\n onClick={openUserCreateDialog}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n >\r\n {CREATE_USER}\r\n </Button>\r\n </Grid>\r\n <DialogBox\r\n open={isCreateUserDialogOpen}\r\n primaryBtnLabel={CREATE}\r\n primaryBtnHandler={creteUserBtnHandler}\r\n secondaryBtnHandler={cancelCreateBtnHandler}\r\n secondaryBtnLabel={CANCEL}\r\n bodyContent={\r\n <CreateEditUserForm\r\n userData={createUserFormData}\r\n setUserData={setCreateUserFormData}\r\n companyOptions={companyListOptions}\r\n roleOptions={roleOptions}\r\n deptOptions={departmentListOptions}\r\n userList={userList?.userList?.rows}\r\n />\r\n }\r\n dialogTitle={CREATE_USER}\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n showCloseIcon={false}\r\n primaryBtnId=\"primaryBtn\"\r\n secondaryBtnId=\"secondaryBtn\"\r\n isDialogTitleIconVisible\r\n dialogTitleIcon={\r\n <Tooltip title={USER_SUBTITLE_CONTENT} placement=\"right-start\">\r\n <InfoIcon color=\"disabled\" className=\"global-mockscreen-info-icon\" />\r\n </Tooltip>\r\n }\r\n isSubtitleVisible\r\n SubtitleContent={USER_SUBTITLE_CONTENT}\r\n isPrimaryBtnDisabled={hasCreateUserFormError}\r\n />\r\n {/* edit user dropdown */}\r\n <DialogBox\r\n open={isEditUserDialogOpen}\r\n primaryBtnLabel={EDIT}\r\n primaryBtnHandler={editUserFormPrimaryBtnHandler}\r\n secondaryBtnHandler={editUserFormSecondaryBtnHandler}\r\n secondaryBtnLabel={CANCEL}\r\n bodyContent={\r\n <CreateEditUserForm\r\n userData={editUserFormData}\r\n setUserData={setEditUserFormData}\r\n companyOptions={companyListOptions}\r\n roleOptions={roleOptions}\r\n deptOptions={departmentListOptions}\r\n formView=\"edit\"\r\n userList={userList?.userList?.rows}\r\n />\r\n }\r\n dialogTitle={EDIT_USER}\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n showCloseIcon={false}\r\n primaryBtnId=\"editPrimaryBtn\"\r\n secondaryBtnId=\"editSecondaryBtn\"\r\n isDialogTitleIconVisible\r\n dialogTitleIcon={\r\n <Tooltip title={DIALOG_TITLE_ICON_TOOLTIP} placement=\"right-start\">\r\n <InfoIcon color=\"disabled\" className=\"global-mockscreen-info-icon\" />\r\n </Tooltip>\r\n }\r\n isSubtitleVisible\r\n SubtitleContent={USER_SUBTITLE_CONTENT}\r\n isPrimaryBtnDisabled={hasEditUserFormError}\r\n />\r\n {/* project assign dialog */}\r\n <DialogBox\r\n open={isProjectAssignFormOpen}\r\n primaryBtnLabel={ADD_PROJECT}\r\n primaryBtnHandler={addProjectPrimaryHandler}\r\n secondaryBtnHandler={cancelAddProjectBtnHandler}\r\n secondaryBtnLabel={CANCEL}\r\n bodyContent={\r\n <AssignProjectsForUser\r\n userData={projectAssignFormData}\r\n setUserData={setProjectAssignFormData}\r\n projectList={projecListOptions}\r\n />\r\n }\r\n dialogTitle={ADD_PROJECT}\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n showCloseIcon={false}\r\n primaryBtnId=\"editPrimaryBtn\"\r\n secondaryBtnId=\"editSecondaryBtn\"\r\n isDialogTitleIconVisible\r\n dialogTitleIcon={\r\n <Tooltip title={ADD_PROJECT_CONTENT} placement=\"right-start\">\r\n <InfoIcon color=\"disabled\" className=\"global-mockscreen-info-icon\" />\r\n </Tooltip>\r\n }\r\n isSubtitleVisible\r\n SubtitleContent={ADD_PROJECT_CONTENT}\r\n isPrimaryBtnDisabled={hasAssignProjectFormError}\r\n />\r\n {/* confirmation popup to stay on current page if user record edited successfully */}\r\n {/* if yes user stay on same page with updated record */}\r\n {/* if yes user stay on first page user would stay on first page with updated records */}\r\n <ConfirmationBox\r\n open={isEditUserSuceessConfirmationOpen}\r\n headerContent={CONFIRMATION_HEADER_TITLE}\r\n secondaryBtnLabel={CONFIRMATION_SECONDARY_BTN_LABEL}\r\n secondaryBtnHandler={editRecordNoConfirmationHandler}\r\n primaryBtnLabel={CONFIRMATION_PRIMARY_BTN_LABEL}\r\n primaryBtnHandler={editRecordYesConfirmationHandler}\r\n bodyContent={EDITED_RECORD_MOVED_MSG}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n />\r\n {/* delete user confirmation */}\r\n <ConfirmationBox\r\n open={isDeleteUserCnfrmOpen}\r\n showLoader={isLoadingDeleteUser}\r\n headerContent={CONFIRMATION_HEADER_TITLE}\r\n secondaryBtnLabel={CONFIRMATION_SECONDARY_BTN_LABEL}\r\n secondaryBtnHandler={deleteUserCancelBtnHandler}\r\n primaryBtnLabel={CONFIRMATION_PRIMARY_BTN_LABEL}\r\n primaryBtnHandler={deleteUserConfirmBtnHandler}\r\n bodyContent={`User ${hoverData?.name?.value} ${DELETE_USER_MSG}`}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnId=\"cancelDeleteUser\"\r\n primaryBtnId=\"deleteUser\"\r\n />\r\n <ConfirmationBox\r\n open={confirmUserEnableDisable}\r\n headerContent={CONFIRMATION_HEADER_TITLE}\r\n secondaryBtnLabel={CONFIRMATION_SECONDARY_BTN_LABEL}\r\n secondaryBtnHandler={() => {\r\n setConfirmUserEnableDisable(false);\r\n setHoverData({\r\n ...hoverData,\r\n userStatus: '',\r\n });\r\n }}\r\n primaryBtnLabel={CONFIRMATION_PRIMARY_BTN_LABEL}\r\n primaryBtnHandler={() => {\r\n setConfirmUserEnableDisable(false);\r\n userStatusHandlerConfirmed();\r\n }}\r\n bodyContent={\r\n <div>\r\n User <span className=\"font-bold\">{hoverData?.name?.value}</span>{' '}\r\n {ENABLE_DISABLE_USER_MSG} {hoverData?.userStatus}\r\n </div>\r\n }\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid item size={12} className=\"pl-[15px] pr-[30px] mt-2\">\r\n <BasicTable\r\n columns={COLUMNS}\r\n tableData={tableData.map((user) => ({\r\n name: user.name,\r\n email: user.email,\r\n role: user.role,\r\n company: user.company,\r\n status: user.status,\r\n _id: user._id,\r\n }))}\r\n handleSortCall={handleSortCall}\r\n order={order}\r\n setOrder={setOrder}\r\n orderBy={orderBy}\r\n setOrderBy={setOrderBy}\r\n // eslint-disable-next-line react/no-unstable-nested-components\r\n onHoverContent={(data) => (\r\n <UserTableCellHover\r\n data={data}\r\n setHoverData={setHoverData}\r\n editClickHandler={editClickHandler}\r\n deleteClickHandler={deleteClickHandler}\r\n addProjectHandler={addProjectHandler}\r\n enableHandler={() => userStatusHandler('enabled')}\r\n disableHandler={() => userStatusHandler('disabled')}\r\n generatePassword={generatePassword}\r\n />\r\n )}\r\n showPagination={userList?.userList?.count > 10}\r\n tableRecordsPerPage={DEFAULT_PAGINATION}\r\n totalRecords={userList?.userList?.count}\r\n sortByColumn={NAME}\r\n defaultPage={pageNo}\r\n getPageNumber={updatePageNo}\r\n defaultSortOrder=\"asc\"\r\n cellClassName=\"global-table-body-cell NunitoSansSemibold\"\r\n headerCellClass=\"global-table-header-cell NunitoSansRegular\"\r\n hoverClassName=\"bg-white h-14 w-36 p-2.5 absolute right-16\"\r\n tableWrapperClassName=\"shadow-none\"\r\n showLoader={isLoadingUserList}\r\n loaderComponent={<TableLoader rowsNum={10} colsNum={5} />}\r\n />\r\n </Grid>\r\n </Grid>\r\n );\r\n}\r\n\r\nexport default UserList;\r\n","import React from 'react';\r\nimport Grid from '@mui/material/Grid';\r\nimport {Helmet} from 'react-helmet';\r\nimport UserList from './UserList';\r\nimport {PAGE_TITLE} from './constant';\r\nimport Breadcrumb from '../shared/units/Breadcrumb';\r\n\r\nfunction UserDetails(props) {\r\n return (\r\n <>\r\n <Helmet>\r\n <title>{PAGE_TITLE}</title>\r\n <meta name=\"description\" content=\"User Management - iRest\" />\r\n </Helmet>\r\n\r\n <div id=\"companydetail\">\r\n <Grid className=\"shadow-lg bg-[#FFF] px-[15px] py-[10px]\">\r\n <Breadcrumb />\r\n </Grid>\r\n <Grid container className=\"m-0\">\r\n <UserList />\r\n </Grid>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default UserDetails;\r\n","export const DEPARTMENT_MANAGEMENT = 'Department Management';\r\nexport const DEPARTMENT_LIST_DOMAIN = 'Department List';\r\nexport const CREATE_DEPARTMENT = 'Create Department';\r\nexport const EDIT = 'Edit';\r\nexport const EDIT_DEPARTMENT = 'Edit Department';\r\nexport const VIEW_PROJECTS = 'View Projects';\r\nexport const DELETE = 'Delete';\r\nexport const CANCEL = 'Cancel';\r\nexport const CREATE = 'Create';\r\nexport const ENABLE = 'Enable';\r\nexport const DISABLE = 'Disable';\r\nexport const DELETE_DEPARTMENT_MSG = 'will be deleted';\r\nexport const CONFIRMATION_HEADER_TITLE = 'Are you sure?';\r\nexport const CONFIRMATION_PRIMARY_BTN_LABEL = 'Yes, confirm';\r\nexport const CONFIRMATION_SECONDARY_BTN_LABEL = 'No, cancel';\r\nexport const STATUS = 'status';\r\nexport const DIALOG_TITLE_ICON_TOOLTIP =\r\n 'An API URL is a web address that is used to access an API (Application Programming Interface)';\r\nexport const DEPARTMENT_SUBTITLE_CONTENT =\r\n 'Add departmetns for different companies for iREST access';\r\nexport const DUPLICATE_FIELD_MSG = 'This field already exists';\r\nexport const EDITED_RECORD_MOVED_MSG =\r\n 'Record has been updated successfully, do you want to move to page 1.';\r\nexport const COLUMNS = [\r\n {\r\n id: 'name',\r\n label: 'Name',\r\n },\r\n {\r\n id: 'companyId',\r\n label: 'Company',\r\n },\r\n {\r\n id: 'status',\r\n label: 'Status',\r\n },\r\n];\r\n\r\nexport const VALIDATION_TEXT = {\r\n NAME: {\r\n EMPTY: 'Please enter name',\r\n WRONG: 'Please enter name',\r\n },\r\n COMPANYID: {\r\n EMPTY: 'Please select company',\r\n WRONG: 'Please select company',\r\n },\r\n STATUS: {\r\n EMPTY: 'Please select status',\r\n WRONG: 'Please select status',\r\n },\r\n};\r\n// eslint-disable-next-line prefer-regex-literals\r\nexport const PAGE_TITLE = 'Department Management - iRest';\r\nexport const MENU_OPTIONS = {\r\n enabled: 'Enabled',\r\n disabled: 'Disabled',\r\n};\r\n","/* eslint-disable react/jsx-boolean-value */\r\nimport React from 'react';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport WorkOffOutlinedIcon from '@mui/icons-material/WorkOffOutlined';\r\nimport WorkOutlineOutlinedIcon from '@mui/icons-material/WorkOutlineOutlined';\r\nimport Box from '@mui/material/Box';\r\nimport {EDIT, DELETE, ENABLE, DISABLE, VIEW_PROJECTS} from './constant';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\n\r\nfunction AddTooltipWrapper(iconComponent, title) {\r\n return (\r\n <Tooltip title={title} placement=\"bottom\">\r\n {iconComponent}\r\n </Tooltip>\r\n );\r\n}\r\n\r\nfunction DepartmentRowOverlay(props) {\r\n const {\r\n data,\r\n setHoverData,\r\n editClickHandler,\r\n deleteClickHandler,\r\n enableHandler,\r\n disableHandler,\r\n viewProjectHandler,\r\n } = props;\r\n\r\n const updateDepartmentAccess = useRolePermission('department', 'update');\r\n const deleteDepartmentAccess = useRolePermission('department', 'delete');\r\n const viewProjectAccess = useRolePermission('project', 'read');\r\n const toggleDepartmentAccess = useRolePermission('department', 'toggle');\r\n\r\n React.useEffect(() => {\r\n setHoverData(data);\r\n });\r\n\r\n const {value} = data.name;\r\n const checkDepartmentName = value !== 'Default';\r\n\r\n const clickHandler = (haveAccess, actionFn) => {\r\n if (haveAccess) actionFn();\r\n };\r\n\r\n return (\r\n <tr className=\"flex w-full\">\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <VisibilityIcon\r\n color={viewProjectAccess ? 'primary' : 'secondary'}\r\n size=\"small\"\r\n className={\r\n viewProjectAccess\r\n ? 'cursor-pointer text-base mt-1.5'\r\n : 'cursor-no-drop text-base mt-1.5'\r\n }\r\n onClick={() => clickHandler(viewProjectAccess, viewProjectHandler)}\r\n />,\r\n VIEW_PROJECTS\r\n )}\r\n </Box>\r\n {checkDepartmentName && (\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <EditIcon\r\n color={updateDepartmentAccess ? 'primary' : 'disabled'}\r\n size=\"small\"\r\n className={\r\n updateDepartmentAccess\r\n ? 'cursor-pointer text-base mt-1.5'\r\n : 'cursor-no-drop text-base mt-1.5'\r\n }\r\n onClick={() => clickHandler(updateDepartmentAccess, editClickHandler)}\r\n />,\r\n EDIT\r\n )}\r\n </Box>\r\n )}\r\n {checkDepartmentName && (\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <DeleteIcon\r\n color={deleteDepartmentAccess ? 'primary' : 'disabled'}\r\n size=\"small\"\r\n className={\r\n deleteDepartmentAccess\r\n ? 'cursor-pointer text-base mt-1.5'\r\n : 'cursor-no-drop text-base mt-1.5'\r\n }\r\n onClick={() => clickHandler(deleteDepartmentAccess, deleteClickHandler)}\r\n />,\r\n DELETE\r\n )}\r\n </Box>\r\n )}\r\n {checkDepartmentName ? (\r\n data?.status?.id === 'enabled' ? (\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <WorkOffOutlinedIcon\r\n color={toggleDepartmentAccess ? 'primary' : 'secondary'}\r\n size=\"small\"\r\n className={\r\n toggleDepartmentAccess\r\n ? 'cursor-pointer text-base mt-1.5'\r\n : 'cursor-no-drop text-base mt-1.5'\r\n }\r\n onClick={() => clickHandler(toggleDepartmentAccess, disableHandler)}\r\n />,\r\n DISABLE\r\n )}\r\n </Box>\r\n ) : (\r\n <Box className=\"mx-3\">\r\n {AddTooltipWrapper(\r\n <WorkOutlineOutlinedIcon\r\n color={toggleDepartmentAccess ? 'primary' : 'secondary'}\r\n size=\"small\"\r\n className={\r\n toggleDepartmentAccess\r\n ? 'cursor-pointer text-base mt-1.5'\r\n : 'cursor-no-drop text-base mt-1.5'\r\n }\r\n onClick={() => clickHandler(toggleDepartmentAccess, enableHandler)}\r\n />,\r\n ENABLE\r\n )}\r\n </Box>\r\n )\r\n ) : null}\r\n </tr>\r\n );\r\n}\r\n\r\nexport default DepartmentRowOverlay;\r\n","import React from 'react';\r\nimport {useSelector} from 'react-redux';\r\nimport TextField from '@mui/material/TextField';\r\nimport SimpleSelectDropdown from '../shared/units/SimpleSelectDropdown';\r\nimport {VALIDATION_TEXT, MENU_OPTIONS} from './constant';\r\n\r\nfunction CreateEditDepartmentForm(props) {\r\n const {departmentData, setDepartmentData, formView = 'create', companyOptions} = props;\r\n const companyStoreData = useSelector((state) => state?.companyList);\r\n\r\n const handleFieldChange = (enterValue, key) => {\r\n let currentDepartment = companyStoreData?.response?.data?.companyList.rows;\r\n if (currentDepartment.length > 0 && Object.keys(departmentData).length > 0) {\r\n currentDepartment = currentDepartment.find((c) => c._id === departmentData?._id?.value);\r\n }\r\n const isError = enterValue === '' || enterValue === null;\r\n const errorMsg = (isError && VALIDATION_TEXT[key.toUpperCase()].EMPTY) || '';\r\n const createDuplicateCondition = formView === 'create';\r\n const editDuplicateCondition = formView === 'edit';\r\n if (createDuplicateCondition || editDuplicateCondition) {\r\n setDepartmentData((data) => ({\r\n ...data,\r\n [key]: {\r\n value: enterValue?.trim(),\r\n error: isError,\r\n errorMsg,\r\n },\r\n }));\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"company-name\">Name</label>\r\n </div>\r\n <TextField\r\n id=\"company-name\"\r\n data-testid=\"company-name\"\r\n className=\"h-[54px] mb-2.5\"\r\n defaultValue={departmentData?.name?.value}\r\n onChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'name');\r\n }}\r\n required\r\n error={departmentData?.name?.error}\r\n helperText={departmentData?.name?.error && departmentData?.name?.errorMsg}\r\n />\r\n </div>\r\n <div>\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-selec\">Company</label>\r\n </div>\r\n <SimpleSelectDropdown\r\n id=\"global-simple-select\"\r\n disabled\r\n handleChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'companyId');\r\n }}\r\n selectedValue={departmentData?.companyId?.value}\r\n menuOptions={companyOptions}\r\n required\r\n hasError={departmentData?.companyId?.error}\r\n helperText={departmentData?.companyId?.error && departmentData?.companyId?.errorMsg}\r\n />\r\n </div>\r\n <div className=\"mt-6\">\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"simple-select\">Status</label>\r\n </div>\r\n <SimpleSelectDropdown\r\n id=\"global-simple-select\"\r\n handleChange={(e) => {\r\n handleFieldChange(e?.target?.value, 'status');\r\n }}\r\n selectedValue={departmentData?.status?.value}\r\n menuOptions={MENU_OPTIONS}\r\n required\r\n hasError={departmentData?.status?.error}\r\n helperText={departmentData?.status?.error && departmentData?.status?.errorMsg}\r\n />\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default CreateEditDepartmentForm;\r\n","/* eslint-disable no-case-declarations */\r\nimport {put, call} from 'redux-saga/effects';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport client from '../modules/shared/service/axiosInstance';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const DEPARTMENT_LIST = 'DEPARTMENT_LIST';\r\nexport const DEPARTMENT_LIST_PENDING = 'DEPARTMENT_LIST_PENDING';\r\nexport const DEPARTMENT_LIST_SUCCESS = 'DEPARTMENT_LIST_SUCCESS';\r\nexport const DEPARTMENT_LIST_ERROR = 'DEPARTMENT_LIST_ERROR';\r\nexport const DEPARTMENT_LIST_CURRENT_PAGE = 'DEPARTMENT_LIST_CURRENT_PAGE';\r\nexport const DEPARTMENT_LIST_CURRENT_PAGE_SUCCESS = 'DEPARTMENT_LIST_CURRENT_PAGE_SUCCESS';\r\nexport const DEPARTMENT_LIST_REMOVE_RECORD = 'DEPARTMENT_LIST_REMOVE_RECORD';\r\nexport const DEPARTMENT_LIST_ADD_RECORD = 'DEPARTMENT_LIST_ADD_RECORD';\r\nexport const DEPARTMENT_LIST_UPDATE_RECORD = 'DEPARTMENT_LIST_UPDATE_RECORD';\r\n\r\n// Initial State\r\nconst departmentListInitialState = {\r\n response: {\r\n data: null,\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const fetchDepartmentList = (data) => ({\r\n type: DEPARTMENT_LIST,\r\n data,\r\n});\r\nexport const isDepartmentListPending = (isPending) => ({\r\n type: DEPARTMENT_LIST_PENDING,\r\n isPending,\r\n});\r\nexport const departmentTableCurrentPage = (pageNumber) => ({\r\n type: DEPARTMENT_LIST_CURRENT_PAGE,\r\n pageNumber,\r\n});\r\nexport const removeDepartmentListRecord = (recordId) => ({\r\n type: DEPARTMENT_LIST_REMOVE_RECORD,\r\n recordId,\r\n});\r\nexport const addNewDepartmentToList = (departmentData) => ({\r\n type: DEPARTMENT_LIST_ADD_RECORD,\r\n departmentData,\r\n});\r\nexport const updateDepartmentToList = (updatedDepartmentRecord, departmentTablePage) => ({\r\n type: DEPARTMENT_LIST_UPDATE_RECORD,\r\n updatedDepartmentRecord,\r\n departmentTablePage,\r\n});\r\n\r\n// Service\r\nexport const departmentListService = ({data}) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/department/list`;\r\n\r\n return client({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n params: data,\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* departmentListSaga(payload) {\r\n try {\r\n yield put(isDepartmentListPending(true));\r\n const response = yield call(departmentListService, payload);\r\n response.type = DEPARTMENT_LIST_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(DEPARTMENT_LIST_SUCCESS, response));\r\n yield put(isDepartmentListPending(false));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(DEPARTMENT_LIST_ERROR));\r\n notify('No Department Exists!', {type: 'error'});\r\n }\r\n}\r\n\r\nexport function* departmentTableCurrentPageSaga(payload) {\r\n try {\r\n yield put(responseSuccessOrFailureAction(DEPARTMENT_LIST_CURRENT_PAGE_SUCCESS, payload));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(DEPARTMENT_LIST_ERROR));\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function departmentList(state = departmentListInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case DEPARTMENT_LIST_SUCCESS:\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n data: {\r\n ...state.response.data,\r\n departmentList: {\r\n ...response?.data?.departmentList,\r\n totalCount: Math.ceil(response.data.departmentList.count / 10) - 1,\r\n },\r\n },\r\n },\r\n isPending: false,\r\n };\r\n case DEPARTMENT_LIST_ERROR:\r\n return {...state, response, isPending: false};\r\n case DEPARTMENT_LIST_PENDING:\r\n return {...state, isPending: action.isPending};\r\n case DEPARTMENT_LIST_CURRENT_PAGE_SUCCESS:\r\n return {...state, pageNumber: action.data.pageNumber};\r\n case DEPARTMENT_LIST_REMOVE_RECORD:\r\n // eslint-disable-next-line no-case-declarations\r\n const list = state?.response?.data?.departmentList.rows.filter(\r\n (record) => record._id !== action.recordId\r\n );\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n data: {\r\n ...state.response.data,\r\n departmentList: {\r\n ...state.response.data.departmentList,\r\n count: state.response.data.departmentList.count - 1,\r\n rows: list,\r\n },\r\n },\r\n },\r\n };\r\n case DEPARTMENT_LIST_ADD_RECORD:\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n data: {\r\n ...state.response.data,\r\n departmentList: {\r\n ...state.response.data.departmentList,\r\n rows: [...state.response.data.departmentList.rows, action.departmentData],\r\n },\r\n },\r\n },\r\n };\r\n case DEPARTMENT_LIST_UPDATE_RECORD:\r\n const {\r\n name = '',\r\n domain = '',\r\n status = '',\r\n createdBy = '',\r\n id,\r\n } = action?.updatedDepartmentRecord || {};\r\n const updatedRecordIndex = state?.response?.data?.departmentList.rows.findIndex(\r\n (singleRec) => singleRec._id === action?.updatedDepartmentRecord?.id\r\n );\r\n const arr = state?.response?.data?.departmentList.rows;\r\n arr.splice(updatedRecordIndex, 1);\r\n arr.unshift({\r\n ...arr[updatedRecordIndex],\r\n name,\r\n domain,\r\n status,\r\n createdBy,\r\n _id: id,\r\n });\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n data: {\r\n ...state.response.data,\r\n departmentList: {\r\n ...state.response.data.departmentList,\r\n rows: [...state.response.data.departmentList.rows],\r\n },\r\n },\r\n },\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {getToastType} from '../modules/shared/utils/helper';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\nimport {departmentTableCurrentPage, fetchDepartmentList} from './departmentListDuck';\r\n\r\n// ActionTypes\r\nexport const DELETE_DEPARTMENT = 'DELETE_DEPARTMENT';\r\nexport const DELETE_DEPARTMENT_PENDING = 'DELETE_DEPARTMENT_PENDING';\r\nexport const DELETE_DEPARTMENT_SUCCESS = 'DELETE_DEPARTMENT_SUCCESS';\r\nexport const DELETE_DEPARTMENT_ERROR = 'DELETE_DEPARTMENT_ERROR';\r\n\r\n// Initial State\r\nconst deleteDepartmentInitialState = {\r\n response: {\r\n data: null,\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const deleteDepartmentAction = (\r\n data,\r\n recordDetail,\r\n existingCompanies,\r\n departmentTablePage,\r\n totalPages\r\n) => ({\r\n type: DELETE_DEPARTMENT,\r\n data,\r\n recordDetail,\r\n existingCompanies,\r\n departmentTablePage,\r\n totalPages,\r\n});\r\nexport const isDeleteDepartmentPending = (isPending) => ({\r\n type: DELETE_DEPARTMENT_PENDING,\r\n isPending,\r\n});\r\n\r\n// Services\r\nexport const deleteDepartmentService = (data) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/department/`;\r\n const params = data.data.id;\r\n return axios({\r\n method: 'delete',\r\n url: API_ENDPOINT + params,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* deleteDepartmentSaga(payload) {\r\n try {\r\n const {existingCompanies, departmentTablePage} = payload;\r\n yield put(isDeleteDepartmentPending(true));\r\n const response = yield call(deleteDepartmentService, payload);\r\n if (response.status === 202) {\r\n const pageNumber =\r\n existingCompanies?.rows?.length === 1 ? departmentTablePage - 1 : departmentTablePage;\r\n yield put(\r\n fetchDepartmentList({\r\n page: pageNumber,\r\n limit: 10,\r\n companyId: payload?.recordDetail?.companyId?.id,\r\n })\r\n );\r\n yield put(departmentTableCurrentPage(pageNumber));\r\n }\r\n\r\n response.type = DELETE_DEPARTMENT_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(DELETE_DEPARTMENT_SUCCESS, response));\r\n yield put(isDeleteDepartmentPending(false));\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n } catch (error) {\r\n yield put(\r\n responseSuccessOrFailureAction(DELETE_DEPARTMENT_ERROR, {message: 'Something Went Wrong.'})\r\n );\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function deleteDepartment(state = deleteDepartmentInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case DELETE_DEPARTMENT_SUCCESS:\r\n return {...state, response, isPending: false};\r\n case DELETE_DEPARTMENT_ERROR:\r\n return {...state, response, isPending: false};\r\n case DELETE_DEPARTMENT_PENDING:\r\n return {...state, isPending: action.isPending};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {getToastType} from '../modules/shared/utils/helper';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\nimport {updateDepartmentToList} from './departmentListDuck';\r\n\r\n// Actions\r\nexport const GET_DEPARTMENT_BY_ID = 'GET_DEPARTMENT_BY_ID';\r\nexport const GET_DEPARTMENT_BY_ID_PENDING = 'GET_DEPARTMENT_BY_ID_PENDING';\r\nexport const GET_DEPARTMENT_BY_ID_SUCCESS = 'GET_DEPARTMENT_BY_ID_SUCCESS';\r\nexport const GET_DEPARTMENT_BY_ID_ERROR = 'GET_DEPARTMENT_BY_ID_ERROR';\r\nexport const GET_DEPARTMENT_BY_ID_RESET = 'GET_DEPARTMENT_BY_ID_RESET';\r\nexport const HIDE_MODEL = 'HIDE_MODEL';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n modal: false,\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const GetDepartmentById = (data, departmentTablePage) => ({\r\n type: GET_DEPARTMENT_BY_ID,\r\n data,\r\n departmentTablePage,\r\n});\r\nexport const isGetDepartmentByIdPending = (isPending) => ({\r\n type: GET_DEPARTMENT_BY_ID_PENDING,\r\n isPending,\r\n});\r\nexport const resetDepartmentIDDetails = (modal) => ({\r\n type: GET_DEPARTMENT_BY_ID_RESET,\r\n data: {modal},\r\n});\r\nexport const hideModelHandler = () => ({\r\n type: HIDE_MODEL,\r\n});\r\n\r\n// Service\r\nexport const getDepartmentByIdService = (data) => {\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n const {id, status, name, companyId, createdBy} = data?.data;\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/department/${id}/${companyId}`;\r\n // const API_ENDPOINT = 'http://localhost:9000/api/rest/updatedepartment/c1';\r\n\r\n return axios({\r\n method: 'put',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: {\r\n name,\r\n companyId,\r\n status,\r\n createdBy,\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* getDepartmentSaga(payload) {\r\n try {\r\n yield put(isGetDepartmentByIdPending(true));\r\n const response = yield call(getDepartmentByIdService, payload);\r\n response.type = GET_DEPARTMENT_BY_ID_SUCCESS;\r\n if (response.status === 200) {\r\n yield put(updateDepartmentToList(payload?.data, payload?.departmentTablePage));\r\n yield put(responseSuccessOrFailureAction(GET_DEPARTMENT_BY_ID_SUCCESS, response));\r\n yield put(resetDepartmentIDDetails(true));\r\n } else {\r\n yield put(responseSuccessOrFailureAction(GET_DEPARTMENT_BY_ID_ERROR, response));\r\n yield put(resetDepartmentIDDetails(false));\r\n }\r\n // yield put(isGetDepartmentByIdPending(false));\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(GET_DEPARTMENT_BY_ID_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function getDepartment(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case GET_DEPARTMENT_BY_ID_SUCCESS:\r\n return {...state, response, isPending: false, modal: true};\r\n case GET_DEPARTMENT_BY_ID_ERROR:\r\n return {...state, response, isPending: false, modal: false};\r\n case GET_DEPARTMENT_BY_ID_PENDING:\r\n return {...state, isPending: action.isPending};\r\n case HIDE_MODEL:\r\n return {...state, modal: false};\r\n case GET_DEPARTMENT_BY_ID_RESET:\r\n return {\r\n ...initialState,\r\n ...response,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {getToastType} from '../modules/shared/utils/helper';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\nimport {departmentTableCurrentPage, fetchDepartmentList} from './departmentListDuck';\r\n\r\n// ActionTypes\r\nexport const DEPARTMENT_STATUS = 'DEPARTMENT_STATUS';\r\nexport const DEPARTMENT_STATUS_PENDING = 'DEPARTMENT_STATUS_PENDING';\r\nexport const DEPARTMENT_STATUS_SUCCESS = 'DEPARTMENT_STATUS_SUCCESS';\r\nexport const DEPARTMENT_STATUS_ERROR = 'DEPARTMENT_STATUS_ERROR';\r\n\r\n// Initial State\r\nconst departmentStatusInitialState = {\r\n response: {\r\n data: null,\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const departmentStatusAction = (data, departmentTablePage) => ({\r\n type: DEPARTMENT_STATUS,\r\n data,\r\n departmentTablePage,\r\n});\r\nexport const isDepartmentStatusPending = (isPending) => ({\r\n type: DEPARTMENT_STATUS_PENDING,\r\n isPending,\r\n});\r\n\r\n// Services\r\nexport const departmentStatusService = (data) => {\r\n const {API_BASE_URL} = process.env;\r\n const params = data.data.id;\r\n const API_ENDPOINT = `${API_BASE_URL}/department/${data.data.status}/${params}`;\r\n return axios({\r\n method: 'patch',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* departmentStatusSaga(payload) {\r\n try {\r\n const {departmentTablePage} = payload;\r\n yield put(isDepartmentStatusPending(true));\r\n const response = yield call(departmentStatusService, payload);\r\n if (response.status === 200) {\r\n const pageNumber = departmentTablePage;\r\n yield put(\r\n fetchDepartmentList({page: pageNumber, limit: 10, companyId: payload.data.companyId})\r\n );\r\n yield put(departmentTableCurrentPage(pageNumber));\r\n }\r\n\r\n response.type = DEPARTMENT_STATUS_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(DEPARTMENT_STATUS_SUCCESS, response));\r\n yield put(isDepartmentStatusPending(false));\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n } catch (error) {\r\n yield put(\r\n responseSuccessOrFailureAction(DEPARTMENT_STATUS_ERROR, {message: 'Something Went Wrong.'})\r\n );\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function deaprtmentStatus(state = departmentStatusInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case DEPARTMENT_STATUS_SUCCESS:\r\n return {...state, response, isPending: false};\r\n case DEPARTMENT_STATUS_ERROR:\r\n return {...state, response, isPending: false};\r\n case DEPARTMENT_STATUS_PENDING:\r\n return {...state, isPending: action.isPending};\r\n default:\r\n return state;\r\n }\r\n}\r\n","/* eslint-disable no-unused-vars */\r\nimport React, {useState} from 'react';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport Grid from '@mui/material/Grid';\r\nimport Button from '@mui/material/Button';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport {useParams, useNavigate} from 'react-router-dom';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport BasicTable from '../shared/units/BasicTable';\r\nimport DialogBox from '../shared/units/Dialog';\r\nimport DepartmentRowOverlay from './DepartmentRowOverlay';\r\nimport CreateEditDepartmentForm from './CreateEditDepartmentForm';\r\nimport TableLoader from '../shared/units/TableLoader';\r\nimport {fetchDepartmentList} from '../../ducks/departmentListDuck';\r\nimport {fetchCompanyList} from '../../ducks/companyListDuck';\r\nimport {createTableRowData} from '../shared/utils/helper';\r\nimport ConfirmationBox from '../shared/units/ConfirmationBox';\r\nimport {deleteDepartmentAction} from '../../ducks/deleteDepartmentDuck';\r\nimport {GetDepartmentById, hideModelHandler} from '../../ducks/getDepartmentDuck';\r\nimport {departmentStatusAction} from '../../ducks/departmentStatusDuck';\r\nimport {\r\n DEPARTMENT_LIST_DOMAIN,\r\n DEPARTMENT_SUBTITLE_CONTENT,\r\n CREATE_DEPARTMENT,\r\n COLUMNS,\r\n CREATE,\r\n CANCEL,\r\n DIALOG_TITLE_ICON_TOOLTIP,\r\n STATUS,\r\n EDIT,\r\n EDIT_DEPARTMENT,\r\n CONFIRMATION_HEADER_TITLE,\r\n DELETE_DEPARTMENT_MSG,\r\n CONFIRMATION_SECONDARY_BTN_LABEL,\r\n CONFIRMATION_PRIMARY_BTN_LABEL,\r\n EDITED_RECORD_MOVED_MSG,\r\n} from './constant';\r\nimport {COLOR_CODES} from '../../constants';\r\nimport BlockingLoader from '../shared/units/BlockingLoader';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\nimport useAxios from '../shared/hooks/useAxios';\r\nimport {CREATE_DEPARTMENT_ENDPOINT, EDIT_DEPARTMENT_ENDPOINT} from '../../constants/endpoints';\r\nimport notify from '../shared/utils/toast';\r\n\r\nfunction DepartmentList() {\r\n const navigate = useNavigate();\r\n const {id} = useParams();\r\n\r\n const userinfo = useSelector((state) => state.userinfo);\r\n const getDepartment = useSelector((state) => state.getDepartment);\r\n const deleteDepartment = useSelector((state) => state.deleteDepartment);\r\n const companyListData = useSelector((state) => state?.companyList?.response?.data?.companyList);\r\n const departmentListData = useSelector(\r\n (state) => state?.departmentList?.response?.data?.departmentList\r\n );\r\n const isDepartmentListPending = useSelector((state) => state?.departmentList?.isPending);\r\n const enableDepartmentPending = useSelector((state) => state?.enableDepartment?.isPending);\r\n const disableDepartmentPending = useSelector((state) => state?.disableDepartment?.isPending);\r\n const dispatch = useDispatch();\r\n const departmentDataInitialValue = {\r\n name: {value: '', error: false, errorMsg: ''},\r\n companyId: {value: id, error: false, errorMsg: ''},\r\n status: {value: 'enabled', error: false, errorMsg: ''},\r\n };\r\n\r\n const [tableData, setTableData] = React.useState([]);\r\n const [isDialogOpen, setDialogOpen] = React.useState(false);\r\n const [hasDepartmentFormError, departmentFormErrorCheck] = React.useState(true);\r\n const [departmentData, setDepartmentData] = React.useState(departmentDataInitialValue);\r\n const [isLoading, setLoading] = React.useState(false);\r\n const [companyListOptions, setCompanyListOptions] = React.useState({});\r\n\r\n const [isEditDialogOpen, setEditDialogOpen] = React.useState(false);\r\n const [isDeleteDepartmentCnfrmOpen, setDeleteDepartmentCnfrmOpen] = React.useState(false);\r\n const [hasEditDepartmentFormError, editDepartmentFormErrorCheck] = React.useState(false);\r\n const [editDepartmentData, setEditDepartmentData] = React.useState(departmentDataInitialValue);\r\n const [departmentTablePage, setTablePage] = useState(1);\r\n\r\n const [hoverData, setHoverData] = React.useState(null);\r\n const [searchText, setSearchText] = React.useState('');\r\n const [showPaginationModal, setPaginationModal] = React.useState(false);\r\n\r\n const departmentPermissionCreate = useRolePermission('department', 'create');\r\n\r\n const [{loading: isLoadingDepartmentCreate}, executeDepartmentCompany] = useAxios(\r\n {method: 'post'},\r\n {manual: true}\r\n );\r\n\r\n const [{loading: isLoadingDepartmentEdit}, executeEditDepartment] = useAxios(\r\n {method: 'put'},\r\n {manual: true}\r\n );\r\n\r\n const deleteDepartmentCancelBtnHandler = () => {\r\n setDeleteDepartmentCnfrmOpen(false);\r\n };\r\n\r\n React.useEffect(() => {\r\n dispatch(fetchCompanyList());\r\n if (isLoading) {\r\n setEditDialogOpen(true);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const options = {};\r\n if (companyListData?.rows?.length > 0) {\r\n companyListData?.rows.forEach((department) => {\r\n options[department?._id] = department?.name;\r\n });\r\n }\r\n setCompanyListOptions({...options});\r\n }, [companyListData]);\r\n\r\n React.useEffect(() => {\r\n if (deleteDepartment?.response?.status === 202) {\r\n setDeleteDepartmentCnfrmOpen(false);\r\n }\r\n }, [deleteDepartment]);\r\n\r\n const deleteDepartmentConfirmBtnHandler = () => {\r\n dispatch(\r\n deleteDepartmentAction(\r\n {id: hoverData?._id?.value},\r\n hoverData,\r\n departmentListData,\r\n departmentTablePage,\r\n departmentListData?.totalCount\r\n )\r\n );\r\n };\r\n\r\n const editClickHandler = () => {\r\n setEditDialogOpen(true);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (isEditDialogOpen) {\r\n let dataToBeEdited = {...hoverData};\r\n Object.keys(dataToBeEdited).forEach((key) => {\r\n dataToBeEdited = {\r\n ...dataToBeEdited,\r\n [key]: {\r\n value: dataToBeEdited[key].value,\r\n error: false,\r\n errorMsg: '',\r\n },\r\n companyId: {\r\n value: hoverData?.companyId?.id,\r\n error: false,\r\n errorMsg: '',\r\n },\r\n status: {\r\n value: hoverData?.status?.id,\r\n error: false,\r\n errorMsg: '',\r\n },\r\n };\r\n });\r\n setEditDepartmentData(dataToBeEdited);\r\n }\r\n }, [isEditDialogOpen]);\r\n\r\n const deleteClickHandler = () => {\r\n setDeleteDepartmentCnfrmOpen(true);\r\n };\r\n\r\n React.useEffect(() => {\r\n let isError = false;\r\n // eslint-disable-next-line array-callback-return\r\n Object.keys(editDepartmentData).every((key) => {\r\n isError =\r\n editDepartmentData[key]?.value === null ||\r\n editDepartmentData[key]?.value === '' ||\r\n editDepartmentData[key]?.error;\r\n if (isError) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n editDepartmentFormErrorCheck(isError);\r\n }, [editDepartmentData]);\r\n\r\n const getFieldDataResponse = (field, state, serverErrors) => {\r\n const errorField = serverErrors.find((e) => e?.field === field);\r\n const isError = errorField === undefined;\r\n return {\r\n value: state[field]?.value,\r\n error: !isError,\r\n errorMsg: !isError ? errorField.message : '',\r\n };\r\n };\r\n\r\n React.useEffect(() => {\r\n // adding condition when record already exist error scenarios\r\n if (getDepartment?.response?.status === 200) {\r\n if (departmentTablePage === 0) {\r\n dispatch(fetchDepartmentList({page: 1, limit: 10, companyId: id, search: searchText}));\r\n setPaginationModal(false);\r\n }\r\n setEditDialogOpen(false);\r\n } else if (\r\n getDepartment?.response !== undefined &&\r\n Object.keys(getDepartment?.response).length > 0 &&\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n 'status' in getDepartment?.response &&\r\n getDepartment?.response?.status !== ''\r\n ) {\r\n const serverErrors = getDepartment?.response?.data?.errors;\r\n if (serverErrors) {\r\n setEditDepartmentData((prevState) => ({\r\n ...prevState,\r\n name: getFieldDataResponse('name', prevState, serverErrors),\r\n }));\r\n }\r\n }\r\n }, [getDepartment]);\r\n\r\n const editPrimaryBtnHandler = () => {\r\n let payload = {\r\n createdBy: userinfo.id,\r\n id: hoverData?._id?.value,\r\n };\r\n Object.keys(editDepartmentData).forEach((key) => {\r\n payload = {\r\n ...payload,\r\n [key]: editDepartmentData[key]?.value,\r\n };\r\n });\r\n executeEditDepartment({\r\n url: `${EDIT_DEPARTMENT_ENDPOINT}/${payload.id}/${payload.companyId}`,\r\n data: payload,\r\n }).then((response) => {\r\n if (response?.status === 200) {\r\n if (departmentTablePage === 0) {\r\n dispatch(fetchDepartmentList({page: 1, limit: 10, companyId: id, search: searchText}));\r\n }\r\n setEditDialogOpen(false);\r\n notify(response?.data?.message, {type: 'success'});\r\n setPaginationModal(true);\r\n } else if (\r\n response !== undefined &&\r\n Object.keys(response).length > 0 &&\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n 'status' in response &&\r\n response?.status !== ''\r\n ) {\r\n const serverErrors = response?.data?.errors;\r\n if (serverErrors) {\r\n setEditDepartmentData((prevState) => ({\r\n ...prevState,\r\n name: getFieldDataResponse('name', prevState, serverErrors),\r\n }));\r\n }\r\n }\r\n });\r\n };\r\n\r\n const handleSortCall = (order, sortBy) => {\r\n dispatch(\r\n fetchDepartmentList({\r\n page: departmentTablePage,\r\n limit: 10,\r\n companyId: id,\r\n order,\r\n sortBy,\r\n search: searchText,\r\n })\r\n );\r\n };\r\n\r\n const editSecondaryBtnHandler = () => {\r\n setEditDialogOpen(false);\r\n };\r\n\r\n const editRecordNoConfirmationHandler = () => {\r\n setPaginationModal(false);\r\n dispatch(fetchDepartmentList({page: 1, limit: 10, companyId: id, search: searchText}));\r\n };\r\n\r\n const editRecordYesConfirmationHandler = () => {\r\n dispatch(fetchDepartmentList({page: 1, limit: 10, companyId: id, search: searchText}));\r\n setPaginationModal(false);\r\n setTablePage(1);\r\n };\r\n\r\n React.useEffect(() => {\r\n dispatch(fetchDepartmentList({page: 1, limit: 10, companyId: id, search: searchText}));\r\n setTablePage(1);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const flag =\r\n isLoadingDepartmentCreate ||\r\n getDepartment.isPending ||\r\n deleteDepartment.isPending ||\r\n enableDepartmentPending ||\r\n disableDepartmentPending;\r\n if (flag) {\r\n setLoading(true);\r\n } else {\r\n setLoading(false);\r\n }\r\n }, [\r\n isLoadingDepartmentCreate,\r\n getDepartment,\r\n deleteDepartment,\r\n enableDepartmentPending,\r\n disableDepartmentPending,\r\n ]);\r\n\r\n React.useEffect(() => {\r\n if (departmentListData?.rows !== undefined) {\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n const copyDepartmentList = [...departmentListData?.rows];\r\n const result = copyDepartmentList.map((department) =>\r\n createTableRowData(department, COLUMNS)\r\n );\r\n\r\n result.forEach((dept) => {\r\n dept.companyId = {\r\n id: dept.companyId?.value,\r\n value: departmentListData?.company,\r\n };\r\n dept.status = {\r\n id: dept.status.value,\r\n value: dept.status.value === 'enabled' ? 'Enabled' : 'Disabled',\r\n };\r\n });\r\n setTableData(result);\r\n }\r\n }, [departmentListData?.rows]);\r\n\r\n const viewProjectHandler = () => {\r\n const {companyId, _id} = hoverData;\r\n navigate(`/company/${companyId.id}/department/${_id.value}/project`, {replace: true});\r\n };\r\n\r\n React.useEffect(() => {\r\n let isError = false;\r\n // eslint-disable-next-line array-callback-return\r\n Object.keys(departmentData).every((key) => {\r\n isError =\r\n departmentData[key]?.value === null ||\r\n departmentData[key]?.value === '' ||\r\n departmentData[key]?.error;\r\n if (isError) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n departmentFormErrorCheck(isError);\r\n }, [departmentData]);\r\n\r\n const updateTableCurrentPage = (page) => {\r\n dispatch(fetchDepartmentList({page, limit: 10, companyId: id, search: searchText}));\r\n setTablePage(page);\r\n };\r\n\r\n const openDepartmentCreateDialog = () => {\r\n setDialogOpen(!isDialogOpen);\r\n };\r\n\r\n const creteDepartmentBtnHandler = () => {\r\n let obj = {};\r\n let payload = {\r\n createdBy: userinfo.id,\r\n };\r\n let isError = false;\r\n Object.keys(departmentData).forEach((key) => {\r\n isError = departmentData[key]?.value === null || departmentData[key]?.value === '';\r\n obj = {\r\n ...obj,\r\n [key]: {\r\n value: departmentData[key]?.value,\r\n error: isError,\r\n },\r\n };\r\n payload = {\r\n ...payload,\r\n [key]: departmentData[key]?.value,\r\n };\r\n });\r\n if (!isError) {\r\n executeDepartmentCompany({\r\n url: `${CREATE_DEPARTMENT_ENDPOINT}/${payload.companyId}`,\r\n data: payload,\r\n }).then((response) => {\r\n if (response?.status === 201) {\r\n setDepartmentData(departmentDataInitialValue);\r\n dispatch(fetchDepartmentList({page: 1, limit: 10, companyId: id, search: searchText}));\r\n setDialogOpen(false);\r\n notify(response?.data?.message, {type: 'success'});\r\n } else if (\r\n response !== undefined &&\r\n Object.keys(response).length > 0 &&\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n 'status' in response &&\r\n response?.status !== ''\r\n ) {\r\n const serverErrors = response?.data?.errors;\r\n if (serverErrors) {\r\n setDepartmentData((prevState) => ({\r\n ...prevState,\r\n name: getFieldDataResponse('name', prevState, serverErrors),\r\n }));\r\n }\r\n }\r\n });\r\n } else {\r\n setDepartmentData(obj);\r\n }\r\n };\r\n\r\n const cancelCreateBtnHandler = () => {\r\n setDepartmentData(departmentDataInitialValue);\r\n openDepartmentCreateDialog();\r\n };\r\n\r\n const departmentEnableHandler = () => {\r\n dispatch(\r\n departmentStatusAction(\r\n {id: hoverData?._id?.value, status: 'enabled', companyId: id},\r\n departmentTablePage\r\n )\r\n );\r\n };\r\n\r\n const departmentDisableHandler = () => {\r\n dispatch(\r\n departmentStatusAction(\r\n {id: hoverData?._id?.value, status: 'disabled', companyId: id},\r\n departmentTablePage\r\n )\r\n );\r\n };\r\n\r\n return (\r\n <Grid item size={12}>\r\n <BlockingLoader open={isLoading} />\r\n\r\n <Grid item className=\"flex flex-row p-[15px] pb-0\">\r\n <Grid className={`NunitoSansBold text-sm text-[${COLOR_CODES.headingTitle3}]`}>\r\n {DEPARTMENT_LIST_DOMAIN}\r\n </Grid>\r\n <Grid className=\"ml-auto\">\r\n <Grid className=\"flex flex-row mt-5\">\r\n <div className=\"w-52 h-8 sm:w-80 sm:h-8 rounded bg-slate-100 font-sans text-sm text-search-text mr-2 mt-0.5 flex\">\r\n <span className=\"rounded px-2 py-1 w-4 h-4 pr-7 bg-inherit cursor-pointer\">\r\n <SearchIcon\r\n onClick={() => {\r\n setTablePage(1);\r\n dispatch(\r\n fetchDepartmentList({\r\n page: departmentTablePage - 1,\r\n limit: 10,\r\n search: searchText,\r\n companyId: id,\r\n })\r\n );\r\n }}\r\n />\r\n </span>\r\n <input\r\n className=\"w-full bg-inherit border-none outline-none rounded\"\r\n type=\"text\"\r\n placeholder=\"Search by Department name\"\r\n value={searchText}\r\n onChange={(e) => {\r\n setSearchText(e.target.value);\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n setTablePage(1);\r\n dispatch(\r\n fetchDepartmentList({\r\n page: departmentTablePage - 1,\r\n limit: 10,\r\n search: searchText,\r\n companyId: id,\r\n })\r\n );\r\n }\r\n }}\r\n />\r\n </div>\r\n {departmentPermissionCreate && (\r\n <Button\r\n data-testId=\"creat-department-button\"\r\n className=\"h-9 rounded text-[13px] p-0 font-NunitoSansSemibold w-[133px]\"\r\n onClick={openDepartmentCreateDialog}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n >\r\n {CREATE_DEPARTMENT}\r\n </Button>\r\n )}\r\n </Grid>\r\n\r\n <DialogBox\r\n open={isDialogOpen}\r\n primaryBtnLabel={CREATE}\r\n primaryBtnHandler={creteDepartmentBtnHandler}\r\n secondaryBtnHandler={cancelCreateBtnHandler}\r\n secondaryBtnLabel={CANCEL}\r\n bodyContent={\r\n <CreateEditDepartmentForm\r\n departmentData={departmentData}\r\n setDepartmentData={setDepartmentData}\r\n companyOptions={companyListOptions}\r\n />\r\n }\r\n dialogTitle={CREATE_DEPARTMENT}\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n showCloseIcon={false}\r\n primaryBtnId=\"primaryBtn\"\r\n secondaryBtnId=\"secondaryBtn\"\r\n isDialogTitleIconVisible\r\n dialogTitleIcon={\r\n <Tooltip title={DEPARTMENT_SUBTITLE_CONTENT} placement=\"right-start\">\r\n <InfoIcon color=\"disabled\" className=\"global-mockscreen-info-icon\" />\r\n </Tooltip>\r\n }\r\n isSubtitleVisible\r\n SubtitleContent={DEPARTMENT_SUBTITLE_CONTENT}\r\n isPrimaryBtnDisabled={hasDepartmentFormError}\r\n />\r\n <DialogBox\r\n open={isEditDialogOpen}\r\n primaryBtnLabel={EDIT}\r\n primaryBtnHandler={editPrimaryBtnHandler}\r\n secondaryBtnHandler={editSecondaryBtnHandler}\r\n secondaryBtnLabel={CANCEL}\r\n bodyContent={\r\n <CreateEditDepartmentForm\r\n departmentData={editDepartmentData}\r\n setDepartmentData={setEditDepartmentData}\r\n companyOptions={companyListOptions}\r\n editDepartmentFormErrorCheck={editDepartmentFormErrorCheck}\r\n formView=\"edit\"\r\n />\r\n }\r\n dialogTitle={EDIT_DEPARTMENT}\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n showCloseIcon={false}\r\n primaryBtnId=\"editPrimaryBtn\"\r\n secondaryBtnId=\"editSecondaryBtn\"\r\n isDialogTitleIconVisible\r\n dialogTitleIcon={\r\n <Tooltip title={DEPARTMENT_SUBTITLE_CONTENT} placement=\"right-start\">\r\n <InfoIcon color=\"disabled\" className=\"global-mockscreen-info-icon\" />\r\n </Tooltip>\r\n }\r\n isSubtitleVisible\r\n SubtitleContent={DEPARTMENT_SUBTITLE_CONTENT}\r\n isPrimaryBtnDisabled={hasEditDepartmentFormError}\r\n />\r\n <ConfirmationBox\r\n open={showPaginationModal}\r\n headerContent={CONFIRMATION_HEADER_TITLE}\r\n secondaryBtnLabel={CONFIRMATION_SECONDARY_BTN_LABEL}\r\n secondaryBtnHandler={editRecordNoConfirmationHandler}\r\n primaryBtnLabel={CONFIRMATION_PRIMARY_BTN_LABEL}\r\n primaryBtnHandler={editRecordYesConfirmationHandler}\r\n bodyContent={EDITED_RECORD_MOVED_MSG}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n />\r\n <ConfirmationBox\r\n open={isDeleteDepartmentCnfrmOpen}\r\n showLoader={deleteDepartment?.isPending}\r\n headerContent={CONFIRMATION_HEADER_TITLE}\r\n secondaryBtnLabel={CONFIRMATION_SECONDARY_BTN_LABEL}\r\n secondaryBtnHandler={deleteDepartmentCancelBtnHandler}\r\n primaryBtnLabel={CONFIRMATION_PRIMARY_BTN_LABEL}\r\n primaryBtnHandler={deleteDepartmentConfirmBtnHandler}\r\n bodyContent={`Department ${hoverData?.name?.value} ${DELETE_DEPARTMENT_MSG}`}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnId=\"cancelDeleteDepartment\"\r\n primaryBtnId=\"deleteDepartment\"\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid item size={12} className=\"pl-[15px] pr-[30px]\">\r\n <BasicTable\r\n columns={COLUMNS}\r\n handleSortCall={handleSortCall}\r\n tableData={tableData}\r\n // eslint-disable-next-line react/no-unstable-nested-components\r\n onHoverContent={(data) => (\r\n <DepartmentRowOverlay\r\n data={data}\r\n setHoverData={setHoverData}\r\n editClickHandler={editClickHandler}\r\n deleteClickHandler={deleteClickHandler}\r\n enableHandler={departmentEnableHandler}\r\n disableHandler={departmentDisableHandler}\r\n viewProjectHandler={viewProjectHandler}\r\n />\r\n )}\r\n showPagination={departmentListData?.count > 10}\r\n totalRecords={departmentListData?.count}\r\n sortByColumn={STATUS}\r\n defaultPage={departmentTablePage}\r\n getPageNumber={updateTableCurrentPage}\r\n defaultSortOrder=\"asc\"\r\n cellClassName=\"global-table-body-cell NunitoSansSemibold\"\r\n headerCellClass=\"global-table-header-cell NunitoSansRegular\"\r\n hoverClassName=\"bg-white h-14 w-24 p-2.5 absolute right-16\"\r\n tableWrapperClassName=\"shadow-none\"\r\n showLoader={isDepartmentListPending}\r\n loaderComponent={<TableLoader rowsNum={10} colsNum={3} />}\r\n />\r\n </Grid>\r\n </Grid>\r\n );\r\n}\r\n\r\nexport default DepartmentList;\r\n","import React from 'react';\r\nimport Grid from '@mui/material/Grid';\r\nimport {Helmet} from 'react-helmet';\r\nimport DepartmentList from './DepartmentList';\r\nimport Breadcrumb from '../shared/units/Breadcrumb';\r\nimport {PAGE_TITLE} from './constant';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\n\r\nfunction DepartmentDetails() {\r\n const viewDepartmentAccess = useRolePermission('department', 'read');\r\n return (\r\n <>\r\n <Helmet>\r\n <title>{PAGE_TITLE}</title>\r\n <meta name=\"description\" content=\"CompanyDetails - iRest\" />\r\n </Helmet>\r\n <div id=\"companydetail\">\r\n <Grid className=\"shadow-lg bg-[#FFF] px-[15px] py-[10px]\">\r\n <Breadcrumb />\r\n </Grid>\r\n <Grid container className=\"m-0\">\r\n {viewDepartmentAccess && <DepartmentList />}\r\n </Grid>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default DepartmentDetails;\r\n","/* eslint-disable no-case-declarations */\r\nimport {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const PROJECT_LIST = 'PROJECT_LIST';\r\nexport const PROJECT_LIST_PENDING = 'PROJECT_LIST_PENDING';\r\nexport const PROJECT_LIST_SUCCESS = 'PROJECT_LIST_SUCCESS';\r\nexport const PROJECT_LIST_ERROR = 'PROJECT_LIST_ERROR';\r\nexport const PROJECT_LIST_UPDATE = 'PROJECT_LIST_UPDATE';\r\nexport const PROJECT_DELETE_ACTION = 'PROJECT_DELETE_ACTION';\r\nexport const PROJECT_LIST_CURRENT_PAGE = 'PROJECT_LIST_CURRENT_PAGE';\r\nexport const PROJECT_LIST_CURRENT_PAGE_SUCCESS = 'PROJECT_LIST_CURRENT_PAGE_SUCCESS';\r\n\r\n// Initial State\r\nconst projectListInitialState = {\r\n response: {\r\n projectList: [],\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const projectListAction = (data) => ({\r\n type: PROJECT_LIST,\r\n data,\r\n});\r\n\r\nexport const isProjectListPending = (isPending) => ({\r\n type: PROJECT_LIST_PENDING,\r\n isPending,\r\n});\r\n\r\nexport const projectTableCurrentPage = (pageNumber) => ({\r\n type: PROJECT_LIST_CURRENT_PAGE,\r\n pageNumber,\r\n});\r\n\r\nexport const updateProjectList = ({id, payload}) => ({\r\n type: PROJECT_LIST_UPDATE,\r\n id,\r\n payload,\r\n});\r\n\r\nexport const projectListDeleteHandle = ({id}) => ({\r\n type: PROJECT_DELETE_ACTION,\r\n id,\r\n});\r\n\r\n// Service\r\nexport const projectListService = ({data}) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/project/list`;\r\n\r\n return axios({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n params: data,\r\n })\r\n .then((response) => response.data)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\n// Saga\r\nexport function* projectListSaga(payload) {\r\n try {\r\n yield put(isProjectListPending(true));\r\n const response = yield call(projectListService, payload);\r\n response.type = PROJECT_LIST_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(PROJECT_LIST_SUCCESS, response));\r\n yield put(isProjectListPending(false));\r\n } catch (error) {\r\n const resp = {data: {projectList: []}};\r\n yield put(responseSuccessOrFailureAction(PROJECT_LIST_SUCCESS, resp));\r\n }\r\n}\r\n\r\nexport function* projectTableCurrentPageSaga(payload) {\r\n try {\r\n yield put(responseSuccessOrFailureAction(PROJECT_LIST_CURRENT_PAGE_SUCCESS, payload));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(PROJECT_LIST_ERROR));\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function projectList(state = projectListInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case PROJECT_LIST_SUCCESS:\r\n return {...state, response};\r\n case PROJECT_LIST_ERROR:\r\n return {...state, response};\r\n case PROJECT_LIST_UPDATE:\r\n const projectListCopy = state.response.projectList;\r\n const index = projectListCopy.findIndex((item) => item._id === action.id);\r\n projectListCopy[index].projectName = action.payload.projectName;\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n projectList: projectListCopy,\r\n },\r\n };\r\n case PROJECT_DELETE_ACTION:\r\n const ListCopy = state.response.projectList;\r\n const indexToBeDeleted = ListCopy.findIndex((item) => item._id === action.id);\r\n delete ListCopy[indexToBeDeleted];\r\n return {\r\n ...state,\r\n response: {\r\n ...state.response,\r\n projectList: ListCopy,\r\n },\r\n };\r\n case PROJECT_LIST_PENDING:\r\n return {\r\n ...state,\r\n isPending: action.isPending,\r\n };\r\n case PROJECT_LIST_CURRENT_PAGE_SUCCESS:\r\n return {...state, pageNumber: action.data.pageNumber};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const PREVIEW_MOCK = 'PREVIEW_MOCK';\r\nexport const PREVIEW_MOCK_PENDING = 'PREVIEW_MOCK_PENDING';\r\nexport const PREVIEW_MOCK_SUCCESS = 'PREVIEW_MOCK_SUCCESS';\r\nexport const PREVIEW_MOCK_ERROR = 'PREVIEW_MOCK_ERROR';\r\nexport const PREVIEW_MOCK_CLEAR = 'PREVIEW_MOCK_CLEAR';\r\n\r\n// Initial State\r\nconst createPreviewMockInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const createPreviewMockAction = (data) => ({\r\n type: PREVIEW_MOCK,\r\n data,\r\n});\r\nexport const flushPreviewMockData = () => ({\r\n type: PREVIEW_MOCK_CLEAR,\r\n});\r\nexport const isPreviewMockPending = (isPending) => ({\r\n type: PREVIEW_MOCK_PENDING,\r\n isPending,\r\n});\r\n\r\n// Service\r\nexport const createPreviewService = (request) => {\r\n const {API_BASE_URL} = process.env;\r\n const mockObj = {};\r\n\r\n // If isPreview tag is present in payload\r\n if (request.data.isPreview) {\r\n const payload = {...request.data};\r\n delete payload._id;\r\n const bulkSize = payload.bulkDataSize * 1024;\r\n payload.bulkDataSize = bulkSize;\r\n const URLParam = `${API_BASE_URL}/mock/create?isPreview=true`;\r\n\r\n return axios({\r\n method: 'post',\r\n url: URLParam,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: payload,\r\n })\r\n .then((resp) => {\r\n const {headers} = resp;\r\n const respObj = resp.data;\r\n respObj.headers = headers;\r\n respObj.mockResponse = mockObj;\r\n return respObj;\r\n })\r\n .catch((err) => err.response.data);\r\n }\r\n};\r\n\r\n// Saga\r\nexport function* createPreviewMockSaga(payload) {\r\n try {\r\n yield put(isPreviewMockPending(true));\r\n const response = yield call(createPreviewService, payload);\r\n response.type = PREVIEW_MOCK_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(PREVIEW_MOCK_SUCCESS, response));\r\n yield put(isPreviewMockPending(false));\r\n } catch (error) {\r\n yield put(\r\n responseSuccessOrFailureAction(PREVIEW_MOCK_ERROR, {message: 'Something Went Wrong.'})\r\n );\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function createPreviewMock(state = createPreviewMockInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case PREVIEW_MOCK_SUCCESS:\r\n return {...state, response};\r\n case PREVIEW_MOCK_ERROR:\r\n return {...state, response};\r\n case PREVIEW_MOCK_PENDING:\r\n return {...state, isPending: action.isPending};\r\n case PREVIEW_MOCK_CLEAR:\r\n return createPreviewMockInitialState;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {isMockListPending} from './mockListDuck';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const CREATE_MOCK = 'CREATE_MOCK';\r\nexport const CREATE_MOCK_SUCCESS = 'CREATE_MOCK_SUCCESS';\r\nexport const CREATE_MOCK_ERROR = 'CREATE_MOCK_ERROR';\r\nexport const CREATE_MOCK_CLEAR = 'CREATE_MOCK_CLEAR';\r\nexport const UPDATE_MOCK_MODE = 'UPDATE_MOCK_MODE';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n isPending: false,\r\n mockScreenMode: 'create',\r\n};\r\n\r\n// Action Creators\r\nexport const createMockAction = (data) => ({\r\n type: CREATE_MOCK,\r\n data,\r\n});\r\nexport const flushMockData = () => ({\r\n type: CREATE_MOCK_CLEAR,\r\n});\r\nexport const updateMockMode = (mode) => ({\r\n type: UPDATE_MOCK_MODE,\r\n mockScreenMode: mode,\r\n});\r\n\r\n// Service\r\nexport const createMockService = (request) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/create`;\r\n const URLParam = request.data.mockId\r\n ? `${API_BASE_URL}/mock/item/${request.data.mockId}`\r\n : API_ENDPOINT;\r\n\r\n return axios({\r\n method: request.data.mockId ? 'put' : 'post',\r\n url: URLParam,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.data,\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* createMockSaga(payload) {\r\n try {\r\n const response = yield call(createMockService, payload);\r\n if (response.status === 200) {\r\n if (payload.data.isPreview) {\r\n response.type = 'PREVIEW_MOCK';\r\n yield put(responseSuccessOrFailureAction(CREATE_MOCK_SUCCESS, response));\r\n } else {\r\n response.type = CREATE_MOCK_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(CREATE_MOCK_SUCCESS, response));\r\n yield put(isMockListPending(false));\r\n notify('Mock updated successfully!', {type: 'success'});\r\n }\r\n }\r\n if (response.status === 201) {\r\n if (payload.data.isPreview) {\r\n yield put(responseSuccessOrFailureAction(CREATE_MOCK_SUCCESS, response));\r\n } else {\r\n response.type = CREATE_MOCK_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(CREATE_MOCK_SUCCESS, response));\r\n notify('Mock created successfully!', {type: 'success'});\r\n }\r\n }\r\n if (response.status === 417 || response.status === 403) {\r\n yield put(responseSuccessOrFailureAction(CREATE_MOCK_SUCCESS, response));\r\n\r\n notify(response?.data?.message || 'Something went wrong.', {\r\n type: 'error',\r\n });\r\n }\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(CREATE_MOCK_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function createMock(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case CREATE_MOCK_SUCCESS:\r\n return {...state, response};\r\n case CREATE_MOCK_ERROR:\r\n return {...state, response};\r\n case CREATE_MOCK_CLEAR:\r\n return initialState;\r\n case UPDATE_MOCK_MODE:\r\n return {...state, ...{mockScreenMode: action.mockScreenMode}};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const GET_MOCK_BY_ID = 'GET_MOCK_BY_ID';\r\nexport const GET_MOCK_BY_ID_PENDING = 'GET_MOCK_BY_ID_PENDING';\r\nexport const GET_MOCK_BY_ID_SUCCESS = 'GET_MOCK_BY_ID_SUCCESS';\r\nexport const GET_MOCK_BY_ID_ERROR = 'GET_MOCK_BY_ID_ERROR';\r\nexport const GET_MOCK_BY_ID_CLEAR = 'GET_MOCK_BY_ID_CLEAR';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const GetMockById = (data) => ({\r\n type: GET_MOCK_BY_ID,\r\n data,\r\n});\r\nexport const isGetMockByIdPending = (isPending) => ({\r\n type: GET_MOCK_BY_ID_PENDING,\r\n isPending,\r\n});\r\nexport const clearGetMockData = () => ({\r\n type: GET_MOCK_BY_ID_CLEAR,\r\n});\r\n\r\n// Service\r\nexport const fetchListByIdService = (mockId) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item/`;\r\n\r\n return axios({\r\n method: 'get',\r\n url: API_ENDPOINT + mockId.data,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* getMockSaga(payload) {\r\n try {\r\n yield put(isGetMockByIdPending(true));\r\n const response = yield call(fetchListByIdService, payload);\r\n response.type = GET_MOCK_BY_ID_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(GET_MOCK_BY_ID_SUCCESS, response));\r\n yield put(isGetMockByIdPending(false));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(GET_MOCK_BY_ID_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function getMock(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case GET_MOCK_BY_ID_SUCCESS:\r\n return {...state, response, isPending: false};\r\n case GET_MOCK_BY_ID_ERROR:\r\n return {...state, response, isPending: false};\r\n case GET_MOCK_BY_ID_CLEAR:\r\n return initialState;\r\n case GET_MOCK_BY_ID_PENDING:\r\n return {...state, isPending: action.isPending};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport Accordion from '@mui/material/Accordion';\r\nimport AccordionDetails from '@mui/material/AccordionDetails';\r\nimport AccordionSummary from '@mui/material/AccordionSummary';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport Tooltip from '@mui/material/Tooltip';\r\n\r\nexport default function Accordions({children, title, handleChange, panel, expanded, tooltipText}) {\r\n return (\r\n <Accordion\r\n style={{borderTopLeftRadius: '0px', borderTopRightRadius: '0px', boxShadow: 'none'}}\r\n expanded={expanded === panel}\r\n onChange={handleChange(panel)}\r\n >\r\n <AccordionSummary\r\n expandIcon={<ExpandMoreIcon />}\r\n aria-controls={`${panel}-content`}\r\n id={`${panel}-header`}\r\n style={{\r\n backgroundColor: '#F5F5F5',\r\n height: '43px',\r\n minHeight: '43px',\r\n }}\r\n >\r\n {title}\r\n <Tooltip title={tooltipText} placement=\"top-end\">\r\n <InfoIcon fontSize=\"small\" color=\"#747474\" className=\"global-mockscreen-info-icon\" />\r\n </Tooltip>\r\n </AccordionSummary>\r\n <AccordionDetails className=\"border-solid border-2 border-[#FAFAFA] border-t-0\">\r\n {children}\r\n </AccordionDetails>\r\n </Accordion>\r\n );\r\n}\r\n","import React from 'react';\r\nimport JSONEditor from 'jsoneditor';\r\nimport 'jsoneditor/dist/jsoneditor.css';\r\nimport './JsonEditor.css';\r\n\r\nexport default class JsonEditor extends React.Component {\r\n componentDidMount() {\r\n const that = this;\r\n const options = {\r\n ...this.props,\r\n onValidationError(errors) {\r\n if (errors.length > 0) {\r\n that.props.setJsonEditorError((prevstate) => ({\r\n ...prevstate,\r\n [that.props.viewType]: true,\r\n }));\r\n } else {\r\n that.props.setJsonEditorError((prevstate) => ({\r\n ...prevstate,\r\n [that.props.viewType]: false,\r\n }));\r\n }\r\n },\r\n };\r\n delete options.json;\r\n delete options.text;\r\n this.jsoneditor = new JSONEditor(this.container, options);\r\n if ('json' in this.props) {\r\n this.jsoneditor.set(this.props.json);\r\n }\r\n if ('text' in this.props) {\r\n this.jsoneditor.setText(this.props.text);\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if ('json' in this.props) {\r\n this.jsoneditor.update(this.props.json);\r\n }\r\n if ('text' in this.props) {\r\n this.jsoneditor.updateText(this.props.text);\r\n }\r\n if ('mode' in this.props) {\r\n this.jsoneditor.setMode(this.props.mode);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.jsoneditor) {\r\n this.jsoneditor.destroy();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n className=\"jsoneditor-react-container\"\r\n ref={(elem) => {\r\n this.container = elem;\r\n }}\r\n />\r\n );\r\n }\r\n}\r\n","const CONSTANT = {\r\n RESPONSE_SCHEMA_ERROR: 'error: Incorrect response schema.',\r\n VALID_JSON_ERROR: 'Please provide valid json response',\r\n RESPONSE_BODY_REQUIRED: 'Response body is required.',\r\n RESPONSE_DETAILS_ERROR: 'error: Incorrect response Details.',\r\n EMPTY_HEADERS: 'error: Empty headers.',\r\n CONSTENT_TYPE: 'Content Type',\r\n STATUS_CODE: 'Status Code',\r\n REQUEST_METHOD_ERROR: 'Please select request method.',\r\n API_TYPE: 'API-Type',\r\n API_URL_REQUIRED: 'API url is required.',\r\n ENDPOINT_REQUIRED: 'Endpoint is required.',\r\n ENDPOINT: 'Endpoint',\r\n PROJECT_NAME_REQUIRED: 'Project name is required.',\r\n SELECT_PROJECT: 'Select Project',\r\n MOCK_NAME_REQUIRED: 'Mock name is required.',\r\n UPLOAD_JSON: 'Upload Json',\r\n VIEW_SAMPLE_DATA: 'View Sample Data',\r\n ENTER_FIELD_NAME: 'Enter Field Name',\r\n SELECT_DATA_TYPE: 'Select Data Type',\r\n DATA_PARAMETER: 'Data Parameter',\r\n HEADERS: '',\r\n KEY: 'Key',\r\n VALUE: 'Value',\r\n DELETE: 'Delete',\r\n DATA_OUTPUT: 'Data Output:',\r\n MIN_VALUE_FIELD_ERROR: 'Value cannot be less than 1',\r\n OFF: 'Off',\r\n ON: 'On',\r\n DELAYS: 'Delay (s)',\r\n DELAY_SECONDS_ERROR: 'Delay response should be between 1 to 60 seconds',\r\n MAX_DELAY_TIME: 'Max: 60S',\r\n DYNAMIC_RESPONSE: 'Dynamic Response',\r\n RESPONSE_KEY_REQUIRED: 'Response key is required.',\r\n CONTENT_TYPE: 'Content Type:',\r\n SPECIFIC_DETAILS: 'Specific Details:',\r\n SPECIFIC_RESPONSE_BODY_REQUIRED: 'Specific json response body is required.',\r\n VALID_OTHER_ERROR: 'Specific other response body is required.',\r\n RESPONSE_TYPE: 'Response Type:',\r\n RESPONSE_SCHEMA_REQUIRED: 'response schema is required.',\r\n RESPONSE_SCHEMA_EMPTY: 'response schema cannot be empty.',\r\n SAVE: 'Save',\r\n CANCEL: 'Cancel',\r\n PREVIEW: 'Preview',\r\n};\r\n\r\nexport default CONSTANT;\r\n","export const fieldTypes = [\r\n {key: 'string', value: 'String'},\r\n {key: 'fakerJs', value: 'Faker.js'},\r\n {key: 'boolean', value: 'Boolean'},\r\n {key: 'number', value: 'Number'},\r\n {key: 'object', value: 'Object'},\r\n {key: 'array', value: 'Array'},\r\n {key: 'date', value: 'Date'},\r\n];\r\n\r\nexport const sampleFakerObj = {\r\n username: '$internet.userName',\r\n knownIps: ['$internet.ip', '$internet.ipv6'],\r\n profile: {\r\n firstName: '$name.firstName',\r\n lastName: '$name.lastName',\r\n staticData: [100, 200, 300],\r\n },\r\n};\r\n\r\nexport const serviceResponseType = Object.freeze({\r\n SAVE: 'save',\r\n FETCH: 'default',\r\n FILE: 'file',\r\n});\r\n\r\nexport const saveApiSchemaTypes = {\r\n GET: {\r\n value: '{\"message\":\"Record List!\",\"status\":\"200\",\"data\":\"$dataArray\"}',\r\n },\r\n GET_BY_ID: {\r\n value: '{\"message\":\"Single Record\",\"status\":\"200\",\"data\":\"$dataObject\"}',\r\n },\r\n POST: {\r\n value:\r\n '{\"message\":\"Data stored Successfully.\",\"status\":\"200\",\"data\":{\"id\":\"$IREST_RECORD_ID\"}}',\r\n },\r\n PUT: {\r\n value:\r\n '{\"message\":\"Data updated Successfully.\",\"status\":\"200\",\"data\":{\"id\":\"$IREST_RECORD_ID\"}}',\r\n },\r\n PATCH: {\r\n value:\r\n '{\"message\":\"Data updated Successfully.\",\"status\":\"200\",\"data\":{\"id\":\"$IREST_RECORD_ID\"}}',\r\n },\r\n DELETE: {\r\n value:\r\n '{\"message\":\"Record deleted Successfully.\",\"status\":\"200\",\"data\":{\"id\":\"$IREST_RECORD_ID\"}}',\r\n },\r\n};\r\n\r\nexport const fetchApiSchemaTypes = {\r\n FETCH_NORMAL_RESPONSE: {\r\n value: '{}',\r\n },\r\n GET: {\r\n value: '{}',\r\n },\r\n POST: {\r\n value: '{}',\r\n },\r\n};\r\n\r\nexport const IsStringJson = (str) => {\r\n try {\r\n const json = JSON.parse(str);\r\n return typeof json === 'object';\r\n } catch (e) {\r\n return false;\r\n }\r\n};\r\n","const fakerObj = {\r\n address: [\r\n {\r\n key: 'buildingNumber',\r\n value: 'buildingNumber',\r\n displayValue: '$address.buildingNumber',\r\n },\r\n {\r\n key: 'cardinalDirection',\r\n value: 'cardinalDirection',\r\n displayValue: '$address.cardinalDirection',\r\n },\r\n {\r\n key: 'city',\r\n value: 'city',\r\n displayValue: '$address.city',\r\n },\r\n {\r\n key: 'cityName',\r\n value: 'cityName',\r\n displayValue: '$address.cityName',\r\n },\r\n {\r\n key: 'country',\r\n value: 'country',\r\n displayValue: '$address.country',\r\n },\r\n {\r\n key: 'countryCode',\r\n value: 'countryCode',\r\n displayValue: '$address.countryCode',\r\n },\r\n {\r\n key: 'county',\r\n value: 'county',\r\n displayValue: '$address.county',\r\n },\r\n {\r\n key: 'direction',\r\n value: 'direction',\r\n displayValue: '$address.direction',\r\n },\r\n {\r\n key: 'latitude',\r\n value: 'latitude',\r\n displayValue: '$address.latitude',\r\n },\r\n {\r\n key: 'longitude',\r\n value: 'longitude',\r\n displayValue: '$address.longitude',\r\n },\r\n {\r\n key: 'nearbyGPSCoordinate',\r\n value: 'nearbyGPSCoordinate',\r\n displayValue: '$address.nearbyGPSCoordinate',\r\n },\r\n {\r\n key: 'ordinalDirection',\r\n value: 'ordinalDirection',\r\n displayValue: '$address.ordinalDirection',\r\n },\r\n {\r\n key: 'secondaryAddress',\r\n value: 'secondaryAddress',\r\n displayValue: '$address.secondaryAddress',\r\n },\r\n {\r\n key: 'state',\r\n value: 'state',\r\n displayValue: '$address.state',\r\n },\r\n {\r\n key: 'stateAbbr',\r\n value: 'stateAbbr',\r\n displayValue: '$address.stateAbbr',\r\n },\r\n {\r\n key: 'street',\r\n value: 'street',\r\n displayValue: '$address.street',\r\n },\r\n {\r\n key: 'streetAddress',\r\n value: 'streetAddress',\r\n displayValue: '$address.streetAddress',\r\n },\r\n {\r\n key: 'streetName',\r\n value: 'streetName',\r\n displayValue: '$address.streetName',\r\n },\r\n {\r\n key: 'timeZone',\r\n value: 'timeZone',\r\n displayValue: '$address.timeZone',\r\n },\r\n {\r\n key: 'zipCode',\r\n value: 'zipCode',\r\n displayValue: '$address.zipCode',\r\n },\r\n {\r\n key: 'zipCodeByState',\r\n value: 'zipCodeByState',\r\n displayValue: '$address.zipCodeByState',\r\n },\r\n ],\r\n animal: [\r\n {\r\n key: 'bear',\r\n value: 'bear',\r\n displayValue: '$animal.bear',\r\n },\r\n {\r\n key: 'bird',\r\n value: 'bird',\r\n displayValue: '$animal.bird',\r\n },\r\n {\r\n key: 'cat',\r\n value: 'cat',\r\n displayValue: '$animal.cat',\r\n },\r\n {\r\n key: 'cetacean',\r\n value: 'cetacean',\r\n displayValue: '$animal.cetacean',\r\n },\r\n {\r\n key: 'cow',\r\n value: 'cow',\r\n displayValue: '$animal.cow',\r\n },\r\n {\r\n key: 'crocodilia',\r\n value: 'crocodilia',\r\n displayValue: '$animal.crocodilia',\r\n },\r\n {\r\n key: 'dog',\r\n value: 'dog',\r\n displayValue: '$animal.dog',\r\n },\r\n {\r\n key: 'fish',\r\n value: 'fish',\r\n displayValue: '$animal.fish',\r\n },\r\n {\r\n key: 'horse',\r\n value: 'horse',\r\n displayValue: '$animal.horse',\r\n },\r\n {\r\n key: 'insect',\r\n value: 'insect',\r\n displayValue: '$animal.insect',\r\n },\r\n {\r\n key: 'lion',\r\n value: 'lion',\r\n displayValue: '$animal.lion',\r\n },\r\n {\r\n key: 'rabbit',\r\n value: 'rabbit',\r\n displayValue: '$animal.rabbit',\r\n },\r\n {\r\n key: 'snake',\r\n value: 'snake',\r\n displayValue: '$animal.snake',\r\n },\r\n {\r\n key: 'type',\r\n value: 'type',\r\n displayValue: '$animal.type',\r\n },\r\n ],\r\n color: [\r\n {\r\n key: 'cmyk',\r\n value: 'cmyk',\r\n displayValue: '$color.cmyk',\r\n },\r\n {\r\n key: 'colorByCSSColorSpace',\r\n value: 'colorByCSSColorSpace',\r\n displayValue: '$color.colorByCSSColorSpace',\r\n },\r\n {\r\n key: 'cssSupportedFunction',\r\n value: 'cssSupportedFunction',\r\n displayValue: '$color.cssSupportedFunction',\r\n },\r\n {\r\n key: 'cssSupportedSpace',\r\n value: 'cssSupportedSpace',\r\n displayValue: '$color.cssSupportedSpace',\r\n },\r\n {\r\n key: 'hsl',\r\n value: 'hsl',\r\n displayValue: '$color.hsl',\r\n },\r\n {\r\n key: 'human',\r\n value: 'human',\r\n displayValue: '$color.human',\r\n },\r\n {\r\n key: 'hwb',\r\n value: 'hwb',\r\n displayValue: '$color.hwb',\r\n },\r\n {\r\n key: 'lab',\r\n value: 'lab',\r\n displayValue: '$color.lab',\r\n },\r\n {\r\n key: 'lch',\r\n value: 'lch',\r\n displayValue: '$color.lch',\r\n },\r\n {\r\n key: 'rgb',\r\n value: 'rgb',\r\n displayValue: '$color.rgb',\r\n },\r\n {\r\n key: 'space',\r\n value: 'space',\r\n displayValue: '$color.space',\r\n },\r\n ],\r\n commerce: [\r\n {\r\n key: 'department',\r\n value: 'department',\r\n displayValue: '$commerce.department',\r\n },\r\n {\r\n key: 'price',\r\n value: 'price',\r\n displayValue: '$commerce.price',\r\n },\r\n {\r\n key: 'product',\r\n value: 'product',\r\n displayValue: '$commerce.product',\r\n },\r\n {\r\n key: 'productAdjective',\r\n value: 'productAdjective',\r\n displayValue: '$commerce.productAdjective',\r\n },\r\n {\r\n key: 'productDescription',\r\n value: 'productDescription',\r\n displayValue: '$commerce.productDescription',\r\n },\r\n {\r\n key: 'productMaterial',\r\n value: 'productMaterial',\r\n displayValue: '$commerce.productMaterial',\r\n },\r\n {\r\n key: 'productName',\r\n value: 'productName',\r\n displayValue: '$commerce.productName',\r\n },\r\n ],\r\n company: [\r\n {\r\n key: 'bs',\r\n value: 'bs',\r\n displayValue: '$company.bs',\r\n },\r\n {\r\n key: 'bsAdjective',\r\n value: 'bsAdjective',\r\n displayValue: '$company.bsAdjective',\r\n },\r\n {\r\n key: 'bsBuzz',\r\n value: 'bsBuzz',\r\n displayValue: '$company.bsBuzz',\r\n },\r\n {\r\n key: 'bsNoun',\r\n value: 'bsNoun',\r\n displayValue: '$company.bsNoun',\r\n },\r\n {\r\n key: 'catchPhrase',\r\n value: 'catchPhrase',\r\n displayValue: '$company.catchPhrase',\r\n },\r\n {\r\n key: 'catchPhraseAdjective',\r\n value: 'catchPhraseAdjective',\r\n displayValue: '$company.catchPhraseAdjective',\r\n },\r\n {\r\n key: 'catchPhraseDescriptor',\r\n value: 'catchPhraseDescriptor',\r\n displayValue: '$company.catchPhraseDescriptor',\r\n },\r\n {\r\n key: 'catchPhraseNoun',\r\n value: 'catchPhraseNoun',\r\n displayValue: '$company.catchPhraseNoun',\r\n },\r\n {\r\n key: 'companySuffix',\r\n value: 'companySuffix',\r\n displayValue: '$company.companySuffix',\r\n },\r\n {\r\n key: 'name',\r\n value: 'name',\r\n displayValue: '$company.name',\r\n },\r\n {\r\n key: 'suffixes',\r\n value: 'suffixes',\r\n displayValue: '$company.suffixes',\r\n },\r\n ],\r\n database: [\r\n {\r\n key: 'collation',\r\n value: 'collation',\r\n displayValue: '$database.collation',\r\n },\r\n {\r\n key: 'column',\r\n value: 'column',\r\n displayValue: '$database.column',\r\n },\r\n {\r\n key: 'engine',\r\n value: 'engine',\r\n displayValue: '$database.engine',\r\n },\r\n {\r\n key: 'mongodbObjectId',\r\n value: 'mongodbObjectId',\r\n displayValue: '$database.mongodbObjectId',\r\n },\r\n {\r\n key: 'type',\r\n value: 'type',\r\n displayValue: '$database.type',\r\n },\r\n ],\r\n datatype: [\r\n {\r\n key: 'array',\r\n value: 'array',\r\n displayValue: '$datatype.array',\r\n },\r\n {\r\n key: 'bigInt',\r\n value: 'bigInt',\r\n displayValue: '$datatype.bigInt',\r\n },\r\n {\r\n key: 'boolean',\r\n value: 'boolean',\r\n displayValue: '$datatype.boolean',\r\n },\r\n {\r\n key: 'datetime',\r\n value: 'datetime',\r\n displayValue: '$datatype.datetime',\r\n },\r\n {\r\n key: 'float',\r\n value: 'float',\r\n displayValue: '$datatype.float',\r\n },\r\n {\r\n key: 'hexadecimal',\r\n value: 'hexadecimal',\r\n displayValue: '$datatype.hexadecimal',\r\n },\r\n {\r\n key: 'json',\r\n value: 'json',\r\n displayValue: '$datatype.json',\r\n },\r\n {\r\n key: 'number',\r\n value: 'number',\r\n displayValue: '$datatype.number',\r\n },\r\n {\r\n key: 'string',\r\n value: 'string',\r\n displayValue: '$datatype.string',\r\n },\r\n {\r\n key: 'uuid',\r\n value: 'uuid',\r\n displayValue: '$datatype.uuid',\r\n },\r\n ],\r\n date: [\r\n {\r\n key: 'between',\r\n value: 'between',\r\n displayValue: '$date.between',\r\n },\r\n {\r\n key: 'betweens',\r\n value: 'betweens',\r\n displayValue: '$date.betweens',\r\n },\r\n {\r\n key: 'birthdate',\r\n value: 'birthdate',\r\n displayValue: '$date.birthdate',\r\n },\r\n {\r\n key: 'future',\r\n value: 'future',\r\n displayValue: '$date.future',\r\n },\r\n {\r\n key: 'month',\r\n value: 'month',\r\n displayValue: '$date.month',\r\n },\r\n {\r\n key: 'past',\r\n value: 'past',\r\n displayValue: '$date.past',\r\n },\r\n {\r\n key: 'recent',\r\n value: 'recent',\r\n displayValue: '$date.recent',\r\n },\r\n {\r\n key: 'soon',\r\n value: 'soon',\r\n displayValue: '$date.soon',\r\n },\r\n {\r\n key: 'weekday',\r\n value: 'weekday',\r\n displayValue: '$date.weekday',\r\n },\r\n ],\r\n finance: [\r\n {\r\n key: 'account',\r\n value: 'account',\r\n displayValue: '$finance.account',\r\n },\r\n {\r\n key: 'accountName',\r\n value: 'accountName',\r\n displayValue: '$finance.accountName',\r\n },\r\n {\r\n key: 'amount',\r\n value: 'amount',\r\n displayValue: '$finance.amount',\r\n },\r\n {\r\n key: 'bic',\r\n value: 'bic',\r\n displayValue: '$finance.bic',\r\n },\r\n {\r\n key: 'bitcoinAddress',\r\n value: 'bitcoinAddress',\r\n displayValue: '$finance.bitcoinAddress',\r\n },\r\n {\r\n key: 'creditCardCVV',\r\n value: 'creditCardCVV',\r\n displayValue: '$finance.creditCardCVV',\r\n },\r\n {\r\n key: 'creditCardIssuer',\r\n value: 'creditCardIssuer',\r\n displayValue: '$finance.creditCardIssuer',\r\n },\r\n {\r\n key: 'creditCardNumber',\r\n value: 'creditCardNumber',\r\n displayValue: '$finance.creditCardNumber',\r\n },\r\n {\r\n key: 'currencyName',\r\n value: 'currencyName',\r\n displayValue: '$finance.currencyName',\r\n },\r\n {\r\n key: 'currencySymbol',\r\n value: 'currencySymbol',\r\n displayValue: '$finance.currencySymbol',\r\n },\r\n {\r\n key: 'ethereumAddress',\r\n value: 'ethereumAddress',\r\n displayValue: '$finance.ethereumAddress',\r\n },\r\n {\r\n key: 'iban',\r\n value: 'iban',\r\n displayValue: '$finance.iban',\r\n },\r\n {\r\n key: 'litecoinAddress',\r\n value: 'litecoinAddress',\r\n displayValue: '$finance.litecoinAddress',\r\n },\r\n {\r\n key: 'mask',\r\n value: 'mask',\r\n displayValue: '$finance.mask',\r\n },\r\n {\r\n key: 'pin',\r\n value: 'pin',\r\n displayValue: '$finance.pin',\r\n },\r\n {\r\n key: 'routingNumber',\r\n value: 'routingNumber',\r\n displayValue: '$finance.routingNumber',\r\n },\r\n {\r\n key: 'transactionDescription',\r\n value: 'transactionDescription',\r\n displayValue: '$finance.transactionDescription',\r\n },\r\n {\r\n key: 'transactionType',\r\n value: 'transactionType',\r\n displayValue: '$finance.transactionType',\r\n },\r\n ],\r\n git: [\r\n {\r\n key: 'branch',\r\n value: 'branch',\r\n displayValue: '$git.branch',\r\n },\r\n {\r\n key: 'commitEntry',\r\n value: 'commitEntry',\r\n displayValue: '$git.commitEntry',\r\n },\r\n {\r\n key: 'commitMessage',\r\n value: 'commitMessage',\r\n displayValue: '$git.commitMessage',\r\n },\r\n {\r\n key: 'commitSha',\r\n value: 'commitSha',\r\n displayValue: '$git.commitSha',\r\n },\r\n {\r\n key: 'shortSha',\r\n value: 'shortSha',\r\n displayValue: '$git.shortSha',\r\n },\r\n ],\r\n hacker: [\r\n {\r\n key: 'abbreviation',\r\n value: 'abbreviation',\r\n displayValue: '$hacker.abbreviation',\r\n },\r\n {\r\n key: 'adjective',\r\n value: 'adjective',\r\n displayValue: '$hacker.adjective',\r\n },\r\n {\r\n key: 'ingverb',\r\n value: 'ingverb',\r\n displayValue: '$hacker.ingverb',\r\n },\r\n {\r\n key: 'noun',\r\n value: 'noun',\r\n displayValue: '$hacker.noun',\r\n },\r\n {\r\n key: 'phrase',\r\n value: 'phrase',\r\n displayValue: '$hacker.phrase',\r\n },\r\n {\r\n key: 'verb',\r\n value: 'verb',\r\n displayValue: '$hacker.verb',\r\n },\r\n ],\r\n helpers: [\r\n {\r\n key: 'arrayElement',\r\n value: 'arrayElement',\r\n displayValue: '$helpers.arrayElement',\r\n },\r\n {\r\n key: 'arrayElements',\r\n value: 'arrayElements',\r\n displayValue: '$helpers.arrayElements',\r\n },\r\n {\r\n key: 'maybe',\r\n value: 'maybe',\r\n displayValue: '$helpers.maybe',\r\n },\r\n {\r\n key: 'mustache',\r\n value: 'mustache',\r\n displayValue: '$helpers.mustache',\r\n },\r\n {\r\n key: 'objectKey',\r\n value: 'objectKey',\r\n displayValue: '$helpers.objectKey',\r\n },\r\n {\r\n key: 'objectValue',\r\n value: 'objectValue',\r\n displayValue: '$helpers.objectValue',\r\n },\r\n {\r\n key: 'regexpStyleStringParse',\r\n value: 'regexpStyleStringParse',\r\n displayValue: '$helpers.regexpStyleStringParse',\r\n },\r\n {\r\n key: 'replaceCreditCardSymbols',\r\n value: 'replaceCreditCardSymbols',\r\n displayValue: '$helpers.replaceCreditCardSymbols',\r\n },\r\n {\r\n key: 'replaceSymbolWithNumber',\r\n value: 'replaceSymbolWithNumber',\r\n displayValue: '$helpers.replaceSymbolWithNumber',\r\n },\r\n {\r\n key: 'replaceSymbols',\r\n value: 'replaceSymbols',\r\n displayValue: '$helpers.replaceSymbols',\r\n },\r\n {\r\n key: 'shuffle',\r\n value: 'shuffle',\r\n displayValue: '$helpers.shuffle',\r\n },\r\n {\r\n key: 'slugify',\r\n value: 'slugify',\r\n displayValue: '$helpers.slugify',\r\n },\r\n {\r\n key: 'uniqueArray',\r\n value: 'uniqueArray',\r\n displayValue: '$helpers.uniqueArray',\r\n },\r\n ],\r\n image: [\r\n {\r\n key: 'abstract',\r\n value: 'abstract',\r\n displayValue: '$image.abstract',\r\n },\r\n {\r\n key: 'animals',\r\n value: 'animals',\r\n displayValue: '$image.animals',\r\n },\r\n {\r\n key: 'avatar',\r\n value: 'avatar',\r\n displayValue: '$image.avatar',\r\n },\r\n {\r\n key: 'business',\r\n value: 'business',\r\n displayValue: '$image.business',\r\n },\r\n {\r\n key: 'cats',\r\n value: 'cats',\r\n displayValue: '$image.cats',\r\n },\r\n {\r\n key: 'city',\r\n value: 'city',\r\n displayValue: '$image.city',\r\n },\r\n {\r\n key: 'dataUri',\r\n value: 'dataUri',\r\n displayValue: '$image.dataUri',\r\n },\r\n {\r\n key: 'fashion',\r\n value: 'fashion',\r\n displayValue: '$image.fashion',\r\n },\r\n {\r\n key: 'food',\r\n value: 'food',\r\n displayValue: '$image.food',\r\n },\r\n {\r\n key: 'image',\r\n value: 'image',\r\n displayValue: '$image.image',\r\n },\r\n {\r\n key: 'imageUrl',\r\n value: 'imageUrl',\r\n displayValue: '$image.imageUrl',\r\n },\r\n {\r\n key: 'nature',\r\n value: 'nature',\r\n displayValue: '$image.nature',\r\n },\r\n {\r\n key: 'people',\r\n value: 'people',\r\n displayValue: '$image.people',\r\n },\r\n {\r\n key: 'sports',\r\n value: 'sports',\r\n displayValue: '$image.sports',\r\n },\r\n {\r\n key: 'technics',\r\n value: 'technics',\r\n displayValue: '$image.technics',\r\n },\r\n {\r\n key: 'transport',\r\n value: 'transport',\r\n displayValue: '$image.transport',\r\n },\r\n ],\r\n internet: [\r\n {\r\n key: 'avatar',\r\n value: 'avatar',\r\n displayValue: '$internet.avatar',\r\n },\r\n {\r\n key: 'color',\r\n value: 'color',\r\n displayValue: '$internet.color',\r\n },\r\n {\r\n key: 'domainName',\r\n value: 'domainName',\r\n displayValue: '$internet.domainName',\r\n },\r\n {\r\n key: 'domainSuffix',\r\n value: 'domainSuffix',\r\n displayValue: '$internet.domainSuffix',\r\n },\r\n {\r\n key: 'domainWord',\r\n value: 'domainWord',\r\n displayValue: '$internet.domainWord',\r\n },\r\n {\r\n key: 'email',\r\n value: 'email',\r\n displayValue: '$internet.email',\r\n },\r\n {\r\n key: 'emoji',\r\n value: 'emoji',\r\n displayValue: '$internet.emoji',\r\n },\r\n {\r\n key: 'exampleEmail',\r\n value: 'exampleEmail',\r\n displayValue: '$internet.exampleEmail',\r\n },\r\n {\r\n key: 'httpvalue',\r\n value: 'httpvalue',\r\n displayValue: '$internet.httpvalue',\r\n },\r\n {\r\n key: 'httpStatusCode',\r\n value: 'httpStatusCode',\r\n displayValue: '$internet.httpStatusCode',\r\n },\r\n {\r\n key: 'ip',\r\n value: 'ip',\r\n displayValue: '$internet.ip',\r\n },\r\n {\r\n key: 'ipv4',\r\n value: 'ipv4',\r\n displayValue: '$internet.ipv4',\r\n },\r\n {\r\n key: 'ipv6',\r\n value: 'ipv6',\r\n displayValue: '$internet.ipv6',\r\n },\r\n {\r\n key: 'password',\r\n value: 'password',\r\n displayValue: '$internet.password',\r\n },\r\n {\r\n key: 'port',\r\n value: 'port',\r\n displayValue: '$internet.port',\r\n },\r\n {\r\n key: 'protocol',\r\n value: 'protocol',\r\n displayValue: '$internet.protocol',\r\n },\r\n {\r\n key: 'url',\r\n value: 'url',\r\n displayValue: '$internet.url',\r\n },\r\n {\r\n key: 'userAgent',\r\n value: 'userAgent',\r\n displayValue: '$internet.userAgent',\r\n },\r\n {\r\n key: 'userName',\r\n value: 'userName',\r\n displayValue: '$internet.userName',\r\n },\r\n ],\r\n lorem: [\r\n {\r\n key: 'lines',\r\n value: 'lines',\r\n displayValue: '$lorem.lines',\r\n },\r\n {\r\n key: 'paragraph',\r\n value: 'paragraph',\r\n displayValue: '$lorem.paragraph',\r\n },\r\n {\r\n key: 'paragraphs',\r\n value: 'paragraphs',\r\n displayValue: '$lorem.paragraphs',\r\n },\r\n {\r\n key: 'sentence',\r\n value: 'sentence',\r\n displayValue: '$lorem.sentence',\r\n },\r\n {\r\n key: 'sentences',\r\n value: 'sentences',\r\n displayValue: '$lorem.sentences',\r\n },\r\n {\r\n key: 'slug',\r\n value: 'slug',\r\n displayValue: '$lorem.slug',\r\n },\r\n {\r\n key: 'text',\r\n value: 'text',\r\n displayValue: '$lorem.text',\r\n },\r\n {\r\n key: 'word',\r\n value: 'word',\r\n displayValue: '$lorem.word',\r\n },\r\n {\r\n key: 'words',\r\n value: 'words',\r\n displayValue: '$lorem.words',\r\n },\r\n ],\r\n music: [\r\n {\r\n key: 'genre',\r\n value: 'genre',\r\n displayValue: '$music.genre',\r\n },\r\n {\r\n key: 'songName',\r\n value: 'songName',\r\n displayValue: '$music.songName',\r\n },\r\n ],\r\n name: [\r\n {\r\n key: 'fullName',\r\n value: 'fullName',\r\n displayValue: '$name.fullName',\r\n },\r\n {\r\n key: 'firstName',\r\n value: 'firstName',\r\n displayValue: '$name.firstName',\r\n },\r\n {\r\n key: 'gender',\r\n value: 'gender',\r\n displayValue: '$name.gender',\r\n },\r\n {\r\n key: 'jobArea',\r\n value: 'jobArea',\r\n displayValue: '$name.jobArea',\r\n },\r\n {\r\n key: 'jobDescriptor',\r\n value: 'jobDescriptor',\r\n displayValue: '$name.jobDescriptor',\r\n },\r\n {\r\n key: 'jobTitle',\r\n value: 'jobTitle',\r\n displayValue: '$name.jobTitle',\r\n },\r\n {\r\n key: 'jobType',\r\n value: 'jobType',\r\n displayValue: '$name.jobType',\r\n },\r\n {\r\n key: 'lastName',\r\n value: 'lastName',\r\n displayValue: '$name.lastName',\r\n },\r\n {\r\n key: 'middleName',\r\n value: 'middleName',\r\n displayValue: '$name.middleName',\r\n },\r\n {\r\n key: 'prefix',\r\n value: 'prefix',\r\n displayValue: '$name.prefix',\r\n },\r\n {\r\n key: 'suffix',\r\n value: 'suffix',\r\n displayValue: '$name.suffix',\r\n },\r\n ],\r\n phone: [\r\n {\r\n key: 'imei',\r\n value: 'imei',\r\n displayValue: '$phone.imei',\r\n },\r\n {\r\n key: 'number',\r\n value: 'number',\r\n displayValue: '$phone.number',\r\n },\r\n ],\r\n random: [\r\n {\r\n key: 'alpha',\r\n value: 'alpha',\r\n displayValue: '$random.alpha',\r\n },\r\n {\r\n key: 'alphaNumeric',\r\n value: 'alphaNumeric',\r\n displayValue: '$random.alphaNumeric',\r\n },\r\n {\r\n key: 'locale',\r\n value: 'locale',\r\n displayValue: '$random.locale',\r\n },\r\n {\r\n key: 'numeric',\r\n value: 'numeric',\r\n displayValue: '$random.numeric',\r\n },\r\n {\r\n key: 'word',\r\n value: 'word',\r\n displayValue: '$random.word',\r\n },\r\n {\r\n key: 'words',\r\n value: 'words',\r\n displayValue: '$random.words',\r\n },\r\n ],\r\n science: [\r\n {\r\n key: 'chemicalElement',\r\n value: 'chemicalElement',\r\n displayValue: '$science.chemicalElement',\r\n },\r\n {\r\n key: 'unit',\r\n value: 'unit',\r\n displayValue: '$science.unit',\r\n },\r\n ],\r\n system: [\r\n {\r\n key: 'commonFileExt',\r\n value: 'commonFileExt',\r\n displayValue: '$system.commonFileExt',\r\n },\r\n {\r\n key: 'commonFileType',\r\n value: 'commonFileType',\r\n displayValue: '$system.commonFileType',\r\n },\r\n {\r\n key: 'directoryPath',\r\n value: 'directoryPath',\r\n displayValue: '$system.directoryPath',\r\n },\r\n {\r\n key: 'fileExt',\r\n value: 'fileExt',\r\n displayValue: '$system.fileExt',\r\n },\r\n {\r\n key: 'fileName',\r\n value: 'fileName',\r\n displayValue: '$system.fileName',\r\n },\r\n {\r\n key: 'filePath',\r\n value: 'filePath',\r\n displayValue: '$system.filePath',\r\n },\r\n {\r\n key: 'fileType',\r\n value: 'fileType',\r\n displayValue: '$system.fileType',\r\n },\r\n {\r\n key: 'mimeType',\r\n value: 'mimeType',\r\n displayValue: '$system.mimeType',\r\n },\r\n {\r\n key: 'chemicalElement',\r\n value: 'chemicalElement',\r\n displayValue: '$system.chemicalElement',\r\n },\r\n {\r\n key: 'semver',\r\n value: 'semver',\r\n displayValue: '$system.semver',\r\n },\r\n ],\r\n vehicle: [\r\n {\r\n key: 'bicycle',\r\n value: 'bicycle',\r\n displayValue: '$vehicle.bicycle',\r\n },\r\n {\r\n key: 'color',\r\n value: 'color',\r\n displayValue: '$vehicle.color',\r\n },\r\n {\r\n key: 'fuel',\r\n value: 'fuel',\r\n displayValue: '$vehicle.fuel',\r\n },\r\n {\r\n key: 'manufacturer',\r\n value: 'manufacturer',\r\n displayValue: '$vehicle.manufacturer',\r\n },\r\n {\r\n key: 'model',\r\n value: 'model',\r\n displayValue: '$vehicle.model',\r\n },\r\n {\r\n key: 'type',\r\n value: 'type',\r\n displayValue: '$vehicle.type',\r\n },\r\n {\r\n key: 'vehicle',\r\n value: 'vehicle',\r\n displayValue: '$vehicle.vehicle',\r\n },\r\n {\r\n key: 'vin',\r\n value: 'vin',\r\n displayValue: '$vehicle.vin',\r\n },\r\n {\r\n key: 'vrm',\r\n value: 'vrm',\r\n displayValue: '$vehicle.vrm',\r\n },\r\n ],\r\n word: [\r\n {\r\n key: 'adjective',\r\n value: 'adjective',\r\n displayValue: '$vword.adjective',\r\n },\r\n {\r\n key: 'adverb',\r\n value: 'adverb',\r\n displayValue: '$word.adverb',\r\n },\r\n {\r\n key: 'conjunction',\r\n value: 'conjunction',\r\n displayValue: '$word.conjunction',\r\n },\r\n {\r\n key: 'interjection',\r\n value: 'interjection',\r\n displayValue: '$word.interjection',\r\n },\r\n {\r\n key: 'noun',\r\n value: 'noun',\r\n displayValue: '$word.noun',\r\n },\r\n {\r\n key: 'preposition',\r\n value: 'preposition',\r\n displayValue: '$word.preposition',\r\n },\r\n {\r\n key: 'verb',\r\n value: 'verb',\r\n displayValue: '$word.verb',\r\n },\r\n ],\r\n};\r\n\r\nexport default fakerObj;\r\n","import React, {useState, memo, useCallback} from 'react';\r\nimport {\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n Typography,\r\n Box,\r\n Tabs,\r\n Tab,\r\n Tooltip,\r\n TextField,\r\n} from '@mui/material';\r\nimport ClipboardJS from 'clipboard';\r\nimport clipboard from '../shared/assets/clipboard.svg';\r\nimport {sampleFakerObj} from '../shared/utils/mocks';\r\nimport {manipulateFakerData} from '../shared/utils/helper';\r\nimport fakerObj from './constants/fakerModel';\r\n\r\nfunction tabProps(index) {\r\n return {\r\n id: `view-sample-tab-${index}`,\r\n 'aria-controls': `view-sample-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nfunction ViewSampleData({\r\n viewSampleOpen,\r\n handleViewClose,\r\n viewTabValue,\r\n handleViewTabChange,\r\n TabPanel,\r\n}) {\r\n const allItems = manipulateFakerData(fakerObj);\r\n\r\n const [items, setItems] = useState(allItems);\r\n const [currentItem, setCurrentItem] = useState(allItems[0]);\r\n const [text, setText] = useState('');\r\n\r\n const searchInChild = (searchTxt, fItems) =>\r\n fItems?.child.filter((f) => f?.toLowerCase().includes(searchTxt?.toLowerCase()));\r\n\r\n const handleTextChange = useCallback((v) => {\r\n let filteredItems = [];\r\n setItems([]);\r\n setText(v);\r\n if (v === '') {\r\n setItems(allItems);\r\n setCurrentItem(allItems[0]);\r\n } else {\r\n setCurrentItem({});\r\n allItems?.forEach((e) => {\r\n if (e?.parent.toLowerCase()?.includes(v?.toLowerCase())) {\r\n filteredItems.push(e);\r\n }\r\n e?.child.forEach((c) => {\r\n if (c.toLowerCase()?.includes(v?.toLowerCase())) {\r\n filteredItems.push(e);\r\n }\r\n });\r\n });\r\n filteredItems = [...new Set(filteredItems)];\r\n const childItems = searchInChild(v, filteredItems[0]);\r\n const children = {child: childItems, parent: filteredItems[0].parent};\r\n setItems(filteredItems);\r\n setCurrentItem(children);\r\n }\r\n }, []);\r\n\r\n return (\r\n <div>\r\n <Dialog fullWidth onClose={() => handleViewClose(false)} open={viewSampleOpen}>\r\n <DialogTitle>\r\n <Typography className=\"text-[18px] font-bold\">Sample Data (Faker.js)</Typography>\r\n </DialogTitle>\r\n <DialogContent dividers>\r\n <Box borderBottom={1} borderColor=\"divider\">\r\n <Tabs onChange={handleViewTabChange} value={viewTabValue}>\r\n <Tab label=\"Schema\" {...tabProps(0)} />\r\n <Tab label=\"Object Sample\" {...tabProps(1)} />\r\n </Tabs>\r\n </Box>\r\n <TabPanel value={viewTabValue} index={0}>\r\n <div className=\"h-[400px]\">\r\n <div className=\"h-[70px] mt-[20px]\">\r\n <TextField\r\n id=\"search\"\r\n inputProps={{'data-testid': 'search-input'}}\r\n variant=\"outlined\"\r\n name=\"search\"\r\n type=\"text\"\r\n value={text}\r\n onChange={(e) => handleTextChange(e.target.value)}\r\n helperText=\"Type to search\"\r\n />\r\n </div>\r\n <div className=\"w-full h-[300px]\">\r\n <div className=\"w-full h-[300px] border-2 border-solid border-slate-300 flex flex-row\">\r\n <div className=\"w-1/3 h-[300px] border-2 border-solid border-slate-300 overflow-y-scroll\">\r\n {items?.map((e) => (\r\n <div key={Math.random()}>\r\n <Typography\r\n className={`ml-[10px] mb-[5px] cursor-pointer ${\r\n currentItem?.parent === e?.parent ? 'font-extrabold' : ''\r\n }`}\r\n onClick={() => {\r\n setCurrentItem({child: searchInChild(text, e), parent: e.parent});\r\n }}\r\n >\r\n {e?.parent}\r\n </Typography>\r\n </div>\r\n ))}\r\n </div>\r\n <div className=\"w-2/3 h-[300px] border-2 border-solid border-slate-300 overflow-y-scroll\">\r\n {currentItem &&\r\n currentItem?.child?.length > 0 &&\r\n currentItem?.child?.map((e, i) => (\r\n <div key={Math.random()}>\r\n <div className=\"ml-[10px] flex flex-row justify-between pr-1\">\r\n <Typography\r\n className=\"mb-[5px] cursor-pointer mr-[10px]\"\r\n id={`faker-field-value-${i}`}\r\n >\r\n {e}\r\n </Typography>\r\n <Tooltip title=\"Copy\" placement=\"left\">\r\n <img\r\n src={clipboard}\r\n data-clipboard-target={`#faker-field-value-${i}`}\r\n data-clipboard-action=\"copy\"\r\n id={`faker-copy-icon-${i}`}\r\n className=\"cursor-pointer\"\r\n alt=\"clipboard\"\r\n onClick={() => {\r\n // eslint-disable-next-line no-unused-vars\r\n const clipboardValue = new ClipboardJS(`#faker-copy-icon-${i}`);\r\n }}\r\n />\r\n </Tooltip>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </TabPanel>\r\n <TabPanel value={viewTabValue} index={1}>\r\n <div className=\"h-[400px] relative\">\r\n <pre id=\"sample-value\">{JSON.stringify(sampleFakerObj, null, 2)}</pre>\r\n <div className=\"absolute top-0 right-[20px]\">\r\n <Tooltip title=\"Copy\">\r\n <img\r\n src={clipboard}\r\n alt=\"clipboard\"\r\n className=\"cursor-pointer\"\r\n data-clipboard-target=\"#sample-value\"\r\n data-clipboard-action=\"copy\"\r\n id=\"faker-sample-copy\"\r\n onClick={() => {\r\n // eslint-disable-next-line no-unused-vars\r\n const clipboardValue = new ClipboardJS('#faker-sample-copy');\r\n }}\r\n />\r\n </Tooltip>\r\n </div>\r\n </div>\r\n </TabPanel>\r\n </DialogContent>\r\n </Dialog>\r\n </div>\r\n );\r\n}\r\n\r\nexport default memo(ViewSampleData);\r\n","/* eslint-disable security/detect-object-injection */\r\nimport React from 'react';\r\nimport {\r\n Box,\r\n Chip,\r\n FormControl,\r\n Grid,\r\n ListItemText,\r\n ListSubheader,\r\n MenuItem,\r\n Select,\r\n TextField,\r\n} from '@mui/material';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport SubdirectoryArrowLeftIcon from '@mui/icons-material/SubdirectoryArrowLeft';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport fakerObj from './constants/fakerModel';\r\nimport {CapitalizeFirstLetter} from '../shared/utils/helper';\r\n\r\nexport default function SchemaView(props) {\r\n const {schema, setSchema, setIsApiCodeChanged} = props;\r\n const ITEM_HEIGHT = 42;\r\n const ITEM_PADDING_TOP = 8;\r\n const MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n };\r\n\r\n const allowedTypes = ['string', 'fakerJs', 'boolean', 'number', 'object', 'array', 'date'];\r\n\r\n const fieldTypes = [\r\n {key: 'string', value: 'String'},\r\n {key: 'fakerJs', value: 'Faker.js'},\r\n {key: 'boolean', value: 'Boolean'},\r\n {key: 'number', value: 'Number'},\r\n {key: 'object', value: 'Object'},\r\n {key: 'array', value: 'Array'},\r\n {key: 'date', value: 'Date'},\r\n ];\r\n\r\n const addSchemaObject = () => {\r\n const isValid = schema.filter((item) => item?.error !== '');\r\n if (isValid.length === 0) {\r\n const objectCopy = {\r\n name: 'field',\r\n type: 'string',\r\n fakerValue: '$address.buildingNumber',\r\n error: '',\r\n };\r\n setIsApiCodeChanged(true);\r\n setSchema([...schema, objectCopy]);\r\n }\r\n };\r\n\r\n const removeSchemaObject = (targetIndex) => {\r\n if (schema.length > 1) {\r\n const newSchema = schema.filter((obj, index) => index !== targetIndex);\r\n setIsApiCodeChanged(true);\r\n setSchema([...newSchema]);\r\n }\r\n };\r\n\r\n const updateSchemaObject = (event, field, index) => {\r\n const copyObj = [...schema];\r\n if (field === 'name' && !/^[0-9a-zA-Z]+$/.test(event.target.value)) {\r\n if (!event.target.value) {\r\n copyObj[index].error = 'This field is required';\r\n } else {\r\n copyObj[index].error = 'Invalid input';\r\n }\r\n } else if (field === 'name') {\r\n copyObj[index].error = '';\r\n }\r\n copyObj[index][field] = event.target.value;\r\n setIsApiCodeChanged(true);\r\n setSchema(copyObj);\r\n };\r\n\r\n return (\r\n <div>\r\n {schema.length >= 1 &&\r\n schema.map((res, index) => (\r\n <Grid className=\"items-baseline pb-2\" container>\r\n <Grid className=\"mr-2\" item size={{xs: 3, md: 3}}>\r\n <FormControl className=\"!w-full\" size=\"small\">\r\n <TextField\r\n error={res.error}\r\n variant=\"outlined\"\r\n name=\"name\"\r\n className=\"bg-white\"\r\n value={res.name}\r\n onChange={(e) => updateSchemaObject(e, 'name', index)}\r\n helperText={res.error ? res.error : ''}\r\n />\r\n </FormControl>\r\n </Grid>\r\n <Grid className=\"mr-2\" item size={{xs: 3, md: 3}}>\r\n <FormControl className=\"!w-full\">\r\n <Select\r\n className=\"!py-0 !h-9 !text-sm\"\r\n name=\"type\"\r\n MenuProps={MenuProps}\r\n value={allowedTypes.includes(res.type) ? res.type : 'string'}\r\n IconComponent={ExpandMoreIcon}\r\n onChange={(event) => updateSchemaObject(event, 'type', index)}\r\n renderValue={(selectedVal) => (\r\n <Box sx={{display: 'flex', flexWrap: 'wrap', gap: 0.5}}>\r\n <Chip\r\n key={selectedVal}\r\n label={selectedVal}\r\n className=\"multiselect-chip bg-[#fff]\"\r\n variant=\"plain\"\r\n />\r\n </Box>\r\n )}\r\n >\r\n {fieldTypes.map(({key, value}) => (\r\n <MenuItem\r\n className=\"!py-8px global-multiselect-dropdown !text-xs\"\r\n key={key}\r\n value={key}\r\n >\r\n <ListItemText className=\"!text-xs !text-justify !my-0\" primary={value} />\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </Grid>\r\n <Grid className=\"mr-2\" item size={{xs: 4.5, md: 4.5}}>\r\n <FormControl className=\"!w-full\" size=\"small\">\r\n <Select\r\n className={`!py-0 !h-9 ${res.type !== 'fakerJs' ? 'bg-[#E5E5E5]' : 'bg-white'}`}\r\n defaultValue={res.fakerValue}\r\n disabled={res.type !== 'fakerJs'}\r\n onChange={(event) => updateSchemaObject(event, 'fakerValue', index)}\r\n >\r\n {Object.keys(fakerObj).map(\r\n (fakerKey) => [\r\n <ListSubheader className=\"!py-8px global-multiselect-dropdown !text-base !font-semibold\">\r\n {CapitalizeFirstLetter(fakerKey)}\r\n </ListSubheader>,\r\n fakerObj[fakerKey].map((obj) => (\r\n <MenuItem\r\n className=\"!py-8px global-multiselect-dropdown !text-xs\"\r\n key={obj.displayValue}\r\n value={obj.displayValue}\r\n >\r\n <ListItemText\r\n className=\"!text-xs !text-justify !my-0\"\r\n primary={obj.key}\r\n />\r\n </MenuItem>\r\n )),\r\n ]\r\n //\r\n )}\r\n </Select>\r\n </FormControl>\r\n </Grid>\r\n <Grid size={{xs: 1, md: 1}} className=\"pb-2\">\r\n <SubdirectoryArrowLeftIcon\r\n className=\"text-[#476BC3] cursor-pointer\"\r\n onClick={addSchemaObject}\r\n sx={{fontSize: 20}}\r\n />\r\n <CloseIcon\r\n className=\"ml-2 text-[#476BC3] cursor-pointer\"\r\n onClick={() => removeSchemaObject(index)}\r\n sx={{fontSize: 20}}\r\n />\r\n </Grid>\r\n </Grid>\r\n ))}\r\n </div>\r\n );\r\n}\r\n","import React from 'react';\r\nimport {Typography, Grid, Box, Tab, Stack, Tabs, Button, IconButton, Dialog} from '@mui/material';\r\nimport CloseFullscreenIcon from '@mui/icons-material/CloseFullscreen';\r\nimport StorageIcon from '@mui/icons-material/Storage';\r\nimport UploadIcon from '@mui/icons-material/Upload';\r\nimport OpenInFullIcon from '@mui/icons-material/OpenInFull';\r\nimport Accordions from '../shared/units/Accordians';\r\nimport JsonEditor from '../shared/units/JsonEditor';\r\nimport CONSTANT from '../../constants/createMock';\r\nimport ViewSampleData from './ViewSampleData';\r\nimport SchemaView from './SchemaView';\r\n\r\nfunction TabPanel(props) {\r\n const {children, value, index} = props;\r\n return (\r\n <div\r\n role=\"tabpanel\"\r\n hidden={value !== index}\r\n id={`simple-tabpanel-${index}`}\r\n aria-labelledby={`simple-tab-${index}`}\r\n >\r\n {value === index && (\r\n <Box sx={{p: 3}}>\r\n <Typography>{children}</Typography>\r\n </Box>\r\n )}\r\n </div>\r\n );\r\n}\r\nfunction a11yProps(index) {\r\n return {\r\n id: `simple-tab-${index}`,\r\n 'aria-controls': `simple-tabpanel-${index}`,\r\n };\r\n}\r\n\r\nfunction ApiCode({\r\n handleChange,\r\n expanded,\r\n handleValueChange,\r\n tabValue,\r\n handleClickOpen,\r\n mode,\r\n modes,\r\n onChangeTextKey,\r\n onModeChangeKey,\r\n apiResponseSchemaTypes,\r\n jsonEditorError,\r\n setJsonEditorError,\r\n open,\r\n handleClose,\r\n editorBodyText,\r\n uploadFileForJSON,\r\n isSchema,\r\n schemaResponse,\r\n setSchemaResponse,\r\n setIsApiCodeChanged,\r\n}) {\r\n const [viewSampleOpen, setViewSample] = React.useState(false);\r\n const [viewTabValue, setViewTabValue] = React.useState(0);\r\n\r\n const handleViewTabChange = (event, newValue) => {\r\n setViewTabValue(newValue);\r\n };\r\n\r\n const handleViewOpenClose = (isOpen) => {\r\n setViewSample(isOpen);\r\n };\r\n\r\n let prefilledText = '{}';\r\n if (\r\n typeof editorBodyText === 'object' &&\r\n Object.keys(editorBodyText).length > 0 &&\r\n 'FETCH_NORMAL_RESPONSE' in editorBodyText &&\r\n JSON.stringify(editorBodyText.FETCH_NORMAL_RESPONSE) !== '{}'\r\n ) {\r\n prefilledText = editorBodyText.FETCH_NORMAL_RESPONSE;\r\n }\r\n\r\n return (\r\n <Accordions\r\n title=\"API Code\"\r\n tooltipText=\"API Code\"\r\n handleChange={handleChange}\r\n expanded={expanded}\r\n panel=\"panel1\"\r\n >\r\n <Box borderBottom={1} borderColor=\"divider\">\r\n <Tabs onChange={handleValueChange} value={tabValue}>\r\n <Tab label=\"Object\" {...a11yProps(0)} />\r\n <Tab label=\"Schema\" {...a11yProps(1)} />\r\n\r\n <Stack alignItems=\"center\" marginLeft=\"auto\" direction=\"row\">\r\n {tabValue === 0 && (\r\n <Button position=\"absolute\" startIcon={<UploadIcon />} size=\"small\" component=\"label\">\r\n {CONSTANT.UPLOAD_JSON}\r\n <input\r\n hidden\r\n accept=\".json\"\r\n title=\"\"\r\n name=\"fileupload\"\r\n type=\"file\"\r\n onChange={(event) => {\r\n uploadFileForJSON(event.currentTarget.files[0]);\r\n event.target.value = null;\r\n }}\r\n />\r\n </Button>\r\n )}\r\n <Button startIcon={<StorageIcon />} size=\"small\" onClick={handleViewOpenClose}>\r\n {CONSTANT.VIEW_SAMPLE_DATA}\r\n </Button>\r\n <ViewSampleData\r\n viewSampleOpen={viewSampleOpen}\r\n handleViewClose={handleViewOpenClose}\r\n viewTabValue={viewTabValue}\r\n handleViewTabChange={handleViewTabChange}\r\n TabPanel={TabPanel}\r\n />\r\n </Stack>\r\n </Tabs>\r\n </Box>\r\n\r\n <TabPanel value={tabValue} index={0}>\r\n <IconButton\r\n className=\"expand-to-full\"\r\n size=\"large\"\r\n color=\"black\"\r\n aria-label=\"menu\"\r\n onClick={handleClickOpen}\r\n >\r\n <OpenInFullIcon />\r\n </IconButton>\r\n <JsonEditor\r\n text={prefilledText}\r\n mode={mode}\r\n modes={modes}\r\n indentation={4}\r\n onChangeText={(txt) => {\r\n onChangeTextKey(txt, 'FETCH_NORMAL_RESPONSE');\r\n }}\r\n onModeChange={onModeChangeKey}\r\n value={prefilledText}\r\n viewType=\"FETCH_NORMAL_RESPONSE\"\r\n jsonEditorError={jsonEditorError}\r\n setJsonEditorError={setJsonEditorError}\r\n />\r\n <Dialog fullScreen open={open} onClose={handleClose}>\r\n <IconButton\r\n className=\"collapse-screen\"\r\n size=\"large\"\r\n aria-label=\"menu\"\r\n onClick={handleClickOpen}\r\n >\r\n <CloseFullscreenIcon />\r\n </IconButton>\r\n <JsonEditor\r\n text={prefilledText}\r\n mode={mode}\r\n modes={modes}\r\n indentation={4}\r\n onChangeText={(txt) => {\r\n onChangeTextKey(txt, 'FETCH_NORMAL_RESPONSE');\r\n }}\r\n onModeChange={onModeChangeKey}\r\n value={prefilledText}\r\n setJsonEditorError={setJsonEditorError}\r\n />\r\n </Dialog>\r\n </TabPanel>\r\n <TabPanel value={tabValue} index={1}>\r\n <Grid className=\"text-left\" container>\r\n <Grid className=\"mr-2 pl-2\" item size={{xs: 3, md: 3}}>\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.ENTER_FIELD_NAME}</label>\r\n </Grid>\r\n <Grid className=\"mr-2 pl-2\" item size={{xs: 3, md: 3}}>\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.SELECT_DATA_TYPE}</label>\r\n </Grid>\r\n <Grid className=\"mr-2 pl-2\" item size={{xs: 3, md: 3}}>\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.DATA_PARAMETER}</label>\r\n </Grid>\r\n </Grid>\r\n <SchemaView\r\n schema={schemaResponse}\r\n setSchema={setSchemaResponse}\r\n schemaView={isSchema}\r\n JsonEditorValue={prefilledText}\r\n setIsApiCodeChanged={setIsApiCodeChanged}\r\n />\r\n </TabPanel>\r\n </Accordions>\r\n );\r\n}\r\n\r\nexport default ApiCode;\r\n","import React from 'react';\r\nimport JSONEditor from 'jsoneditor';\r\nimport 'jsoneditor/dist/jsoneditor.css';\r\nimport './JsonEditor.css';\r\nimport isEqual from 'lodash/isEqual';\r\n\r\nclass JsonEditorKeySelection extends React.Component {\r\n componentDidMount() {\r\n const that = this;\r\n const options = {\r\n ...this.props,\r\n search: false,\r\n onEditable(node) {\r\n return false;\r\n },\r\n onClassName({path}) {\r\n if (that.props?.value?.length > 0) {\r\n const data = JSON.parse(that.props.value);\r\n return isEqual(data, path) ? 'different_element' : 'the_same_element';\r\n }\r\n },\r\n onCreateMenu(items, node) {\r\n const {path} = node;\r\n if (typeof path.slice(-1)[0] === 'string') {\r\n const {dynamicKeys, setDynamicKeys} = that.props;\r\n if (\r\n dynamicKeys?.length === path.length &&\r\n dynamicKeys?.slice(-1)[0] === path.slice(-1)[0]\r\n ) {\r\n setDynamicKeys([]);\r\n } else {\r\n setDynamicKeys(path);\r\n }\r\n }\r\n return items;\r\n },\r\n };\r\n\r\n delete options.json;\r\n delete options.text;\r\n this.jsoneditor = new JSONEditor(this.container, options);\r\n if (this.IsJsonString(this.props.text)) {\r\n if ('text' in this.props) {\r\n this.jsoneditor.setText(this.props.text);\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.IsJsonString(this.props.text)) {\r\n if ('text' in this.props) {\r\n this.jsoneditor.setText(this.props.text);\r\n }\r\n }\r\n this.jsoneditor.expandAll();\r\n this.jsoneditor.refresh();\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.jsoneditor) {\r\n this.jsoneditor.destroy();\r\n }\r\n }\r\n\r\n IsJsonString(str) {\r\n try {\r\n const json = JSON.parse(str);\r\n return typeof json === 'object';\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div\r\n id=\"container\"\r\n data-testid=\"jsoneditor-key\"\r\n className=\"jsoneditor-react-container\"\r\n style={{\r\n height: '310px',\r\n }}\r\n ref={(elem) => {\r\n this.container = elem;\r\n }}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default JsonEditorKeySelection;\r\n","import React, {useEffect} from 'react';\r\nimport {\r\n Box,\r\n Grid,\r\n FormControl,\r\n RadioGroup,\r\n Stack,\r\n FormControlLabel,\r\n Divider,\r\n Typography,\r\n TextField,\r\n Radio,\r\n IconButton,\r\n Switch,\r\n styled,\r\n} from '@mui/material';\r\nimport OpenInFullIcon from '@mui/icons-material/OpenInFull';\r\nimport ErrorIcon from '@mui/icons-material/Error';\r\nimport JsonEditorKeySelection from '../shared/units/JsonEditorKeySelection';\r\nimport Accordions from '../shared/units/Accordians';\r\nimport JsonEditor from '../shared/units/JsonEditor';\r\nimport {IsJsonString} from '../shared/utils/helper';\r\nimport CONSTANT from '../../constants/createMock';\r\n\r\nconst AntSwitch = styled(Switch)(({theme}) => ({\r\n width: 28,\r\n height: 16,\r\n padding: 0,\r\n display: 'flex',\r\n '&:active': {\r\n '& .MuiSwitch-thumb': {\r\n width: 15,\r\n },\r\n '& .MuiSwitch-switchBase.Mui-checked': {\r\n transform: 'translateX(9px)',\r\n },\r\n },\r\n '& .MuiSwitch-switchBase': {\r\n padding: 2,\r\n '&.Mui-checked': {\r\n transform: 'translateX(12px)',\r\n color: '#fff',\r\n '& + .MuiSwitch-track': {\r\n opacity: 1,\r\n backgroundColor: theme.palette.mode === 'dark' ? '#177ddc' : '#476BC3',\r\n },\r\n },\r\n },\r\n '& .MuiSwitch-thumb': {\r\n boxShadow: '0 2px 4px 0 rgb(0 35 11 / 20%)',\r\n width: 12,\r\n height: 12,\r\n borderRadius: 6,\r\n transition: theme.transitions.create(['width'], {\r\n duration: 200,\r\n }),\r\n },\r\n '& .MuiSwitch-track': {\r\n borderRadius: 16 / 2,\r\n opacity: 1,\r\n backgroundColor: theme.palette.mode === 'dark' ? 'rgba(255,255,255,.35)' : 'rgba(0,0,0,.25)',\r\n boxSizing: 'border-box',\r\n },\r\n}));\r\n\r\nfunction ResponseDetails({\r\n handleDetailsChange,\r\n expandedDetails,\r\n dataOutputValue,\r\n responseTypeValue,\r\n dynamicKeys,\r\n setDynamicKeys,\r\n handleClickOpen,\r\n isDelay,\r\n handleDelayRadioChange,\r\n delaySeconds,\r\n dataOutputFieldValue,\r\n responseTypeFieldValue,\r\n handleDelayChange,\r\n handleDataOutputRadioChange,\r\n handleDataOutputFieldChange,\r\n responseContentType,\r\n handleContentTypeRadioChange,\r\n handleResponseTypeFieldChange,\r\n handleResponseTypeRadioChange,\r\n specificResponseType,\r\n handleSpecificResponseTypeChange,\r\n mode,\r\n modes,\r\n setJsonEditorError,\r\n handleDynamicSpecificResponseChange,\r\n dynamicResponseSpecificKeyValue,\r\n onModeChangeKey,\r\n editorBodyText,\r\n apiType = 'fetch',\r\n responseDetailsError,\r\n setResponseDetailsError,\r\n dynamicResponseChecked,\r\n setDynamicResponseChecked,\r\n dynamicResponseKey,\r\n}) {\r\n const dataRadioList = [\r\n {label: 'In Count', value: 'inCount'},\r\n {label: 'In Size', value: 'inSize'},\r\n ];\r\n const contentTypeRadioList = [\r\n {label: 'Random', value: 'random'},\r\n {label: 'Specific', value: 'specific'},\r\n ];\r\n const specificDetailRadioList = [\r\n {label: 'Json', value: 'json'},\r\n {label: 'Other', value: 'other'},\r\n ];\r\n const responseTypeRadioList = [\r\n {label: 'Count', value: 'count'},\r\n {label: 'Size', value: 'size'},\r\n ];\r\n const handleJsonkeyEditorError = (val) => {\r\n if (val) {\r\n if (dynamicKeys?.length === 0) {\r\n setResponseDetailsError(responseDetailsError + 1);\r\n } else {\r\n setResponseDetailsError(responseDetailsError - 1);\r\n }\r\n }\r\n };\r\n useEffect(() => {\r\n handleJsonkeyEditorError(false);\r\n }, [dynamicKeys]);\r\n\r\n const handleDynamicResponseChange = (event) => {\r\n setDynamicResponseChecked(event.target.checked);\r\n handleJsonkeyEditorError(true);\r\n };\r\n return (\r\n <Accordions\r\n title=\"Response Details\"\r\n tooltipText=\"Response Details\"\r\n handleChange={handleDetailsChange}\r\n expanded={expandedDetails}\r\n panel=\"panel3\"\r\n >\r\n <Box>\r\n {apiType === 'fetch' && (\r\n <Grid className=\"pl-2 pr-2 text-left\" container>\r\n <Grid className=\"mt-2\" item size={{xs: 3, md: 3}}>\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.DATA_OUTPUT}</label>\r\n </Grid>\r\n <Grid item size={{xs: 4, md: 4}}>\r\n <FormControl>\r\n <RadioGroup\r\n row\r\n aria-labelledby=\"demo-row-radio-buttons-group-label\"\r\n name=\"row-radio-buttons-group\"\r\n value={dataOutputValue}\r\n onChange={handleDataOutputRadioChange}\r\n >\r\n <Stack direction=\"row\">\r\n {dataRadioList.map((e) => (\r\n <FormControlLabel\r\n className=\"text-sm\"\r\n value={e.value}\r\n control={<Radio size=\"small\" className=\"text-[10px] px-[3px] py-[9px]\" />}\r\n label={e.label}\r\n />\r\n ))}\r\n </Stack>\r\n </RadioGroup>\r\n </FormControl>\r\n </Grid>\r\n <Grid item size={{xs: 5, md: 5}}>\r\n <FormControl>\r\n <Stack direction=\"row\" className=\"w-full\">\r\n <TextField\r\n id=\"dataOutput\"\r\n variant=\"outlined\"\r\n name=\"dataOutput\"\r\n required\r\n placeholder=\"1\"\r\n error={dataOutputFieldValue === '' || dataOutputFieldValue.length === 0}\r\n inputProps={{\r\n inputMode: 'numeric',\r\n pattern: '[0-9]*',\r\n 'data-testid': 'dataOutput-input',\r\n }}\r\n type=\"number\"\r\n className=\"w-[65%]\"\r\n value={dataOutputFieldValue}\r\n onChange={handleDataOutputFieldChange}\r\n helperText={\r\n dataOutputFieldValue === '' || dataOutputFieldValue.length === 0\r\n ? CONSTANT.MIN_VALUE_FIELD_ERROR\r\n : ''\r\n }\r\n />\r\n <div className=\"w-[35%] mt-[20px] ml-[5px] text-[10px]\">\r\n {dataOutputValue === 'inCount' ? 'Max: 1000000' : 'Max: 20MB'}\r\n </div>\r\n </Stack>\r\n </FormControl>\r\n </Grid>\r\n </Grid>\r\n )}\r\n <Divider className=\"mt-2 mb-2\" />\r\n <Grid className=\"pl-2 pr-2 text-left\" container>\r\n <Grid item size={{xs: 3, md: 3}}>\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.DELAYS}</label>\r\n </Grid>\r\n <Grid item size={{xs: 4, md: 4}}>\r\n <Stack justifyContent=\"flex-start\" direction=\"row\" spacing={1} alignItems=\"center\">\r\n <Typography className={`text-sm ${!isDelay && 'font-bold'}`}>\r\n {CONSTANT.OFF}\r\n </Typography>\r\n <AntSwitch\r\n inputProps={{'aria-label': 'ant design'}}\r\n onChange={handleDelayRadioChange}\r\n checked={isDelay}\r\n />\r\n <Typography className={`text-sm ${isDelay && 'font-bold'}`}>{CONSTANT.ON}</Typography>\r\n </Stack>\r\n </Grid>\r\n <Grid item size={{xs: 5, md: 5}}>\r\n <FormControl>\r\n <Stack direction=\"row\" className=\"w-full\">\r\n <TextField\r\n id=\"delaySeconds\"\r\n type=\"number\"\r\n inputProps={{'data-testid': 'delaySeconds'}}\r\n variant=\"outlined\"\r\n placeholder=\"1\"\r\n name=\"delaySeconds\"\r\n onChange={handleDelayChange}\r\n value={delaySeconds}\r\n className={`w-[65%] ${!isDelay && 'field-disabled'}`}\r\n disabled={!isDelay}\r\n error={isDelay && (delaySeconds === '' || delaySeconds.length === 0)}\r\n helperText={\r\n isDelay && (delaySeconds === '' || delaySeconds.length === 0)\r\n ? CONSTANT.DELAY_SECONDS_ERROR\r\n : ''\r\n }\r\n />\r\n <div className=\"w-[30%] mt-[20px] ml-[5px] text-[10px]\">\r\n {CONSTANT.MAX_DELAY_TIME}\r\n </div>\r\n </Stack>\r\n </FormControl>\r\n </Grid>\r\n </Grid>\r\n {apiType === 'fetch' && (\r\n <Grid className=\"pl-1 pr-1 pt-2 mt-2 bg-[#FAFAFA]\" container>\r\n <Grid item size={{xs: 3, md: 3}} className=\"ml-[-10px]\">\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.DYNAMIC_RESPONSE}</label>\r\n </Grid>\r\n <Grid item size={{xs: 4, md: 4}}>\r\n <Stack justifyContent=\"flex-start\" direction=\"row\" spacing={1} alignItems=\"center\">\r\n <Typography className={`text-sm ${!dynamicResponseChecked && 'font-bold'}`}>\r\n Off\r\n </Typography>\r\n <AntSwitch\r\n inputProps={{'aria-label': 'ant design'}}\r\n onChange={handleDynamicResponseChange}\r\n checked={dynamicResponseChecked}\r\n />\r\n <Typography className={`text-sm ${dynamicResponseChecked && 'font-bold'}`}>\r\n On\r\n </Typography>\r\n </Stack>\r\n </Grid>\r\n </Grid>\r\n )}\r\n {apiType === 'fetch' && dynamicResponseChecked && (\r\n <>\r\n <IconButton\r\n className=\"expand-key-select-full\"\r\n size=\"large\"\r\n color=\"inherit\"\r\n aria-label=\"menu\"\r\n onClick={handleClickOpen}\r\n >\r\n <OpenInFullIcon />\r\n </IconButton>\r\n <div className=\"p-2 bg-[#FAFAFA]\">\r\n <JsonEditorKeySelection\r\n text={editorBodyText.FETCH_NORMAL_RESPONSE}\r\n mode=\"tree\"\r\n indentation={4}\r\n dynamicKeys={dynamicKeys}\r\n setDynamicKeys={setDynamicKeys}\r\n value={dynamicResponseKey}\r\n />\r\n {dynamicResponseChecked &&\r\n (dynamicResponseKey === '[]' || dynamicResponseKey === null) && (\r\n <div className=\"error pl-[15px]\">\r\n <ErrorIcon /> {CONSTANT.RESPONSE_KEY_REQUIRED}\r\n </div>\r\n )}\r\n </div>\r\n <Stack\r\n className=\"p-2 bg-[#FAFAFA]\"\r\n justifyContent=\"flex-start\"\r\n spacing={1}\r\n alignItems=\"center\"\r\n marginLeft=\"auto\"\r\n direction=\"row\"\r\n >\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.CONTENT_TYPE}</label>\r\n <FormControl>\r\n <RadioGroup\r\n row\r\n aria-labelledby=\"demo-row-radio-buttons-group-label\"\r\n name=\"row-radio-buttons-group\"\r\n value={responseContentType}\r\n onChange={handleContentTypeRadioChange}\r\n >\r\n <Stack direction=\"row\">\r\n {contentTypeRadioList.map((e) => (\r\n <FormControlLabel\r\n className=\"text-sm\"\r\n value={e.value}\r\n control={<Radio size=\"small\" className=\"text-sm\" />}\r\n label={e.label}\r\n />\r\n ))}\r\n </Stack>\r\n </RadioGroup>\r\n </FormControl>\r\n </Stack>\r\n {responseContentType === 'specific' && (\r\n <Stack\r\n className=\"p-2 bg-[#FAFAFA]\"\r\n justifyContent=\"flex-start\"\r\n spacing={1}\r\n alignItems=\"center\"\r\n marginLeft=\"auto\"\r\n direction=\"row\"\r\n >\r\n <label className=\"global-mockscreen-fiter-options\">\r\n {CONSTANT.SPECIFIC_DETAILS}\r\n </label>\r\n <FormControl>\r\n <RadioGroup\r\n row\r\n aria-labelledby=\"demo-row-radio-buttons-group-label\"\r\n name=\"row-radio-buttons-group\"\r\n value={specificResponseType}\r\n onChange={handleSpecificResponseTypeChange}\r\n >\r\n <Stack direction=\"row\">\r\n {specificDetailRadioList.map((e) => (\r\n <FormControlLabel\r\n className=\"text-sm\"\r\n value={e.value}\r\n control={<Radio size=\"small\" className=\"text-sm\" />}\r\n label={e.label}\r\n />\r\n ))}\r\n </Stack>\r\n </RadioGroup>\r\n </FormControl>\r\n </Stack>\r\n )}\r\n {responseContentType === 'specific' && specificResponseType === 'json' && (\r\n <Stack\r\n className=\"p-2 bg-[#FAFAFA] flex-col\"\r\n justifyContent=\"flex-start\"\r\n spacing={1}\r\n alignItems=\"left\"\r\n marginLeft=\"auto\"\r\n direction=\"row\"\r\n >\r\n <JsonEditor\r\n text={dynamicResponseSpecificKeyValue}\r\n mode={mode}\r\n modes={modes}\r\n indentation={4}\r\n onChangeText={handleDynamicSpecificResponseChange}\r\n onModeChange={onModeChangeKey}\r\n value={dynamicResponseSpecificKeyValue}\r\n setJsonEditorError={setJsonEditorError}\r\n />\r\n {dynamicResponseSpecificKeyValue === '' && (\r\n <div className=\"error pl-[15px]\">\r\n <ErrorIcon />\r\n {CONSTANT.SPECIFIC_RESPONSE_BODY_REQUIRED}\r\n </div>\r\n )}\r\n {!dynamicResponseSpecificKeyValue ||\r\n (dynamicResponseSpecificKeyValue !== '' &&\r\n !IsJsonString(dynamicResponseSpecificKeyValue) && (\r\n <div className=\"error pl-[15px]\">\r\n {' '}\r\n <ErrorIcon />\r\n {CONSTANT.VALID_JSON_ERROR}\r\n </div>\r\n ))}\r\n </Stack>\r\n )}\r\n {responseContentType === 'specific' && specificResponseType === 'other' && (\r\n <Stack\r\n className=\"p-2 bg-[#FAFAFA] flex-col\"\r\n justifyContent=\"flex-start\"\r\n spacing={1}\r\n alignItems=\"left\"\r\n marginLeft=\"auto\"\r\n direction=\"row\"\r\n >\r\n <textarea\r\n onChange={handleDynamicSpecificResponseChange}\r\n defaultValue={dynamicResponseSpecificKeyValue}\r\n />\r\n {dynamicResponseSpecificKeyValue === '' && (\r\n <div className=\"error pl-[15px]\">\r\n <ErrorIcon />\r\n {CONSTANT.VALID_OTHER_ERROR}\r\n </div>\r\n )}\r\n </Stack>\r\n )}\r\n <Stack\r\n className=\"p-2\"\r\n justifyContent=\"flex-start\"\r\n spacing={1}\r\n alignItems=\"center\"\r\n marginLeft=\"auto\"\r\n direction=\"row\"\r\n >\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.RESPONSE_TYPE}</label>\r\n <FormControl>\r\n <RadioGroup\r\n row\r\n aria-labelledby=\"demo-row-radio-buttons-group-label\"\r\n name=\"row-radio-buttons-group\"\r\n value={responseTypeValue}\r\n onChange={handleResponseTypeRadioChange}\r\n >\r\n <Stack direction=\"row\">\r\n {responseTypeRadioList.map((e) => (\r\n <FormControlLabel\r\n className=\"text-sm\"\r\n value={e.value}\r\n control={<Radio size=\"small\" className=\"text-sm\" />}\r\n label={e.label}\r\n />\r\n ))}\r\n </Stack>\r\n </RadioGroup>\r\n </FormControl>\r\n <FormControl>\r\n <Stack direction=\"row\" className=\"w-full\">\r\n <TextField\r\n id=\"responseType\"\r\n inputProps={{'data-testid': 'email-input'}}\r\n variant=\"outlined\"\r\n name=\"responseType\"\r\n type=\"number\"\r\n value={responseTypeFieldValue}\r\n className=\"w-[70%]\"\r\n placeholder=\"1\"\r\n onChange={handleResponseTypeFieldChange}\r\n error={responseTypeFieldValue === '' || responseTypeFieldValue.length === 0}\r\n helperText={\r\n responseTypeFieldValue === '' || responseTypeFieldValue.length === 0\r\n ? CONSTANT.MIN_VALUE_FIELD_ERROR\r\n : ''\r\n }\r\n />\r\n <div className=\"w-[30%] mt-[20px] ml-[5px] text-[10px]\">\r\n {responseTypeValue === 'count' ? 'Max: 1000000' : 'Max: 20MB'}\r\n </div>\r\n </Stack>\r\n </FormControl>\r\n </Stack>\r\n </>\r\n )}\r\n </Box>\r\n </Accordions>\r\n );\r\n}\r\n\r\nexport default ResponseDetails;\r\n","import React from 'react';\r\nimport {Typography, Box} from '@mui/material';\r\nimport ErrorIcon from '@mui/icons-material/Error';\r\nimport RefreshIcon from '@mui/icons-material/Refresh';\r\nimport Accordions from '../shared/units/Accordians';\r\nimport JsonEditor from '../shared/units/JsonEditor';\r\nimport CONSTANT from '../../constants/createMock';\r\n\r\nfunction ResponseSchema({\r\n mode,\r\n modes,\r\n setJsonEditorError,\r\n jsonEditorError,\r\n onChangeTextKey,\r\n onModeChangeKey,\r\n expanded,\r\n handleChange,\r\n editorBodyText,\r\n allowedFetchMethodEditor,\r\n allowedSaveMethodEditor,\r\n apiType,\r\n resetDefaultResponse,\r\n}) {\r\n const editor = apiType === 'fetch' ? allowedFetchMethodEditor : allowedSaveMethodEditor;\r\n return (\r\n <Accordions\r\n title=\"Response Schema\"\r\n tooltipText=\"Response Schema\"\r\n handleChange={handleChange}\r\n expanded={expanded}\r\n panel=\"panel2\"\r\n >\r\n {editor.length > 0 ? (\r\n editor.map((view) => {\r\n let prefilledText = '{}';\r\n if (\r\n typeof editorBodyText === 'object' &&\r\n Object.keys(editorBodyText).length > 0 &&\r\n view?.value in editorBodyText &&\r\n JSON.stringify(editorBodyText[view?.value]) !== '{}'\r\n ) {\r\n prefilledText = editorBodyText[view?.value];\r\n if (typeof prefilledText === 'object') {\r\n prefilledText = JSON.stringify(prefilledText);\r\n }\r\n }\r\n return (\r\n <div key={view}>\r\n <Box className=\"flex justify-between items-center\">\r\n <Typography className=\"text-left text-sm mb-2 font-bold mt-2.5\">\r\n {view?.value}\r\n </Typography>\r\n <RefreshIcon\r\n onClick={() => resetDefaultResponse(view?.value)}\r\n color=\"primary\"\r\n className=\"cursor-pointer\"\r\n />\r\n </Box>\r\n\r\n <JsonEditor\r\n text={prefilledText}\r\n mode={mode}\r\n modes={modes}\r\n indentation={4}\r\n onChangeText={(txt) => {\r\n onChangeTextKey(txt, view?.value);\r\n }}\r\n onModeChange={onModeChangeKey}\r\n value={prefilledText}\r\n viewType={view?.value}\r\n jsonEditorError={jsonEditorError}\r\n setJsonEditorError={setJsonEditorError}\r\n />\r\n {prefilledText === '' && (\r\n <div className=\"error\">\r\n <ErrorIcon /> {view?.value} {CONSTANT.RESPONSE_SCHEMA_REQUIRED}\r\n </div>\r\n )}\r\n {jsonEditorError[view?.value] && (\r\n <div className=\"error\">\r\n <ErrorIcon /> {CONSTANT.VALID_JSON_ERROR}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })\r\n ) : (\r\n <div className=\"error\">{CONSTANT.RESPONSE_SCHEMA_EMPTY}</div>\r\n )}\r\n </Accordions>\r\n );\r\n}\r\n\r\nexport default ResponseSchema;\r\n","import React from 'react';\r\nimport Grid from '@mui/material/Grid';\r\nimport DeleteIcon from '@mui/icons-material/Delete';\r\nimport Button from '@mui/material/Button';\r\nimport AddCircleOutlineOutlinedIcon from '@mui/icons-material/AddCircleOutlineOutlined';\r\nimport TextField from '@mui/material/TextField';\r\nimport Accordions from '../shared/units/Accordians';\r\nimport CONSTANT from '../../constants/createMock';\r\n\r\nfunction AddHeader({\r\n handleDetailsChange,\r\n expandedDetails,\r\n handleHeadersChange,\r\n handlerAddHeaders,\r\n headerFields,\r\n handleRemove,\r\n}) {\r\n return (\r\n <Accordions\r\n title=\"Add Headers\"\r\n tooltipText=\"Add Headers\"\r\n handleChange={handleDetailsChange}\r\n expanded={expandedDetails}\r\n panel=\"panel4\"\r\n >\r\n <div className=\"card-body\">\r\n <Button\r\n startIcon={<AddCircleOutlineOutlinedIcon />}\r\n data-testid=\"headerbtn\"\r\n type=\"button\"\r\n onClick={handlerAddHeaders}\r\n className=\"btn btn-primary mb-2\"\r\n >\r\n {CONSTANT.HEADERS}\r\n </Button>\r\n <div id=\"headers\">\r\n {headerFields.length > 0 &&\r\n headerFields.map((field, idx) => (\r\n <Grid container className=\"my-[5px]\">\r\n <Grid item size={2} className=\"form-group\">\r\n <label htmlFor=\"inputApi\" className=\"heading-text leading-[3]\">\r\n {CONSTANT.KEY}\r\n </label>\r\n </Grid>\r\n <Grid item size={3} className=\"form-group\">\r\n <TextField\r\n type=\"text\"\r\n className=\"form-control w-full\"\r\n name={`headers[${idx}].key`}\r\n placeholder=\"Enter the key\"\r\n onChange={(e) => {\r\n handleHeadersChange(e, 'key', idx);\r\n }}\r\n value={field.key || ''}\r\n />\r\n </Grid>\r\n <Grid item size={{md: 2}} className=\"form-group\">\r\n <label htmlFor=\"inputReqUrl\" className=\"heading-text leading-[3]\">\r\n {CONSTANT.VALUE}\r\n </label>\r\n </Grid>\r\n <Grid item size={{md: 2}} className=\"form-group\">\r\n <TextField\r\n type=\"text\"\r\n className=\"form-control w-full\"\r\n name={`headers[${idx}].value`}\r\n placeholder=\"Enter the Value\"\r\n onChange={(e) => {\r\n handleHeadersChange(e, 'value', idx);\r\n }}\r\n value={field.value || ''}\r\n />\r\n </Grid>\r\n <Grid item size={{md: 2}} className=\"form-group\">\r\n <Button\r\n startIcon={<DeleteIcon />}\r\n data-testid=\"handleRemoveButton\"\r\n type=\"button\"\r\n className=\"h-25\"\r\n onClick={() => handleRemove(idx)}\r\n >\r\n {CONSTANT.DELETE}\r\n </Button>\r\n </Grid>\r\n </Grid>\r\n ))}\r\n </div>\r\n </div>\r\n </Accordions>\r\n );\r\n}\r\n\r\nexport default AddHeader;\r\n","const httpStatus = {\r\n /**\r\n * The server cannot or will not process the request due to an apparent\r\n * client error (e.g., malformed request syntax, size too large, invalid\r\n * request message framing, or deceptive request routing).\r\n */\r\n ClientErrorBadRequest: 400,\r\n\r\n /**\r\n * Indicates that the request could not be processed because of conflict in\r\n * the request, such as an edit conflict between multiple simultaneous\r\n * updates.\r\n */\r\n ClientErrorConflict: 409,\r\n\r\n /**\r\n * The server cannot meet the requirements of the Expect request-header\r\n * field.\r\n */\r\n ClientErrorExpectationFailed: 417,\r\n\r\n /**\r\n * The request failed due to failure of a previous request (e.g., a\r\n * PROPPATCH).\r\n */\r\n ClientErrorFailedDependency: 424,\r\n\r\n /**\r\n * The request was valid, but the server is refusing action. The user might\r\n * not have the necessary permissions for a resource, or may need an account\r\n * of some sort.\r\n */\r\n ClientErrorForbidden: 403,\r\n\r\n /**\r\n * Indicates that the resource requested is no longer available and will not\r\n * be available again. This should be used when a resource has been\r\n * intentionally removed and the resource should be purged. Upon receiving a\r\n * `410` status code, the client should not request the resource in the\r\n * future. Clients such as search engines should remove the resource from\r\n * their indices. Most use cases do not require clients and search engines\r\n * to purge the resource, and a `404 Not Found` may be used instead.\r\n */\r\n ClientErrorGone: 410,\r\n\r\n /**\r\n * This code was defined in 1998 as one of the traditional IETF April Fools'\r\n * jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not\r\n * expected to be implemented by actual HTTP servers. The RFC specifies this\r\n * code should be returned by teapots requested to brew coffee. This HTTP\r\n * status is used as an Easter egg in some websites.\r\n */\r\n ClientErrorImATeapot: 418,\r\n\r\n /**\r\n * The request did not specify the length of its content, which is required\r\n * by the requested resource.\r\n */\r\n ClientErrorLengthRequired: 411,\r\n\r\n /**\r\n * The resource that is being accessed is locked.\r\n */\r\n ClientErrorLocked: 423,\r\n\r\n /**\r\n * The client's session has expired and must log in again.\r\n */\r\n ClientErrorLoginTimeOut: 440,\r\n\r\n /**\r\n * A request method is not supported for the requested resource; for\r\n * example, a `GET` request on a form that requires data to be presented\r\n * via `POST`, or a `PUT` request on a read-only resource.\r\n */\r\n ClientErrorMethodNotAllowed: 405,\r\n\r\n /**\r\n * The request was directed at a server that is not able to produce a\r\n * response. (for example because of a connection reuse)\r\n */\r\n ClientErrorMisdirectedRequest: 421,\r\n\r\n /**\r\n * The requested resource is capable of generating only content not\r\n * acceptable according to the Accept headers sent in the request.\r\n */\r\n ClientErrorNotAcceptable: 406,\r\n\r\n /**\r\n * The requested resource could not be found but may be available in the\r\n * future. Subsequent requests by the client are permissible.\r\n */\r\n ClientErrorNotFound: 404,\r\n\r\n /**\r\n * The request is larger than the server is willing or able to process.\r\n * Previously called \"Request Entity Too Large\".\r\n */\r\n ClientErrorPayloadTooLarge: 413,\r\n\r\n /**\r\n * Reserved for future use. The original intention was that this code might\r\n * be used as part of some form of digital cash or micropayment scheme.\r\n */\r\n ClientErrorPaymentRequired: 402,\r\n\r\n /**\r\n * The server does not meet one of the preconditions that the requester put\r\n * on the request.\r\n */\r\n ClientErrorPreconditionFailed: 412,\r\n\r\n /**\r\n * The origin server requires the request to be conditional. Intended to\r\n * prevent the 'lost update' problem, where a client `GETs` a resource's\r\n * state, modifies it, and `PUTs` it back to the server, when meanwhile a\r\n * third party has modified the state on the server, leading to a conflict.\"\r\n */\r\n ClientErrorPreconditionRequired: 428,\r\n\r\n /**\r\n * The client must first authenticate itself with the proxy.\r\n */\r\n ClientErrorProxyAuthRequired: 407,\r\n\r\n /**\r\n * The client has asked for a portion of the file (byte serving), but the\r\n * server cannot supply that portion. For example, if the client asked for a\r\n * part of the file that lies beyond the end of the file. Called \"Requested\r\n * Range Not Satisfiable\" previously.\r\n */\r\n ClientErrorRangeNotSatisfiable: 416,\r\n\r\n /**\r\n * The server is unwilling to process the request because either an\r\n * individual header field, or all the header fields collectively, are too\r\n * large.\r\n */\r\n ClientErrorRequestHeaderFieldsTooLarge: 431,\r\n\r\n /**\r\n * The server timed out waiting for the request. According to HTTP\r\n * specifications: \"The client did not produce a request within the time\r\n * that the server was prepared to wait. The client MAY repeat the request\r\n * without modifications at unknown later time.\"\r\n */\r\n ClientErrorRequestTimeout: 408,\r\n\r\n /**\r\n * The server cannot honour the request because the user has not provided\r\n * the required information.\r\n */\r\n ClientErrorRetryWith: 449,\r\n\r\n /**\r\n * The user has sent too many requests in a given amount of time. Intended\r\n * for use with rate-limiting schemes.\r\n */\r\n ClientErrorTooManyRequests: 429,\r\n\r\n /**\r\n * Similar to `403 Forbidden`, but specifically for use when authentication\r\n * is required and has failed or has not yet been provided. The response\r\n * must include a WWW-Authenticate header field containing a challenge\r\n * applicable to the requested resource. See Basic access authentication and\r\n * Digest access authentication. `401` semantically means \"unauthenticated\",\r\n * i.e. the user does not have the necessary credentials.\r\n *\r\n * Note: Some sites issue HTTP `401` when an IP address is banned from the\r\n * website (usually the website domain) and that specific address is refused\r\n * permission to access a website.\r\n */\r\n ClientErrorUnauthorized: 401,\r\n\r\n /**\r\n * A server operator has received a legal demand to deny access to a\r\n * resource or to a set of resources that includes the requested resource.\r\n * The code 451 was chosen as a reference to the novel Fahrenheit 451.\r\n */\r\n ClientErrorUnavailableForLegalReasons: 451,\r\n\r\n /**\r\n * The request was well-formed but was unable to be followed due to semantic\r\n * errors.\r\n */\r\n ClientErrorUnprocessableEntity: 422,\r\n\r\n /**\r\n * The request entity has a media type which the server or resource does not\r\n * support. For example, the client uploads an image as image/svg+xml, but\r\n * the server requires that images use a different format.\r\n */\r\n ClientErrorUnsupportedMediaType: 415,\r\n\r\n /**\r\n * The client should switch to a different protocol such as TLS/1.0, given\r\n * in the Upgrade header field.\r\n */\r\n ClientErrorUpgradeRequired: 426,\r\n\r\n /**\r\n * The URI provided was too long for the server to process. Often the result\r\n * of too much data being encoded as a query-string of a `GET` request, in\r\n * which case it should be converted to a `POST` request. Called\r\n * \"Request-URI Too Long\" previously.\r\n */\r\n ClientErrorURITooLong: 414,\r\n\r\n /**\r\n * The server has received the request headers and the client should proceed\r\n * to send the request body (in the case of a request for which a body needs\r\n * to be sent; for example, a POST request). Sending a large request body to\r\n * a server after a request has been rejected for inappropriate headers\r\n * would be inefficient. To have a server check the request's headers, a\r\n * client must send `Expect: 100-continue` as a header in its initial\r\n * request and receive a `100 Continue` status code in response before\r\n * sending the body. The response `417 Expectation Failed` indicates the\r\n * request should not be continued.\r\n */\r\n InfoContinue: 100,\r\n\r\n /**\r\n * A WebDAV request may contain many sub-requests involving file operations,\r\n * requiring a long time to complete the request. This code indicates that\r\n * the server has received and is processing the request, but no response is\r\n * available yet. This prevents the client from timing out and assuming the\r\n * request was lost.\r\n */\r\n InfoProcessing: 102,\r\n\r\n /**\r\n * The requester has asked the server to switch protocols and the server has\r\n * agreed to do so.\r\n */\r\n InfoSwitchingProtocols: 101,\r\n\r\n /**\r\n * This is an example of industry practice contradicting the standard. The\r\n * HTTP/1.0 specification (RFC 1945) required the client to perform a\r\n * temporary redirect (the original describing phrase was \"Moved\r\n * Temporarily\"), but popular browsers implemented `302` with the\r\n * functionality of a `303 See Other`. Therefore, HTTP/1.1 added status\r\n * codes `303` and `307` to distinguish between the two behaviors.\r\n *\r\n * However, some Web applications and frameworks use the `302` status code\r\n * as if it were the `303`.\r\n */\r\n RedirectFound: 302,\r\n\r\n /**\r\n * This and all future requests should be directed to the given URI.\r\n */\r\n RedirectMovedPermanently: 301,\r\n\r\n /**\r\n * Indicates multiple options for the resource from which the client may\r\n * choose (via agent-driven content negotiation). For example, this code\r\n * could be used to present multiple video format options, to list files\r\n * with different filename extensions, or to suggest word-sense\r\n * disambiguation.\r\n */\r\n RedirectMultipleChoices: 300,\r\n\r\n /**\r\n * Indicates that the resource has not been modified since the version\r\n * specified by the request headers If-Modified-Since or If-None-Match. In\r\n * such case, there is no need to retransmit the resource since the client\r\n * still has a previously-downloaded copy.\r\n */\r\n RedirectNotModified: 304,\r\n\r\n /**\r\n * The request and all future requests should be repeated using another URI.\r\n * `307` and `308` parallel the behaviors of `302` and `301`, but do not\r\n * allow the HTTP method to change. So, for example, submitting a form to a\r\n * permanently redirected resource may continue smoothly.\r\n */\r\n RedirectPermanent: 308,\r\n\r\n /**\r\n * The response to the request can be found under another URI using a `GET`\r\n * method. When received in response to a `POST` (or `PUT`/`DELETE`), the\r\n * client should presume that the server has received the data and should\r\n * issue a redirect with a separate `GET` message.\r\n */\r\n RedirectSeeOther: 303,\r\n\r\n /**\r\n * No longer used. Originally meant \"Subsequent requests should use the\r\n * specified proxy.\"\r\n */\r\n RedirectSwitchProxy: 306,\r\n\r\n /**\r\n * In this case, the request should be repeated with another URI; however,\r\n * future requests should still use the original URI. In contrast to how\r\n * `302` was historically implemented, the request method is not allowed to\r\n * be changed when reissuing the original request. For example, a `POST`\r\n * request should be repeated using another `POST` request.\r\n */\r\n RedirectTemp: 307,\r\n\r\n /**\r\n * The requested resource is available only through a proxy, the address for\r\n * which is provided in the response. Many HTTP clients do not correctly\r\n * handle responses with this status code, primarily for security reasons.\r\n */\r\n RedirectUseProxy: 305,\r\n\r\n /**\r\n * The server was acting as a gateway or proxy and received an invalid\r\n * response from the upstream server.\r\n */\r\n ServerErrorBadGateway: 502,\r\n\r\n /**\r\n * The server has exceeded the bandwidth specified by the server\r\n * administrator; this is often used by shared hosting providers to limit\r\n * the bandwidth of customers.\r\n */\r\n ServerErrorBandwidthLimitExceeded: 509,\r\n\r\n /**\r\n * The server was acting as a gateway or proxy and did not receive a timely\r\n * response from the upstream server.\r\n */\r\n ServerErrorGatewayTimeout: 504,\r\n\r\n /**\r\n * The server does not support the HTTP protocol version used in the\r\n * request.\r\n */\r\n ServerErrorHTTPVersionNotSupported: 505,\r\n\r\n /**\r\n * The server is unable to store the representation needed to complete the\r\n * request.\r\n */\r\n ServerErrorInsufficientStorage: 507,\r\n\r\n /**\r\n * A generic error message, given when an unexpected condition was\r\n * encountered and no more specific message is suitable.\r\n */\r\n ServerErrorInternal: 500,\r\n\r\n /**\r\n * The server detected an infinite loop while processing the request (sent\r\n * in lieu of `208 Already Reported`).\r\n */\r\n ServerErrorLoopDetected: 508,\r\n\r\n /**\r\n * The client needs to authenticate to gain network access. Intended for use\r\n * by intercepting proxies used to control access to the network (e.g.,\r\n * \"captive portals\" used to require agreement to Terms of Service before\r\n * granting full Internet access via a Wi-Fi hotspot).\r\n */\r\n ServerErrorNetworkAuthRequired: 511,\r\n\r\n /**\r\n * Further extensions to the request are required for the server to fulfil\r\n * it.\r\n */\r\n ServerErrorNotExtended: 510,\r\n\r\n /**\r\n * The server either does not recognize the request method, or it lacks the\r\n * ability to fulfil the request. Usually this implies future availability\r\n * (e.g., a new feature of a web-service API).\r\n */\r\n ServerErrorNotImplemented: 501,\r\n\r\n /**\r\n * The server is currently unavailable (because it is overloaded or down for\r\n * maintenance). Generally, this is a temporary state.\r\n */\r\n ServerErrorServiceUnavailable: 503,\r\n\r\n /**\r\n * Transparent content negotiation for the request results in a circular\r\n * reference.\r\n */\r\n ServerErrorVariantAlsoNegotiates: 506,\r\n\r\n /**\r\n * The request has been accepted for processing, but the processing has not\r\n * been completed. The request might or might not be eventually acted upon,\r\n * and may be disallowed when processing occurs.\r\n */\r\n SuccessAccepted: 202,\r\n\r\n /**\r\n * The members of a DAV binding have already been enumerated in a preceding\r\n * part of the (multistatus) response, and are not being included again.\r\n */\r\n SuccessAlreadyReported: 208,\r\n\r\n /**\r\n * The request has been fulfilled, resulting in the creation of a new\r\n * resource.\r\n */\r\n SuccessCreated: 201,\r\n\r\n /**\r\n * The server has fulfilled a request for the resource, and the response is\r\n * a representation of the result of one or more instance-manipulations\r\n * applied to the current instance.\r\n */\r\n SuccessIMUsed: 229,\r\n\r\n /**\r\n * The message body that follows is an XML message and can contain a number\r\n * of separate response codes, depending on how many sub-requests were made.\r\n */\r\n SuccessMultiStatus: 207,\r\n\r\n /**\r\n * The server successfully processed the request and is not returning unknown\r\n * content.\r\n */\r\n SuccessNoContent: 204,\r\n\r\n /**\r\n * The server is a transforming proxy (e.g. a Web accelerator) that received\r\n * a 200 OK from its origin, but is returning a modified version of the\r\n * origin's response.\r\n */\r\n SuccessNonAuthoritativeInfo: 203,\r\n\r\n /**\r\n * Standard response for successful HTTP requests. The actual response will\r\n * depend on the request method used. In a GET request, the response will\r\n * contain an entity corresponding to the requested resource. In a POST\r\n * request, the response will contain an entity describing or containing the\r\n * result of the action.\r\n */\r\n SuccessOK: 200,\r\n\r\n /**\r\n * The server is delivering only part of the resource (byte serving) due to\r\n * a range header sent by the client. The range header is used by HTTP\r\n * clients to enable resuming of interrupted downloads, or split a download\r\n * into multiple simultaneous streams.\r\n */\r\n SuccessPartialContent: 206,\r\n\r\n /**\r\n * The server successfully processed the request, but is not returning unknown\r\n * content. Unlike a 204 response, this response requires that the requester\r\n * reset the document view.\r\n */\r\n SuccessResetContent: 205,\r\n};\r\n\r\nexport default httpStatus;\r\n","import React, {useState} from 'react';\r\nimport {useLocation} from 'react-router-dom';\r\nimport Grid from '@mui/material/Grid';\r\nimport ModeIcon from '@mui/icons-material/Mode';\r\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\r\nimport Box from '@mui/material/Box';\r\nimport Chip from '@mui/material/Chip';\r\nimport Stack from '@mui/material/Stack';\r\nimport Tooltip from '@mui/material/Tooltip';\r\nimport InfoIcon from '@mui/icons-material/Info';\r\nimport Typography from '@mui/material/Typography';\r\nimport TextField from '@mui/material/TextField';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport Radio from '@mui/material/Radio';\r\nimport RadioGroup from '@mui/material/RadioGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport ListItemText from '@mui/material/ListItemText';\r\nimport {isArrayOfObjectHasValue, checkMatching, truncateApi} from '../shared/utils/helper';\r\nimport CONSTANT from '../../constants/createMock';\r\nimport MultiSelectDropdown from '../shared/units/MultiSelectDropdown';\r\nimport SimpleSelectDropdown from '../shared/units/SimpleSelectDropdown';\r\nimport DialogBox from '../shared/units/Dialog';\r\nimport httpStatus from './constants/httpStatus';\r\n\r\nfunction ApiDetails({\r\n projectName,\r\n endPoint,\r\n isDialogOpen,\r\n apiUrlError,\r\n closeUrlEditDialog,\r\n setProjectName,\r\n openUrlCreateDialog,\r\n isSpecialCharProjectError,\r\n projectList,\r\n options,\r\n apiType,\r\n onApiTypeChange,\r\n statusCode,\r\n setStatusCode,\r\n requestMethod,\r\n changeRequestMethod,\r\n contentType,\r\n changeContentType,\r\n removeRequestMethod,\r\n apiUrl,\r\n createSelectProjectHandler,\r\n endpointError,\r\n handleEndpoint,\r\n projectNameError,\r\n requestMethodError,\r\n setProjectNameError,\r\n matchingProjectError,\r\n setMatchingProjectErrorError,\r\n formChange,\r\n setFormChange,\r\n}) {\r\n const ITEM_HEIGHT = 48;\r\n const ITEM_PADDING_TOP = 8;\r\n const MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n };\r\n\r\n const location = useLocation();\r\n const isEdit = location?.pathname.includes('edit');\r\n const [selectedProjectName, setSelectedProjectName] = useState(projectName);\r\n return (\r\n <Grid className=\"bg-[#FFFFFF] mt-2.5 p-[15px]\" container>\r\n <Grid item xs>\r\n <Stack spacing={1} direction=\"row\">\r\n <label className=\"global-mockscreen-fiter-options\">API URL</label>\r\n <Tooltip title=\"API URL\" placement=\"top-end\">\r\n <InfoIcon\r\n fontSize=\"small\"\r\n color=\"#747474\"\r\n className=\"global-mockscreen-info-icon ml-0\"\r\n />\r\n </Tooltip>\r\n </Stack>\r\n <Stack className=\"mt-2\" spacing={1} direction=\"row\">\r\n <Typography\r\n className=\"w-32 break-all text-left\"\r\n color=\"#476BC3\"\r\n variant=\"caption\"\r\n display=\"block\"\r\n >\r\n {truncateApi(apiUrl)}\r\n </Typography>\r\n <ModeIcon\r\n onClick={openUrlCreateDialog}\r\n className=\"text-[#476BC3] cursor-pointer\"\r\n fontSize=\"small\"\r\n />\r\n <DialogBox\r\n open={isDialogOpen}\r\n onClose={closeUrlEditDialog}\r\n primaryBtnLabel=\"Next\"\r\n isPrimaryBtnDisabled={\r\n !selectedProjectName || selectedProjectName === '' || endPoint === ''\r\n }\r\n primaryBtnHandler={createSelectProjectHandler}\r\n secondaryBtnHandler={closeUrlEditDialog}\r\n secondaryBtnLabel=\"Cancel\"\r\n bodyContent={\r\n <div>\r\n <div className=\"mt-2.5 relative\">\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"project\">{CONSTANT.SELECT_PROJECT}</label>\r\n </div>\r\n <SimpleSelectDropdown\r\n className=\"rounded-xl border-solid border outline-none\"\r\n selectClass=\"h-[35px]\"\r\n id=\"global-simple-select\"\r\n handleChange={(e) => {\r\n const newValue = e?.target?.value;\r\n setFormChange(true);\r\n setProjectName(newValue);\r\n setSelectedProjectName(newValue);\r\n if (newValue === '') {\r\n setProjectNameError(true);\r\n } else if (checkMatching(newValue, projectList) > 0) {\r\n if (formChange) {\r\n setMatchingProjectErrorError(true);\r\n }\r\n } else {\r\n setProjectNameError(false);\r\n setMatchingProjectErrorError(false);\r\n }\r\n }}\r\n menuOptions={Object.fromEntries(\r\n Object.entries(projectList).map(([key, value]) => [value.id, value.label])\r\n )}\r\n selectedValue={typeof projectName === 'object' ? projectName?.id : projectName}\r\n required\r\n />\r\n {projectNameError && (\r\n <div className=\"error\">{CONSTANT.PROJECT_NAME_REQUIRED}</div>\r\n )}\r\n </div>\r\n <div className=\"mt-2.5\">\r\n <div className=\"globalLabelText\">\r\n <label htmlFor=\"endpoint\">{CONSTANT.ENDPOINT}</label>\r\n </div>\r\n <TextField\r\n id=\"endpoint\"\r\n type=\"text\"\r\n value={endPoint}\r\n inputProps={{'data-testid': 'endpoint-input'}}\r\n variant=\"outlined\"\r\n name=\"endpoint\"\r\n error={endpointError}\r\n helperText={endpointError ? CONSTANT.ENDPOINT_REQUIRED : ''}\r\n onBlur={handleEndpoint}\r\n onChange={handleEndpoint}\r\n required\r\n focused={false}\r\n className=\"w-full bg-white h-[54px] mb-2.5\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n dialogTitle=\"API URL details\"\r\n primaryBtnColor=\"primary\"\r\n primaryBtnVarient=\"contained\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnVarient=\"text\"\r\n showCloseIcon={false}\r\n primaryBtnId=\"primaryBtn\"\r\n secondaryBtnId=\"secondaryBtn\"\r\n isDialogTitleIconVisible\r\n dialogTitleIcon={\r\n <Tooltip title=\"Enter Api Name\" placement=\"top-end\">\r\n <InfoIcon color=\"disabled\" className=\"global-mockscreen-info-icon\" />\r\n </Tooltip>\r\n }\r\n />\r\n </Stack>\r\n {apiUrlError && <div className=\"error\">{CONSTANT.API_URL_REQUIRED}</div>}\r\n </Grid>\r\n <Grid item xs>\r\n <Stack spacing={1} direction=\"row\">\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.API_TYPE}</label>\r\n <Tooltip title=\"API Type\" placement=\"top-end\">\r\n <InfoIcon\r\n fontSize=\"small\"\r\n color=\"#747474\"\r\n className=\"global-mockscreen-info-icon ml-0\"\r\n />\r\n </Tooltip>\r\n </Stack>\r\n <Stack direction=\"row\">\r\n <FormControl>\r\n <RadioGroup\r\n className=\"\"\r\n row\r\n aria-labelledby=\"demo-row-radio-buttons-group-label\"\r\n name=\"row-radio-buttons-group\"\r\n value={apiType}\r\n onChange={onApiTypeChange}\r\n >\r\n <FormControlLabel\r\n className=\"text-sm\"\r\n value=\"fetch\"\r\n control={<Radio size=\"small\" className=\"text-sm\" disabled={isEdit} />}\r\n label=\"Fetch\"\r\n />\r\n <FormControlLabel\r\n className=\"text-sm\"\r\n value=\"save\"\r\n control={<Radio size=\"small\" className=\"text-sm\" disabled={isEdit} />}\r\n label=\"Save\"\r\n />\r\n </RadioGroup>\r\n </FormControl>\r\n </Stack>\r\n </Grid>\r\n <Grid item xs>\r\n <MultiSelectDropdown\r\n error={requestMethodError}\r\n errorMsg={CONSTANT.REQUEST_METHOD_ERROR}\r\n options={options}\r\n onChangeOption={changeRequestMethod}\r\n onDeleteOption={removeRequestMethod}\r\n selected={requestMethod || []}\r\n inputLabel=\"Request Method\"\r\n className=\"request-method-multiselect\"\r\n isArrayOfObjectHasValue={isArrayOfObjectHasValue}\r\n showSelectAll={false}\r\n />\r\n </Grid>\r\n <Grid item xs>\r\n <div>\r\n <FormControl sx={{m: 1, width: 300}} size=\"small\">\r\n <Typography className=\"global-mockscreen-fiter-options\">\r\n {CONSTANT.STATUS_CODE}\r\n </Typography>\r\n <Select\r\n id=\"demo-multiple-chip\"\r\n className=\"select-multi-dropdown multi-select-dropdown-main\"\r\n MenuProps={MenuProps}\r\n displayEmpty\r\n value={statusCode}\r\n onChange={(e) => setStatusCode(e.target.value)}\r\n IconComponent={ExpandMoreIcon}\r\n renderValue={(selectedVal) => (\r\n <Box sx={{display: 'flex', flexWrap: 'wrap', gap: 0.5}}>\r\n <Chip\r\n key={selectedVal}\r\n label={selectedVal}\r\n className=\"multiselect-chip bg-[#fff]\"\r\n variant=\"plain\"\r\n />\r\n </Box>\r\n )}\r\n >\r\n {Object.keys(httpStatus).map((status) => (\r\n <MenuItem\r\n key={status}\r\n value={httpStatus[status]}\r\n className=\"global-multiselect-dropdown\"\r\n >\r\n <ListItemText className=\"text-xs\" primary={`${httpStatus[status]} - ${status}`} />\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </FormControl>\r\n </div>\r\n </Grid>\r\n <Grid item xs>\r\n <Stack spacing={1} direction=\"row\">\r\n <label className=\"global-mockscreen-fiter-options\">{CONSTANT.CONSTENT_TYPE}</label>\r\n <Tooltip title=\"Content Type\" placement=\"top-end\">\r\n <InfoIcon\r\n fontSize=\"small\"\r\n color=\"#747474\"\r\n className=\"global-mockscreen-info-icon ml-0\"\r\n />\r\n </Tooltip>\r\n </Stack>\r\n\r\n <FormControl>\r\n <RadioGroup\r\n className=\"\"\r\n row\r\n aria-labelledby=\"demo-row-radio-buttons-group-label\"\r\n name=\"row-radio-buttons-group\"\r\n value={contentType}\r\n onChange={changeContentType}\r\n >\r\n <Stack direction=\"row\">\r\n <FormControlLabel\r\n className=\"text-sm\"\r\n value=\"text/plain\"\r\n control={<Radio size=\"small\" className=\"text-sm\" />}\r\n label=\"Text/Plain\"\r\n />\r\n <FormControlLabel\r\n className=\"text-sm\"\r\n value=\"application/json\"\r\n control={<Radio size=\"small\" className=\"text-sm\" />}\r\n label=\"Application/Json\"\r\n />\r\n </Stack>\r\n </RadioGroup>\r\n </FormControl>\r\n </Grid>\r\n </Grid>\r\n );\r\n}\r\n\r\nexport default ApiDetails;\r\n","export const schemaViewDataTransform = (val) =>\r\n val\r\n .map((x) => Object.entries(x))\r\n .map((c) => ({\r\n name: c[0][0],\r\n type: `${c[0][1].includes('custom') ? `${c[0][1].split(/[$.]/)[2]}` : 'fakerJs'}`,\r\n fakerValue: `${c[0][1].includes('custom') ? '$address.buildingNumber' : c[0][1]}`,\r\n error: c[0][0]\r\n ? /^[0-9a-zA-Z]+$/.test(c[0][0])\r\n ? ''\r\n : 'Invalid input'\r\n : 'This field is required',\r\n }));\r\n\r\nexport const schemaDataTransform = (schemaData) => {\r\n const formattedSchemaData = {};\r\n schemaData.forEach((element) => {\r\n formattedSchemaData[element.name] =\r\n element.type === 'fakerJs' ? element.fakerValue : `$custom.${element.type}`;\r\n });\r\n return formattedSchemaData;\r\n};\r\n","import fakerModel from '../../mockDetail/constants/fakerModel';\r\n\r\nconst fakerValue = [].concat(\r\n ...Object.values(fakerModel).map((category) => category.map((item) => item.displayValue))\r\n);\r\n\r\nconst defaultSchemaObject = [\r\n {\r\n name: 'field',\r\n type: 'string',\r\n fakerValue: '$address.buildingNumber',\r\n error: '',\r\n },\r\n];\r\n\r\nfunction isJsonString(str) {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nconst allowedTypes = [\r\n '$custom.string',\r\n '$custom.boolean',\r\n '$custom.number',\r\n '$custom.object',\r\n '$custom.array',\r\n '$custom.date',\r\n];\r\n\r\nconst JsonToSchema = (jsonValue) => {\r\n if (isJsonString(jsonValue)) {\r\n const parsed = JSON.parse(jsonValue);\r\n if (parsed instanceof Object && !Array.isArray(parsed)) {\r\n // console.log(schemaViewDataTransform(parsed));\r\n const convertedSchemaValue = Object.keys(parsed).map((key) => ({\r\n name: key,\r\n type: `${\r\n allowedTypes.includes(parsed[key])\r\n ? `${parsed[key].split(/[$.]/)[2]}`\r\n : fakerValue.includes(parsed[key])\r\n ? 'fakerJs'\r\n : 'string'\r\n }`,\r\n fakerValue: `${fakerValue.includes(parsed[key]) ? parsed[key] : '$address.buildingNumber'}`,\r\n error: key ? (/^[0-9a-zA-Z]+$/.test(key) ? '' : 'Invalid input') : 'This field is required',\r\n }));\r\n return convertedSchemaValue.length > 0 ? convertedSchemaValue : defaultSchemaObject;\r\n }\r\n return defaultSchemaObject;\r\n }\r\n return defaultSchemaObject;\r\n};\r\n\r\nexport default JsonToSchema;\r\n","/* eslint-disable no-shadow */\r\n/* eslint-disable no-unused-vars */\r\nimport React, {useState, useEffect} from 'react';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport {useNavigate} from 'react-router-dom';\r\nimport {styled} from '@mui/material/styles';\r\nimport TextField from '@mui/material/TextField';\r\nimport Paper from '@mui/material/Paper';\r\nimport Grid from '@mui/material/Grid';\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Stack from '@mui/material/Stack';\r\nimport Toolbar from '@mui/material/Toolbar';\r\nimport Typography from '@mui/material/Typography';\r\nimport Button from '@mui/material/Button';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Backdrop from '@mui/material/Backdrop';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport PlayArrowIcon from '@mui/icons-material/PlayArrow';\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\r\nimport uniq from 'lodash/uniq';\r\nimport ErrorIcon from '@mui/icons-material/Error';\r\nimport {isEmpty} from 'lodash';\r\nimport {projectListAction} from '../../ducks/projectListDuck';\r\nimport {createPreviewMockAction} from '../../ducks/previewMockDuck';\r\nimport {createMockAction, flushMockData} from '../../ducks/createMockDuck';\r\nimport {GetMockById, clearGetMockData} from '../../ducks/getMockDuck';\r\nimport {createProjectAction, createProjectClearAction} from '../../ducks/createProjectDuck';\r\nimport ApiCode from './ApiCode';\r\nimport ResponseDetails from './ResponseDetails';\r\nimport ResponseSchema from './ResponseSchema';\r\nimport AddHeader from './AddHeader';\r\nimport Preview from './preview';\r\nimport {fetchAPIResponseType, saveAPIResponseType, IREST_ROUTES, ACTIONS} from '../../constants';\r\nimport CONSTANT from '../../constants/createMock';\r\nimport {\r\n IsJsonString,\r\n removeDuplicateObjectFromArray,\r\n isSpecialCharacter,\r\n parseJson,\r\n} from '../shared/utils/helper';\r\nimport ApiDetails from './ApiDetails';\r\nimport {schemaDataTransform, schemaViewDataTransform} from '../shared/utils/schemaTransformation';\r\nimport JsonToSchema from '../shared/utils/schemaToJson';\r\nimport notify from '../shared/utils/toast';\r\nimport ConfirmationBox from '../shared/units/ConfirmationBox';\r\n\r\nconst Item = styled(Paper)(({theme}) => ({\r\n backgroundColor: '#fff',\r\n padding: theme.spacing(1),\r\n textAlign: 'center',\r\n borderRadius: '0px',\r\n boxShadow: 'none',\r\n color: theme.palette.text.secondary,\r\n}));\r\nfunction CreateEditMockPage() {\r\n const dispatch = useDispatch();\r\n const history = useNavigate();\r\n const createProject = useSelector((state) => state.createProject);\r\n const getMock = useSelector((state) => state.getMock);\r\n const [mockStatus, setMockStatus] = useState();\r\n const projectList = useSelector((state) => {\r\n const data = state?.projectList?.response?.projectList;\r\n if (data) {\r\n const response = data.map((e) => ({label: e.projectName, id: e._id}));\r\n return response;\r\n }\r\n return [];\r\n });\r\n const createMockStore = useSelector((state) => state.createMock);\r\n const createPreviewMockStore = useSelector((state) => state.createPreviewMock?.response);\r\n const [dynamicResponseSpecificJsonValue, setDynamicResponseSpecificJsonData] = useState('{}');\r\n const [dynamicResponseSpecificOtherValue, setDynamicResponseSpecificOtherData] = useState(null);\r\n const [projectNameError, setProjectNameError] = useState(false);\r\n const [matchingProjectError, setMatchingProjectErrorError] = useState(false);\r\n const modes = ['code', 'tree', 'text'];\r\n const [mode, setMode] = useState('code');\r\n const [jsonEditorError, setJsonEditorError] = useState({\r\n FETCH_NORMAL_RESPONSE: false,\r\n GET: false,\r\n POST: false,\r\n PUT: false,\r\n PATCH: false,\r\n DELETE: false,\r\n });\r\n const [tabValue, setTabValue] = useState(0);\r\n const [headerFields, setHeaderFields] = useState([]);\r\n const [apiResponseSchemaTypes, setApiResponseSchemaTypes] = useState({GET: {}, POST: {}});\r\n const [editorBodyText, setEditorBodyText] = useState({});\r\n const [isDialogOpen, setDialogOpen] = useState(false);\r\n const [dynamicKeys, setDynamicKeys] = useState(null);\r\n const [expanded, setExpanded] = useState('panel1');\r\n const [expandedDetails, setDetailsExpanded] = useState('panel3');\r\n const [options, setOptions] = useState([]);\r\n const [open, setOpen] = useState(false);\r\n const [apiName, setApiName] = useState('');\r\n const [apiNameError, setApiNameError] = useState(false);\r\n const [mockId, setMockId] = useState('');\r\n const [requestMethod, setRequestMethod] = useState();\r\n const [requestMethodError, setRequestMethodError] = useState(false);\r\n const [apiType, setApiType] = useState('fetch');\r\n const [statusCode, setStatusCode] = useState(200);\r\n const [contentType, setContentType] = useState('application/json');\r\n const [delaySeconds, setDelaySeconds] = useState(1);\r\n const [isDelay, setIsDelay] = useState(false);\r\n const [allowedFetchMethodEditor, setAllowedFetchMethodEditor] = useState([{value: 'GET'}]);\r\n const [allowedSaveMethodEditor, setAllowedSaveMethodEditor] = useState([\r\n {value: 'GET', disabled: true},\r\n {value: 'GET_BY_ID'},\r\n {value: 'POST', disabled: true},\r\n ]);\r\n const [dataOutputValue, setDataOutputValue] = useState('inCount');\r\n const [bulkDataCount, setBulkDataCount] = useState(1);\r\n const [isBulkDataCount, setIsBulkDataCount] = useState(true);\r\n const [bulkDataSize, setBulkDataSize] = useState(1);\r\n const [isBulkDataSize, setIsBulkDataSize] = useState(false);\r\n const [responseContentType, setResponseContentType] = useState('random');\r\n const [specificResponseType, setSpecifiResponseType] = useState('json');\r\n const [responseTypeValue, setResponseTypeValue] = useState('count');\r\n const [dynamicImportCount, setDynamicImportCount] = useState(1);\r\n const [isDynamicImportCount, setIsDynamicImportCount] = useState(true);\r\n const [dynamicImportSize, setDynamicImportSize] = useState(1);\r\n const [isDynamicImportSize, setIsDynamicImportSize] = useState(false);\r\n const [endPoint, setEndpoint] = useState('');\r\n const [projectName, setProjectName] = useState({label: '', id: ''});\r\n const [prevEndpointProjectName, setprevEndpointProjectName] = useState({});\r\n const [endpointError, setEndpointError] = useState(false);\r\n const [dynamicResponseChecked, setDynamicResponseChecked] = React.useState(false);\r\n const [isLoading, setLoading] = React.useState(false);\r\n const [freesoloProjectname, setFreesoloProjectName] = useState('');\r\n const [isSpecialCharProjectError, setSpecialCharProjectError] = useState(false);\r\n const [dynamicResponseKey, setDynamicResponseKey] = useState(null);\r\n // const [breadcrumb, setBreadcrumb] = useState([]);\r\n const [headerFieldError, setHeaderFieldsError] = useState(0);\r\n const [apiUrl, setAPIUrl] = useState('');\r\n const [apiUrlError, setAPIUrlError] = useState(false);\r\n const [formChange, setFormChange] = useState(false);\r\n const [isPreviewModalOpen, setIsPreviewModalOpen] = useState(false);\r\n const [isSchema, setIsSchema] = useState(false);\r\n const [copyJson, setCopyJson] = useState('{}');\r\n const [schemaResponse, setSchemaResponse] = useState([\r\n {\r\n name: 'field',\r\n type: 'string',\r\n fakerValue: '$address.buildingNumber',\r\n error: '',\r\n },\r\n ]);\r\n const [isApiCodeChanged, setIsApiCodeChanged] = useState(false);\r\n const [isDataConvertionModelOpen, setIsDataConvertionModelOpen] = useState(false);\r\n\r\n const handlerAddHeaders = () => {\r\n setHeaderFields((prevstate) => [...prevstate, {key: null, value: null}]);\r\n };\r\n\r\n useEffect(() => {\r\n if (createMockStore.response.status) {\r\n setLoading(false);\r\n }\r\n }, [createMockStore]);\r\n\r\n useEffect(() => {\r\n const flag = createProject.isPending;\r\n if (flag) {\r\n setLoading(true);\r\n } else {\r\n setLoading(false);\r\n }\r\n if (createProject?.response?.status === 201) {\r\n setDialogOpen(false);\r\n setProjectName({\r\n label: createProject?.response?.projectList?.projectName,\r\n id: createProject?.response?._id,\r\n });\r\n const name =\r\n projectName !== undefined && typeof projectName === 'object'\r\n ? projectName?.label === ''\r\n ? '/ProjectName'\r\n : `/${projectName.label}`\r\n : projectName === ''\r\n ? '/ProjectName'\r\n : `/${projectName}`;\r\n\r\n const url = `${window?.location?.origin}${name}${endPoint.length > 0 ? `/${endPoint}` : ''}`;\r\n setAPIUrl(url);\r\n }\r\n }, [createProject]);\r\n\r\n const handleRemove = (id) => {\r\n const list = [...headerFields];\r\n list.splice(id, 1);\r\n if (list.length === 0) {\r\n setHeaderFieldsError(0);\r\n } else {\r\n setHeaderFieldsError(headerFieldError - 1);\r\n }\r\n setHeaderFields(list);\r\n };\r\n\r\n const handleHeadersChange = (e, fieldName, i) => {\r\n const list = [...headerFields];\r\n list[i][fieldName] = e.target.value === '' ? null : e.target.value;\r\n setHeaderFields(list);\r\n };\r\n\r\n const handleDynamicResponseSpecificJsonChange = (txt) => {\r\n setDynamicResponseSpecificJsonData(txt);\r\n };\r\n\r\n const handleDynamicResponseSpecificOtherChange = (e) => {\r\n setDynamicResponseSpecificOtherData(e.target.value);\r\n };\r\n\r\n const [responseDetailsError, setResponseDetailsError] = useState(0);\r\n\r\n const [responseSchemaError, setResponseSchemaError] = useState(0);\r\n\r\n const onModeChangeKey = (mode1) => {\r\n setMode(mode1);\r\n };\r\n\r\n const handleDelayChange = (e) => {\r\n const enteredValue = parseInt(e.target.value, 10);\r\n if (enteredValue > 0 && enteredValue <= 60) {\r\n if (delaySeconds === '') {\r\n setResponseDetailsError(responseDetailsError - 1);\r\n }\r\n setDelaySeconds(enteredValue);\r\n } else {\r\n setDelaySeconds('');\r\n }\r\n };\r\n\r\n const handleDelayRadioChange = (event) => {\r\n setIsDelay(event.target.checked);\r\n if (!event.target.checked) {\r\n setDelaySeconds(1);\r\n }\r\n };\r\n\r\n const handleContentTypeRadioChange = (e) => {\r\n setResponseContentType(e.target.value);\r\n };\r\n\r\n const handleSpecificResponseTypeChange = (e) => {\r\n setSpecifiResponseType(e.target.value);\r\n };\r\n\r\n const handleResponseTypeRadioChange = (e) => {\r\n if (e.target.value === 'count') {\r\n setIsDynamicImportCount(true);\r\n setIsDynamicImportSize(false);\r\n } else {\r\n setIsDynamicImportCount(false);\r\n setIsDynamicImportSize(true);\r\n }\r\n setResponseTypeValue(e.target.value);\r\n };\r\n\r\n const handleResponseTypeFieldChange = (e) => {\r\n const enteredValue = parseInt(e.target.value, 10);\r\n if (responseTypeValue === 'count') {\r\n if (enteredValue > 0 && enteredValue <= 1000000) {\r\n if (dynamicImportCount === '') {\r\n setResponseDetailsError(responseDetailsError - 1);\r\n }\r\n setDynamicImportCount(enteredValue);\r\n } else {\r\n setDynamicImportCount('');\r\n }\r\n } else {\r\n // eslint-disable-next-line no-lonely-if\r\n if (enteredValue > 0 && enteredValue <= 20) {\r\n if (dynamicImportSize === '') {\r\n setResponseDetailsError(responseDetailsError - 1);\r\n }\r\n setDynamicImportSize(enteredValue);\r\n } else {\r\n setDynamicImportSize('');\r\n }\r\n }\r\n };\r\n\r\n const handleDataOutputRadioChange = (e) => {\r\n if (e.target.value === 'inCount') {\r\n setIsBulkDataCount(true);\r\n setIsBulkDataSize(false);\r\n } else {\r\n setIsBulkDataCount(false);\r\n setIsBulkDataSize(true);\r\n }\r\n setDataOutputValue(e.target.value);\r\n };\r\n\r\n const handleDataOutputFieldChange = (e) => {\r\n const enteredValue = parseInt(e.target.value, 10);\r\n if (dataOutputValue === 'inCount') {\r\n if (enteredValue > 0 && enteredValue <= 1000000) {\r\n if (bulkDataCount === '') {\r\n setResponseDetailsError(responseDetailsError - 1);\r\n }\r\n setBulkDataCount(enteredValue);\r\n } else {\r\n setBulkDataCount('');\r\n }\r\n } else {\r\n // eslint-disable-next-line no-lonely-if\r\n if (enteredValue > 0 && enteredValue <= 20) {\r\n if (bulkDataCount === '') {\r\n setResponseDetailsError(responseDetailsError - 1);\r\n }\r\n setBulkDataSize(enteredValue);\r\n } else {\r\n setBulkDataSize('');\r\n }\r\n }\r\n };\r\n\r\n const changeContentType = (e) => {\r\n setContentType(e.target.value);\r\n };\r\n\r\n const changeRequestMethod = (event) => {\r\n event.stopPropagation();\r\n let methodList = [];\r\n const {value} = event.target;\r\n if (value[value.length - 1] === 'all') {\r\n setRequestMethod(requestMethod?.length === options.length ? [] : options);\r\n methodList = requestMethod?.length === options.length ? [] : options;\r\n } else {\r\n const lastElement = value[value.length - 1];\r\n const isValueExist = value.some(\r\n (el, index) => el.value === lastElement.value && index !== value.length - 1\r\n );\r\n\r\n if (isValueExist && value.length > 1) {\r\n const removedDuplicteList = value.filter((e) => e.value !== lastElement.value);\r\n setRequestMethod(removedDuplicteList);\r\n methodList = removedDuplicteList;\r\n } else {\r\n setRequestMethod(value);\r\n methodList = value;\r\n }\r\n }\r\n\r\n if (apiType === 'fetch') {\r\n setAllowedFetchMethodEditor(methodList);\r\n } else {\r\n setAllowedSaveMethodEditor((prevEditor) => {\r\n const mergeData = [...methodList];\r\n mergeData.splice(1, 0, {value: 'GET_BY_ID'});\r\n const uniqueData = removeDuplicateObjectFromArray(mergeData);\r\n return uniqueData;\r\n });\r\n }\r\n };\r\n\r\n const removeRequestMethod = (e, val) => {\r\n const methodList = requestMethod?.filter((i) => i.value !== val);\r\n setRequestMethod(methodList);\r\n if (apiType === 'fetch') {\r\n setAllowedFetchMethodEditor(methodList);\r\n } else {\r\n setAllowedSaveMethodEditor((prevEditor) => uniq([...prevEditor, ...methodList]));\r\n }\r\n };\r\n\r\n const handleClickOpen = () => {\r\n setOpen(!open);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleDetailsChange = (panel) => (event, newExpanded) => {\r\n setDetailsExpanded(newExpanded ? panel : false);\r\n };\r\n\r\n const onApiTypeChange = (e) => {\r\n setApiType(e.target.value);\r\n setResponseDetailsError(0);\r\n setResponseSchemaError(0);\r\n };\r\n\r\n const onRadioBtnChange = (e) => {\r\n setDataOutputValue(e.target.value);\r\n };\r\n\r\n const handleChange = (panel) => (event, newExpanded) => {\r\n setExpanded(newExpanded ? panel : false);\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(projectListAction({searchQuery: ''}));\r\n }, [projectName]);\r\n\r\n useEffect(() => {\r\n if ([201, 200].includes(createMockStore?.response?.status)) {\r\n history(IREST_ROUTES.DASHBOARD, {replace: true});\r\n dispatch(flushMockData());\r\n }\r\n }, [createMockStore]);\r\n\r\n useEffect(() => {\r\n if (dynamicKeys) {\r\n setDynamicResponseKey(JSON.stringify(dynamicKeys));\r\n }\r\n }, [dynamicKeys]);\r\n\r\n const setSaveTypeResponseSchemaData = (isRequestMethodTypeChanged) => {\r\n let methodWiseDataForSave = {};\r\n allowedSaveMethodEditor.forEach((method) => {\r\n const data =\r\n method.value in editorBodyText && !isRequestMethodTypeChanged\r\n ? editorBodyText[method.value]\r\n : saveAPIResponseType[method.value];\r\n methodWiseDataForSave = {\r\n ...methodWiseDataForSave,\r\n [method.value]: data,\r\n };\r\n });\r\n setEditorBodyText(methodWiseDataForSave);\r\n };\r\n\r\n const setFetchTypeResponseSchemaData = (isDefaultData = false) => {\r\n const data =\r\n isDefaultData ||\r\n Object.keys(editorBodyText).length === 0 ||\r\n ('FETCH_NORMAL_RESPONSE' in editorBodyText && editorBodyText.FETCH_NORMAL_RESPONSE === '{}')\r\n ? fetchAPIResponseType\r\n : {\r\n ...editorBodyText,\r\n POST: {\r\n message: 'Data stored Successfully.',\r\n status: '200',\r\n data: {id: '$IREST_RECORD_ID'},\r\n },\r\n };\r\n let methodWiseDataForFetch = {};\r\n if (allowedFetchMethodEditor.length > 0) {\r\n allowedFetchMethodEditor.forEach((method) => {\r\n methodWiseDataForFetch = {\r\n ...methodWiseDataForFetch,\r\n FETCH_NORMAL_RESPONSE: data?.FETCH_NORMAL_RESPONSE,\r\n [method.value]: method.value in data ? data[method.value] : {},\r\n };\r\n });\r\n } else {\r\n methodWiseDataForFetch = {\r\n ...methodWiseDataForFetch,\r\n FETCH_NORMAL_RESPONSE: data?.FETCH_NORMAL_RESPONSE,\r\n };\r\n }\r\n setEditorBodyText(methodWiseDataForFetch);\r\n };\r\n\r\n useEffect(() => {\r\n if (apiType === 'save') {\r\n if (!requestMethod || requestMethod?.length === 0) {\r\n setRequestMethod([\r\n {value: 'GET', disabled: true},\r\n {value: 'POST', disabled: true},\r\n ]);\r\n } else {\r\n const methods = requestMethod?.map((obj) => {\r\n if (obj.value === 'GET' || obj.value === 'POST') {\r\n return {\r\n value: obj.value,\r\n disabled: true,\r\n };\r\n }\r\n return obj;\r\n });\r\n\r\n if (!methods.find((el) => el.value === 'GET')) {\r\n methods.push({value: 'GET', disabled: true});\r\n }\r\n if (!methods.find((el) => el.value === 'POST')) {\r\n methods.push({value: 'POST', disabled: true});\r\n }\r\n setRequestMethod(methods);\r\n }\r\n setOptions([\r\n {value: 'GET', disabled: true},\r\n {value: 'POST', disabled: true},\r\n {value: 'PUT'},\r\n {value: 'PATCH'},\r\n {value: 'DELETE'},\r\n ]);\r\n\r\n setApiResponseSchemaTypes({\r\n GET: {message: 'Record List!', status: '200', data: '$dataArray'},\r\n GET_BY_ID: {message: 'Single Record', status: '200', data: '$dataObject'},\r\n POST: {\r\n message: 'Data stored Successfully.',\r\n status: '200',\r\n data: {id: '$IREST_RECORD_ID'},\r\n },\r\n });\r\n setSaveTypeResponseSchemaData(true);\r\n } else if (apiType === 'fetch') {\r\n setOptions([{value: 'GET'}, {value: 'POST'}]);\r\n setFetchTypeResponseSchemaData(true);\r\n }\r\n }, [apiType]);\r\n\r\n useEffect(() => {\r\n if (apiType !== 'save') {\r\n setRequestMethod(null);\r\n }\r\n }, [apiType]);\r\n\r\n useEffect(() => {\r\n setSaveTypeResponseSchemaData(false);\r\n }, [allowedSaveMethodEditor]);\r\n\r\n useEffect(() => {\r\n setFetchTypeResponseSchemaData();\r\n }, [allowedFetchMethodEditor]);\r\n\r\n useEffect(() => {\r\n if (getMock.response.status === 200) {\r\n const {\r\n projectName,\r\n endpointRequestPath,\r\n serviceResponseType,\r\n statusCode,\r\n serviceResponse,\r\n ApiResponseSchemaTypes,\r\n mockName,\r\n contentType,\r\n allowedMethods,\r\n isBulkDataCount,\r\n isBulkDataSize,\r\n bulkDataCount,\r\n bulkDataSize,\r\n isDelay,\r\n delaySeconds,\r\n isDynamicResponse,\r\n dynamicResponseSpecificKeyValue,\r\n dynamicResponseRandom,\r\n dynamicResponseKey,\r\n isDynamicImportCount,\r\n isDynamicImportSize,\r\n dynamicImportSize,\r\n dynamicImportCount,\r\n headers,\r\n projectId,\r\n mockStatus,\r\n _id,\r\n isSchema,\r\n } = getMock.response.data.mock;\r\n setProjectName({label: projectName, id: projectId});\r\n const tabValue = isSchema ? 1 : 0;\r\n setTabValue(tabValue);\r\n setApiResponseSchemaTypes(ApiResponseSchemaTypes);\r\n setIsSchema(isSchema);\r\n if (isSchema) {\r\n setTabValue(1);\r\n const parsedData = Object.keys(JSON.parse(serviceResponse.serviceResponseBody)).map(\r\n (key) => ({\r\n [key]: JSON.parse(serviceResponse.serviceResponseBody)[key],\r\n })\r\n );\r\n const schemaData = schemaViewDataTransform(parsedData);\r\n setSchemaResponse(schemaData);\r\n }\r\n setEndpoint(endpointRequestPath);\r\n setAPIUrl(`${window.location.origin}/${projectName}/${endpointRequestPath}`);\r\n setApiType(serviceResponseType === 'default' ? 'fetch' : 'save');\r\n setStatusCode(statusCode);\r\n setApiName(mockName);\r\n setMockId(_id);\r\n setMockStatus(mockStatus);\r\n setContentType(contentType);\r\n const getMockRequestMethods = allowedMethods?.map((e) => {\r\n if (serviceResponseType === 'save' && (e === 'GET' || e === 'POST')) {\r\n return {value: e, disabled: true};\r\n }\r\n return {value: e};\r\n });\r\n setRequestMethod(getMockRequestMethods);\r\n if (isDelay) {\r\n setIsDelay(true);\r\n setDelaySeconds(delaySeconds);\r\n }\r\n if (serviceResponseType === 'default') {\r\n setAllowedFetchMethodEditor(getMockRequestMethods);\r\n setEditorBodyText((prev) => ({\r\n ...prev,\r\n ...ApiResponseSchemaTypes,\r\n FETCH_NORMAL_RESPONSE: serviceResponse?.serviceResponseBody,\r\n }));\r\n if (isBulkDataCount) {\r\n setDataOutputValue('inCount');\r\n setIsBulkDataCount(true);\r\n setIsBulkDataSize(false);\r\n setBulkDataCount(bulkDataCount);\r\n }\r\n if (isBulkDataSize) {\r\n setDataOutputValue('inSize');\r\n setIsBulkDataCount(false);\r\n setIsBulkDataSize(true);\r\n setBulkDataSize(bulkDataSize);\r\n }\r\n\r\n if (isDynamicResponse) {\r\n setDynamicResponseChecked(true);\r\n }\r\n const specificRespType = IsJsonString(dynamicResponseSpecificKeyValue) ? 'json' : 'other';\r\n setDynamicResponseKey(dynamicResponseKey);\r\n setSpecifiResponseType(specificRespType);\r\n if (specificRespType === 'json') {\r\n setDynamicResponseSpecificJsonData(dynamicResponseSpecificKeyValue);\r\n }\r\n if (specificRespType === 'other') {\r\n setDynamicResponseSpecificOtherData(dynamicResponseSpecificKeyValue);\r\n }\r\n setResponseContentType(dynamicResponseRandom ? 'random' : 'specific');\r\n if (isDynamicImportCount) {\r\n setResponseTypeValue('count');\r\n setDynamicImportCount(dynamicImportCount);\r\n }\r\n if (isDynamicImportSize) {\r\n setResponseTypeValue('size');\r\n setDynamicImportSize(dynamicImportSize);\r\n }\r\n setHeaderFields(headers);\r\n }\r\n if (serviceResponseType === 'save') {\r\n const list = [...getMockRequestMethods];\r\n list.splice(1, 0, {value: 'GET_BY_ID', disabled: true});\r\n setAllowedSaveMethodEditor(list);\r\n setEditorBodyText(ApiResponseSchemaTypes);\r\n }\r\n }\r\n dispatch(clearGetMockData());\r\n }, [getMock]);\r\n\r\n useEffect(() => {\r\n setRequestMethodError(requestMethod?.length === 0);\r\n }, [requestMethod]);\r\n\r\n const checkProjectnameError = () => {\r\n let hasProjectNameError = false;\r\n if (typeof projectName === 'object' && 'label' in projectName && projectName.label === '') {\r\n hasProjectNameError = true;\r\n } else if (projectName === '') {\r\n hasProjectNameError = true;\r\n } else {\r\n hasProjectNameError = false;\r\n }\r\n setProjectNameError(hasProjectNameError);\r\n };\r\n\r\n useEffect(() => {\r\n let hasProjectNameError = false;\r\n if (freesoloProjectname.length === 0) {\r\n hasProjectNameError = true;\r\n } else {\r\n hasProjectNameError = false;\r\n }\r\n setProjectNameError(hasProjectNameError);\r\n }, [freesoloProjectname]);\r\n\r\n const selectedProjectId = useSelector((state) => state.selectedProjectId);\r\n\r\n useEffect(() => {\r\n if (createMockStore?.mockScreenMode === 'create') {\r\n setDialogOpen(true);\r\n if (selectedProjectId) {\r\n setProjectName({id: selectedProjectId?.projectId, label: ''});\r\n }\r\n setApiName(`Mock_${Math.floor(10 ** 4 + Math.random() * (10 ** 5 - 10 ** 4 - 1))}`);\r\n } else {\r\n setDialogOpen(false);\r\n }\r\n setProjectNameError(false);\r\n setEndpointError(false);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const path = window.location.pathname;\r\n const breadcrumbs = path.split('/');\r\n if (breadcrumbs.includes('create')) {\r\n // setBreadcrumb('create');\r\n }\r\n if (breadcrumbs.includes('edit')) {\r\n dispatch(GetMockById(breadcrumbs[3]));\r\n // setBreadcrumb('edit');\r\n setDialogOpen(false);\r\n }\r\n setAPIUrl(`${window.location.origin}/ProjectName/EndPoint`);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setApiNameError(apiName.length === 0);\r\n }, [apiName]);\r\n\r\n const saveOrPreviewPayload = () => {\r\n const apiResponseSchemaType = {...editorBodyText};\r\n let updatedSchema = {};\r\n Object.keys(apiResponseSchemaType).forEach((key) => {\r\n updatedSchema = {\r\n ...updatedSchema,\r\n [key]:\r\n typeof apiResponseSchemaType[key] !== 'object' &&\r\n apiResponseSchemaType[key] !== '' &&\r\n IsJsonString(apiResponseSchemaType[key])\r\n ? JSON.parse(apiResponseSchemaType[key])\r\n : apiResponseSchemaType[key],\r\n };\r\n });\r\n if (apiType === 'fetch' && !isEmpty(updatedSchema.FETCH_NORMAL_RESPONSE)) {\r\n if (dynamicResponseChecked) {\r\n updatedSchema.GET = {};\r\n } else {\r\n updatedSchema.GET = updatedSchema.FETCH_NORMAL_RESPONSE;\r\n delete updatedSchema.FETCH_NORMAL_RESPONSE;\r\n }\r\n }\r\n const headers = headerFields.filter((obj) => obj.key !== null || obj.value !== null);\r\n let serviceResponseBody;\r\n if (isSchema) {\r\n serviceResponseBody = JSON.stringify({...schemaDataTransform(schemaResponse)});\r\n } else {\r\n serviceResponseBody = editorBodyText?.FETCH_NORMAL_RESPONSE;\r\n }\r\n return {\r\n projectId: projectName?.id,\r\n projectName: projectName?.label,\r\n ApiResponseSchemaTypes: updatedSchema,\r\n serviceResponseBody,\r\n serviceResponseType: apiType === 'fetch' ? 'default' : 'save',\r\n serviceResponseBodyType: apiType === 'fetch' ? 'default' : 'save',\r\n specificResponseType,\r\n referenceId: '',\r\n path: window.location.origin,\r\n endpoint: endPoint,\r\n method: 'GET',\r\n statusCode,\r\n isDelay,\r\n delaySeconds,\r\n headers,\r\n params: [],\r\n contentEncoding: 'UTF-8',\r\n contentType,\r\n mockName: apiName,\r\n mockId: mockId || '',\r\n mockStatus: mockStatus || 'enabled',\r\n randomSpecific: responseContentType,\r\n isDynamicResponse: dynamicResponseChecked,\r\n dynamicResponseKey,\r\n dynamicResponseRandom: responseContentType === 'random',\r\n dynamicResponseSpecific: responseContentType === 'specific',\r\n dynamicResponseSpecificKeyValue:\r\n specificResponseType === 'json'\r\n ? dynamicResponseSpecificJsonValue\r\n : dynamicResponseSpecificOtherValue,\r\n isDynamicImportCount,\r\n dynamicImportCount,\r\n isDynamicImportSize,\r\n dynamicImportSize,\r\n bulkDataCount: isBulkDataCount && bulkDataCount,\r\n isBulkDataCount,\r\n bulkDataSize: isBulkDataSize && bulkDataSize,\r\n isBulkDataSize,\r\n allowedMethods: requestMethod?.map((e) => e.value),\r\n isSchema,\r\n schemaResponse: isSchema\r\n ? schemaResponse\r\n : [\r\n {\r\n name: 'field',\r\n type: 'string',\r\n fakerValue: '$address.buildingNumber',\r\n error: '',\r\n },\r\n ],\r\n isPreview: false,\r\n };\r\n };\r\n\r\n const saveOrPreviewMockHandler = (clickHandlerType) => {\r\n if (!requestMethod || requestMethod?.length === 0) {\r\n setLoading(false);\r\n setRequestMethodError(true);\r\n return;\r\n }\r\n if (dataOutputValue === 'inCount' && (bulkDataCount === 0 || bulkDataCount === '')) {\r\n return;\r\n }\r\n if (dataOutputValue === 'inSize' && (bulkDataSize === 0 || bulkDataSize === '')) {\r\n return;\r\n }\r\n if (isDelay && (delaySeconds === 0 || delaySeconds === '')) {\r\n return;\r\n }\r\n if (responseTypeValue === 'count' && (dynamicImportCount === 0 || dynamicImportCount === '')) {\r\n return;\r\n }\r\n if (responseTypeValue === 'size' && (dynamicImportSize === 0 || dynamicImportSize === '')) {\r\n return;\r\n }\r\n if (dynamicResponseChecked && dynamicResponseKey === null) {\r\n return;\r\n }\r\n if (\r\n dynamicResponseChecked &&\r\n responseContentType === 'specific' &&\r\n specificResponseType === 'other' &&\r\n !dynamicResponseSpecificOtherValue\r\n ) {\r\n setDynamicResponseSpecificOtherData('');\r\n return;\r\n }\r\n\r\n if (\r\n dynamicResponseChecked &&\r\n responseContentType === 'specific' &&\r\n specificResponseType === 'json' &&\r\n !dynamicResponseSpecificJsonValue\r\n ) {\r\n setDynamicResponseSpecificJsonData('');\r\n return;\r\n }\r\n let responseSchemaCount = 0;\r\n\r\n if (typeof editorBodyText === 'object' && Object.keys(editorBodyText).length > 1) {\r\n Object.keys(editorBodyText).forEach((key) => {\r\n if (key !== 'FETCH_NORMAL_RESPONSE') {\r\n let val = editorBodyText[key];\r\n val = typeof editorBodyText[key] === 'object' ? JSON.stringify(editorBodyText[key]) : val;\r\n if (val === '' || !IsJsonString(val)) {\r\n responseSchemaCount += 1;\r\n }\r\n }\r\n });\r\n setResponseSchemaError(responseSchemaCount);\r\n }\r\n if (\r\n typeof editorBodyText === 'object' &&\r\n Object.keys(editorBodyText).length === 1 &&\r\n 'FETCH_NORMAL_RESPONSE' in editorBodyText &&\r\n editorBodyText.FETCH_NORMAL_RESPONSE\r\n ) {\r\n setResponseSchemaError(1);\r\n }\r\n\r\n let headerErrorCount = 0;\r\n headerFields.forEach((obj) => {\r\n if (obj.key === null && obj.value === null) {\r\n headerErrorCount += 1;\r\n } else if (headerErrorCount > 1) {\r\n headerErrorCount -= 1;\r\n }\r\n });\r\n setHeaderFieldsError(headerErrorCount);\r\n let errorCount = 0;\r\n const dataOutputCount = dataOutputValue === 'inCount' ? bulkDataCount : bulkDataSize;\r\n const responseValue = responseTypeValue === 'count' ? dynamicImportCount : dynamicImportSize;\r\n if (dataOutputCount === '') {\r\n errorCount += 1;\r\n }\r\n if (delaySeconds === '') {\r\n errorCount += 1;\r\n }\r\n if (dynamicResponseChecked && dynamicKeys?.length === 0) {\r\n errorCount += 1;\r\n }\r\n if (responseValue === '') {\r\n errorCount += 1;\r\n }\r\n setResponseDetailsError(errorCount);\r\n checkProjectnameError();\r\n if (endPoint.length === 0) {\r\n setEndpointError(true);\r\n }\r\n const prjtName = typeof projectName === 'object' ? projectName.label : projectName;\r\n setAPIUrlError(prjtName?.length === 0 && endPoint?.length === 0);\r\n\r\n const apiCodeError =\r\n typeof editorBodyText === 'object' &&\r\n Object.keys(editorBodyText).length > 0 &&\r\n 'FETCH_NORMAL_RESPONSE' in editorBodyText &&\r\n editorBodyText.FETCH_NORMAL_RESPONSE === '';\r\n\r\n const isSchemaResponseValid = isSchema\r\n ? schemaResponse.filter((item) => item?.error !== '').length === 0\r\n : true;\r\n\r\n if (\r\n headerErrorCount === 0 &&\r\n responseSchemaCount === 0 &&\r\n endPoint.length !== 0 &&\r\n !apiUrlError &&\r\n !requestMethodError &&\r\n !apiNameError &&\r\n !apiCodeError &&\r\n isSchemaResponseValid\r\n ) {\r\n const payload = saveOrPreviewPayload();\r\n if (clickHandlerType === 'preview') {\r\n setIsPreviewModalOpen(true);\r\n dispatch(createPreviewMockAction({...payload, isPreview: true}));\r\n } else {\r\n setLoading(true);\r\n dispatch(createMockAction(payload));\r\n }\r\n dispatch(createProjectClearAction());\r\n }\r\n };\r\n const onChangeTextKey = (txt, view) => {\r\n setEditorBodyText((prevText) => {\r\n const output = {\r\n ...prevText,\r\n [view]: txt,\r\n };\r\n return output;\r\n });\r\n };\r\n\r\n const handleValueChange = (event, newValue) => {\r\n const isSchemaValid = schemaResponse.filter((item) => item?.error !== '').length === 0;\r\n const isJsonEmpty =\r\n typeof editorBodyText === 'object' &&\r\n Object.keys(editorBodyText).length > 0 &&\r\n 'FETCH_NORMAL_RESPONSE' in editorBodyText &&\r\n editorBodyText.FETCH_NORMAL_RESPONSE === '';\r\n const isJsonValid =\r\n jsonEditorError.FETCH_NORMAL_RESPONSE &&\r\n !isSchema &&\r\n !IsJsonString(editorBodyText.FETCH_NORMAL_RESPONSE) &&\r\n editorBodyText.FETCH_NORMAL_RESPONSE !== '';\r\n\r\n if (!isSchemaValid || isJsonValid || isJsonEmpty) {\r\n return;\r\n }\r\n if (isApiCodeChanged) {\r\n setIsDataConvertionModelOpen(true);\r\n }\r\n setIsApiCodeChanged(false);\r\n setIsSchema(Boolean(newValue));\r\n setTabValue(newValue);\r\n };\r\n\r\n useEffect(() => {\r\n const schemaToJson = schemaDataTransform(schemaResponse);\r\n onChangeTextKey(JSON.stringify(schemaToJson), 'FETCH_NORMAL_RESPONSE');\r\n }, [schemaResponse]);\r\n\r\n const convertApiCode = () => {\r\n if (tabValue === 0) {\r\n const schemaToJson = schemaDataTransform(schemaResponse);\r\n onChangeTextKey(JSON.stringify(schemaToJson), 'FETCH_NORMAL_RESPONSE');\r\n }\r\n if (tabValue === 1) {\r\n const schemaToJson = JsonToSchema(editorBodyText.FETCH_NORMAL_RESPONSE);\r\n setSchemaResponse(schemaToJson);\r\n }\r\n setIsApiCodeChanged(false);\r\n setIsDataConvertionModelOpen(false);\r\n };\r\n\r\n const openUrlCreateDialog = () => {\r\n let path = apiUrl;\r\n path = path.split('/');\r\n if (\r\n path[3] === 'ProjectName' &&\r\n path[4] === 'EndPoint' &&\r\n endPoint === '' &&\r\n typeof projectName === 'object'\r\n ? projectName.label === ''\r\n : projectName === ''\r\n ) {\r\n setProjectName('');\r\n setEndpoint('');\r\n }\r\n setprevEndpointProjectName({\r\n endPoint,\r\n projectName: typeof projectName === 'object' ? projectName : {label: projectName, id: ''},\r\n });\r\n setDialogOpen(!isDialogOpen);\r\n setProjectNameError(false);\r\n setEndpointError(false);\r\n };\r\n const closeUrlEditDialog = () => {\r\n setDialogOpen(!isDialogOpen);\r\n };\r\n\r\n const createSelectProjectHandler = () => {\r\n const newProjectId = typeof projectName === 'object' ? projectName.id : projectName;\r\n const projectNameSelected = projectList.find((elem) => elem.id === newProjectId)?.label;\r\n const changedProject = {label: projectNameSelected, id: newProjectId};\r\n setProjectName(changedProject);\r\n if (\r\n !changedProject?.label ||\r\n endPoint?.length === 0 ||\r\n isSpecialCharProjectError ||\r\n matchingProjectError\r\n ) {\r\n if (!changedProject?.label) {\r\n setProjectNameError(true);\r\n }\r\n return;\r\n }\r\n if (changedProject.label !== '' && endPoint !== '') {\r\n const name = changedProject?.label === '' ? '/ProjectName' : `/${changedProject.label}`;\r\n const url = `${window?.location?.origin}${name}${endPoint.length > 0 ? `/${endPoint}` : ''}`;\r\n setAPIUrl(url);\r\n }\r\n setFormChange(false);\r\n setDialogOpen(false);\r\n setprevEndpointProjectName({\r\n endPoint,\r\n projectName: changedProject,\r\n });\r\n };\r\n\r\n const handleEndpoint = (e) => {\r\n setEndpoint(e.target.value);\r\n setEndpointError(e.target.value.length === 0);\r\n };\r\n\r\n const readFileAsText = async (fileInput) =>\r\n new Promise((resolve) => {\r\n const reader = new FileReader();\r\n reader.readAsText(fileInput, 'UTF-8');\r\n reader.addEventListener('load', () => {\r\n const renderedResult = reader.result;\r\n const jsonParseValue = parseJson(renderedResult);\r\n if (jsonParseValue.error !== 'error') {\r\n try {\r\n const jsonParsedData = JSON.parse(renderedResult);\r\n const normalValue = {\r\n FETCH_NORMAL_RESPONSE: JSON.stringify({...jsonParsedData}),\r\n };\r\n setEditorBodyText((prevState) => ({\r\n ...prevState,\r\n ...normalValue,\r\n }));\r\n } catch (error) {\r\n notify('Invalid JSON file !', {type: 'error'});\r\n return error;\r\n }\r\n resolve(renderedResult);\r\n setTabValue(0);\r\n } else {\r\n notify('Invalid JSON file !', {type: 'error'});\r\n }\r\n });\r\n });\r\n\r\n const uploadFileForJSON = async (fileInput) => {\r\n await readFileAsText(fileInput);\r\n };\r\n\r\n const resetDefaultResponse = (method) => {\r\n setEditorBodyText((prev) => ({\r\n ...editorBodyText,\r\n [method]: saveAPIResponseType[method],\r\n }));\r\n };\r\n return (\r\n <div className=\"createmock-wrapper\">\r\n <Backdrop open={isLoading} className=\"loader-backdrop\">\r\n <CircularProgress />\r\n </Backdrop>\r\n <ConfirmationBox\r\n open={isDataConvertionModelOpen}\r\n headerContent=\"Are you sure ?\"\r\n secondaryBtnLabel=\"No\"\r\n secondaryBtnHandler={() => setIsDataConvertionModelOpen(false)}\r\n primaryBtnLabel=\"Yes\"\r\n primaryBtnHandler={() => convertApiCode(true)}\r\n bodyContent={isSchema ? 'convert JSON object to schema' : 'convert schema to JSON object'}\r\n primaryBtnvariant=\"contained\"\r\n secondaryBtnVarient=\"text\"\r\n primaryBtnColor=\"primary\"\r\n secondaryBtnColor=\"secondary\"\r\n secondaryBtnId=\"cancelDeleteApi\"\r\n primaryBtnId=\"deleteApi\"\r\n />\r\n {!isPreviewModalOpen && (\r\n <>\r\n <AppBar className=\"bg-transparent\" color=\"inherit\" position=\"static\" elevation={0}>\r\n <Toolbar>\r\n <IconButton size=\"large\" color=\"inherit\" aria-label=\"menu\">\r\n <ArrowBackIosIcon onClick={() => history(-1)} />\r\n </IconButton>\r\n <Typography variant=\"h6\" component=\"div\" className=\"py-3.5 grow relative\">\r\n <TextField\r\n id=\"irest_api_name\"\r\n inputProps={{'data-testid': 'email-input'}}\r\n variant=\"outlined\"\r\n name=\"apiName\"\r\n type=\"text\"\r\n className=\"w-1/5 bg-transparent api-name-input rounded-none hover:rounded-sm\"\r\n value={apiName}\r\n onChange={(e) => setApiName(e.target.value)}\r\n error={apiNameError}\r\n placeholder=\"Enter Api Name\"\r\n />\r\n {apiNameError && <div className=\"error\">{CONSTANT.MOCK_NAME_REQUIRED}</div>}\r\n </Typography>\r\n <Stack direction=\"row\" spacing={2}>\r\n {apiType === 'save' ? (\r\n <> </>\r\n ) : (\r\n <Button\r\n className=\"rounded-s rounded-e font-thin NunitoSansLight\"\r\n size=\"small\"\r\n variant=\"contained\"\r\n startIcon={<PlayArrowIcon className=\"mr-[7px]\" />}\r\n onClick={() => {\r\n saveOrPreviewMockHandler('preview');\r\n }}\r\n >\r\n {CONSTANT.PREVIEW}\r\n </Button>\r\n )}\r\n <Button\r\n className=\"rounded-s rounded-e font-thin\"\r\n size=\"small\"\r\n variant=\"contained\"\r\n onClick={() => {\r\n saveOrPreviewMockHandler('save');\r\n }}\r\n >\r\n {CONSTANT.SAVE}\r\n </Button>\r\n </Stack>\r\n </Toolbar>\r\n </AppBar>\r\n <Grid className=\"px-[20px]\">\r\n <ApiDetails\r\n apiUrl={apiUrl}\r\n apiUrlError={apiUrlError}\r\n endpointError={endpointError}\r\n removeRequestMethod={removeRequestMethod}\r\n projectName={projectName}\r\n endPoint={endPoint}\r\n isDialogOpen={isDialogOpen}\r\n closeUrlEditDialog={closeUrlEditDialog}\r\n setProjectName={setProjectName}\r\n openUrlCreateDialog={openUrlCreateDialog}\r\n projectList={projectList}\r\n options={options}\r\n apiType={apiType}\r\n onApiTypeChange={onApiTypeChange}\r\n statusCode={statusCode}\r\n setStatusCode={setStatusCode}\r\n requestMethod={requestMethod}\r\n changeRequestMethod={changeRequestMethod}\r\n contentType={contentType}\r\n changeContentType={changeContentType}\r\n createSelectProjectHandler={createSelectProjectHandler}\r\n handleEndpoint={handleEndpoint}\r\n projectNameError={projectNameError}\r\n isSpecialCharProjectError={isSpecialCharProjectError}\r\n requestMethodError={requestMethodError}\r\n setProjectNameError={setProjectNameError}\r\n matchingProjectError={matchingProjectError}\r\n setMatchingProjectErrorError={setMatchingProjectErrorError}\r\n formChange={formChange}\r\n setFormChange={setFormChange}\r\n />\r\n <Grid container spacing={2} className=\"mt-0\">\r\n <Grid item size={6}>\r\n <Item className=\"bg-[#FFFFFF] height-ddd overflow-y-auto\">\r\n {apiType === 'fetch' && (\r\n <div>\r\n <ApiCode\r\n setCopyJson={setCopyJson}\r\n isSchema={isSchema}\r\n schemaResponse={schemaResponse}\r\n setSchemaResponse={setSchemaResponse}\r\n expanded={expanded}\r\n handleChange={handleChange}\r\n mode={mode}\r\n modes={modes}\r\n handleClickOpen={handleClickOpen}\r\n handleClose={handleClose}\r\n tabValue={tabValue}\r\n handleValueChange={handleValueChange}\r\n onModeChangeKey={onModeChangeKey}\r\n onChangeTextKey={(txt) => {\r\n onChangeTextKey(txt, 'FETCH_NORMAL_RESPONSE');\r\n setIsApiCodeChanged(true);\r\n }}\r\n setJsonEditorError={setJsonEditorError}\r\n jsonEditorError={jsonEditorError}\r\n apiResponseSchemaTypes={apiResponseSchemaTypes}\r\n open={open}\r\n editorBodyText={editorBodyText}\r\n uploadFileForJSON={uploadFileForJSON}\r\n setIsApiCodeChanged={setIsApiCodeChanged}\r\n />\r\n {typeof editorBodyText === 'object' &&\r\n !isSchema &&\r\n Object.keys(editorBodyText).length > 0 &&\r\n 'FETCH_NORMAL_RESPONSE' in editorBodyText &&\r\n editorBodyText.FETCH_NORMAL_RESPONSE === '' && (\r\n <div className=\"error pl-[15px]\">\r\n <ErrorIcon />\r\n {CONSTANT.RESPONSE_BODY_REQUIRED}\r\n </div>\r\n )}\r\n {jsonEditorError.FETCH_NORMAL_RESPONSE &&\r\n !isSchema &&\r\n !IsJsonString(editorBodyText.FETCH_NORMAL_RESPONSE) &&\r\n editorBodyText.FETCH_NORMAL_RESPONSE !== '' && (\r\n <div className=\"error pl-[15px]\">\r\n <ErrorIcon />\r\n {CONSTANT.VALID_JSON_ERROR}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n <div className=\"mt-1.5\">\r\n <ResponseSchema\r\n mode={mode}\r\n modes={modes}\r\n apiResponseSchemaTypes={apiResponseSchemaTypes}\r\n jsonEditorError={jsonEditorError}\r\n setJsonEditorError={setJsonEditorError}\r\n onChangeTextKey={onChangeTextKey}\r\n onModeChangeKey={onModeChangeKey}\r\n expanded={expanded}\r\n handleChange={handleChange}\r\n allowedFetchMethodEditor={allowedFetchMethodEditor}\r\n allowedSaveMethodEditor={allowedSaveMethodEditor}\r\n apiType={apiType}\r\n methodEditors={\r\n apiType === 'fetch' ? allowedFetchMethodEditor : allowedSaveMethodEditor\r\n }\r\n editorBodyText={editorBodyText}\r\n resetDefaultResponse={resetDefaultResponse}\r\n />\r\n {responseSchemaError > 0 && (\r\n <div className=\"error pl-[15px]\">\r\n <ErrorIcon /> {responseSchemaError}\r\n {CONSTANT.RESPONSE_SCHEMA_ERROR}\r\n </div>\r\n )}\r\n </div>\r\n </Item>\r\n </Grid>\r\n <Grid item size={6} className=\"\">\r\n <Item className=\"bg-[#FFFFFF] height-ddd overflow-y-auto\">\r\n <div>\r\n <ResponseDetails\r\n mode={mode}\r\n modes={modes}\r\n editorBodyText={editorBodyText}\r\n setJsonEditorError={setJsonEditorError}\r\n onModeChangeKey={onModeChangeKey}\r\n dynamicResponseSpecificKeyValue={\r\n specificResponseType === 'json'\r\n ? dynamicResponseSpecificJsonValue\r\n : dynamicResponseSpecificOtherValue\r\n }\r\n handleDynamicSpecificResponseChange={\r\n specificResponseType === 'json'\r\n ? handleDynamicResponseSpecificJsonChange\r\n : handleDynamicResponseSpecificOtherChange\r\n }\r\n handleDetailsChange={handleDetailsChange}\r\n expandedDetails={expandedDetails}\r\n dataOutputValue={dataOutputValue}\r\n responseTypeValue={responseTypeValue}\r\n onRadioBtnChange={onRadioBtnChange}\r\n dynamicKeys={dynamicKeys}\r\n setDynamicKeys={setDynamicKeys}\r\n handleClickOpen={handleClickOpen}\r\n delaySeconds={delaySeconds}\r\n isDelay={isDelay}\r\n dataOutputFieldValue={\r\n dataOutputValue === 'inCount' ? bulkDataCount : bulkDataSize\r\n }\r\n responseTypeFieldValue={\r\n responseTypeValue === 'count' ? dynamicImportCount : dynamicImportSize\r\n }\r\n handleDelayChange={handleDelayChange}\r\n handleDelayRadioChange={handleDelayRadioChange}\r\n handleDataOutputRadioChange={handleDataOutputRadioChange}\r\n handleDataOutputFieldChange={handleDataOutputFieldChange}\r\n responseContentType={responseContentType}\r\n handleContentTypeRadioChange={handleContentTypeRadioChange}\r\n handleResponseTypeFieldChange={handleResponseTypeFieldChange}\r\n handleResponseTypeRadioChange={handleResponseTypeRadioChange}\r\n specificResponseType={specificResponseType}\r\n handleSpecificResponseTypeChange={handleSpecificResponseTypeChange}\r\n apiType={apiType}\r\n setResponseDetailsError={setResponseDetailsError}\r\n responseDetailsError={responseDetailsError}\r\n dynamicResponseChecked={dynamicResponseChecked}\r\n setDynamicResponseChecked={setDynamicResponseChecked}\r\n dynamicResponseKey={dynamicResponseKey}\r\n />\r\n </div>\r\n <div className=\"mt-1.5\">\r\n <AddHeader\r\n handleDetailsChange={handleDetailsChange}\r\n expandedDetails={expandedDetails}\r\n handlerAddHeaders={handlerAddHeaders}\r\n headerFields={headerFields}\r\n handleRemove={handleRemove}\r\n handleHeadersChange={handleHeadersChange}\r\n />\r\n {headerFieldError > 0 && (\r\n <div className=\"error pl-[15px]\">\r\n <ErrorIcon /> {headerFieldError} {CONSTANT.EMPTY_HEADERS}\r\n </div>\r\n )}\r\n </div>\r\n </Item>\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </>\r\n )}\r\n {isPreviewModalOpen && (\r\n <Preview\r\n {...createPreviewMockStore}\r\n statusCode=\"200\"\r\n setIsPreviewModalOpen={setIsPreviewModalOpen}\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default CreateEditMockPage;\r\n","import React from 'react';\r\nimport CreateEditMockPage from './CreateEditMockPage';\r\nimport './index.css';\r\n\r\nfunction MockDetail() {\r\n return <CreateEditMockPage />;\r\n}\r\n\r\nexport default MockDetail;\r\n","import React, {useState} from 'react';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport {useParams, useLocation} from 'react-router-dom';\r\nimport dayjs from 'dayjs';\r\nimport Grid from '@mui/material/Grid';\r\nimport Button from '@mui/material/Button';\r\nimport Backdrop from '@mui/material/Backdrop';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport SearchIcon from '@mui/icons-material/Search';\r\nimport TableLoader from '../shared/units/TableLoader';\r\nimport BasicTable from '../shared/units/BasicTable';\r\nimport usePrevious from '../shared/hooks/usePrevious';\r\nimport CreateProject from '../../containers/sideBar/CreateProject';\r\nimport BlockingLoader from '../shared/units/BlockingLoader';\r\n\r\nimport {\r\n PROJECT_LIST_HEADS,\r\n COLOR_CODES,\r\n PROJECT_LIST_DOMAIN,\r\n CREATE_PROJECT,\r\n} from '../../constants';\r\nimport ProjectOverlayActions from '../dashboard/common/ProjectOverlayActions';\r\nimport DeleteContainer from '../dashboard/actions/DeleteProject';\r\nimport EditContainer from '../dashboard/actions/EditProject';\r\nimport AuthenticateContainer from '../dashboard/actions/AuthenticateProject';\r\nimport {projectListAction} from '../../ducks/projectListDuck';\r\nimport useRolePermission from '../../hooks/useRolePermission';\r\n\r\nexport default function ProjectList(props) {\r\n const [reRender, setReRender] = React.useState(false);\r\n const {companyId, departmentId} = useParams();\r\n const [appProjectList, setProjectList] = useState([]);\r\n const [selectedProjectId, setSelectedProjectId] = useState('');\r\n const [selectedUserId, setSelectedUserId] = useState('');\r\n const [selectedprojectName, setSelectedProjectName] = useState('');\r\n // Modal handler\r\n const [isDeleteModelOpen, setIsDeleteModelOpen] = useState(false);\r\n const [isEditModelOpen, setIsEditModelOpen] = useState(false);\r\n const [isAuthenticateModelOpen, setIsAuthenticateModelOpen] = useState(false);\r\n const [isCreateProjectModalOpen, setIsCreateProjectModalOpen] = useState(false);\r\n const [searchText, setSearchText] = React.useState('');\r\n const {projectList} = useSelector((state) => state);\r\n const tokenData = useSelector((state) => state?.fetchToken?.response);\r\n const dispatch = useDispatch();\r\n const onFetchAuthenticationData = (id) => {\r\n dispatch({type: 'FETCH_TOKEN', isMockToken: false, data: id});\r\n };\r\n const [name, setName] = useState('');\r\n const [editProjectDepartment, setEditProjectDepartment] = useState('');\r\n const [authStatus, setAuthStatus] = useState(false);\r\n const [token, setToken] = useState(tokenData?.token);\r\n const location = useLocation();\r\n const isprojectListPending = useSelector((state) => state?.projectList?.isPending);\r\n const [projectTablePage, setTablePage] = useState(1);\r\n const prevLocation = usePrevious(location?.pathname);\r\n const [isLoading, setIsLoading] = useState(false);\r\n // Role based UI elements\r\n const isCreateProjectEnabled = useRolePermission('project', 'create');\r\n const isUpdateProjectEnabled = useRolePermission('project', 'update');\r\n\r\n React.useEffect(() => {\r\n let page;\r\n if (prevLocation !== location?.pathname || reRender) {\r\n page = 1;\r\n setTablePage(1);\r\n } else {\r\n page = projectTablePage;\r\n }\r\n if (companyId && departmentId) {\r\n dispatch(\r\n projectListAction({\r\n page,\r\n limit: 10,\r\n departmentId,\r\n companyId,\r\n search: searchText,\r\n })\r\n );\r\n } else {\r\n dispatch(projectListAction({page, limit: 10, search: searchText}));\r\n }\r\n }, [reRender, location]);\r\n\r\n React.useEffect(() => {\r\n setToken(tokenData?.token);\r\n }, [tokenData]);\r\n\r\n React.useEffect(() => {\r\n if (projectList?.response?.projectList?.length > 0) {\r\n const list = projectList.response?.projectList.map((project) => ({\r\n projectName: {\r\n value: project.projectName,\r\n id: project._id,\r\n userId: project.userId,\r\n },\r\n departmentName: {\r\n value: project.departmentName,\r\n id: project.departmentId,\r\n },\r\n companyName: {\r\n value: project.companyName,\r\n },\r\n apiCount: {\r\n value: project.count,\r\n },\r\n authType: {\r\n value: `${project.authenticationType ? 'On' : 'Off'}`,\r\n checked: project.authenticationType,\r\n },\r\n updatedOn: {\r\n value: dayjs(new Date(project.updatedAt)).format('DD/MM/YYYY HH:mm'),\r\n },\r\n }));\r\n setProjectList(list);\r\n } else {\r\n setProjectList([]);\r\n }\r\n }, [projectList]);\r\n\r\n const handleReRender = () => {\r\n setReRender(!reRender);\r\n };\r\n\r\n const handleSortCall = (order, sortBy) => {\r\n let apiParam = {page: projectTablePage, limit: 10, order, sortBy};\r\n if (departmentId && companyId) {\r\n apiParam = {...apiParam, departmentId, companyId, search: searchText};\r\n }\r\n dispatch(projectListAction(apiParam));\r\n };\r\n\r\n const updateTableCurrentPage = (page) => {\r\n if (departmentId && companyId) {\r\n dispatch(\r\n projectListAction({\r\n page,\r\n limit: 10,\r\n departmentId,\r\n companyId,\r\n search: searchText,\r\n })\r\n );\r\n } else {\r\n dispatch(projectListAction({page, limit: 10, search: searchText}));\r\n }\r\n setTablePage(page);\r\n };\r\n\r\n const openProjectCreateDialog = () => {\r\n setIsCreateProjectModalOpen(true);\r\n };\r\n\r\n const handleSetIsLoading = (loading) => {\r\n setIsLoading(loading);\r\n };\r\n if (isLoading) return <BlockingLoader open />;\r\n return (\r\n <Grid item size={12}>\r\n <Backdrop open={false} className=\"loader-backdrop\">\r\n <CircularProgress />\r\n </Backdrop>\r\n\r\n <Grid item className=\"flex flex-row p-[15px] pb-0\">\r\n <Grid className={`NunitoSansBold text-sm text-[${COLOR_CODES.headingTitle3}]`}>\r\n {PROJECT_LIST_DOMAIN}\r\n </Grid>\r\n <Grid className=\"ml-auto\">\r\n <Grid className=\"flex flex-row mt-5\">\r\n <div className=\"w-52 h-8 sm:w-80 sm:h-8 rounded bg-slate-100 font-sans text-sm text-search-text mr-2 mt-0.5 flex\">\r\n <span className=\"rounded px-2 py-1 w-4 h-4 pr-7 bg-inherit cursor-pointer\">\r\n <SearchIcon\r\n onClick={() => {\r\n setTablePage(1);\r\n dispatch(\r\n projectListAction({\r\n page: projectTablePage - 1,\r\n limit: 10,\r\n departmentId,\r\n companyId,\r\n search: searchText,\r\n })\r\n );\r\n }}\r\n />\r\n </span>\r\n <input\r\n className=\"w-full bg-inherit border-none outline-none rounded\"\r\n type=\"text\"\r\n placeholder=\"Search by Project name\"\r\n value={searchText}\r\n onChange={(e) => {\r\n setSearchText(e.target.value);\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') {\r\n setTablePage(1);\r\n dispatch(\r\n projectListAction({\r\n page: projectTablePage - 1,\r\n limit: 10,\r\n departmentId,\r\n companyId,\r\n search: searchText,\r\n })\r\n );\r\n }\r\n }}\r\n />\r\n </div>\r\n {isCreateProjectEnabled && (\r\n <Button\r\n data-testId=\"creat-project-button\"\r\n className=\"h-9 rounded text-[13px] p-0 font-NunitoSansSemibold w-[133px]\"\r\n onClick={openProjectCreateDialog}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n >\r\n {CREATE_PROJECT}\r\n </Button>\r\n )}\r\n </Grid>\r\n\r\n <CreateProject\r\n open={isCreateProjectModalOpen}\r\n close={setIsCreateProjectModalOpen}\r\n reRender={handleReRender}\r\n isFromProjectList\r\n />\r\n <EditContainer\r\n closeModel={setIsEditModelOpen}\r\n isEditModelOpen={isEditModelOpen}\r\n projectName={name}\r\n projectDepartment={editProjectDepartment}\r\n setProjectName={setName}\r\n setProjectDepartment={setEditProjectDepartment}\r\n id={selectedProjectId}\r\n reRender={handleReRender}\r\n />\r\n <DeleteContainer\r\n closeModel={setIsDeleteModelOpen}\r\n projectName={selectedprojectName}\r\n id={selectedProjectId}\r\n isDeleteModelOpen={isDeleteModelOpen}\r\n reRender={handleReRender}\r\n handleSetIsLoading={handleSetIsLoading}\r\n />\r\n <AuthenticateContainer\r\n showAuthModel={isAuthenticateModelOpen}\r\n closeModel={setIsAuthenticateModelOpen}\r\n id={selectedProjectId}\r\n authentication={authStatus}\r\n setAuthentication={setAuthStatus}\r\n token={token}\r\n setToken={setToken}\r\n userId={selectedUserId}\r\n reRender={handleReRender}\r\n handleSetIsLoading={handleSetIsLoading}\r\n />\r\n </Grid>\r\n </Grid>\r\n <Grid item size={12} className=\"pl-[15px] pr-[30px]\">\r\n <BasicTable\r\n columns={PROJECT_LIST_HEADS}\r\n tableData={appProjectList}\r\n handleSortCall={handleSortCall}\r\n hoverEffect={isUpdateProjectEnabled || false}\r\n // eslint-disable-next-line react/no-unstable-nested-components\r\n onHoverContent={(data) => (\r\n <ProjectOverlayActions\r\n data={data}\r\n setSelectedProjectId={setSelectedProjectId}\r\n openDeleteModal={setIsDeleteModelOpen}\r\n openEditModal={(open) => {\r\n setIsEditModelOpen(open);\r\n }}\r\n openAuthenticateModel={setIsAuthenticateModelOpen}\r\n setProjectName={setSelectedProjectName}\r\n onFetchAuthenticationData={onFetchAuthenticationData}\r\n setAuthStatus={setAuthStatus}\r\n projectName={setName}\r\n setDepartmentName={setEditProjectDepartment}\r\n setSelectedUserId={setSelectedUserId}\r\n />\r\n )}\r\n showPagination={projectList?.response?.totalProject > 10}\r\n sortByColumn=\"status\"\r\n defaultPage={projectTablePage}\r\n getPageNumber={updateTableCurrentPage}\r\n defaultSortOrder=\"asc\"\r\n totalRecords={projectList?.response?.totalProject}\r\n cellClassName=\"global-table-body-cell NunitoSansSemibold\"\r\n headerCellClass=\"global-table-header-cell NunitoSansRegular\"\r\n hoverClassName=\"p-2 bg-white w-75 table-row group-hover:opacity-100 group-hover:transition-all\"\r\n tableWrapperClassName=\"shadow-none\"\r\n showLoader={isprojectListPending}\r\n loaderComponent={<TableLoader rowsNum={10} colsNum={6} />}\r\n />\r\n </Grid>\r\n </Grid>\r\n );\r\n}\r\n","import {useEffect, useRef} from 'react';\r\n\r\nconst usePrevious = (value) => {\r\n // create a new reference\r\n const ref = useRef();\r\n\r\n // store current value in ref\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]); // only re-run if value changes\r\n\r\n // return previous value (happens before update in useEffect above)\r\n return ref.current;\r\n};\r\nexport default usePrevious;\r\n","import React from 'react';\r\nimport Grid from '@mui/material/Grid';\r\nimport {Helmet} from 'react-helmet';\r\nimport ProjectList from './ProjectList';\r\nimport {PROJECT_PAGE_TITLE} from '../../constants/index';\r\nimport Breadcrumb from '../shared/units/Breadcrumb';\r\n\r\nfunction ProjectDetails() {\r\n return (\r\n <>\r\n <Helmet>\r\n <title>{PROJECT_PAGE_TITLE}</title>\r\n <meta name=\"description\" content=\"CompanyDetails - iRest\" />\r\n </Helmet>\r\n <div id=\"companydetail\">\r\n <Grid className=\"shadow-lg bg-[#FFF] px-[15px] py-[10px]\">\r\n <Breadcrumb />\r\n </Grid>\r\n <Grid container className=\"m-0\">\r\n <ProjectList />\r\n </Grid>\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nexport default ProjectDetails;\r\n","import React from 'react';\r\nimport {BrowserRouter, Route, Routes} from 'react-router-dom';\r\nimport PrivateRoute from './PrivateRoute';\r\nimport history from '../modules/shared/utils/history';\r\nimport Login from '../modules/authentication/Login';\r\nimport Components from '../modules/components';\r\nimport Register from '../modules/authentication/Register';\r\nimport Dashboard from '../modules/dashboard';\r\nimport CompanyDetails from '../modules/companyDetail';\r\nimport UserDetails from '../modules/users';\r\nimport Error from '../modules/shared/units/Error';\r\nimport DepartmentDetails from '../modules/departmentDetails';\r\nimport MockDetail from '../modules/mockDetail';\r\nimport ProjectDetails from '../modules/projectDetails';\r\nimport {IREST_ROUTES} from '../constants';\r\nimport ApiListingDashboard from '../modules/dashboard/apiListing/ApiListingDashboard';\r\n\r\nfunction Routers() {\r\n return (\r\n <BrowserRouter history={history}>\r\n <Routes>\r\n <Route exact path={IREST_ROUTES.HOME} element={<Login />} />\r\n <Route path={IREST_ROUTES.COMPONENTS} element={<Components />} />\r\n <Route path={IREST_ROUTES.REGISTER} element={<Register />} />\r\n <Route element={<PrivateRoute />}>\r\n <Route path={IREST_ROUTES.CREATE_MOCK} element={<MockDetail />} />\r\n <Route path={IREST_ROUTES.EDIT_MOCK} element={<MockDetail />} />\r\n <Route path={IREST_ROUTES.DASHBOARD} element={<Dashboard />}>\r\n <Route path=\"/dashboard/api-list\" element={<ApiListingDashboard />} />\r\n <Route path=\"/dashboard/api-list/:id\" element={<ApiListingDashboard />} />\r\n </Route>\r\n <Route exact path={IREST_ROUTES.COMPANY_MANAGEMENT} element={<CompanyDetails />} />\r\n <Route exact path={IREST_ROUTES.DEPARTMENT_MANAGEMENT} element={<DepartmentDetails />} />\r\n <Route path={IREST_ROUTES.USER_MANAGEMENT} element={<UserDetails />} />\r\n <Route\r\n path={IREST_ROUTES.PROJECT_MANAGEMENT_BY_DEPARTMENT_ID}\r\n element={<ProjectDetails />}\r\n />\r\n <Route exact path={IREST_ROUTES.PROJECT_MANAGEMENT} element={<ProjectDetails />} />\r\n </Route>\r\n <Route element={<Error />} />\r\n </Routes>\r\n </BrowserRouter>\r\n );\r\n}\r\n\r\nexport default Routers;\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const FILE_UPLOAD = 'FILE_UPLOAD';\r\nexport const FILE_UPLOAD_SUCCESS = 'FILE_UPLOAD_SUCCESS';\r\nexport const FILE_UPLOAD_ERROR = 'FILE_UPLOAD_ERROR';\r\nexport const FILE_UPLOAD_CLEAR = 'FILE_UPLOAD_CLEAR';\r\n\r\n// Initial State\r\nconst fileUploadInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n};\r\n\r\n// Action Creators\r\nexport const fileUploadAction = (data) => ({\r\n type: FILE_UPLOAD,\r\n data,\r\n});\r\nexport const flushUploadedData = () => ({\r\n type: FILE_UPLOAD_CLEAR,\r\n});\r\n\r\n// Service\r\nexport const fileUploadService = (request) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/file/json-upload`;\r\n\r\n return axios({\r\n method: 'post',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.data,\r\n })\r\n .then((response) => response.data)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\n// Saga\r\nexport function* fileUploadSaga(payload) {\r\n try {\r\n const response = yield call(fileUploadService, payload);\r\n response.type = FILE_UPLOAD_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(FILE_UPLOAD_SUCCESS, response));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(FILE_UPLOAD_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function fileUpload(state = fileUploadInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case FILE_UPLOAD_SUCCESS:\r\n return {...state, response};\r\n case FILE_UPLOAD_ERROR:\r\n return {...state, response};\r\n case FILE_UPLOAD_CLEAR:\r\n return fileUploadInitialState;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const MOCK_STATUS = 'MOCK_STATUS';\r\nexport const MOCK_STATUS_SUCCESS = 'MOCK_STATUS_SUCCESS';\r\nexport const MOCK_STATUS_ERROR = 'MOCK_STATUS_ERROR';\r\nexport const MOCK_STATUS_CLEAR = 'MOCK_STATUS_CLEAR';\r\n\r\n// Initial State\r\nconst mockStatusInitialState = {\r\n response: {\r\n data: [],\r\n },\r\n};\r\n\r\n// Action Creators\r\nexport const mockStatusAction = (data) => ({\r\n type: MOCK_STATUS,\r\n data,\r\n});\r\nexport const flushMockStatus = () => ({\r\n type: MOCK_STATUS_CLEAR,\r\n});\r\n\r\n// Service\r\nexport const mockStatusService = (data) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item`;\r\n return axios({\r\n method: 'patch',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: {...data.data},\r\n })\r\n .then((response) => response.data)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\n// Saga\r\nexport function* mockStatusSaga(payload) {\r\n const response = yield call(mockStatusService, payload);\r\n try {\r\n response.type = MOCK_STATUS_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(MOCK_STATUS_SUCCESS, response));\r\n if (response.mock.length) {\r\n notify(response.message, {type: 'success'});\r\n } else {\r\n notify(response.message, {type: 'error'});\r\n }\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(MOCK_STATUS_ERROR));\r\n notify(response.message, {type: 'error'});\r\n }\r\n}\r\n\r\n// Service\r\nexport const mockStatusBulkService = (data) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item`;\r\n return axios({\r\n method: 'patch',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: {\r\n id: data.data.id,\r\n mockStatus: data.data.mockStatus,\r\n },\r\n })\r\n .then((response) => response.data)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\n// Saga\r\nexport function* mockStatusBulkSaga(payload) {\r\n try {\r\n const response = yield call(mockStatusBulkService, payload);\r\n response.type = MOCK_STATUS_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(MOCK_STATUS_SUCCESS, response));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(MOCK_STATUS_ERROR));\r\n notify('Record not found!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function mockStatus(state = mockStatusInitialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case MOCK_STATUS_SUCCESS:\r\n return {...state, response};\r\n case MOCK_STATUS_CLEAR:\r\n return mockStatusInitialState;\r\n case MOCK_STATUS_ERROR:\r\n return {...state, response};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\nimport {mockListAction} from './mockListDuck';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {getToastType} from '../modules/shared/utils/helper';\r\n\r\n// ActionTypes\r\nexport const DELETE_MOCK = 'DELETE_MOCK';\r\nexport const DELETE_MOCK_PENDING = 'DELETE_MOCK_PENDING';\r\nexport const DELETE_MOCK_SUCCESS = 'DELETE_MOCK_SUCCESS';\r\nexport const DELETE_MOCK_ERROR = 'DELETE_MOCK_ERROR';\r\nexport const DELETE_MOCK_BULK = 'DELETE_MOCK_BULK';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const deleteMockAction = (data) => ({\r\n type: DELETE_MOCK,\r\n data,\r\n});\r\nexport const isDeleteMockPending = (isPending) => ({\r\n type: DELETE_MOCK_PENDING,\r\n isPending,\r\n});\r\n\r\n// Services\r\nexport const deleteMockService = (data) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item/`;\r\n return axios({\r\n method: 'delete',\r\n url: API_ENDPOINT,\r\n data: {\r\n id: data.data.id,\r\n },\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\nexport const deleteMockBulkService = (data) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/mock/item`;\r\n return axios({\r\n method: 'delete',\r\n url: API_ENDPOINT,\r\n data: {\r\n id: data?.data?.id,\r\n },\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* deleteMockSaga(payload) {\r\n try {\r\n const {data: dataPayload} = payload;\r\n yield put(isDeleteMockPending(true));\r\n const response = yield call(deleteMockService, payload);\r\n response.type = DELETE_MOCK_SUCCESS;\r\n if (response.status === 202) {\r\n yield put(mockListAction(dataPayload?.data));\r\n }\r\n yield put(responseSuccessOrFailureAction(DELETE_MOCK_SUCCESS, response));\r\n yield put(isDeleteMockPending(false));\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n } catch (error) {\r\n yield put(\r\n responseSuccessOrFailureAction(DELETE_MOCK_ERROR, {message: 'Something Went Wrong.'})\r\n );\r\n }\r\n}\r\n\r\nexport function* deleteMockBulkSaga(payload) {\r\n try {\r\n yield put(isDeleteMockPending(true));\r\n const response = yield call(deleteMockBulkService, payload);\r\n response.type = DELETE_MOCK_SUCCESS;\r\n if (response.status === 202) {\r\n yield put(mockListAction(payload?.data?.data));\r\n }\r\n yield put(responseSuccessOrFailureAction(DELETE_MOCK_SUCCESS, response));\r\n yield put(isDeleteMockPending(false));\r\n } catch (error) {\r\n yield put(\r\n responseSuccessOrFailureAction(DELETE_MOCK_ERROR, {message: 'Something Went Wrong.'})\r\n );\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function deleteMock(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case DELETE_MOCK_SUCCESS:\r\n return {...state, response, isPending: false};\r\n case DELETE_MOCK_ERROR:\r\n return {...state, response, isPending: false};\r\n case DELETE_MOCK_PENDING:\r\n return {...state, isPending: action.isPending};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const UPDATE_AUTH_TYPE = 'UPDATE_AUTH_TYPE';\r\nexport const UPDATE_AUTH_TYPE_PENDING = 'UPDATE_AUTH_TYPE_PENDING';\r\nexport const UPDATE_AUTH_TYPE_SUCCESS = 'UPDATE_AUTH_TYPE_SUCCESS';\r\nexport const UPDATE_AUTH_TYPE_ERROR = 'UPDATE_AUTH_TYPE_ERROR';\r\n\r\n// Action Creators\r\nexport const updateAuthTypeAction = (data, isMockAuth) => ({\r\n type: UPDATE_AUTH_TYPE,\r\n data,\r\n isMockAuth,\r\n});\r\nexport const isUpdateAuthPending = (isPending) => ({\r\n type: UPDATE_AUTH_TYPE_PENDING,\r\n isPending,\r\n});\r\n\r\n// Service\r\nexport const updateAuthTypeService = (req) => {\r\n const {API_BASE_URL} = process.env;\r\n const {data} = req;\r\n const API_ENDPOINT = req.isMockAuth\r\n ? `${API_BASE_URL}/authentication/mockId/${data.id}`\r\n : `${API_BASE_URL}/authentication/projectId/${data.id}`;\r\n delete data.id;\r\n return axios({\r\n method: 'put',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data,\r\n })\r\n .then((response) => response.data)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\n// Saga\r\nexport function* updateAuthTypeSaga(payload) {\r\n try {\r\n yield put(isUpdateAuthPending(true));\r\n const response = yield call(updateAuthTypeService, payload);\r\n response.type = UPDATE_AUTH_TYPE;\r\n yield put(responseSuccessOrFailureAction(UPDATE_AUTH_TYPE_SUCCESS, response));\r\n yield put(isUpdateAuthPending(false));\r\n notify('Authentication type updated successfully.', {type: 'success'});\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(UPDATE_AUTH_TYPE_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function updateAuth(state = [], action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case UPDATE_AUTH_TYPE_SUCCESS:\r\n return {...state, response};\r\n case UPDATE_AUTH_TYPE_ERROR:\r\n return {...state, response};\r\n case UPDATE_AUTH_TYPE_PENDING:\r\n return {...state, isPending: action.isPending};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport client from '../modules/shared/service/axiosInstance';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const FETCH_TOKEN = 'FETCH_TOKEN';\r\nexport const FETCH_TOKEN_SUCCESS = 'FETCH_TOKEN_SUCCESS';\r\nexport const FETCH_TOKEN_ERROR = 'FETCH_TOKEN_ERROR';\r\n\r\n// Action Creators\r\nexport const fetchTokenAction = (data, isMockToken) => ({\r\n type: FETCH_TOKEN,\r\n data,\r\n isMockToken,\r\n});\r\n\r\n// Services\r\nexport const fetchTokenService = (payload) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = payload.isMockToken\r\n ? `${API_BASE_URL}/token/mockId/${payload?.data}`\r\n : `${API_BASE_URL}/token/projectId/${payload?.data}`;\r\n return client({\r\n method: 'GET',\r\n url: API_ENDPOINT,\r\n })\r\n .then((response) => response.data)\r\n .catch((err) => err.response.data);\r\n};\r\n\r\n// Saga\r\nexport function* fetchTokenSaga(payload) {\r\n try {\r\n const response = yield call(fetchTokenService, payload);\r\n response.type = FETCH_TOKEN;\r\n yield put(responseSuccessOrFailureAction(FETCH_TOKEN_SUCCESS, response));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(FETCH_TOKEN_ERROR));\r\n notify('Record not found!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function fetchToken(state = [], action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case FETCH_TOKEN_SUCCESS:\r\n return {...state, response};\r\n case FETCH_TOKEN_ERROR:\r\n return {...state, response};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {getToastType} from '../modules/shared/utils/helper';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\nimport {companyTableCurrentPage} from './companyListDuck';\r\n// Actions\r\nexport const CREATE_COMPANY = 'CREATE_COMPANY';\r\nexport const CREATE_COMPANY_PENDING = 'CREATE_COMPANY_PENDING';\r\nexport const CREATE_COMPANY_SUCCESS = 'CREATE_COMPANY_SUCCESS';\r\nexport const CREATE_COMPANY_ERROR = 'CREATE_COMPANY_ERROR';\r\nexport const CREATE_COMPANY_RESET = 'CREATE_COMPANY_RESET';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const createCompanyAction = (data) => ({\r\n type: CREATE_COMPANY,\r\n data,\r\n});\r\nexport const isCreateCompanyPending = (isPending) => ({\r\n type: CREATE_COMPANY_PENDING,\r\n isPending,\r\n});\r\nexport const resetCompanyDetails = () => ({\r\n type: CREATE_COMPANY_RESET,\r\n});\r\n\r\n// Service\r\nexport const createCompanyService = async (request) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/company/create`;\r\n // const API_ENDPOINT = 'http://localhost:9000/api/rest/createCompany/c2';\r\n const URLParam = API_ENDPOINT;\r\n\r\n try {\r\n const response = await axios({\r\n method: 'post',\r\n url: URLParam,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.data,\r\n });\r\n return response;\r\n } catch (err) {\r\n return err.response;\r\n }\r\n};\r\n\r\n// Saga\r\nexport function* createCompanySaga(payload) {\r\n try {\r\n yield put(isCreateCompanyPending(true));\r\n const response = yield call(createCompanyService, payload);\r\n if (response.status === 201) {\r\n yield put(companyTableCurrentPage(0));\r\n response.type = CREATE_COMPANY_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(CREATE_COMPANY_SUCCESS, response));\r\n yield put(isCreateCompanyPending(false));\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n } else {\r\n yield put(responseSuccessOrFailureAction(CREATE_COMPANY_ERROR, response));\r\n }\r\n yield put(resetCompanyDetails());\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(CREATE_COMPANY_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function createCompany(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case CREATE_COMPANY_SUCCESS:\r\n return {...state, ...response, isPending: false};\r\n case CREATE_COMPANY_ERROR:\r\n return {...state, ...response, isPending: false};\r\n case CREATE_COMPANY_PENDING:\r\n return {...state, isPending: action.isPending};\r\n case CREATE_COMPANY_RESET:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\n\r\n// Actions\r\nexport const GET_DEPARTMENT_BY_COMPANY_ID = 'GET_DEPARTMENT_BY_COMPANY_ID';\r\nexport const GET_DEPARTMENT_BY_COMPANY_ID_PENDING = 'GET_DEPARTMENT_BY_COMPANY_ID_PENDING';\r\nexport const GET_DEPARTMENT_BY_COMPANY_ID_SUCCESS = 'GET_DEPARTMENT_BY_COMPANY_ID_SUCCESS';\r\nexport const GET_DEPARTMENT_BY_COMPANY_ID_ERROR = 'GET_DEPARTMENT_BY_COMPANY_ID_ERROR';\r\nexport const GET_DEPARTMENT_BY_COMPANY_ID_RESET = 'GET_DEPARTMENT_BY_COMPANY_ID_RESET';\r\nexport const HIDE_MODEL = 'HIDE_MODEL';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n modal: false,\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const GetdepartmentByCompanyId = (data) => ({\r\n type: GET_DEPARTMENT_BY_COMPANY_ID,\r\n data,\r\n});\r\nexport const isGetdepartmentByCompanyIdPending = (isPending) => ({\r\n type: GET_DEPARTMENT_BY_COMPANY_ID_PENDING,\r\n isPending,\r\n});\r\nexport const resetdepartmentByCompanyIdDetails = (modal) => ({\r\n type: GET_DEPARTMENT_BY_COMPANY_ID_RESET,\r\n data: {modal},\r\n});\r\nexport const hideModelHandler = () => ({\r\n type: HIDE_MODEL,\r\n});\r\n\r\n// Service\r\nexport const getdepartmentByCompanyIdService = (data) => {\r\n // eslint-disable-next-line no-unsafe-optional-chaining\r\n const {id} = data?.data;\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/department/list?companyId=${id}`;\r\n\r\n return axios({\r\n method: 'get',\r\n url: API_ENDPOINT,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* getDepartmentByCompanySaga(payload) {\r\n try {\r\n yield put(isGetdepartmentByCompanyIdPending(true));\r\n const response = yield call(getdepartmentByCompanyIdService, payload);\r\n response.type = GET_DEPARTMENT_BY_COMPANY_ID_SUCCESS;\r\n if (response.status === 200) {\r\n yield put(responseSuccessOrFailureAction(GET_DEPARTMENT_BY_COMPANY_ID_SUCCESS, response));\r\n yield put(resetdepartmentByCompanyIdDetails(true));\r\n } else {\r\n yield put(responseSuccessOrFailureAction(GET_DEPARTMENT_BY_COMPANY_ID_ERROR, response));\r\n yield put(resetdepartmentByCompanyIdDetails(false));\r\n }\r\n // yield put(isGetdepartmentByCompanyIdPending(false));\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(GET_DEPARTMENT_BY_COMPANY_ID_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function departmentListByCompany(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case GET_DEPARTMENT_BY_COMPANY_ID_SUCCESS:\r\n return {...state, response, isPending: false, modal: true};\r\n case GET_DEPARTMENT_BY_COMPANY_ID_ERROR:\r\n return {...state, response, isPending: false, modal: false};\r\n case GET_DEPARTMENT_BY_COMPANY_ID_PENDING:\r\n return {...state, isPending: action.isPending};\r\n case HIDE_MODEL:\r\n return {...state, modal: false};\r\n case GET_DEPARTMENT_BY_COMPANY_ID_RESET:\r\n return {\r\n ...initialState,\r\n ...response,\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {put, call} from 'redux-saga/effects';\r\nimport axios from '../modules/shared/service/axiosInstance';\r\nimport notify from '../modules/shared/utils/toast';\r\nimport {getToastType} from '../modules/shared/utils/helper';\r\nimport responseSuccessOrFailureAction from '../store/actions';\r\nimport {departmentTableCurrentPage} from './departmentListDuck';\r\n// Actions\r\nexport const CREATE_DEPARTMENT = 'CREATE_DEPARTMENT';\r\nexport const CREATE_DEPARTMENT_PENDING = 'CREATE_DEPARTMENT_PENDING';\r\nexport const CREATE_DEPARTMENT_SUCCESS = 'CREATE_DEPARTMENT_SUCCESS';\r\nexport const CREATE_DEPARTMENT_ERROR = 'CREATE_DEPARTMENT_ERROR';\r\nexport const CREATE_DEPARTMENT_RESET = 'CREATE_DEPARTMENT_RESET';\r\n\r\n// Initial State\r\nconst initialState = {\r\n response: {\r\n data: [],\r\n },\r\n isPending: false,\r\n};\r\n\r\n// Action Creators\r\nexport const createDepartmentAction = (data) => ({\r\n type: CREATE_DEPARTMENT,\r\n data,\r\n});\r\nexport const isCreateDepartmentPending = (isPending) => ({\r\n type: CREATE_DEPARTMENT_PENDING,\r\n isPending,\r\n});\r\nexport const resetDepartmentDetails = () => ({\r\n type: CREATE_DEPARTMENT_RESET,\r\n});\r\n\r\n// Service\r\nexport const createDepartmentService = (request) => {\r\n const {API_BASE_URL} = process.env;\r\n const API_ENDPOINT = `${API_BASE_URL}/department/create/${request.data.companyId}`;\r\n const URLParam = API_ENDPOINT;\r\n\r\n return axios({\r\n method: 'post',\r\n url: URLParam,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n data: request.data,\r\n })\r\n .then((response) => response)\r\n .catch((err) => err.response);\r\n};\r\n\r\n// Saga\r\nexport function* createDepartmentSaga(payload) {\r\n try {\r\n yield put(isCreateDepartmentPending(true));\r\n const response = yield call(createDepartmentService, payload);\r\n if (response.status === 201) {\r\n yield put(departmentTableCurrentPage(0));\r\n response.type = CREATE_DEPARTMENT_SUCCESS;\r\n yield put(responseSuccessOrFailureAction(CREATE_DEPARTMENT_SUCCESS, response));\r\n yield put(isCreateDepartmentPending(false));\r\n notify(response?.data?.message, {type: getToastType(response?.status)});\r\n } else {\r\n yield put(responseSuccessOrFailureAction(CREATE_DEPARTMENT_ERROR, response));\r\n }\r\n yield put(resetDepartmentDetails());\r\n } catch (error) {\r\n yield put(responseSuccessOrFailureAction(CREATE_DEPARTMENT_ERROR));\r\n notify('Something went wrong!', {type: 'error'});\r\n }\r\n}\r\n\r\n// Reducer\r\n// eslint-disable-next-line default-param-last\r\nexport default function createDepartment(state = initialState, action) {\r\n const response = action.data;\r\n switch (action.type) {\r\n case CREATE_DEPARTMENT_SUCCESS:\r\n return {...state, response, isPending: false};\r\n case CREATE_DEPARTMENT_ERROR:\r\n return {...state, response, isPending: false};\r\n case CREATE_DEPARTMENT_PENDING:\r\n return {...state, isPending: action.isPending};\r\n case CREATE_DEPARTMENT_RESET:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {combineReducers} from 'redux';\r\nimport createMock from '../ducks/createMockDuck';\r\nimport getMock from '../ducks/getMockDuck';\r\nimport mockList from '../ducks/mockListDuck';\r\nimport projectList from '../ducks/projectListDuck';\r\nimport createProject from '../ducks/createProjectDuck';\r\nimport fileUpload from '../ducks/fileUploadDuck';\r\nimport updateSession from '../ducks/updateSessionDuck';\r\nimport mockStatus from '../ducks/mockStatusDuck';\r\nimport deleteMock from '../ducks/deleteMockDuck';\r\nimport createPreviewMock from '../ducks/previewMockDuck';\r\nimport updateAuthType from '../ducks/updateAuthDuck';\r\nimport fetchToken from '../ducks/fetchTokenDuck';\r\nimport updateToken from '../ducks/updateTokenDuck';\r\nimport createCompany from '../ducks/createCompanyDuck';\r\nimport deleteCompany from '../ducks/deleteCompanyDuck';\r\nimport companyList from '../ducks/companyListDuck';\r\nimport getCompany from '../ducks/getCompanyDuck';\r\nimport getProject from '../ducks/getProjectsForUser';\r\nimport departmentListByCompany from '../ducks/getDepartmentsByCompanyDuck';\r\nimport createDepartment from '../ducks/createDepartmentDuck';\r\nimport departmentList from '../ducks/departmentListDuck';\r\nimport deleteDepartment from '../ducks/deleteDepartmentDuck';\r\nimport getDepartment from '../ducks/getDepartmentDuck';\r\nimport departmentStatus from '../ducks/departmentStatusDuck';\r\nimport userinfo from '../ducks/userinfoDuck';\r\nimport selectedProjectId from '../ducks/selectedProjectDuck';\r\n\r\nconst rootReducer = combineReducers({\r\n createMock,\r\n getMock,\r\n mockList,\r\n projectList,\r\n createProject,\r\n fileUpload,\r\n updateSession,\r\n mockStatus,\r\n deleteMock,\r\n createPreviewMock,\r\n fetchToken,\r\n updateToken,\r\n updateAuthType,\r\n createCompany,\r\n deleteCompany,\r\n companyList,\r\n getCompany,\r\n getProject,\r\n departmentListByCompany,\r\n createDepartment,\r\n departmentList,\r\n getDepartment,\r\n deleteDepartment,\r\n departmentStatus,\r\n userinfo,\r\n selectedProjectId,\r\n});\r\n\r\nexport default rootReducer;\r\n","import {takeLatest} from 'redux-saga/effects';\r\nimport {CREATE_MOCK, createMockSaga} from '../ducks/createMockDuck';\r\nimport {GET_MOCK_BY_ID, getMockSaga} from '../ducks/getMockDuck';\r\nimport {CREATE_PROJECT, createProjectSaga} from '../ducks/createProjectDuck';\r\nimport {\r\n DELETE_MOCK,\r\n DELETE_MOCK_BULK,\r\n deleteMockSaga,\r\n deleteMockBulkSaga,\r\n} from '../ducks/deleteMockDuck';\r\nimport {fetchTokenSaga, FETCH_TOKEN} from '../ducks/fetchTokenDuck';\r\nimport {fileUploadSaga, FILE_UPLOAD} from '../ducks/fileUploadDuck';\r\nimport {mockListSaga, MOCK_LIST} from '../ducks/mockListDuck';\r\nimport {MOCK_STATUS, mockStatusSaga} from '../ducks/mockStatusDuck';\r\nimport {createPreviewMockSaga, PREVIEW_MOCK} from '../ducks/previewMockDuck';\r\nimport {\r\n projectListSaga,\r\n PROJECT_LIST,\r\n projectTableCurrentPageSaga,\r\n PROJECT_LIST_CURRENT_PAGE,\r\n} from '../ducks/projectListDuck';\r\nimport {updateSessionSaga, SESSION_UPDATE} from '../ducks/updateSessionDuck';\r\nimport {updateTokenSaga, UPDATE_TOKEN} from '../ducks/updateTokenDuck';\r\nimport {updateAuthTypeSaga, UPDATE_AUTH_TYPE} from '../ducks/updateAuthDuck';\r\nimport {createCompanySaga, CREATE_COMPANY} from '../ducks/createCompanyDuck';\r\nimport {\r\n companyListSaga,\r\n COMPANY_LIST,\r\n COMPANY_LIST_CURRENT_PAGE,\r\n companyTableCurrentPageSaga,\r\n} from '../ducks/companyListDuck';\r\nimport {deleteCompanySaga, DELETE_COMPANY} from '../ducks/deleteCompanyDuck';\r\nimport {getCompanySaga, GET_COMPANY_BY_ID} from '../ducks/getCompanyDuck';\r\nimport {\r\n getDepartmentByCompanySaga,\r\n GET_DEPARTMENT_BY_COMPANY_ID,\r\n} from '../ducks/getDepartmentsByCompanyDuck';\r\nimport {createDepartmentSaga, CREATE_DEPARTMENT} from '../ducks/createDepartmentDuck';\r\nimport {\r\n departmentListSaga,\r\n DEPARTMENT_LIST,\r\n departmentTableCurrentPageSaga,\r\n DEPARTMENT_LIST_CURRENT_PAGE,\r\n} from '../ducks/departmentListDuck';\r\nimport {DELETE_DEPARTMENT, deleteDepartmentSaga} from '../ducks/deleteDepartmentDuck';\r\nimport {GET_DEPARTMENT_BY_ID, getDepartmentSaga} from '../ducks/getDepartmentDuck';\r\nimport {DEPARTMENT_STATUS, departmentStatusSaga} from '../ducks/departmentStatusDuck';\r\n\r\nexport default function* watchUserAuthentication() {\r\n yield takeLatest(CREATE_MOCK, createMockSaga);\r\n yield takeLatest(MOCK_LIST, mockListSaga);\r\n yield takeLatest(PROJECT_LIST, projectListSaga);\r\n yield takeLatest(PROJECT_LIST_CURRENT_PAGE, projectTableCurrentPageSaga);\r\n yield takeLatest(CREATE_PROJECT, createProjectSaga);\r\n yield takeLatest(GET_MOCK_BY_ID, getMockSaga);\r\n yield takeLatest(FILE_UPLOAD, fileUploadSaga);\r\n yield takeLatest(SESSION_UPDATE, updateSessionSaga);\r\n yield takeLatest(MOCK_STATUS, mockStatusSaga);\r\n yield takeLatest(DELETE_MOCK, deleteMockSaga);\r\n yield takeLatest(DELETE_MOCK_BULK, deleteMockBulkSaga);\r\n yield takeLatest(PREVIEW_MOCK, createPreviewMockSaga);\r\n yield takeLatest(FETCH_TOKEN, fetchTokenSaga);\r\n yield takeLatest(UPDATE_TOKEN, updateTokenSaga);\r\n yield takeLatest(UPDATE_AUTH_TYPE, updateAuthTypeSaga);\r\n yield takeLatest(CREATE_COMPANY, createCompanySaga);\r\n yield takeLatest(COMPANY_LIST, companyListSaga);\r\n yield takeLatest(COMPANY_LIST_CURRENT_PAGE, companyTableCurrentPageSaga);\r\n yield takeLatest(DELETE_COMPANY, deleteCompanySaga);\r\n yield takeLatest(GET_COMPANY_BY_ID, getCompanySaga);\r\n yield takeLatest(CREATE_DEPARTMENT, createDepartmentSaga);\r\n yield takeLatest(DEPARTMENT_LIST, departmentListSaga);\r\n yield takeLatest(DEPARTMENT_LIST_CURRENT_PAGE, departmentTableCurrentPageSaga);\r\n yield takeLatest(DELETE_DEPARTMENT, deleteDepartmentSaga);\r\n yield takeLatest(GET_DEPARTMENT_BY_ID, getDepartmentSaga);\r\n yield takeLatest(DEPARTMENT_STATUS, departmentStatusSaga);\r\n yield takeLatest(GET_DEPARTMENT_BY_COMPANY_ID, getDepartmentByCompanySaga);\r\n}\r\n","import {createStore, applyMiddleware, compose} from 'redux';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport {fork} from 'redux-saga/effects';\r\nimport reduxLogger from 'redux-logger';\r\nimport {thunk} from 'redux-thunk';\r\nimport rootReducer from './reducer';\r\nimport watchUserAuthentication from './sagaWatcher';\r\n\r\nconst rootSaga = function* startForman() {\r\n yield fork(watchUserAuthentication);\r\n};\r\n\r\nconst configureStore = () => {\r\n const sagaMiddleware = createSagaMiddleware();\r\n\r\n const middleware = [sagaMiddleware, thunk];\r\n\r\n if (process.env.NODE_ENV === 'development') {\r\n middleware.push(reduxLogger);\r\n\r\n // eslint-disable-next-line no-underscore-dangle\r\n const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\n\r\n return {\r\n ...createStore(rootReducer, composeEnhancers(applyMiddleware(...middleware))),\r\n runSaga: sagaMiddleware.run(rootSaga),\r\n };\r\n }\r\n\r\n return {\r\n ...createStore(rootReducer, applyMiddleware(...middleware)),\r\n runSaga: sagaMiddleware.run(rootSaga),\r\n };\r\n};\r\n\r\nexport default configureStore;\r\n","import {createTheme, responsiveFontSizes} from '@mui/material/styles';\r\n\r\n// Specific color code used as per UX design\r\nexport const COLOR_CODES = {\r\n navbar: '#0A1F41',\r\n dashboardBg: '#FAFAFA',\r\n primary: '#476BC3',\r\n lineColor: '#EAE8E8',\r\n search: {\r\n bg: '#DDE7FA',\r\n text: '#476BC3',\r\n },\r\n};\r\n\r\nconst rootElement = document.getElementById('root');\r\nconst themeObject = {\r\n breakpoints: {\r\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\r\n values: {xs: 0, sm: 600, md: 900, lg: 1200, xl: 1536},\r\n unit: 'px',\r\n },\r\n direction: 'ltr',\r\n components: {\r\n MuiDialog: {\r\n defaultProps: {\r\n container: rootElement,\r\n },\r\n },\r\n MuiAccordionSummary: {\r\n styleOverrides: {},\r\n },\r\n MuiCssBaseline: {defaultProps: {enableColorScheme: true}, styleOverrides: {}},\r\n MuiButtonBase: {defaultProps: {disableTouchRipple: true}},\r\n MuiButton: {\r\n defaultProps: {disableElevation: true},\r\n styleOverrides: {\r\n root: ({ownerState}) => ({\r\n ...(ownerState.variant === 'contained' &&\r\n ownerState.color === 'primary' && {\r\n backgroundColor: '#476BC3 ',\r\n color: '#fff',\r\n fontSize: '16px',\r\n }),\r\n ...(ownerState.variant === 'text' &&\r\n ownerState.color === 'secondary' && {\r\n backgroundColor: 'none',\r\n color: '#24262C',\r\n fontSize: '16px',\r\n }),\r\n ...(ownerState.variant === 'outlined' &&\r\n ownerState.color === 'primary' && {\r\n fontSize: '10px',\r\n }),\r\n '& .MuiButton-startIcon': {\r\n marginRight: 0,\r\n },\r\n }),\r\n },\r\n variants: [{props: {variant: 'code'}}, {props: {variant: 'link'}}],\r\n },\r\n MuiDialogContent: {\r\n styleOverrides: {\r\n root: {\r\n minHeight: '118px',\r\n },\r\n },\r\n },\r\n MuiIconButton: {variants: [{props: {color: 'primary'}}]},\r\n MuiMenu: {\r\n defaultProps: {\r\n container: rootElement,\r\n },\r\n styleOverrides: {\r\n root: {\r\n '.MuiPaper-root.MuiMenu-paper': {\r\n width: '200px',\r\n '-ms-overflow-style': 'none',\r\n 'scrollbar-width': 'none',\r\n },\r\n '.MuiPaper-root.MuiMenu-paper::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n },\r\n },\r\n },\r\n MuiPopover: {styleOverrides: {}},\r\n MuiDivider: {styleOverrides: {}},\r\n MuiLink: {\r\n defaultProps: {underline: 'none'},\r\n styleOverrides: {\r\n root: {\r\n fontWeight: 700,\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n '&.MuiTypography-body1 > svg': {marginTop: 2},\r\n '& svg:last-child': {marginLeft: 2},\r\n },\r\n },\r\n variants: [{props: {color: 'primary'}}],\r\n },\r\n MuiChip: {styleOverrides: {}},\r\n MuiList: {styleOverrides: {root: {padding: 0}}},\r\n MuiListItemButton: {styleOverrides: {}},\r\n MuiTab: {defaultProps: {disableTouchRipple: true}},\r\n MuiPaper: {styleOverrides: {}},\r\n MuiTableCell: {\r\n styleOverrides: {\r\n head: {\r\n backgroundColor: '#FAFAFA',\r\n color: '#676767',\r\n },\r\n },\r\n },\r\n MuiToggleButtonGroup: {styleOverrides: {}},\r\n MuiToggleButton: {styleOverrides: {}},\r\n MuiTooltip: {styleOverrides: {tooltip: {padding: '6px 12px'}}},\r\n MuiSwitch: {\r\n styleOverrides: {\r\n root: {\r\n width: 32,\r\n height: 16,\r\n padding: 0,\r\n '& .MuiSwitch-switchBase': {\r\n '&.Mui-checked': {transform: 'translateX(11px)', color: '#fff'},\r\n },\r\n },\r\n switchBase: {\r\n height: 10,\r\n width: 10,\r\n marginTop: 3,\r\n marginLeft: 4,\r\n padding: 0,\r\n color: '#fff',\r\n '&.Mui-checked + .MuiSwitch-track': {opacity: 1},\r\n '& input[type=\"checkbox\"]': {\r\n left: '-40%',\r\n width: '400%',\r\n },\r\n '&.Mui-checked input[type=\"checkbox\"]': {\r\n left: '-140%',\r\n width: '400%',\r\n },\r\n },\r\n thumb: {flexShrink: 0, width: '14px', height: '14px'},\r\n },\r\n },\r\n MuiPaginationItem: {styleOverrides: {}},\r\n MuiFormControlLabel: {\r\n styleOverrides: {\r\n label: {\r\n fontSize: '12px',\r\n color: '#24262C',\r\n },\r\n },\r\n },\r\n },\r\n palette: {\r\n mode: 'light',\r\n primary: {\r\n 50: '#F0F7FF',\r\n 100: '#C2E0FF',\r\n 200: '#99CCF3',\r\n 300: '#66B2FF',\r\n 400: '#3399FF',\r\n 500: '#007FFF',\r\n 600: '#0072E5',\r\n 700: '#0059B2',\r\n 800: '#004C99',\r\n 900: '#003A75',\r\n main: '#476BC3',\r\n light: '#66B2FF',\r\n dark: '#0059B2',\r\n contrastText: '#fff',\r\n },\r\n divider: '#E7EBF0',\r\n primaryDark: {\r\n 50: '#E2EDF8',\r\n 100: '#CEE0F3',\r\n 200: '#91B9E3',\r\n 300: '#5090D3',\r\n 400: '#265D97',\r\n 500: '#1E4976',\r\n 600: '#173A5E',\r\n 700: '#132F4C',\r\n 800: '#001E3C',\r\n 900: '#0A1929',\r\n main: '#5090D3',\r\n },\r\n common: {\r\n black: '#1D1D1D',\r\n white: '#fff',\r\n tableHeaderBackgroundColor: '#FAFAFA',\r\n tableHeaderColor: '#676767',\r\n },\r\n text: {primary: '#1A2027', secondary: '#3E5060', disabled: 'rgba(0, 0, 0, 0.38)'},\r\n grey: {\r\n 50: '#F3F6F9',\r\n 100: '#E7EBF0',\r\n 200: '#E0E3E7',\r\n 300: '#CDD2D7',\r\n 400: '#B2BAC2',\r\n 500: '#A0AAB4',\r\n 600: '#6F7E8C',\r\n 700: '#3E5060',\r\n 800: '#2D3843',\r\n 900: '#1A2027',\r\n main: '#E7EBF0',\r\n contrastText: '#6F7E8C',\r\n A100: '#f5f5f5',\r\n A200: '#eeeeee',\r\n A400: '#bdbdbd',\r\n A700: '#616161',\r\n },\r\n error: {\r\n 50: '#FFF0F1',\r\n 100: '#FFDBDE',\r\n 200: '#FFBDC2',\r\n 300: '#FF99A2',\r\n 400: '#FF7A86',\r\n 500: '#FF505F',\r\n 600: '#EB0014',\r\n 700: '#C70011',\r\n 800: '#94000D',\r\n 900: '#570007',\r\n main: '#EB0014',\r\n light: '#FF99A2',\r\n dark: '#C70011',\r\n contrastText: '#fff',\r\n },\r\n success: {\r\n 50: '#E9FBF0',\r\n 100: '#C6F6D9',\r\n 200: '#9AEFBC',\r\n 300: '#6AE79C',\r\n 400: '#3EE07F',\r\n 500: '#21CC66',\r\n 600: '#1DB45A',\r\n 700: '#1AA251',\r\n 800: '#178D46',\r\n 900: '#0F5C2E',\r\n main: '#1AA251',\r\n light: '#6AE79C',\r\n dark: '#1AA251',\r\n contrastText: '#fff',\r\n },\r\n warning: {\r\n 50: '#FFF9EB',\r\n 100: '#FFF3C1',\r\n 200: '#FFECA1',\r\n 300: '#FFDC48',\r\n 400: '#F4C000',\r\n 500: '#DEA500',\r\n 600: '#D18E00',\r\n 700: '#AB6800',\r\n 800: '#8C5800',\r\n 900: '#5A3600',\r\n main: '#DEA500',\r\n light: '#FFDC48',\r\n dark: '#AB6800',\r\n contrastText: 'rgba(0, 0, 0, 0.87)',\r\n },\r\n secondary: {main: '#9c27b0', light: '#ba68c8', dark: '#7b1fa2', contrastText: '#fff'},\r\n info: {main: '#0288d1', light: '#03a9f4', dark: '#01579b', contrastText: '#fff'},\r\n contrastThreshold: 3,\r\n tonalOffset: 0.2,\r\n background: {paper: '#fff', default: '#fff'},\r\n action: {\r\n active: 'rgba(0, 0, 0, 0.54)',\r\n hover: 'rgba(0, 0, 0, 0.04)',\r\n hoverOpacity: 0.04,\r\n selected: 'rgba(0, 0, 0, 0.08)',\r\n selectedOpacity: 0.08,\r\n disabled: 'rgba(0, 0, 0, 0.26)',\r\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\r\n disabledOpacity: 0.38,\r\n focus: 'rgba(0, 0, 0, 0.12)',\r\n focusOpacity: 0.12,\r\n activatedOpacity: 0.12,\r\n },\r\n },\r\n shape: {borderRadius: 10},\r\n typography: {\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontFamilyCode: 'Menlo,Consolas,\"Droid Sans Mono\",monospace',\r\n fontFamilyTagline:\r\n '\"PlusJakartaSans-ExtraBold\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\r\n fontFamilySystem:\r\n '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\"',\r\n fontWeightSemiBold: 600,\r\n fontWeightExtraBold: 800,\r\n color: '#24262C',\r\n h1: {\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontSize: 'clamp(2.625rem, 1.2857rem + 3.5714vw, 4rem)',\r\n fontWeight: 800,\r\n lineHeight: 1.1142857142857143,\r\n color: '#0A1929',\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n h2: {\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontSize: 'clamp(1.5rem, 0.9643rem + 1.4286vw, 2.25rem)',\r\n fontWeight: 800,\r\n lineHeight: 1.2222222222222223,\r\n color: '#132F4C',\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n h3: {\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontSize: '2.25rem',\r\n lineHeight: 1.2222222222222223,\r\n letterSpacing: 0.2,\r\n fontWeight: 400,\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n h4: {\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontSize: '1.75rem',\r\n lineHeight: 1.5,\r\n letterSpacing: 0.2,\r\n fontWeight: 400,\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n h5: {\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontSize: '1.5rem',\r\n lineHeight: 1.5,\r\n letterSpacing: 0.1,\r\n color: '#007FFF',\r\n fontWeight: 400,\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n h6: {\r\n fontSize: '1.25rem',\r\n lineHeight: 1.5,\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontWeight: 500,\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n button: {\r\n textTransform: 'initial',\r\n fontWeight: 700,\r\n letterSpacing: 0,\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontSize: '0.875rem',\r\n lineHeight: 1.75,\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n subtitle1: {\r\n fontSize: '1.125rem',\r\n lineHeight: 1.3333333333333333,\r\n letterSpacing: 0,\r\n fontWeight: 500,\r\n fontFamily: 'Nunito-Sans-Regular',\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n body1: {\r\n fontSize: '1rem',\r\n lineHeight: 1.5,\r\n letterSpacing: 0,\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontWeight: 400,\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n body2: {\r\n fontSize: '0.875rem',\r\n lineHeight: 1.5,\r\n letterSpacing: 0,\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontWeight: 400,\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n caption: {\r\n display: 'inline-block',\r\n fontSize: '0.75rem',\r\n lineHeight: 1.5,\r\n letterSpacing: 0,\r\n fontWeight: 700,\r\n fontFamily: 'Nunito-Sans-Regular',\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n allVariants: {scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)'},\r\n htmlFontSize: 16,\r\n fontSize: 14,\r\n fontWeightLight: 300,\r\n fontWeightRegular: 400,\r\n fontWeightMedium: 500,\r\n fontWeightBold: 700,\r\n subtitle2: {\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontWeight: 500,\r\n fontSize: '0.875rem',\r\n lineHeight: 1.57,\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n overline: {\r\n fontFamily: 'Nunito-Sans-Regular',\r\n fontWeight: 400,\r\n fontSize: '0.75rem',\r\n lineHeight: 2.66,\r\n textTransform: 'uppercase',\r\n scrollMarginTop: 'calc(var(--MuiDocs-header-height) + 32px)',\r\n },\r\n inherit: {\r\n fontFamily: 'inherit',\r\n fontWeight: 'inherit',\r\n fontSize: 'inherit',\r\n lineHeight: 'inherit',\r\n letterSpacing: 'inherit',\r\n },\r\n },\r\n props: {MuiBadge: {overlap: 'rectangular'}},\r\n unstable_sxConfig: {\r\n border: {themeKey: 'borders'},\r\n borderTop: {themeKey: 'borders'},\r\n borderRight: {themeKey: 'borders'},\r\n borderBottom: {themeKey: 'borders'},\r\n borderLeft: {themeKey: 'borders'},\r\n borderColor: {themeKey: 'palette'},\r\n borderTopColor: {themeKey: 'palette'},\r\n borderRightColor: {themeKey: 'palette'},\r\n borderBottomColor: {themeKey: 'palette'},\r\n borderLeftColor: {themeKey: 'palette'},\r\n borderRadius: {themeKey: 'shape.borderRadius'},\r\n color: {themeKey: 'palette'},\r\n bgcolor: {themeKey: 'palette', cssProperty: 'backgroundColor'},\r\n backgroundColor: {themeKey: 'palette'},\r\n p: {},\r\n pt: {},\r\n pr: {},\r\n pb: {},\r\n pl: {},\r\n px: {},\r\n py: {},\r\n padding: {},\r\n paddingTop: {},\r\n paddingRight: {},\r\n paddingBottom: {},\r\n paddingLeft: {},\r\n paddingX: {},\r\n paddingY: {},\r\n paddingInline: {},\r\n paddingInlineStart: {},\r\n paddingInlineEnd: {},\r\n paddingBlock: {},\r\n paddingBlockStart: {},\r\n paddingBlockEnd: {},\r\n m: {},\r\n mt: {},\r\n mr: {},\r\n mb: {},\r\n ml: {},\r\n mx: {},\r\n my: {},\r\n margin: {},\r\n marginTop: {},\r\n marginRight: {},\r\n marginBottom: {},\r\n marginLeft: {},\r\n marginX: {},\r\n marginY: {},\r\n marginInline: {},\r\n marginInlineStart: {},\r\n marginInlineEnd: {},\r\n marginBlock: {},\r\n marginBlockStart: {},\r\n marginBlockEnd: {},\r\n displayPrint: {cssProperty: false},\r\n display: {},\r\n overflow: {},\r\n textOverflow: {},\r\n visibility: {},\r\n whiteSpace: {},\r\n flexBasis: {},\r\n flexDirection: {},\r\n flexWrap: {},\r\n justifyContent: {},\r\n alignItems: {},\r\n alignContent: {},\r\n order: {},\r\n flex: {},\r\n flexGrow: {},\r\n flexShrink: {},\r\n alignSelf: {},\r\n justifyItems: {},\r\n justifySelf: {},\r\n gap: {},\r\n rowGap: {},\r\n columnGap: {},\r\n gridColumn: {},\r\n gridRow: {},\r\n gridAutoFlow: {},\r\n gridAutoColumns: {},\r\n gridAutoRows: {},\r\n gridTemplateColumns: {},\r\n gridTemplateRows: {},\r\n gridTemplateAreas: {},\r\n gridArea: {},\r\n position: {},\r\n zIndex: {themeKey: 'zIndex'},\r\n top: {},\r\n right: {},\r\n bottom: {},\r\n left: {},\r\n boxShadow: {themeKey: 'shadows'},\r\n width: {},\r\n maxWidth: {},\r\n minWidth: {},\r\n height: {},\r\n maxHeight: {},\r\n minHeight: {},\r\n boxSizing: {},\r\n fontFamily: {themeKey: 'typography'},\r\n fontSize: {themeKey: 'typography'},\r\n fontStyle: {themeKey: 'typography'},\r\n fontWeight: {themeKey: 'typography'},\r\n letterSpacing: {},\r\n textTransform: {},\r\n lineHeight: {},\r\n textAlign: {},\r\n typography: {cssProperty: false, themeKey: 'typography'},\r\n },\r\n mixins: {\r\n toolbar: {\r\n minHeight: 56,\r\n '@media (min-width:0px)': {'@media (orientation: landscape)': {minHeight: 48}},\r\n '@media (min-width:600px)': {minHeight: 64},\r\n },\r\n },\r\n shadows: [\r\n 'none',\r\n '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)',\r\n '0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)',\r\n '0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12)',\r\n '0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)',\r\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12)',\r\n '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)',\r\n '0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12)',\r\n '0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)',\r\n '0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12)',\r\n '0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12)',\r\n '0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12)',\r\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12)',\r\n '0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12)',\r\n '0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12)',\r\n '0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12)',\r\n '0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12)',\r\n '0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12)',\r\n '0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12)',\r\n '0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12)',\r\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12)',\r\n '0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12)',\r\n '0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12)',\r\n '0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12)',\r\n '0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12)',\r\n ],\r\n transitions: {\r\n easing: {\r\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\r\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\r\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)',\r\n },\r\n duration: {\r\n shortest: 150,\r\n shorter: 200,\r\n short: 250,\r\n standard: 300,\r\n complex: 375,\r\n enteringScreen: 225,\r\n leavingScreen: 195,\r\n },\r\n },\r\n zIndex: {\r\n mobileStepper: 1000,\r\n fab: 1050,\r\n speedDial: 1050,\r\n appBar: 1100,\r\n drawer: 1200,\r\n modal: 1300,\r\n snackbar: 1400,\r\n tooltip: 1500,\r\n },\r\n};\r\n\r\nconst theme = createTheme(themeObject);\r\nconst responseiveTheme = responsiveFontSizes(theme);\r\n\r\nexport default responseiveTheme;\r\n","import React from 'react';\r\nimport CssBaseline from '@mui/material/CssBaseline';\r\nimport {StyledEngineProvider, ThemeProvider} from '@mui/material/styles';\r\nimport {Provider} from 'react-redux';\r\nimport {ToastContainer} from 'react-toastify';\r\nimport AppRouter from './containers/Router';\r\nimport configureStore from './store/configureStore';\r\nimport theme from './modules/shared/utils/theme';\r\nimport './tailwind.css';\r\n\r\nconst store = configureStore();\r\n\r\nfunction App() {\r\n return (\r\n <Provider store={store}>\r\n <StyledEngineProvider injectFirst>\r\n <ThemeProvider theme={theme}>\r\n <CssBaseline />\r\n <AppRouter />\r\n <ToastContainer />\r\n </ThemeProvider>\r\n </StyledEngineProvider>\r\n </Provider>\r\n );\r\n}\r\n\r\nexport default App;\r\n","import 'core-js/stable';\r\nimport 'regenerator-runtime/runtime';\r\nimport './webvitals';\r\nimport React from 'react';\r\nimport {createRoot} from 'react-dom/client';\r\nimport App from './App';\r\n\r\nconst container = document.getElementById('root');\r\nconst root = createRoot(container);\r\nroot.render(<App />);\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkclient\"] = self[\"webpackChunkclient\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [819], () => (__webpack_require__(84725)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","content","module","id","options","transform","undefined","locals","exports","onCLS","onLCP","IREST_ROUTES","DEFAULT_PAGINATION","COLOR_CODES","FREQUENT_PROJECT_LIST_HEADS","label","PROJECT_LIST_HEADS","RECENT_API_LIST_HEADS","ACTIONS","ATTRS","saveAPIResponseType","GET","message","status","data","GET_BY_ID","POST","PUT","PATCH","DELETE","fetchAPIResponseType","FETCH_NORMAL_RESPONSE","ROLES","API_BASE_URL","process","LOGIN_API_ENDPOINT","concat","REGISTER_API_ENDPOINT","GET_USER_LIST_API_ENDPOINT","GENERATE_USER_PASSWORD_API_ENDPOINT","ASSIGN_PROJECT_API_ENDPOINT","ROLE_LIST_API_ENDPOINT","COMPLANY_LIST_API_ENDPOINT","DEPARTMENT_LIST_API_ENDPOINT","USER_INFO_API_ENDPOINT","GET_ASSIGNED_PROJECT_ENDPOINT","ATTRIBUTED_DEPARTMENT_LIST_API_ENDPOINT","COMPANY_DETAILS_API_ENDPOINT","CREATE_COMPANY_ENDPOINT","EDIT_COMPANY_ENDPOINT","CREATE_DEPARTMENT_ENDPOINT","EDIT_DEPARTMENT_ENDPOINT","DialogBox","props","b","showCloseIcon","c","showDialogTitle","d","showActionBar","e","showPrimaryButton","f","showSecondaryButton","open","onClose","bodyContent","primaryBtnHandler","primaryBtnColor","primaryBtnVarient","secondaryBtnColor","secondaryBtnVarient","secondaryBtnHandler","primaryBtnLabel","secondaryBtnLabel","dialogTitle","s","primaryBtnId","u","secondaryBtnId","w","isDialogTitleIconVisible","dialogTitleIcon","isSubtitleVisible","SubtitleContent","A","isPrimaryBtnDisabled","React","Dialog","maxWidth","\"aria-labelledby\"","DialogTitle","className","IconButton","\"aria-label\"","CloseIcon","color","onClick","DialogContent","Divider","DialogActions","Button","\"data-testid\"","varient","variant","disabled","a","countdown","onLogout","onContinue","timeoutModalOpen","axiosInstance","axios","create","interceptors","request","use","req","nonce","uuidv4","headers","response","error","localStorage","clear","window","location","href","Promise","reject","delay","theme","g","position","i","type","toast","key","arguments","length","_defineProperty","countDownInterval","timeout","updateSessionSaga","SESSION_UPDATE","SESSION_UPDATE_SUCCESS","SESSION_UPDATE_ERROR","updateSessionInitialState","updateSessionService","API_ENDPOINT","client","method","url","params","then","err","payload","_regeneratorRuntime","prev","next","call","sent","put","responseSuccessOrFailureAction","notify","stop","_marked","navigate","useNavigate","countDown","dispatch","useDispatch","useState","_slicedToArray","setModalOpen","j","timeoutCountDown","setCountDown","timeoutTime","dayjs","expires","diff","Date","now","clearSessionTimeout","clearTimeout","clearSessionInterval","clearInterval","handleLogout","_asyncToGenerator","removeItem","replace","apply","useIdleTimer","onIdle","isAuthenticated","setTimeout","setInterval","onActive","crossTab","promptBeforeIdle","throttle","useEffect","SessionTimeoutPopup","sessionUpdateAction","res","primaryKey","secondaryKey","tertiaryKey","userinfo","useSelector","state","roles","permissions","Header","useLocation","isReadCompanyEnabled","useRolePermission","h","useContext","SearchAPIContext","searchAPI","setSearchAPI","k","l","anchorEl","setAnchorEl","handleClose","logoutService","AppBar","Container","Toolbar","disableGutters","Box","src","logo","alt","Link","to","pathname","includes","SearchIcon","placeholder","value","onChange","target","onKeyDown","limit","offset","search","event","currentTarget","Tooltip","title","Avatar","name","split","map","join","Menu","MenuListProps","MenuItem","handleRedirection","makeUseAxios","baseURL","initialState","email","companyId","SET_USER_INFO","Backdrop","CircularProgress","children","flag","setFlag","pathnames","filter","x","routes","user","routesArray","Object","keys","el","havePermission","JSON","stringify","UnauhtorizedPage","createContext","component","_objectWithoutProperties","_excluded","iRestUser","useAxios","isLoadingUserinfo","loading","getUserInfo","o","p","setUserInfo","parse","getItem","Navigate","SessionTimeout","Provider","BlockingLoader","ValidateRoutePermission","Outlet","createBrowserHistory","LEFT_PANEL","LOGIN","Typography","PASSWORD_ERROR","EMAIL_ERROR","emailField","passwordField","inputChangeHandler","TextField","inputProps","helperText","password","manual","isLoading","executeLogin","initialValue","setUser","m","setEmailField","q","setPasswordField","t","v","Helmet","LeftPanel","Form","_objectSpread","LoadingButton","preventDefault","formattedUser","trim","loggedUser","irestuser","setItem","errors","details","isDialogOpen","setDialogOpen","dialogClickHandler","gutterBottom","ConfirmationBox","primaryBtnvariant","headerContent","r","disablePrimaryBtn","width","isConfirmationboxOpen","setConfirmationBoxOpen","confirmationClickHandler","handleMenuClose","option","index","\"data-option-value\"","clickHandler","ListItemIcon","icon","noWrap","textLabel","showActionDropdown","handleCloseActionDropdown","actiondropdownData","EditIcon","fontSize","dataset","optionValue","LockIcon","DeleteIcon","ToggleOffIcon","FileDownloadIcon","PushPinIcon","ShareIcon","\"aria-controls\"","\"aria-haspopup\"","\"aria-expanded\"","ActionDropdown","SingleTableCell","align","cellClassName","isIcon","TableCell","style","CheckCircleOutlineIcon","CancelIcon","row","hoverEffect","hoverClassName","onHoverContent","onMouseLeave","isSelected","checkboxSelection","handleClick","n","overlayActions","setShowHoverEle","isItemSelected","apiName","labelId","TableRow","onMouseEnter","padding","Checkbox","checked","cellValue","ind","PreviosComponent","ArrowBackIosIcon","NextComponent","ArrowForwardIosIcon","createTableRowData","columnsToShow","rowData","forEach","tableColumn","_id","getToastType","statusCode","capitalizeFirstLetter","arr","item","charAt","toUpperCase","slice","toLowerCase","IsJsonString","str","isArrayOfObjectHasValue","array","valueToCheck","find","element","getCheckboxValue","tableData","selected","tData","indexOf","apiId","parseJson","jsonConvertedData","jsonData","replaceAll","lines","result","obj","currentLine","_createForOfIteratorHelper","entries","done","push","CapitalizeFirstLetter","copyToClipboard","text","navigator","clipboard","writeText","textArea","document","createElement","body","appendChild","select","execCommand","console","removeChild","columns","sortByColumn","sortAllowed","defaultPage","defaultSortOrder","headerCellClass","showPagination","tableWrapperClassName","tableClassName","getPageNumber","showLoader","loaderComponent","totalRecords","z","handleSelectedRow","C","handleSortCall","E","maxHeight","G","H","order","setOrder","K","L","orderBy","setOrderBy","O","P","setSelected","tableRef","selectedIndex","newSelected","createSortHandler","property","handleRequestSort","TableContainer","sx","Paper","Table","stickyHeader","TableHead","indeterminate","headCell","sortDirection","TableSortLabel","active","IconComponent","SwapVertIcon","TableBody","colSpan","SingleTableRow","Pagination","page","count","Math","ceil","shape","newPage","current","scrollIntoView","renderItem","PaginationItem","_extends","slots","previous","createData","calories","fat","carbs","FiltersDialog","menudata","showCloseBtn","defaultValue","showClearBtn","showRadioIcon","showCheckIcon","selectMenu","clearMenu","filterMenuMapping","isClearDisabled","isCloseDisabled","onRadioBtnChange","filterValues","placement","ListSubheader","size","filterOption","addCheckIcon","\"data-value\"","CheckIcon","getMenuOptionItems","RadioGroup","radioData","radioOption","FormControlLabel","control","Radio","getRadioOptionItems","filtermenudata","\"Request Method\"","any","get","post","patch","delete","\"API Status\"","enabled","\"Auth Type\"","project_specific","mock_specific","off","showFilterMenu","setFilterMenu","filtersInitialState","allowedMethods","authenticationType","setFilterValues","valueType","optionTypeData","list","_toConsumableArray","splice","prevFilterValue","prevFilterVal","sortmenudata","\"Sort By\"","apiatoz","apiztoa","projectatoz","projectztoa","endpointsatoz","endpointsztoa","updateoldtonew","updatenewtoold","showSortMenu","setSortMenu","defaultRadioValue","setRadioBtnValue","SearchExample","fieldValue","setFieldValue","handleTextChange","ev","handleKeyPress","InputProps","startAdornment","InputAdornment","endAdornment","MenuProps","PaperProps","MultiSelectDropdown","onChangeOption","onDeleteOption","inputLabel","errorMsg","showSelectAll","isAllSelected","FormControl","Select","multiple","ExpandMoreIcon","renderValue","selectedVal","Chip","deleteIcon","onMouseDown","stopPropagation","onDelete","ListItemText","primary","FormHelperText","val","RadioButtonExample","FormLabel","info","setInfo","success","setSuccess","setError","warning","setWarning","startIcon","PlayArrowIcon","endIcon","routeLink","role","Grid","container","xs","InfoIcon","componentToRender","LabelExample","ButtonExample","AnchorLinkExample","ProfileIconExample","ActionDropdownExample","ToastExample","MultipleSelectExample","DialogExample","ConfirmDialogExample","FilterDropdownExample","SortDropdownExample","spacing","executeRegister","smallPassword","longPassword","setErrors","isModelOpen","setIsModelOpen","registerUser","autoComplete","prevState","FILTER_MENU_DATA","FILTER_MENU","SORTING_DATA","PROJECT_LIST_COLOR_CODE","AUTH_TYPE_COLOR_CODE","PROJECT_NAME_REGEX","PROJECT_NAME_MESSAGE","URLParam","\"Content-Type\"","SimpleSelectDropdown","menuOptions","handleChange","selectedValue","selectClass","menuClass","hasError","selectRef","useRef","fullWidth","ref","classList","remove","previousSibling","EditModelBodyContent","projectName","changeHandler","departments","selectedDepartment","changeDepartment","isFrequentProjList","htmlFor","required","EditContainer","projectDepartment","isEditModelOpen","closeModel","setProjectName","setProjectDepartment","reRender","useParams","departmentId","setIsLoading","y","disable","setDisable","editModelHandler","projectEditService","editDepartmentId","departmentIdValue","companyIdValue","test","DeleteContainer","handleSetIsLoading","isDeleteModelOpen","handleDeleteProject","projectDeleteService","Name","require","v4","createTableData","projectList","mockName","mockStatus","tokenValue","token","userId","projectId","endPoint","endpoint","requestMethod","authType","updatedOn","updatedAt","format","getRunningState","CircleIcon","getUpdatedMockData","projectListData","addTooltipWrapper","iconComponent","transformData","mockList","mockArray","description","header","mode","raw","variables","_postman_id","schema","items","protocolProfileBehavior","getListKey","dataArray","ele","getUpdatedTableData","updatedData","elem","getUpdatedMock","newCurrentPageMockData","mockId","updateTokenSaga","UPDATE_TOKEN","UPDATE_TOKEN_PENDING","UPDATE_TOKEN_SUCCESS","UPDATE_TOKEN_ERROR","RESET_STORE","resetStore","isUpdateTokenPending","isPending","updateTokenService","isMockToken","rest","AuthenticateBodyContent","handleFieldChange","tokenData","handleRefreshToken","Switch","FormGroup","classes","\"data-clipboard-target\"","\"data-clipboard-action\"","ContentCopyIcon","ClipboardJS","SyncIcon","AuthenticateContainer","showAuthModel","authentication","setAuthentication","setToken","touched","setTouched","saveAuthHandler","newToken","generateToken","handleCopyToken","mockListSaga","MOCK_LIST","MOCK_LIST_PENDING","MOCK_LIST_SUCCESS","MOCK_LIST_ERROR","mockListInitialState","mockListAction","isMockListPending","mockListService","editMockService","Data","DownloadPostmanCollection","transformedData","jsonString","encodeURIComponent","link","download","click","projectDepartmentName","currentProject","authenticationStatus","setIsDeleteModelOpen","setIsEditModelOpen","D","isAuthenticateModelOpen","setIsAuthenticateModelOpen","I","setDepartments","fetchToken","editProjectName","setEditProjectName","S","T","editProjectDepartment","setEditProjectDepartment","W","X","authStatus","setAuthStatus","$","_","departmentList","setLoading","MoreVertIcon","ActionDropdownAction","createProjectSaga","CREATE_PROJECT_SUCCESS","CREATE_PROJECT_ERROR","CREATE_PROJECT_CLEAR","createProjectService","selectedCompany","changeCompany","companies","isDefaultCompany","isDefaultDepartment","CreateProject","close","isFromProjectList","setSelectedDepartment","setSelectedCompany","companyList","setCompanyList","setIsDefaultCompany","setIsDefaultDepartment","setDepartmentList","aa","isCompanyLoading","fetchCompanies","da","ea","isDepartmentLoading","fetchDepartments","ha","ia","isCompanyDetailsLoading","fetchCompanyDetails","getCompanyDetails","getCompanyList","getDepartmentList","disableAddProject","mappedData","rows","company","handleProjectNameEdit","addProject","createDepartmentId","SideBar","selectedTab","mockListUpdated","setReRender","isCreateProjectEnabled","isUpdateProjectEnabled","setCurrentProject","isCreateProjectModalOpen","setIsCreateProjectModalOpen","handleReRender","listItemCss","List","ListItem","backgroundColor","AddIcon","project","onMouseOver","departmentName","mockCount","projName","setProjName","copyProjName","setCopyProjName","isEnabled","setEnabled","handleSubmit","handleProjectEdit","flexGrow","marginLeft","ModeIcon","FilterContainer","handleSelectedFilterMenu","filterDataValues","TuneIcon","SortingContainer","handleSortMenuClose","closeDeleteModel","deleteClass","getDeleteModelContent","ToggleContainer","onToggle","isMockEnabled","isMockUpdated","setChecked","toggleClass","toggleStatus","DownloadContainer","FileDownloadOutlinedIcon","BasicTable","SELECTED_PROEJCT_ID","setSelectedProject","CREATE_USER","EDIT","CANCEL","ADD_PROJECT","CONFIRMATION_HEADER_TITLE","CONFIRMATION_PRIMARY_BTN_LABEL","CONFIRMATION_SECONDARY_BTN_LABEL","USER_SUBTITLE_CONTENT","ADD_PROJECT_CONTENT","COLUMNS","VALIDATION_TEXT","NAME","EMPTY","WRONG","EMAIL","ROLE","COMPANY","EMAIL_REGEX","ROLE_MAPPING","subuser","individual","companyadmin","poc","styled","margin","listStyle","BottomActionDashboardContainer","handleFilterAction","handleApiListSortingAction","selectedRows","mockListData","filterAction","requestedMethod","setRequestedMethod","apiStatus","setApiStatus","setAuthType","filterData","setFilterData","setShowLoader","importAPISuccessDialogOpen","setImportAPISuccessDialogOpen","importMockResponse","setImportMockResponse","mockParams","config","M","deleteMock","Q","R","isBulkDelete","setBulkDelete","handleDownload","all","rowId","mockDetails","abrupt","promises","mockValue","findIndex","mock","detailedMock","handleDeleteRequestMethod","chipToDelete","activeRequestMethod","chip","activeRequestMethodList","filterModel","handleDeleteApiStatus","activeApiStatus","activeApiStatusList","handleDeleteAuthType","activeAuthType","activeAuthTypeList","transformApiData","apiRes","successResponse","transformExportData","dataObj","serviceResponseType","referenceId","path","endpointRequestPath","isDelay","delaySeconds","contentEncoding","contentType","isDynamicResponse","isSchema","dynamicResponseKey","dynamicResponseRandom","dynamicResponseSpecific","dynamicResponseSpecificKeyValue","isDynamicImportCount","dynamicImportCount","isDynamicImportSize","dynamicImportSize","isBulkDataCount","bulkDataCount","isBulkDataSize","bulkDataSize","serviceResponseBody","ServiceResponses","ApiResponseSchemaTypes","getFileName","newDate","toLocaleString","reloadMocks","handleExportMock","mockIds","exportMockService","transformedExportData","importMock","importMockService","importedMockList","uploadFileForJSON","file","formData","FormData","set","ga","mockListStatusDisabled","mockListStatusEnabled","sRows","mockListStatus","isAllRunningStateSame","getAllRunningStatus","mockStatusData","closeImportAPIModal","FileUploadIcon","hidden","accept","files","FileDownLoadIcon","lastPage","totalCount","currentPage","currentOffset","newFilterDataModel","filteredData","requestedMethodData","requestMethodType","requestmethod","apiStatusData","apiStatusType","apistatus","authStatusData","authStatusType","authtype","authTypeSelect","apiStatusSelect","requestedMethodSelect","getSelectedFilterData","selectedSorting","sortedActionDAta","sortingAction","sortBy","getSortingAction","ImportedAPIStatusContainer","displayName","propTypes","defaultProps","rowsNum","colsNum","Array","col","scope","Skeleton","animation","PreviewContainer","onPreview","handleNavigate","CopyUrlContainer","onCopy","isUrlCopied","LinkIcon","MockAuthenticationForm","handleMockAuthData","onRefreshToken","setAuthenticationSpecific","selectedRadio","setSelectedRadio","onSaveAuthenticate","onFetchAuthenticationData","onRefresh","onSetMockAuthData","authenticationSpecific","isShowAuthenticatePopup","setIsShowAuthenticatePopup","onCopyToken","setAuthenticationType","onPreviewClick","authTokenData","setAuthTokenData","setIsUrlCopied","onCopyData","tokenVal","authTokenDataModel","getAuthType","renderStyle","showHeader","showInfo","allowAuthentication","allowAdvancedSearch","allowSpecFileLoad","allowSearch","usePathInNavBar","keyName","keyValue","keyLocation","height","\"header-color\"","\"primary-color\"","\"render-style\"","\"show-header\"","\"show-info\"","\"allow-authentication\"","\"allow-advanced-search\"","\"allow-spec-file-load\"","\"allow-search\"","\"use-path-in-nav-bar\"","\"show-method-in-nav-bar\"","\"api-key-name\"","\"api-key-value\"","\"api-key-location\"","connect","in","properties","\"irest-record-id\"","Body","example","mockListResponse","mocklist","staticFields","apitype","pop","tags","operationId","consumes","produces","responses","host","dataurl","methods","apiMethod","summary","parameters","strSpec","swagger","version","termsOfService","contact","license","basePath","externalDocs","paths","securityDefinitions","api_key","iRest_auth","authorizationUrl","flow","scopes","\"read:iRest\"","\"write:iRest\"","definitions","Category","xml","iRest","category","$ref","wrapped","Tag","loadSpec","spec","RapiDoc","dataRef","setResult","mockUrl","newApi","postMethod","marginTop","setData","setIsPreviewModalOpen","previewOverlay","mockResponse","hash","MocklistWrapper","PreviewWrapper","Transition","Slide","direction","fullScreen","TransitionComponent","Preview","TableListContainer","totalMocks","onPaginationChange","setPage","showSorting","previewData","setPreviewData","B","isPreviewModalOpen","mockData","PreviewOverlay","MockOverlayActions","renderMockTableCellActions","tableWrapperClass","TableLoader","ApiListingContainer","isLoader","setIsLoader","setProjectListData","setOffset","handleBulkToggle","currentPageOffset","updateToken","mockStatusUpdated","textField","innerText","model","apiModel","runningState","selectedRow","setSelectedRow","setFilterAction","setSortingAction","mockListState","setMockListState","TopActionDashboardContainer","selectedData","actionData","sortedBy","AddTooltipWrapper","setSelectedProjectId","openDeleteModal","openEditModal","openAuthenticateModel","setDepartmentName","setSelectedUserId","canEdit","isApiCountZero","apiCount","FrequentProjectList","isProjectTableHidden","frequestProjectList","selectedProjectId","selectedUserId","selectedprojectName","setSelectedProjectName","setName","ProjectOverlayActions","setUserDepartments","tableRecordsPerPage","RecentApiList","isMockTableHidden","recentMocks","onSaveMockAuthenticate","QuickAccessDashboard","setFrequentProjectList","setRecentMocks","setIsProjectTableHidden","setIsMockTableHidden","projectCount","setProjectCount","setMockCount","V","Token","KeyboardArrowRightIcon","KeyboardArrowDownIcon","grey","Error","display","justifyContent","alignItems","flexDirection","minHeight","Dashboard","ApiListingDashboard","CREATE_COMPANY","COMPANY_DIALOG_TITLE_ICON_TOOLTIP","COMPANY_SUBTITLE_CONTENT","DOMAIN","STATUS","DOMAIN_REGEX","RegExp","MENU_OPTIONS","setHoverData","editClickHandler","deleteClickHandler","viewDepartmentHandler","viewUserHandler","viewDepartmentAccess","updateCompanyAccess","deleteCompanyAccess","haveAccess","actionFn","VisibilityIcon","GroupIcon","companyData","setCompanyData","formView","companyStoreData","enterValue","currentCompany","isError","domain","companyListSaga","_marked2","companyTableCurrentPageSaga","COMPANY_LIST","COMPANY_LIST_PENDING","COMPANY_LIST_SUCCESS","COMPANY_LIST_ERROR","COMPANY_LIST_CURRENT_PAGE","COMPANY_LIST_CURRENT_PAGE_SUCCESS","COMPANY_LIST_UPDATE_RECORD","companyListInitialState","fetchCompanyList","isCompanyListPending","companyTableCurrentPage","pageNumber","updateCompanyToList","updatedCompanyRecord","companyTablePage","companyListService","resStatus","deleteCompanySaga","DELETE_COMPANY","DELETE_COMPANY_PENDING","DELETE_COMPANY_SUCCESS","DELETE_COMPANY_ERROR","deleteCompanyInitialState","isDeleteCompanyPending","deleteCompanyService","existingCompanies","getCompanySaga","GET_COMPANY_BY_ID_PENDING","GET_COMPANY_BY_ID_SUCCESS","GET_COMPANY_BY_ID_ERROR","GET_COMPANY_BY_ID_RESET","HIDE_MODEL","modal","isGetCompanyByIdPending","resetCompanyIDDetails","getCompanyByIdService","createdBy","deleteCompany","companyListData","source","CancelToken","companyDataInitialValue","setTableData","hasCompanyFormError","companyFormErrorCheck","F","isEditDialogOpen","setEditDialogOpen","J","isDeleteCompanyCnfrmOpen","setDeleteCompanyCnfrmOpen","N","hasEditCompanyFormError","editCompanyFormErrorCheck","editCompanyData","setEditCompanyData","U","searchText","setSearchText","Y","Z","hoverData","ba","showPaginationModal","setPaginationModal","companyPermissionCreate","fa","isLoadingCompanyCreate","executeCreateCompany","ja","ka","isLoadingCompanyEdit","executeEditCompany","dataToBeEdited","every","getFieldDataResponse","field","serverErrors","errorField","openCompanyCreateDialog","\"data-testId\"","CreateEditCompanyForm","recordDetail","totalPages","deleteCompanyAction","CompanyRowOverlay","Breadcrumb","pathList","setPathList","toTitleCase","plural","substr","callIdApi","mapUrl","pathArray","pathObj","actualValue","displayValue","companyName","Breadcrumbs","separator","NavigateNextIcon","RouterLink","last","companyPermissionRead","CompanyList","addProjectHandler","enableHandler","disableHandler","generatePassword","isSelf","AddCircleOutlineIcon","WorkOffOutlinedIcon","WorkOutlineOutlinedIcon","KeyIcon","MultipleSelectCheckmarks","onChangeLabel","getIndex","userData","setUserData","companyOptions","roleOptions","setCompanyName","userStoreData","userList","companyNameObject","setCompanyNameObject","companyIdVal","currentUser","lastSelectedRole","departmentIds","dept","roleId","isArray","companyNames","assign","getProjectByUserId","projects","userDataInitialValue","companyListOptions","setCompanyListOptions","setRoleOptions","projecListOptions","setProjectListOptions","departmentListOptions","setDepartmentListOptions","pageNo","setPageNo","isCreateUserDialogOpen","setIsCreateUserDialogOpen","isEditUserDialogOpen","setIsEditUserDialogOpen","ca","isProjectAssignFormOpen","SetIsProjectAssignFormOpen","isDeleteUserCnfrmOpen","setDeleteUserCnfrmOpen","hasCreateUserFormError","setCreateUserFormError","na","oa","hasEditUserFormError","setEditUserFormError","ra","sa","hasAssignProjectFormError","setAssignProjectFormError","va","wa","createUserFormData","setCreateUserFormData","za","Aa","editUserFormData","setEditUserFormData","Da","Ea","projectAssignFormData","setProjectAssignFormData","Ha","Ia","assignedProject","setAssignedProject","La","Ma","isEditUserSuceessConfirmationOpen","setIsEditUserSuceessConfirmationOpen","Pa","Qa","confirmUserEnableDisable","setConfirmUserEnableDisable","Ta","Ua","Ya","Za","$a","isLoadingUserList","refetchUserList","cb","db","isLoadingUserStatusChange","executeToggleUserStatus","gb","hb","isLoadingAssignedProject","fetchAssignedProject","kb","lb","isLoadingGenerateUserPassword","executeGeneratePassword","ob","pb","isLoadingAssignProject","executeAssignProject","sb","tb","isLoadingDeleteUser","executeDeleteUser","wb","xb","isLoadingCreateUser","executeCreateUser","Ab","Bb","isLoadingEditUser","executeEditUser","Eb","Fb","Gb","roleListData","isLoadingRoleList","executeRoleList","Kb","Mb","isLoadingCompanyList","Pb","Qb","Rb","departmentListData","isLoadingDepartmentList","executeUserDepartmentList","userStatusHandler","userStatus","departmentProject","departmentProjects","assignedProjectVal","projectsList","getAssignedProject","openUserCreateDialog","getAssignedDepartments","deptOptions","deptObject","roleObject","roleList","userObject","toString","CreateEditUserForm","userEmail","modifiedTableData","td","updateTableDataForEditUser","assignId","projectIds","AssignProjectsForUser","userStatusHandlerConfirmed","sortOrder","UserTableCellHover","UserList","CREATE_DEPARTMENT","DEPARTMENT_SUBTITLE_CONTENT","COMPANYID","viewProjectHandler","updateDepartmentAccess","deleteDepartmentAccess","viewProjectAccess","toggleDepartmentAccess","checkDepartmentName","departmentData","setDepartmentData","currentDepartment","departmentListSaga","departmentTableCurrentPageSaga","DEPARTMENT_LIST","DEPARTMENT_LIST_PENDING","DEPARTMENT_LIST_SUCCESS","DEPARTMENT_LIST_ERROR","DEPARTMENT_LIST_CURRENT_PAGE","DEPARTMENT_LIST_CURRENT_PAGE_SUCCESS","DEPARTMENT_LIST_UPDATE_RECORD","departmentListInitialState","fetchDepartmentList","isDepartmentListPending","departmentTableCurrentPage","updateDepartmentToList","updatedDepartmentRecord","departmentTablePage","departmentListService","deleteDepartmentSaga","DELETE_DEPARTMENT","DELETE_DEPARTMENT_PENDING","DELETE_DEPARTMENT_SUCCESS","DELETE_DEPARTMENT_ERROR","deleteDepartmentInitialState","isDeleteDepartmentPending","deleteDepartmentService","getDepartmentSaga","GET_DEPARTMENT_BY_ID_PENDING","GET_DEPARTMENT_BY_ID_SUCCESS","GET_DEPARTMENT_BY_ID_ERROR","GET_DEPARTMENT_BY_ID_RESET","isGetDepartmentByIdPending","resetDepartmentIDDetails","getDepartmentByIdService","departmentStatusSaga","DEPARTMENT_STATUS","DEPARTMENT_STATUS_PENDING","DEPARTMENT_STATUS_SUCCESS","DEPARTMENT_STATUS_ERROR","departmentStatusInitialState","departmentStatusAction","isDepartmentStatusPending","departmentStatusService","getDepartment","deleteDepartment","enableDepartmentPending","enableDepartment","disableDepartmentPending","disableDepartment","departmentDataInitialValue","hasDepartmentFormError","departmentFormErrorCheck","isDeleteDepartmentCnfrmOpen","setDeleteDepartmentCnfrmOpen","hasEditDepartmentFormError","editDepartmentFormErrorCheck","editDepartmentData","setEditDepartmentData","setTablePage","ma","departmentPermissionCreate","isLoadingDepartmentCreate","executeDepartmentCompany","executeEditDepartment","department","openDepartmentCreateDialog","departmentEnableHandler","departmentDisableHandler","CreateEditDepartmentForm","deleteDepartmentAction","DepartmentRowOverlay","DepartmentList","projectListSaga","projectTableCurrentPageSaga","PROJECT_LIST","PROJECT_LIST_PENDING","PROJECT_LIST_SUCCESS","PROJECT_LIST_ERROR","PROJECT_LIST_CURRENT_PAGE_SUCCESS","projectListInitialState","projectListAction","isProjectListPending","projectListService","resp","createPreviewMockSaga","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","enumerable","getOwnPropertyDescriptors","defineProperties","defineProperty","PREVIEW_MOCK","PREVIEW_MOCK_PENDING","PREVIEW_MOCK_SUCCESS","PREVIEW_MOCK_ERROR","createPreviewMockInitialState","isPreviewMockPending","createPreviewService","mockObj","isPreview","bulkSize","respObj","createMockSaga","CREATE_MOCK","CREATE_MOCK_SUCCESS","CREATE_MOCK_ERROR","CREATE_MOCK_CLEAR","mockScreenMode","createMockService","getMockSaga","GET_MOCK_BY_ID","GET_MOCK_BY_ID_PENDING","GET_MOCK_BY_ID_SUCCESS","GET_MOCK_BY_ID_ERROR","GET_MOCK_BY_ID_CLEAR","isGetMockByIdPending","fetchListByIdService","Accordions","panel","expanded","tooltipText","Accordion","borderTopLeftRadius","borderTopRightRadius","boxShadow","AccordionSummary","expandIcon","AccordionDetails","JsonEditor","_classCallCheck","_callSuper","_inherits","_createClass","that","this","onValidationError","setJsonEditorError","prevstate","viewType","json","jsoneditor","JSONEditor","setText","update","updateText","setMode","destroy","sampleFakerObj","username","knownIps","profile","firstName","lastName","staticData","freeze","SAVE","FETCH","FILE","address","animal","commerce","database","datatype","date","finance","git","hacker","helpers","image","internet","lorem","music","phone","random","science","system","vehicle","word","tabProps","ViewSampleData","viewSampleOpen","handleViewClose","viewTabValue","handleViewTabChange","TabPanel","allItems","actual","parent","child","manipulateFakerData","fakerObj","setItems","currentItem","setCurrentItem","searchInChild","searchTxt","fItems","useCallback","filteredItems","Set","dividers","borderBottom","borderColor","Tabs","Tab","memo","SchemaView","setSchema","setIsApiCodeChanged","allowedTypes","fieldTypes","addSchemaObject","fakerValue","removeSchemaObject","targetIndex","newSchema","updateSchemaObject","copyObj","md","flexWrap","gap","fakerKey","SubdirectoryArrowLeftIcon","a11yProps","handleValueChange","tabValue","handleClickOpen","modes","onChangeTextKey","onModeChangeKey","jsonEditorError","apiResponseSchemaTypes","editorBodyText","schemaResponse","setSchemaResponse","setViewSample","setViewTabValue","handleViewOpenClose","isOpen","prefilledText","_typeof","Stack","UploadIcon","CONSTANT","StorageIcon","newValue","OpenInFullIcon","indentation","onChangeText","txt","onModeChange","CloseFullscreenIcon","schemaView","JsonEditorValue","onEditable","onClassName","isEqual","onCreateMenu","node","dynamicKeys","setDynamicKeys","expandAll","refresh","AntSwitch","\"&:active\"","\"& .MuiSwitch-thumb\"","\"& .MuiSwitch-switchBase.Mui-checked\"","\"& .MuiSwitch-switchBase\"","\"&.Mui-checked\"","\"& + .MuiSwitch-track\"","opacity","palette","borderRadius","transition","transitions","duration","\"& .MuiSwitch-track\"","boxSizing","handleDetailsChange","expandedDetails","dataOutputValue","responseTypeValue","handleDelayRadioChange","dataOutputFieldValue","responseTypeFieldValue","handleDelayChange","handleDataOutputRadioChange","handleDataOutputFieldChange","responseContentType","handleContentTypeRadioChange","handleResponseTypeFieldChange","handleResponseTypeRadioChange","specificResponseType","handleSpecificResponseTypeChange","handleDynamicSpecificResponseChange","apiType","responseDetailsError","setResponseDetailsError","dynamicResponseChecked","setDynamicResponseChecked","handleJsonkeyEditorError","inputMode","pattern","JsonEditorKeySelection","ErrorIcon","allowedFetchMethodEditor","allowedSaveMethodEditor","resetDefaultResponse","editor","view","RefreshIcon","handleHeadersChange","handlerAddHeaders","headerFields","handleRemove","AddCircleOutlineOutlinedIcon","idx","ClientErrorBadRequest","ClientErrorConflict","ClientErrorExpectationFailed","ClientErrorFailedDependency","ClientErrorForbidden","ClientErrorGone","ClientErrorImATeapot","ClientErrorLengthRequired","ClientErrorLocked","ClientErrorLoginTimeOut","ClientErrorMethodNotAllowed","ClientErrorMisdirectedRequest","ClientErrorNotAcceptable","ClientErrorNotFound","ClientErrorPayloadTooLarge","ClientErrorPaymentRequired","ClientErrorPreconditionFailed","ClientErrorPreconditionRequired","ClientErrorProxyAuthRequired","ClientErrorRangeNotSatisfiable","ClientErrorRequestHeaderFieldsTooLarge","ClientErrorRequestTimeout","ClientErrorRetryWith","ClientErrorTooManyRequests","ClientErrorUnauthorized","ClientErrorUnavailableForLegalReasons","ClientErrorUnprocessableEntity","ClientErrorUnsupportedMediaType","ClientErrorUpgradeRequired","ClientErrorURITooLong","InfoContinue","InfoProcessing","InfoSwitchingProtocols","RedirectFound","RedirectMovedPermanently","RedirectMultipleChoices","RedirectNotModified","RedirectPermanent","RedirectSeeOther","RedirectSwitchProxy","RedirectTemp","RedirectUseProxy","ServerErrorBadGateway","ServerErrorBandwidthLimitExceeded","ServerErrorGatewayTimeout","ServerErrorHTTPVersionNotSupported","ServerErrorInsufficientStorage","ServerErrorInternal","ServerErrorLoopDetected","ServerErrorNetworkAuthRequired","ServerErrorNotExtended","ServerErrorNotImplemented","ServerErrorServiceUnavailable","ServerErrorVariantAlsoNegotiates","SuccessAccepted","SuccessAlreadyReported","SuccessCreated","SuccessIMUsed","SuccessMultiStatus","SuccessNoContent","SuccessNonAuthoritativeInfo","SuccessOK","SuccessPartialContent","SuccessResetContent","apiUrlError","closeUrlEditDialog","openUrlCreateDialog","isSpecialCharProjectError","onApiTypeChange","setStatusCode","changeRequestMethod","changeContentType","removeRequestMethod","apiUrl","createSelectProjectHandler","endpointError","handleEndpoint","projectNameError","requestMethodError","setProjectNameError","setMatchingProjectErrorError","matchingProjectError","formChange","setFormChange","isEdit","selectedProjectName","substring","truncateApi","match","checkMatching","fromEntries","onBlur","focused","displayEmpty","httpStatus","schemaDataTransform","schemaData","formattedSchemaData","_ref","values","fakerModel","defaultSchemaObject","Item","textAlign","secondary","history","createProject","getMock","setMockStatus","createMockStore","createMock","createPreviewMockStore","createPreviewMock","dynamicResponseSpecificJsonValue","setDynamicResponseSpecificJsonData","dynamicResponseSpecificOtherValue","setDynamicResponseSpecificOtherData","setTabValue","setHeaderFields","setApiResponseSchemaTypes","setEditorBodyText","setExpanded","la","setDetailsExpanded","pa","setOptions","ta","setOpen","xa","setApiName","Ba","apiNameError","setApiNameError","Fa","setMockId","Ja","setRequestMethod","Na","setRequestMethodError","Ra","setApiType","Va","setContentType","ab","bb","setDelaySeconds","eb","fb","setIsDelay","ib","jb","setAllowedFetchMethodEditor","mb","nb","setAllowedSaveMethodEditor","qb","rb","setDataOutputValue","ub","vb","setBulkDataCount","yb","zb","setIsBulkDataCount","Cb","Db","setBulkDataSize","Hb","setIsBulkDataSize","Lb","setResponseContentType","Ob","setSpecifiResponseType","Sb","Tb","setResponseTypeValue","Wb","Xb","setDynamicImportCount","$b","_b","setIsDynamicImportCount","cc","dc","setDynamicImportSize","gc","hc","setIsDynamicImportSize","kc","lc","setEndpoint","oc","pc","sc","tc","setprevEndpointProjectName","wc","xc","setEndpointError","Ac","Bc","Ec","Fc","Ic","Jc","freesoloProjectname","Mc","Nc","Qc","Rc","setDynamicResponseKey","Uc","Vc","headerFieldError","setHeaderFieldsError","Yc","Zc","setAPIUrl","ad","bd","setAPIUrlError","ed","fd","jd","nd","setIsSchema","qd","rd","setCopyJson","ud","vd","yd","zd","isApiCodeChanged","Cd","Dd","isDataConvertionModelOpen","setIsDataConvertionModelOpen","origin","Gd","Hd","Kd","Ld","responseSchemaError","setResponseSchemaError","mode1","newExpanded","searchQuery","setSaveTypeResponseSchemaData","isRequestMethodTypeChanged","methodWiseDataForSave","setFetchTypeResponseSchemaData","methodWiseDataForFetch","serviceResponse","parsedData","schemaViewDataTransform","getMockRequestMethods","specificRespType","hasProjectNameError","floor","pow","breadcrumbs","GetMockById","saveOrPreviewPayload","apiResponseSchemaType","updatedSchema","isEmpty","serviceResponseBodyType","randomSpecific","saveOrPreviewMockHandler","clickHandlerType","responseSchemaCount","headerErrorCount","errorCount","responseValue","checkProjectnameError","prjtName","apiCodeError","isSchemaResponseValid","createPreviewMockAction","createMockAction","prevText","schemaToJson","readFileAsText","fileInput","resolve","reader","FileReader","readAsText","addEventListener","renderedResult","jsonParsedData","normalValue","jsonValue","isJsonString","parsed","convertedSchemaValue","JsonToSchema","convertApiCode","elevation","ApiDetails","methodList","prevEditor","uniq","lastElement","isValueExist","some","removedDuplicteList","mergeData","uniqueData","removeDuplicateObjectFromArray","newProjectId","changedProject","ApiCode","isSchemaValid","isJsonEmpty","isJsonValid","ResponseSchema","methodEditors","ResponseDetails","enteredValue","parseInt","AddHeader","fieldName","CreateEditMockPage","ProjectList","appProjectList","setProjectList","isprojectListPending","projectTablePage","prevLocation","usePrevious","ua","apiParam","totalProject","BrowserRouter","Routes","Route","exact","Login","Components","Register","PrivateRoute","MockDetail","CompanyDetails","DepartmentDetails","UserDetails","ProjectDetails","fileUploadSaga","FILE_UPLOAD_SUCCESS","FILE_UPLOAD_ERROR","fileUploadInitialState","fileUploadService","mockStatusSaga","MOCK_STATUS_SUCCESS","MOCK_STATUS_ERROR","mockStatusInitialState","mockStatusService","deleteMockSaga","deleteMockBulkSaga","DELETE_MOCK_PENDING","DELETE_MOCK_SUCCESS","DELETE_MOCK_ERROR","isDeleteMockPending","deleteMockService","deleteMockBulkService","dataPayload","updateAuthTypeSaga","UPDATE_AUTH_TYPE","UPDATE_AUTH_TYPE_PENDING","UPDATE_AUTH_TYPE_SUCCESS","UPDATE_AUTH_TYPE_ERROR","isUpdateAuthPending","updateAuthTypeService","isMockAuth","fetchTokenSaga","FETCH_TOKEN","FETCH_TOKEN_SUCCESS","FETCH_TOKEN_ERROR","fetchTokenService","createCompanySaga","CREATE_COMPANY_PENDING","CREATE_COMPANY_SUCCESS","CREATE_COMPANY_ERROR","CREATE_COMPANY_RESET","isCreateCompanyPending","resetCompanyDetails","createCompanyService","getDepartmentByCompanySaga","GET_DEPARTMENT_BY_COMPANY_ID_PENDING","GET_DEPARTMENT_BY_COMPANY_ID_SUCCESS","GET_DEPARTMENT_BY_COMPANY_ID_ERROR","GET_DEPARTMENT_BY_COMPANY_ID_RESET","isGetdepartmentByCompanyIdPending","resetdepartmentByCompanyIdDetails","getdepartmentByCompanyIdService","createDepartmentSaga","CREATE_DEPARTMENT_PENDING","CREATE_DEPARTMENT_SUCCESS","CREATE_DEPARTMENT_ERROR","CREATE_DEPARTMENT_RESET","isCreateDepartmentPending","resetDepartmentDetails","createDepartmentService","combineReducers","action","mockListCopy","projectListCopy","ListCopy","indexToBeDeleted","fileUpload","updateSession","updateAuthType","createCompany","record","recordId","updatedRecordIndex","singleRec","unshift","getCompany","getProject","departmentListByCompany","createDepartment","departmentStatus","watchUserAuthentication","takeLatest","rootSaga","startForman","fork","rootElement","getElementById","themeObject","breakpoints","sm","lg","xl","unit","components","MuiDialog","MuiAccordionSummary","styleOverrides","MuiCssBaseline","enableColorScheme","MuiButtonBase","disableTouchRipple","MuiButton","disableElevation","root","ownerState","\"& .MuiButton-startIcon\"","marginRight","variants","MuiDialogContent","MuiIconButton","MuiMenu","\".MuiPaper-root.MuiMenu-paper\"","\"-ms-overflow-style\"","\"scrollbar-width\"","\".MuiPaper-root.MuiMenu-paper::-webkit-scrollbar\"","MuiPopover","MuiDivider","MuiLink","underline","fontWeight","\"&.MuiTypography-body1 > svg\"","\"& svg:last-child\"","MuiChip","MuiList","MuiListItemButton","MuiTab","MuiPaper","MuiTableCell","head","MuiToggleButtonGroup","MuiToggleButton","MuiTooltip","tooltip","MuiSwitch","switchBase","\"&.Mui-checked + .MuiSwitch-track\"","'& input[type=\"checkbox\"]'","left","'&.Mui-checked input[type=\"checkbox\"]'","thumb","flexShrink","MuiPaginationItem","MuiFormControlLabel","main","light","dark","contrastText","divider","primaryDark","common","black","white","tableHeaderBackgroundColor","tableHeaderColor","A100","A200","A400","A700","contrastThreshold","tonalOffset","background","paper","default","hover","hoverOpacity","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","typography","fontFamily","fontFamilyCode","fontFamilyTagline","fontFamilySystem","fontWeightSemiBold","fontWeightExtraBold","h1","lineHeight","scrollMarginTop","h2","h3","letterSpacing","h4","h5","h6","button","textTransform","subtitle1","body1","body2","caption","allVariants","htmlFontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","subtitle2","overline","inherit","MuiBadge","overlap","unstable_sxConfig","border","themeKey","borderTop","borderRight","borderLeft","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","bgcolor","cssProperty","pt","pr","pl","px","py","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd","mt","mr","ml","mx","my","marginBottom","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd","displayPrint","overflow","textOverflow","visibility","whiteSpace","flexBasis","alignContent","flex","alignSelf","justifyItems","justifySelf","rowGap","columnGap","gridColumn","gridRow","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","zIndex","top","right","bottom","minWidth","fontStyle","mixins","toolbar","\"@media (min-width:0px)\"","\"@media (orientation: landscape)\"","\"@media (min-width:600px)\"","shadows","easing","easeInOut","easeOut","easeIn","sharp","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","mobileStepper","fab","speedDial","appBar","drawer","snackbar","createTheme","responsiveFontSizes","sagaMiddleware","middleware","store","createSagaMiddleware","thunk","createStore","rootReducer","applyMiddleware","runSaga","run","StyledEngineProvider","injectFirst","ThemeProvider","CssBaseline","AppRouter","ToastContainer","createRoot","render","App","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","amdO","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","getter","__esModule","getPrototypeOf","ns","def","getOwnPropertyNames","definition","globalThis","Function","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","scriptUrl","importScripts","currentScript","tagName","scripts","getElementsByTagName","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}
|