{"version":3,"sources":["constants/index.ts","../api/base.ts","../api/api.ts","apis.ts","utils/configUtil.ts","utils/historyUtil.ts","utils/oidcUtil.ts","store/action/alert.ts","store/action/index.ts","store/reducer/index.ts","store/reducer/createReducer.ts","store/index.tsx","store/action/bindActions.ts","components/UserInfo.tsx","assets/logo.svg","assets/logo_elma_bot.svg","layouts/BaseLayout.tsx","components/tenants/TenantDeletion.tsx","pages/tenants/TenantList.tsx","components/tenants/ExternalInfoListEdit.tsx","pages/tenants/TenantAdd.tsx","components/tenants/ExternalInfoListView.tsx","pages/tenants/TenantCard.tsx","pages/tenants/TenantEdit.tsx","components/roles/RoleDeletion.tsx","pages/roles/RoleList.tsx","pages/roles/RoleAdd.tsx","pages/roles/RoleCard.tsx","pages/roles/RoleEdit.tsx","components/users/UserDeletion.tsx","pages/users/UserList.tsx","components/users/LoginInfoListEdit.tsx","pages/users/UserAdd.tsx","components/users/PasswordChanging.tsx","components/users/LoginInfoListView.tsx","pages/users/UserCard.tsx","pages/users/UserEdit.tsx","App.tsx","serviceWorker.ts","components/Alerts.tsx","index.tsx"],"names":["ActionTypes","AlertTypes","BASE_PATH","replace","BaseAPI","configuration","basePath","axios","globalAxios","this","RequiredError","field","msg","name","Error","ApplicationApiAxiosParamCreator","getAboutInfo","a","key","options","localVarPath","localVarUrlObj","URL","baseOptions","localVarRequestOptions","method","localVarHeaderParameter","localVarQueryParameter","queryParameters","URLSearchParams","search","set","query","toString","headersFromBaseOptions","headers","url","pathname","hash","getHealthInfo","ApplicationApiFp","localVarAxiosArgs","axiosRequestArgs","request","ApplicationApi","then","ConfigurationApiAxiosParamCreator","getClientConfig","ConfigurationApiFp","ConfigurationApi","RoleApiAxiosParamCreator","createRole","roleCreationRequest","needsSerialization","nonString","isJsonMime","data","JSON","stringify","undefined","deleteRole","id","encodeURIComponent","String","getRole","searchRoles","filtration","pageIndex","pageSize","withTotal","fromItemInclusive","toItemExclusive","updateRole","roleUpdatingRequest","RoleApiFp","RoleApi","TenantApiAxiosParamCreator","createTenant","tenantCreationRequest","deleteTenant","getTenant","searchTenants","updateTenant","tenantUpdatingRequest","TenantApiFp","TenantApi","UserApiAxiosParamCreator","changeUserPassword","passwordChangingRequest","createUser","userCreationRequest","deleteUser","getUser","searchUsers","updateUser","userUpdatingRequest","UserApiFp","UserApi","BASEPATH","window","location","origin","applicationApi","configurationApi","tenantApi","roleApi","userApi","config","getConfig","response","console","log","browserHistory","createBrowserHistory","currentManager","currentState","currentUser","currentReloading","Log","logger","getManager","manager","oidc","authentication","openIdConnect","settings","redirect_uri","post_logout_redirect_uri","UserManager","getProfile","user","userId","profile","sub","userName","tenantId","createArgs","state","loginUser","args","signinRedirect","logoutUser","signoutRedirect","clearSession","removeUser","clearStaleState","reloginUser","isLoginCallback","startsWith","isLogoutCallback","isInvalidCallback","indexOf","processLoginCallback","signinRedirectCallback","processLogoutCallback","signoutRedirectCallback","processNormalRequest","hasRequiredRole","role","Array","isArray","includes","updateBrowserHistory","setupManager","events","addUserLoaded","addUserUnloaded","reloginOnSessionExpiration","addUserSignedOut","reloginOnSilentRenewError","addSilentRenewError","processAuth","expired","instance","cancelSource","CancelToken","source","interceptors","use","token","access_token","Authorization","res","err","status","StatusCodes","UNAUTHORIZED","cancel","setupAxios","create","result","call","handlers","forEach","handler","fulfilled","rejected","overrideAxios","SetAlert","alert","dispatch","type","SET_ALERT","payload","RemoveAlert","REMOVE_ALERT","actions","reducer","Object","keys","prototype","hasOwnProperty","action","producer","nextState","createReducer","alerts","uuid","filter","item","initialState","StoreContext","React","createContext","StoreProvider","props","useReducer","stateRef","useRef","current","store","getState","boundActions","reduce","actionName","bind","value","Provider","children","handleAction","e","UserInfo","userMenu","onClick","Item","icon","LogoutOutlined","overlay","UserOutlined","DownOutlined","_extends","assign","target","i","arguments","length","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","createElement","d","fill","fillRule","clipRule","_ref","svgRef","title","width","height","viewBox","ref","ForwardRef","forwardRef","clipPath","Header","Layout","Content","Sider","BaseLayout","history","useHistory","useLocation","useContext","useState","collapsed","setCollapsed","selectedKeys","setSelectedKeys","description","version","appInfo","setAppInfo","menuItems","path","ContainerOutlined","content","TeamOutlined","useEffect","map","loadAppInfoAsync","ERROR","message","className","collapsible","theme","trigger","mode","clickParam","push","menuItem","MenuUnfoldOutlined","MenuFoldOutlined","TenantDeletion","tenant","onDeleted","modalVisible","setModalVisible","deletionDisabled","setDeletionDisabled","onModalCancel","onDelete","SUCCESS","placement","danger","DeleteOutlined","destroyOnClose","footer","align","justify","style","RollbackOutlined","disabled","visible","onCancel","onFinish","placeholder","onChange","TenantList","loading","setLoading","tenants","setTenants","total","setTotal","pagination","setPagination","loadDataAsync","items","totalItemCount","loadData","columns","dataIndex","ellipsis","render","_text","to","EditOutlined","marginRight","onEditBtnClick","extra","PlusCircleOutlined","dataSource","tablePagination","ExternalInfoListEdit","externals","onChanged","_","index","required","providerId","onProviderIdChanged","onTenantIdChanged","onAddItem","__","splice","onRemoveItem","TenantAdd","Form","useForm","form","saving","setSaving","setExternals","newTenant","getFieldValue","layout","label","rules","htmlType","SaveOutlined","ExternalInfoListView","TenantCard","useParams","setTenant","size","direction","bordered","column","TenantEdit","setFieldsValue","RoleDeletion","RoleList","roles","setRoles","RoleAdd","newRole","UNPROCESSABLE_ENTITY","problem","errors","k","setFields","RoleCard","setRole","RoleEdit","UserDeletion","login","UserList","users","setUsers","LoginInfoListEdit","logins","loginProvider","providerKey","providerDisplayName","onLoginProviderChanged","onProviderKeyChanged","onProviderDisplayNameChanged","setLogins","newUser","password","email","phoneNumber","fullName","shortName","familyName","givenName","middleName","roleNames","tenantNames","IDENTITY_ERROR_PREFIX","PasswordChanging","closeModal","currentPassword","newPassword","changingRequest","submit","UserCard","setUser","LoginInfoListView","App","exact","UserAdd","UserEdit","Boolean","hostname","match","Alerts","onAlertClose","setTimeout","position","top","right","maxWidth","minWidth","maxHeight","zIndex","padding","overflow","display","flexDirection","alignItems","closable","showIcon","onClose","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister","catch","error"],"mappings":"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","file":"static/js/main.27615706.chunk.js","sourcesContent":["export const BASEPATH = window.location.origin;\n\nexport const IDENTITY_ERROR_PREFIX = 'identity_';\n\nexport enum ActionTypes {\n SET_ALERT = 'SET_ALERT',\n REMOVE_ALERT = 'REMOVE_ALERT',\n}\n\nexport enum AlertTypes {\n SUCCESS = 'success',\n INFO = 'info',\n WARNING = 'warning',\n ERROR = 'error',\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Администрирование ELMA Bot\n * Управление пользователями, тенантами и т.д.\n *\n * The version of the OpenAPI document: 1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport { Configuration } from \"./configuration\";\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport globalAxios, { AxiosPromise, AxiosInstance } from 'axios';\n\nexport const BASE_PATH = \"http://localhost\".replace(/\\/+$/, \"\");\n\n/**\n *\n * @export\n */\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\n/**\n *\n * @export\n * @interface RequestArgs\n */\nexport interface RequestArgs {\n url: string;\n options: any;\n}\n\n/**\n *\n * @export\n * @class BaseAPI\n */\nexport class BaseAPI {\n protected configuration: Configuration | undefined;\n\n constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {\n if (configuration) {\n this.configuration = configuration;\n this.basePath = configuration.basePath || this.basePath;\n }\n }\n};\n\n/**\n *\n * @export\n * @class RequiredError\n * @extends {Error}\n */\nexport class RequiredError extends Error {\n name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * Администрирование ELMA Bot\n * Управление пользователями, тенантами и т.д.\n *\n * The version of the OpenAPI document: 1.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport { Configuration } from './configuration';\nimport globalAxios, { AxiosPromise, AxiosInstance } from 'axios';\n// Some imports not used depending on template conditions\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from './base';\n\n/**\n * Модель информации о приложении.\n * @export\n * @interface AboutModel\n */\nexport interface AboutModel {\n /**\n * Наименование.\n * @type {string}\n * @memberof AboutModel\n */\n name?: string | null;\n /**\n * Описание.\n * @type {string}\n * @memberof AboutModel\n */\n description?: string | null;\n /**\n * Версия.\n * @type {string}\n * @memberof AboutModel\n */\n version?: string | null;\n}\n/**\n * Модель информации о работоспособности.\n * @export\n * @interface HealthModel\n */\nexport interface HealthModel {\n /**\n * Статус работоспособности.\n * @type {string}\n * @memberof HealthModel\n */\n status?: string | null;\n}\n/**\n * \n * @export\n * @interface PasswordChangingRequest\n */\nexport interface PasswordChangingRequest {\n /**\n * \n * @type {string}\n * @memberof PasswordChangingRequest\n */\n currentPassword: string;\n /**\n * \n * @type {string}\n * @memberof PasswordChangingRequest\n */\n newPassword: string;\n}\n/**\n * \n * @export\n * @interface ProblemDetails\n */\nexport interface ProblemDetails {\n [key: string]: any | any;\n\n /**\n * \n * @type {string}\n * @memberof ProblemDetails\n */\n type?: string | null;\n /**\n * \n * @type {string}\n * @memberof ProblemDetails\n */\n title?: string | null;\n /**\n * \n * @type {number}\n * @memberof ProblemDetails\n */\n status?: number | null;\n /**\n * \n * @type {string}\n * @memberof ProblemDetails\n */\n detail?: string | null;\n /**\n * \n * @type {string}\n * @memberof ProblemDetails\n */\n instance?: string | null;\n}\n/**\n * \n * @export\n * @interface RoleCreationRequest\n */\nexport interface RoleCreationRequest {\n /**\n * \n * @type {string}\n * @memberof RoleCreationRequest\n */\n name: string;\n /**\n * \n * @type {string}\n * @memberof RoleCreationRequest\n */\n description?: string | null;\n}\n/**\n * \n * @export\n * @interface RoleCreationResponse\n */\nexport interface RoleCreationResponse {\n /**\n * \n * @type {string}\n * @memberof RoleCreationResponse\n */\n id?: string | null;\n}\n/**\n * \n * @export\n * @interface RoleModel\n */\nexport interface RoleModel {\n /**\n * \n * @type {string}\n * @memberof RoleModel\n */\n id?: string | null;\n /**\n * \n * @type {string}\n * @memberof RoleModel\n */\n name?: string | null;\n /**\n * \n * @type {string}\n * @memberof RoleModel\n */\n description?: string | null;\n}\n/**\n * \n * @export\n * @interface RoleModelPaginationResponse\n */\nexport interface RoleModelPaginationResponse {\n /**\n * \n * @type {Array}\n * @memberof RoleModelPaginationResponse\n */\n items?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof RoleModelPaginationResponse\n */\n hasMore?: boolean;\n /**\n * \n * @type {number}\n * @memberof RoleModelPaginationResponse\n */\n pageIndex?: number;\n /**\n * \n * @type {number}\n * @memberof RoleModelPaginationResponse\n */\n pageSize?: number;\n /**\n * \n * @type {number}\n * @memberof RoleModelPaginationResponse\n */\n totalItemCount?: number | null;\n /**\n * \n * @type {number}\n * @memberof RoleModelPaginationResponse\n */\n totalPageCount?: number | null;\n /**\n * \n * @type {number}\n * @memberof RoleModelPaginationResponse\n */\n fromItemInclusive?: number;\n /**\n * \n * @type {number}\n * @memberof RoleModelPaginationResponse\n */\n toItemExclusive?: number;\n}\n/**\n * \n * @export\n * @interface RoleUpdatingRequest\n */\nexport interface RoleUpdatingRequest {\n /**\n * \n * @type {string}\n * @memberof RoleUpdatingRequest\n */\n name: string;\n /**\n * \n * @type {string}\n * @memberof RoleUpdatingRequest\n */\n description?: string | null;\n}\n/**\n * \n * @export\n * @interface TenantCreationRequest\n */\nexport interface TenantCreationRequest {\n /**\n * \n * @type {string}\n * @memberof TenantCreationRequest\n */\n name: string;\n /**\n * \n * @type {string}\n * @memberof TenantCreationRequest\n */\n description?: string | null;\n /**\n * \n * @type {Array}\n * @memberof TenantCreationRequest\n */\n externals?: Array | null;\n}\n/**\n * \n * @export\n * @interface TenantCreationResponse\n */\nexport interface TenantCreationResponse {\n /**\n * \n * @type {string}\n * @memberof TenantCreationResponse\n */\n id?: string | null;\n}\n/**\n * \n * @export\n * @interface TenantExternalInfoModel\n */\nexport interface TenantExternalInfoModel {\n /**\n * \n * @type {string}\n * @memberof TenantExternalInfoModel\n */\n providerId: string;\n /**\n * \n * @type {string}\n * @memberof TenantExternalInfoModel\n */\n tenantId: string;\n}\n/**\n * \n * @export\n * @interface TenantModel\n */\nexport interface TenantModel {\n /**\n * \n * @type {string}\n * @memberof TenantModel\n */\n id?: string | null;\n /**\n * \n * @type {string}\n * @memberof TenantModel\n */\n name?: string | null;\n /**\n * \n * @type {string}\n * @memberof TenantModel\n */\n description?: string | null;\n /**\n * \n * @type {Array}\n * @memberof TenantModel\n */\n externals?: Array | null;\n}\n/**\n * \n * @export\n * @interface TenantModelPaginationResponse\n */\nexport interface TenantModelPaginationResponse {\n /**\n * \n * @type {Array}\n * @memberof TenantModelPaginationResponse\n */\n items?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof TenantModelPaginationResponse\n */\n hasMore?: boolean;\n /**\n * \n * @type {number}\n * @memberof TenantModelPaginationResponse\n */\n pageIndex?: number;\n /**\n * \n * @type {number}\n * @memberof TenantModelPaginationResponse\n */\n pageSize?: number;\n /**\n * \n * @type {number}\n * @memberof TenantModelPaginationResponse\n */\n totalItemCount?: number | null;\n /**\n * \n * @type {number}\n * @memberof TenantModelPaginationResponse\n */\n totalPageCount?: number | null;\n /**\n * \n * @type {number}\n * @memberof TenantModelPaginationResponse\n */\n fromItemInclusive?: number;\n /**\n * \n * @type {number}\n * @memberof TenantModelPaginationResponse\n */\n toItemExclusive?: number;\n}\n/**\n * \n * @export\n * @interface TenantUpdatingRequest\n */\nexport interface TenantUpdatingRequest {\n /**\n * \n * @type {string}\n * @memberof TenantUpdatingRequest\n */\n name: string;\n /**\n * \n * @type {string}\n * @memberof TenantUpdatingRequest\n */\n description?: string | null;\n /**\n * \n * @type {Array}\n * @memberof TenantUpdatingRequest\n */\n externals?: Array | null;\n}\n/**\n * \n * @export\n * @interface UserCreationRequest\n */\nexport interface UserCreationRequest {\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n login: string;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n password: string;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n email: string;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n phoneNumber: string;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n fullName: string;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n shortName: string;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n familyName: string;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n givenName: string;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n middleName?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n tenantNames?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserCreationRequest\n */\n roleNames?: string | null;\n /**\n * \n * @type {Array}\n * @memberof UserCreationRequest\n */\n logins?: Array | null;\n}\n/**\n * \n * @export\n * @interface UserCreationResponse\n */\nexport interface UserCreationResponse {\n /**\n * \n * @type {string}\n * @memberof UserCreationResponse\n */\n id?: string | null;\n}\n/**\n * \n * @export\n * @interface UserLoginInfoModel\n */\nexport interface UserLoginInfoModel {\n /**\n * \n * @type {string}\n * @memberof UserLoginInfoModel\n */\n loginProvider: string;\n /**\n * \n * @type {string}\n * @memberof UserLoginInfoModel\n */\n providerKey: string;\n /**\n * \n * @type {string}\n * @memberof UserLoginInfoModel\n */\n providerDisplayName?: string | null;\n}\n/**\n * \n * @export\n * @interface UserModel\n */\nexport interface UserModel {\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n id?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n login?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n password?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n email?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n phoneNumber?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n fullName?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n shortName?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n familyName?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n givenName?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n middleName?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n tenantNames?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserModel\n */\n roleNames?: string | null;\n /**\n * \n * @type {Array}\n * @memberof UserModel\n */\n logins?: Array | null;\n}\n/**\n * \n * @export\n * @interface UserModelPaginationResponse\n */\nexport interface UserModelPaginationResponse {\n /**\n * \n * @type {Array}\n * @memberof UserModelPaginationResponse\n */\n items?: Array | null;\n /**\n * \n * @type {boolean}\n * @memberof UserModelPaginationResponse\n */\n hasMore?: boolean;\n /**\n * \n * @type {number}\n * @memberof UserModelPaginationResponse\n */\n pageIndex?: number;\n /**\n * \n * @type {number}\n * @memberof UserModelPaginationResponse\n */\n pageSize?: number;\n /**\n * \n * @type {number}\n * @memberof UserModelPaginationResponse\n */\n totalItemCount?: number | null;\n /**\n * \n * @type {number}\n * @memberof UserModelPaginationResponse\n */\n totalPageCount?: number | null;\n /**\n * \n * @type {number}\n * @memberof UserModelPaginationResponse\n */\n fromItemInclusive?: number;\n /**\n * \n * @type {number}\n * @memberof UserModelPaginationResponse\n */\n toItemExclusive?: number;\n}\n/**\n * \n * @export\n * @interface UserUpdatingRequest\n */\nexport interface UserUpdatingRequest {\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n login: string;\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n email: string;\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n phoneNumber: string;\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n fullName: string;\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n shortName: string;\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n familyName: string;\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n givenName: string;\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n middleName?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n tenantNames?: string | null;\n /**\n * \n * @type {string}\n * @memberof UserUpdatingRequest\n */\n roleNames?: string | null;\n /**\n * \n * @type {Array}\n * @memberof UserUpdatingRequest\n */\n logins?: Array | null;\n}\n/**\n * \n * @export\n * @interface ValidationProblemDetails\n */\nexport interface ValidationProblemDetails {\n /**\n * \n * @type {{ [key: string]: Array; }}\n * @memberof ValidationProblemDetails\n */\n errors?: { [key: string]: Array; } | null;\n /**\n * \n * @type {string}\n * @memberof ValidationProblemDetails\n */\n type?: string | null;\n /**\n * \n * @type {string}\n * @memberof ValidationProblemDetails\n */\n title?: string | null;\n /**\n * \n * @type {number}\n * @memberof ValidationProblemDetails\n */\n status?: number | null;\n /**\n * \n * @type {string}\n * @memberof ValidationProblemDetails\n */\n detail?: string | null;\n /**\n * \n * @type {string}\n * @memberof ValidationProblemDetails\n */\n instance?: string | null;\n}\n\n/**\n * ApplicationApi - axios parameter creator\n * @export\n */\nexport const ApplicationApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Получить информацию о приложении.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAboutInfo: async (options: any = {}): Promise => {\n const localVarPath = `/api/v1/info/application/about`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @summary Получить информацию о работоспособности.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getHealthInfo: async (options: any = {}): Promise => {\n const localVarPath = `/api/v1/info/application/health`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * ApplicationApi - functional programming interface\n * @export\n */\nexport const ApplicationApiFp = function(configuration?: Configuration) {\n return {\n /**\n * \n * @summary Получить информацию о приложении.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getAboutInfo(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await ApplicationApiAxiosParamCreator(configuration).getAboutInfo(options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @summary Получить информацию о работоспособности.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getHealthInfo(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await ApplicationApiAxiosParamCreator(configuration).getHealthInfo(options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n }\n};\n\n/**\n * ApplicationApi - factory interface\n * @export\n */\nexport const ApplicationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n return {\n /**\n * \n * @summary Получить информацию о приложении.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getAboutInfo(options?: any): AxiosPromise {\n return ApplicationApiFp(configuration).getAboutInfo(options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @summary Получить информацию о работоспособности.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getHealthInfo(options?: any): AxiosPromise {\n return ApplicationApiFp(configuration).getHealthInfo(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * ApplicationApi - object-oriented interface\n * @export\n * @class ApplicationApi\n * @extends {BaseAPI}\n */\nexport class ApplicationApi extends BaseAPI {\n /**\n * \n * @summary Получить информацию о приложении.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ApplicationApi\n */\n public getAboutInfo(options?: any) {\n return ApplicationApiFp(this.configuration).getAboutInfo(options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @summary Получить информацию о работоспособности.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ApplicationApi\n */\n public getHealthInfo(options?: any) {\n return ApplicationApiFp(this.configuration).getHealthInfo(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * ConfigurationApi - axios parameter creator\n * @export\n */\nexport const ConfigurationApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @summary Получить конфигурацию клиента.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getClientConfig: async (options: any = {}): Promise => {\n const localVarPath = `/api/v1/info/configuration/client`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * ConfigurationApi - functional programming interface\n * @export\n */\nexport const ConfigurationApiFp = function(configuration?: Configuration) {\n return {\n /**\n * \n * @summary Получить конфигурацию клиента.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getClientConfig(options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await ConfigurationApiAxiosParamCreator(configuration).getClientConfig(options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n }\n};\n\n/**\n * ConfigurationApi - factory interface\n * @export\n */\nexport const ConfigurationApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n return {\n /**\n * \n * @summary Получить конфигурацию клиента.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getClientConfig(options?: any): AxiosPromise {\n return ConfigurationApiFp(configuration).getClientConfig(options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * ConfigurationApi - object-oriented interface\n * @export\n * @class ConfigurationApi\n * @extends {BaseAPI}\n */\nexport class ConfigurationApi extends BaseAPI {\n /**\n * \n * @summary Получить конфигурацию клиента.\n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof ConfigurationApi\n */\n public getClientConfig(options?: any) {\n return ConfigurationApiFp(this.configuration).getClientConfig(options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * RoleApi - axios parameter creator\n * @export\n */\nexport const RoleApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {RoleCreationRequest} [roleCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n createRole: async (roleCreationRequest?: RoleCreationRequest, options: any = {}): Promise => {\n const localVarPath = `/api/v1/auth/membership/roles`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n\n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const nonString = typeof roleCreationRequest !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(localVarRequestOptions.headers['Content-Type'])\n : nonString;\n localVarRequestOptions.data = needsSerialization\n ? JSON.stringify(roleCreationRequest !== undefined ? roleCreationRequest : {})\n : (roleCreationRequest || \"\");\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n deleteRole: async (id: string, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling deleteRole.');\n }\n const localVarPath = `/api/v1/auth/membership/roles/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getRole: async (id: string, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling getRole.');\n }\n const localVarPath = `/api/v1/auth/membership/roles/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n searchRoles: async (filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options: any = {}): Promise => {\n const localVarPath = `/api/v1/auth/membership/roles`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n if (filtration !== undefined) {\n localVarQueryParameter['filtration'] = filtration;\n }\n\n if (pageIndex !== undefined) {\n localVarQueryParameter['PageIndex'] = pageIndex;\n }\n\n if (pageSize !== undefined) {\n localVarQueryParameter['PageSize'] = pageSize;\n }\n\n if (withTotal !== undefined) {\n localVarQueryParameter['WithTotal'] = withTotal;\n }\n\n if (fromItemInclusive !== undefined) {\n localVarQueryParameter['FromItemInclusive'] = fromItemInclusive;\n }\n\n if (toItemExclusive !== undefined) {\n localVarQueryParameter['ToItemExclusive'] = toItemExclusive;\n }\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} id \n * @param {RoleUpdatingRequest} [roleUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateRole: async (id: string, roleUpdatingRequest?: RoleUpdatingRequest, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling updateRole.');\n }\n const localVarPath = `/api/v1/auth/membership/roles/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n\n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const nonString = typeof roleUpdatingRequest !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(localVarRequestOptions.headers['Content-Type'])\n : nonString;\n localVarRequestOptions.data = needsSerialization\n ? JSON.stringify(roleUpdatingRequest !== undefined ? roleUpdatingRequest : {})\n : (roleUpdatingRequest || \"\");\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * RoleApi - functional programming interface\n * @export\n */\nexport const RoleApiFp = function(configuration?: Configuration) {\n return {\n /**\n * \n * @param {RoleCreationRequest} [roleCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async createRole(roleCreationRequest?: RoleCreationRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await RoleApiAxiosParamCreator(configuration).createRole(roleCreationRequest, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async deleteRole(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await RoleApiAxiosParamCreator(configuration).deleteRole(id, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getRole(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await RoleApiAxiosParamCreator(configuration).getRole(id, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async searchRoles(filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await RoleApiAxiosParamCreator(configuration).searchRoles(filtration, pageIndex, pageSize, withTotal, fromItemInclusive, toItemExclusive, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {string} id \n * @param {RoleUpdatingRequest} [roleUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async updateRole(id: string, roleUpdatingRequest?: RoleUpdatingRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await RoleApiAxiosParamCreator(configuration).updateRole(id, roleUpdatingRequest, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n }\n};\n\n/**\n * RoleApi - factory interface\n * @export\n */\nexport const RoleApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n return {\n /**\n * \n * @param {RoleCreationRequest} [roleCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n createRole(roleCreationRequest?: RoleCreationRequest, options?: any): AxiosPromise {\n return RoleApiFp(configuration).createRole(roleCreationRequest, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n deleteRole(id: string, options?: any): AxiosPromise {\n return RoleApiFp(configuration).deleteRole(id, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getRole(id: string, options?: any): AxiosPromise {\n return RoleApiFp(configuration).getRole(id, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n searchRoles(filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options?: any): AxiosPromise {\n return RoleApiFp(configuration).searchRoles(filtration, pageIndex, pageSize, withTotal, fromItemInclusive, toItemExclusive, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} id \n * @param {RoleUpdatingRequest} [roleUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateRole(id: string, roleUpdatingRequest?: RoleUpdatingRequest, options?: any): AxiosPromise {\n return RoleApiFp(configuration).updateRole(id, roleUpdatingRequest, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * RoleApi - object-oriented interface\n * @export\n * @class RoleApi\n * @extends {BaseAPI}\n */\nexport class RoleApi extends BaseAPI {\n /**\n * \n * @param {RoleCreationRequest} [roleCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleApi\n */\n public createRole(roleCreationRequest?: RoleCreationRequest, options?: any) {\n return RoleApiFp(this.configuration).createRole(roleCreationRequest, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleApi\n */\n public deleteRole(id: string, options?: any) {\n return RoleApiFp(this.configuration).deleteRole(id, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleApi\n */\n public getRole(id: string, options?: any) {\n return RoleApiFp(this.configuration).getRole(id, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleApi\n */\n public searchRoles(filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options?: any) {\n return RoleApiFp(this.configuration).searchRoles(filtration, pageIndex, pageSize, withTotal, fromItemInclusive, toItemExclusive, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} id \n * @param {RoleUpdatingRequest} [roleUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof RoleApi\n */\n public updateRole(id: string, roleUpdatingRequest?: RoleUpdatingRequest, options?: any) {\n return RoleApiFp(this.configuration).updateRole(id, roleUpdatingRequest, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * TenantApi - axios parameter creator\n * @export\n */\nexport const TenantApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {TenantCreationRequest} [tenantCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n createTenant: async (tenantCreationRequest?: TenantCreationRequest, options: any = {}): Promise => {\n const localVarPath = `/api/v1/auth/general/tenants`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n\n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const nonString = typeof tenantCreationRequest !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(localVarRequestOptions.headers['Content-Type'])\n : nonString;\n localVarRequestOptions.data = needsSerialization\n ? JSON.stringify(tenantCreationRequest !== undefined ? tenantCreationRequest : {})\n : (tenantCreationRequest || \"\");\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n deleteTenant: async (id: string, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling deleteTenant.');\n }\n const localVarPath = `/api/v1/auth/general/tenants/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getTenant: async (id: string, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling getTenant.');\n }\n const localVarPath = `/api/v1/auth/general/tenants/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n searchTenants: async (filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options: any = {}): Promise => {\n const localVarPath = `/api/v1/auth/general/tenants`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n if (filtration !== undefined) {\n localVarQueryParameter['filtration'] = filtration;\n }\n\n if (pageIndex !== undefined) {\n localVarQueryParameter['PageIndex'] = pageIndex;\n }\n\n if (pageSize !== undefined) {\n localVarQueryParameter['PageSize'] = pageSize;\n }\n\n if (withTotal !== undefined) {\n localVarQueryParameter['WithTotal'] = withTotal;\n }\n\n if (fromItemInclusive !== undefined) {\n localVarQueryParameter['FromItemInclusive'] = fromItemInclusive;\n }\n\n if (toItemExclusive !== undefined) {\n localVarQueryParameter['ToItemExclusive'] = toItemExclusive;\n }\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} id \n * @param {TenantUpdatingRequest} [tenantUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateTenant: async (id: string, tenantUpdatingRequest?: TenantUpdatingRequest, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling updateTenant.');\n }\n const localVarPath = `/api/v1/auth/general/tenants/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n\n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const nonString = typeof tenantUpdatingRequest !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(localVarRequestOptions.headers['Content-Type'])\n : nonString;\n localVarRequestOptions.data = needsSerialization\n ? JSON.stringify(tenantUpdatingRequest !== undefined ? tenantUpdatingRequest : {})\n : (tenantUpdatingRequest || \"\");\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * TenantApi - functional programming interface\n * @export\n */\nexport const TenantApiFp = function(configuration?: Configuration) {\n return {\n /**\n * \n * @param {TenantCreationRequest} [tenantCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async createTenant(tenantCreationRequest?: TenantCreationRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await TenantApiAxiosParamCreator(configuration).createTenant(tenantCreationRequest, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async deleteTenant(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await TenantApiAxiosParamCreator(configuration).deleteTenant(id, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getTenant(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await TenantApiAxiosParamCreator(configuration).getTenant(id, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async searchTenants(filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await TenantApiAxiosParamCreator(configuration).searchTenants(filtration, pageIndex, pageSize, withTotal, fromItemInclusive, toItemExclusive, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {string} id \n * @param {TenantUpdatingRequest} [tenantUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async updateTenant(id: string, tenantUpdatingRequest?: TenantUpdatingRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await TenantApiAxiosParamCreator(configuration).updateTenant(id, tenantUpdatingRequest, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n }\n};\n\n/**\n * TenantApi - factory interface\n * @export\n */\nexport const TenantApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n return {\n /**\n * \n * @param {TenantCreationRequest} [tenantCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n createTenant(tenantCreationRequest?: TenantCreationRequest, options?: any): AxiosPromise {\n return TenantApiFp(configuration).createTenant(tenantCreationRequest, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n deleteTenant(id: string, options?: any): AxiosPromise {\n return TenantApiFp(configuration).deleteTenant(id, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getTenant(id: string, options?: any): AxiosPromise {\n return TenantApiFp(configuration).getTenant(id, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n searchTenants(filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options?: any): AxiosPromise {\n return TenantApiFp(configuration).searchTenants(filtration, pageIndex, pageSize, withTotal, fromItemInclusive, toItemExclusive, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} id \n * @param {TenantUpdatingRequest} [tenantUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateTenant(id: string, tenantUpdatingRequest?: TenantUpdatingRequest, options?: any): AxiosPromise {\n return TenantApiFp(configuration).updateTenant(id, tenantUpdatingRequest, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * TenantApi - object-oriented interface\n * @export\n * @class TenantApi\n * @extends {BaseAPI}\n */\nexport class TenantApi extends BaseAPI {\n /**\n * \n * @param {TenantCreationRequest} [tenantCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TenantApi\n */\n public createTenant(tenantCreationRequest?: TenantCreationRequest, options?: any) {\n return TenantApiFp(this.configuration).createTenant(tenantCreationRequest, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TenantApi\n */\n public deleteTenant(id: string, options?: any) {\n return TenantApiFp(this.configuration).deleteTenant(id, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TenantApi\n */\n public getTenant(id: string, options?: any) {\n return TenantApiFp(this.configuration).getTenant(id, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TenantApi\n */\n public searchTenants(filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options?: any) {\n return TenantApiFp(this.configuration).searchTenants(filtration, pageIndex, pageSize, withTotal, fromItemInclusive, toItemExclusive, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} id \n * @param {TenantUpdatingRequest} [tenantUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof TenantApi\n */\n public updateTenant(id: string, tenantUpdatingRequest?: TenantUpdatingRequest, options?: any) {\n return TenantApiFp(this.configuration).updateTenant(id, tenantUpdatingRequest, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n/**\n * UserApi - axios parameter creator\n * @export\n */\nexport const UserApiAxiosParamCreator = function (configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} id \n * @param {PasswordChangingRequest} [passwordChangingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n changeUserPassword: async (id: string, passwordChangingRequest?: PasswordChangingRequest, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling changeUserPassword.');\n }\n const localVarPath = `/api/v1/auth/membership/users/{id}/password`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n\n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const nonString = typeof passwordChangingRequest !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(localVarRequestOptions.headers['Content-Type'])\n : nonString;\n localVarRequestOptions.data = needsSerialization\n ? JSON.stringify(passwordChangingRequest !== undefined ? passwordChangingRequest : {})\n : (passwordChangingRequest || \"\");\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {UserCreationRequest} [userCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n createUser: async (userCreationRequest?: UserCreationRequest, options: any = {}): Promise => {\n const localVarPath = `/api/v1/auth/membership/users`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n\n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const nonString = typeof userCreationRequest !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(localVarRequestOptions.headers['Content-Type'])\n : nonString;\n localVarRequestOptions.data = needsSerialization\n ? JSON.stringify(userCreationRequest !== undefined ? userCreationRequest : {})\n : (userCreationRequest || \"\");\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n deleteUser: async (id: string, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling deleteUser.');\n }\n const localVarPath = `/api/v1/auth/membership/users/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getUser: async (id: string, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling getUser.');\n }\n const localVarPath = `/api/v1/auth/membership/users/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n searchUsers: async (filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options: any = {}): Promise => {\n const localVarPath = `/api/v1/auth/membership/users`;\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n if (filtration !== undefined) {\n localVarQueryParameter['filtration'] = filtration;\n }\n\n if (pageIndex !== undefined) {\n localVarQueryParameter['PageIndex'] = pageIndex;\n }\n\n if (pageSize !== undefined) {\n localVarQueryParameter['PageSize'] = pageSize;\n }\n\n if (withTotal !== undefined) {\n localVarQueryParameter['WithTotal'] = withTotal;\n }\n\n if (fromItemInclusive !== undefined) {\n localVarQueryParameter['FromItemInclusive'] = fromItemInclusive;\n }\n\n if (toItemExclusive !== undefined) {\n localVarQueryParameter['ToItemExclusive'] = toItemExclusive;\n }\n\n\n \n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n /**\n * \n * @param {string} id \n * @param {UserUpdatingRequest} [userUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateUser: async (id: string, userUpdatingRequest?: UserUpdatingRequest, options: any = {}): Promise => {\n // verify required parameter 'id' is not null or undefined\n if (id === null || id === undefined) {\n throw new RequiredError('id','Required parameter id was null or undefined when calling updateUser.');\n }\n const localVarPath = `/api/v1/auth/membership/users/{id}`\n .replace(`{${\"id\"}}`, encodeURIComponent(String(id)));\n // use dummy base URL string because the URL constructor only accepts absolute URLs.\n const localVarUrlObj = new URL(localVarPath, 'https://example.com');\n let baseOptions;\n if (configuration) {\n baseOptions = configuration.baseOptions;\n }\n\n const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};\n const localVarHeaderParameter = {} as any;\n const localVarQueryParameter = {} as any;\n\n // authentication Bearer required\n\n\n \n localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';\n\n const queryParameters = new URLSearchParams(localVarUrlObj.search);\n for (const key in localVarQueryParameter) {\n queryParameters.set(key, localVarQueryParameter[key]);\n }\n for (const key in options.query) {\n queryParameters.set(key, options.query[key]);\n }\n localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();\n let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};\n localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};\n const nonString = typeof userUpdatingRequest !== 'string';\n const needsSerialization = nonString && configuration && configuration.isJsonMime\n ? configuration.isJsonMime(localVarRequestOptions.headers['Content-Type'])\n : nonString;\n localVarRequestOptions.data = needsSerialization\n ? JSON.stringify(userUpdatingRequest !== undefined ? userUpdatingRequest : {})\n : (userUpdatingRequest || \"\");\n\n return {\n url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,\n options: localVarRequestOptions,\n };\n },\n }\n};\n\n/**\n * UserApi - functional programming interface\n * @export\n */\nexport const UserApiFp = function(configuration?: Configuration) {\n return {\n /**\n * \n * @param {string} id \n * @param {PasswordChangingRequest} [passwordChangingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async changeUserPassword(id: string, passwordChangingRequest?: PasswordChangingRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await UserApiAxiosParamCreator(configuration).changeUserPassword(id, passwordChangingRequest, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {UserCreationRequest} [userCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async createUser(userCreationRequest?: UserCreationRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await UserApiAxiosParamCreator(configuration).createUser(userCreationRequest, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async deleteUser(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await UserApiAxiosParamCreator(configuration).deleteUser(id, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async getUser(id: string, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await UserApiAxiosParamCreator(configuration).getUser(id, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async searchUsers(filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await UserApiAxiosParamCreator(configuration).searchUsers(filtration, pageIndex, pageSize, withTotal, fromItemInclusive, toItemExclusive, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n /**\n * \n * @param {string} id \n * @param {UserUpdatingRequest} [userUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n async updateUser(id: string, userUpdatingRequest?: UserUpdatingRequest, options?: any): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> {\n const localVarAxiosArgs = await UserApiAxiosParamCreator(configuration).updateUser(id, userUpdatingRequest, options);\n return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {\n const axiosRequestArgs = {...localVarAxiosArgs.options, url: (configuration?.basePath || basePath) + localVarAxiosArgs.url};\n return axios.request(axiosRequestArgs);\n };\n },\n }\n};\n\n/**\n * UserApi - factory interface\n * @export\n */\nexport const UserApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {\n return {\n /**\n * \n * @param {string} id \n * @param {PasswordChangingRequest} [passwordChangingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n changeUserPassword(id: string, passwordChangingRequest?: PasswordChangingRequest, options?: any): AxiosPromise {\n return UserApiFp(configuration).changeUserPassword(id, passwordChangingRequest, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {UserCreationRequest} [userCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n createUser(userCreationRequest?: UserCreationRequest, options?: any): AxiosPromise {\n return UserApiFp(configuration).createUser(userCreationRequest, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n deleteUser(id: string, options?: any): AxiosPromise {\n return UserApiFp(configuration).deleteUser(id, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n getUser(id: string, options?: any): AxiosPromise {\n return UserApiFp(configuration).getUser(id, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n searchUsers(filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options?: any): AxiosPromise {\n return UserApiFp(configuration).searchUsers(filtration, pageIndex, pageSize, withTotal, fromItemInclusive, toItemExclusive, options).then((request) => request(axios, basePath));\n },\n /**\n * \n * @param {string} id \n * @param {UserUpdatingRequest} [userUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n */\n updateUser(id: string, userUpdatingRequest?: UserUpdatingRequest, options?: any): AxiosPromise {\n return UserApiFp(configuration).updateUser(id, userUpdatingRequest, options).then((request) => request(axios, basePath));\n },\n };\n};\n\n/**\n * UserApi - object-oriented interface\n * @export\n * @class UserApi\n * @extends {BaseAPI}\n */\nexport class UserApi extends BaseAPI {\n /**\n * \n * @param {string} id \n * @param {PasswordChangingRequest} [passwordChangingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserApi\n */\n public changeUserPassword(id: string, passwordChangingRequest?: PasswordChangingRequest, options?: any) {\n return UserApiFp(this.configuration).changeUserPassword(id, passwordChangingRequest, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {UserCreationRequest} [userCreationRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserApi\n */\n public createUser(userCreationRequest?: UserCreationRequest, options?: any) {\n return UserApiFp(this.configuration).createUser(userCreationRequest, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserApi\n */\n public deleteUser(id: string, options?: any) {\n return UserApiFp(this.configuration).deleteUser(id, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} id \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserApi\n */\n public getUser(id: string, options?: any) {\n return UserApiFp(this.configuration).getUser(id, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {object} [filtration] \n * @param {number} [pageIndex] \n * @param {number} [pageSize] \n * @param {boolean} [withTotal] \n * @param {number} [fromItemInclusive] \n * @param {number} [toItemExclusive] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserApi\n */\n public searchUsers(filtration?: object, pageIndex?: number, pageSize?: number, withTotal?: boolean, fromItemInclusive?: number, toItemExclusive?: number, options?: any) {\n return UserApiFp(this.configuration).searchUsers(filtration, pageIndex, pageSize, withTotal, fromItemInclusive, toItemExclusive, options).then((request) => request(this.axios, this.basePath));\n }\n\n /**\n * \n * @param {string} id \n * @param {UserUpdatingRequest} [userUpdatingRequest] \n * @param {*} [options] Override http request option.\n * @throws {RequiredError}\n * @memberof UserApi\n */\n public updateUser(id: string, userUpdatingRequest?: UserUpdatingRequest, options?: any) {\n return UserApiFp(this.configuration).updateUser(id, userUpdatingRequest, options).then((request) => request(this.axios, this.basePath));\n }\n}\n\n\n","import { ApplicationApi, ConfigurationApi, TenantApi, RoleApi, UserApi } from '../api';\n\nimport { BASEPATH } from './constants';\n\nexport const applicationApi = new ApplicationApi(undefined, BASEPATH);\nexport const configurationApi = new ConfigurationApi(undefined, BASEPATH);\nexport const tenantApi = new TenantApi(undefined, BASEPATH);\nexport const roleApi = new RoleApi(undefined, BASEPATH);\nexport const userApi = new UserApi(undefined, BASEPATH);\n","import { configurationApi } from '../apis';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet config: any = null;\n\nconst getConfig = async () => {\n if (config !== null) {\n return config;\n }\n\n try {\n const response = await configurationApi.getClientConfig();\n // eslint-disable-next-line require-atomic-updates\n config = response.data;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log('Ошибка при загрузке конфигурации', e);\n throw e;\n }\n\n return config;\n};\n\nexport { getConfig };\n","import { createBrowserHistory } from 'history';\n\nconst browserHistory = createBrowserHistory();\n\nexport { browserHistory };\n","import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';\nimport { Log, User, UserManager } from 'oidc-client';\nimport { StatusCodes } from 'http-status-codes';\n\nimport { getConfig } from './configUtil';\nimport { browserHistory } from './historyUtil';\n\nconst REQUIRED_ROLE = 'owner';\nconst DEFAULT_PATH = '/tenants';\nconst CALLBACK_PREFIX = '/auth/callback';\nconst LOGGED_OUT_PREFIX = '/auth/logged-out';\n\nlet currentManager: UserManager | null = null;\nlet currentState: string | null = null;\nlet currentUser: User | null = null;\nlet currentReloading = false;\n\nLog.logger = console;\n\ninterface IUserProfile {\n userId: string;\n userName: string;\n tenantId: string;\n}\n\ninterface IAuthArgs {\n state?: string;\n}\n\nconst isReloading = () => {\n return currentReloading;\n};\n\nconst getManager = async (): Promise => {\n let manager = currentManager;\n\n if (manager) {\n return manager;\n }\n\n const config = await getConfig();\n const oidc = config.authentication.openIdConnect;\n const { origin } = window.location;\n const settings = {\n ...oidc,\n // eslint-disable-next-line @typescript-eslint/camelcase\n redirect_uri: (oidc.redirect_uri || origin) + CALLBACK_PREFIX,\n // eslint-disable-next-line @typescript-eslint/camelcase\n post_logout_redirect_uri: (oidc.post_logout_redirect_uri || origin) + LOGGED_OUT_PREFIX,\n };\n\n manager = new UserManager(settings);\n // eslint-disable-next-line require-atomic-updates\n currentManager = manager;\n return manager;\n};\n\nconst getUser = (): User => {\n const user = currentUser;\n\n if (user) {\n return user;\n }\n\n throw new Error('User not logged in.');\n};\n\nconst isAuthenticated = () => {\n const user = currentUser;\n\n if (!user) {\n return false;\n }\n\n return !user.expired;\n};\n\nconst getProfile = (): IUserProfile => {\n const user = getUser();\n\n return {\n userId: user.profile.sub,\n userName: user.profile.name || user.profile.sub,\n tenantId: user.profile['elma.assistant.claims.tenant_id'],\n };\n};\n\nconst createArgs = (): IAuthArgs => {\n const { pathname, search, hash } = window.location;\n return { state: `${pathname}${search}${hash}` };\n};\n\nconst loginUser = async (args?: IAuthArgs) => {\n currentReloading = true;\n args = args ?? createArgs();\n const manager = await getManager();\n await manager.signinRedirect(args);\n};\n\nconst logoutUser = async (args?: IAuthArgs) => {\n currentReloading = true;\n args = args ?? createArgs();\n const manager = await getManager();\n await manager.signoutRedirect(args);\n};\n\nconst clearSession = async () => {\n currentUser = null;\n const manager = await getManager();\n await manager.removeUser();\n await manager.clearStaleState();\n};\n\nconst reloginUser = async (args?: IAuthArgs) => {\n await clearSession();\n await loginUser(args);\n};\n\nconst isLoginCallback = () => {\n return window.location.pathname.startsWith(CALLBACK_PREFIX);\n};\n\nconst isLogoutCallback = () => {\n return window.location.pathname.startsWith(LOGGED_OUT_PREFIX);\n};\n\nconst withOfflineAccess = () => {\n return window.location.search.indexOf('offline_access') >= 0;\n};\n\nconst isInvalidCallback = () => {\n return isLoginCallback() && !withOfflineAccess();\n};\n\nconst isAuthCallback = () => {\n return isLoginCallback() || isLogoutCallback();\n};\n\nconst processLoginCallback = async () => {\n const manager = await getManager();\n const user = await manager.signinRedirectCallback();\n currentState = user.state;\n currentUser = user;\n};\n\nconst processLogoutCallback = async () => {\n const manager = await getManager();\n const response = await manager.signoutRedirectCallback();\n currentState = response.state;\n currentUser = null;\n};\n\nconst processNormalRequest = async () => {\n const manager = await getManager();\n currentState = null;\n currentUser = await manager.getUser();\n};\n\nconst hasRequiredRole = () => {\n const role = currentUser?.profile.role;\n const roles = Array.isArray(role) ? role : [role];\n return roles.includes(REQUIRED_ROLE);\n};\n\nconst updateBrowserHistory = () => {\n const state = currentState || DEFAULT_PATH;\n browserHistory.replace(state);\n};\n\nconst setupManager = async () => {\n const config = await getConfig();\n const oidc = config.authentication.openIdConnect;\n const manager = await getManager();\n\n manager.events.addUserLoaded((user: User) => {\n currentUser = user;\n });\n\n manager.events.addUserUnloaded(() => {\n currentUser = null;\n });\n\n if (oidc.reloginOnSessionExpiration) {\n manager.events.addUserSignedOut(async () => {\n await reloginUser();\n });\n }\n\n if (oidc.reloginOnSilentRenewError) {\n manager.events.addSilentRenewError(async () => {\n await reloginUser();\n });\n }\n};\n\nconst processAuth = async (): Promise => {\n if (isInvalidCallback()) {\n return false;\n }\n\n if (isLoginCallback()) {\n await processLoginCallback();\n } else if (isLogoutCallback()) {\n await processLogoutCallback();\n } else {\n await processNormalRequest();\n }\n\n if (isAuthCallback()) {\n updateBrowserHistory();\n }\n\n if (!isAuthenticated()) {\n await loginUser();\n return false;\n }\n\n if (!hasRequiredRole()) {\n await logoutUser({});\n return false;\n }\n\n await setupManager();\n return true;\n};\n\nconst setupAxios = (instance: AxiosInstance) => {\n const cancelSource = axios.CancelToken.source();\n\n instance.interceptors.request.use((options: AxiosRequestConfig) => {\n const token = currentUser?.access_token;\n if (token) {\n options.headers.Authorization = `Bearer ${token}`;\n }\n return options;\n });\n\n instance.interceptors.response.use(\n (res) => res,\n async (err) => {\n if (err.response && err.response.status === StatusCodes.UNAUTHORIZED) {\n cancelSource.cancel('Unauthorized');\n await reloginUser();\n }\n throw err;\n }\n );\n};\n\nconst overrideAxios = () => {\n const create = axios.create;\n\n axios.create = function (config?: AxiosRequestConfig): AxiosInstance {\n const result = create.call(this, config);\n\n (axios.interceptors.request as any).handlers.forEach((handler: any) => {\n result.interceptors.request.use(handler.fulfilled, handler.rejected);\n });\n\n (axios.interceptors.response as any).handlers.forEach((handler: any) => {\n result.interceptors.response.use(handler.fulfilled, handler.rejected);\n });\n\n return result;\n };\n};\n\nsetupAxios(axios);\noverrideAxios();\n\nexport { isReloading, getProfile, logoutUser, processAuth };\n","import { ActionTypes } from '../../constants';\nimport { isReloading } from '../../utils/oidcUtil';\nimport { IAlert, IStore } from '../types';\n\nexport const SetAlert = async ({ dispatch }: IStore, alert: IAlert) => {\n if (isReloading()) {\n return;\n }\n\n dispatch({\n type: ActionTypes.SET_ALERT,\n payload: alert,\n });\n};\n\nexport const RemoveAlert = async ({ dispatch }: IStore, id: string) => {\n dispatch({\n type: ActionTypes.REMOVE_ALERT,\n payload: id,\n });\n};\n","import { IActionHandlers, IStore } from '../types';\n\nimport * as alert from './alert';\n\nconst actions = {\n ...alert,\n};\n\ntype ActionArgumentsType any> = T extends (store: IStore, ...args: infer R) => any\n ? R\n : any[];\n\ntype MapActionCreators = {\n [P in keyof T]: (...rest: ActionArgumentsType) => ReturnType;\n};\n\nexport type Actions = MapActionCreators;\n\nexport default actions;\n","import { uuid } from 'uuidv4';\n\nimport { ActionTypes } from '../../constants';\nimport { IAlert, ReducerFunc } from '../types';\n\nimport createReducer from './createReducer';\n\nconst setAlert: ReducerFunc = (state, alert) => {\n state.alerts = [{ id: uuid(), ...alert }, ...state.alerts];\n return state;\n};\n\nconst removeAlert: ReducerFunc = (state, id) => {\n state.alerts = state.alerts.filter((item) => item.id !== id);\n return state;\n};\n\nexport const reducer = createReducer({\n [ActionTypes.SET_ALERT]: setAlert,\n [ActionTypes.REMOVE_ALERT]: removeAlert,\n});\n","import producer from 'immer';\n\nimport { ActionType } from '../action/types';\nimport { IState, ReducerFunc } from '../types';\nimport { ActionTypes } from '../../constants';\n\ntype CreateReducerFunc = (\n handlers: {\n [type in ActionTypes]: ReducerFunc;\n }\n) => (state: IState, action: ActionType) => IState;\n\nconst createReducer: CreateReducerFunc = (handlers) => {\n // ensure action created is defined in constants/index.js#ActionTypes\n // when we switch to typescript, this is not need anymore.\n Object.keys(handlers).forEach((type) => {\n if (Object.prototype.hasOwnProperty.call(ActionTypes, type) === false) {\n throw new Error(`action created is not defined in constants/index.js#ActionTypes`);\n }\n });\n\n return (state, action) => {\n const { type, payload } = action;\n\n // ensure action dispatched is defined in constants/index.js#ActionTypes\n if (Object.prototype.hasOwnProperty.call(ActionTypes, type) === false) {\n throw new Error(`action dispatched is not defined in constants/index.js#ActionTypes`);\n }\n\n if (Object.prototype.hasOwnProperty.call(handlers, type)) {\n return producer(state, (nextState) => {\n handlers[type](nextState, payload);\n });\n } else {\n return state;\n }\n };\n};\n\nexport default createReducer;\n","// import { once } from \"lodash\";\nimport React, { useReducer, useRef } from 'react';\n\n// import { prepareAxios } from \"../utils/auth\";\n\nimport actions, { Actions } from './action';\nimport bindActions from './action/bindActions';\nimport { ActionType } from './action/types';\nimport { reducer } from './reducer';\nimport { IState } from './types';\n\nconst initialState: IState = {\n alerts: [],\n};\n\ninterface IStoreContextValue {\n state: IState;\n dispatch: React.Dispatch;\n actions: Actions;\n}\n\nexport const StoreContext = React.createContext({\n state: initialState,\n dispatch: () => ({}),\n actions: {} as Actions,\n});\n\ninterface IStoreProviderProps {\n children: React.ReactNode;\n}\n\n// const prepareAxiosWithStore = once(prepareAxios);\n\nexport const StoreProvider: React.FC = (props) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n const stateRef = useRef(initialState);\n\n stateRef.current = state;\n const getState = () => {\n return stateRef.current;\n };\n\n const boundActions = bindActions({ dispatch, getState }, actions);\n const value = {\n state: getState(),\n actions: boundActions as Actions,\n dispatch,\n };\n\n // prepareAxiosWithStore({ dispatch, getState });\n\n return {props.children};\n};\n","import { IActionHandlers, IBoundActionHandlers, IStore } from '../types';\n\nexport default function bindActions(store: IStore, actions: IActionHandlers) {\n return Object.keys(actions).reduce((boundActions, actionName) => {\n boundActions[actionName] = actions[actionName].bind(null, store);\n return boundActions;\n }, {} as IBoundActionHandlers);\n}\n","import React from 'react';\nimport { Menu, Dropdown, Button } from 'antd';\nimport { UserOutlined, DownOutlined, LogoutOutlined } from '@ant-design/icons';\n\nimport { getProfile, logoutUser } from '../utils/oidcUtil';\n\nconst handleAction = async (e: { key: string }) => {\n switch (e.key) {\n case 'logout':\n await logoutUser({});\n break;\n }\n};\n\nconst UserInfo: React.FC<{}> = () => {\n const profile = getProfile();\n\n const userMenu = (\n \n }>\n Выйти\n \n \n );\n\n return (\n \n \n \n );\n};\n\nexport default UserInfo;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.41296 39.3026C9.68824 40.1375 16.9636 40.6971 20.6517 40.9448V34.1557C17.5324 33.9172 10.8351 33.4401 8.09189 32.7337C7.32123 32.541 6.77994 31.8346 6.77994 31.0089V20.4766H0V31.0089C0 34.9264 2.64225 38.3393 6.41296 39.3026Z\",\n fill: \"#5AD2FF\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39.6707 1.80699C35.0651 0.632656 28.3127 0.00878906 23.0374 0.00878906V6.78873C27.7531 6.78873 33.9183 7.3392 37.9826 8.38509C38.7533 8.57775 39.2946 9.29336 39.2946 10.1191V20.4954H46.0745V10.1007C46.0837 6.18321 43.4506 2.77031 39.6707 1.80699Z\",\n fill: \"#FABE00\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.047 0V6.77994C18.3313 6.77994 12.1661 7.33041 8.09262 8.36712C7.32196 8.56896 6.78067 9.27539 6.78067 10.1011V20.4774L0.000732422 13.6975V10.1011C0.000732422 6.1836 2.6338 2.77069 6.41369 1.80737C11.0193 0.623866 17.7717 0 23.047 0Z\",\n fill: \"#E62D32\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M39.743 39.4807C39.7464 39.4795 39.7497 39.4782 39.753 39.4767C43.2026 37.8803 46.0834 35.4858 46.0834 31.0086V27.2471L39.3034 20.4672V29.1833C39.2987 31.0916 39.1442 31.8865 37.3769 32.7612L20.6519 40.954V49L39.743 39.4807Z\",\n fill: \"#5082E6\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.523 25.1285C17.7524 25.1285 19.5597 23.3211 19.5597 21.0917C19.5597 18.8623 17.7524 17.0549 15.523 17.0549C13.2935 17.0549 11.4862 18.8623 11.4862 21.0917C11.4862 23.3211 13.2935 25.1285 15.523 25.1285Z\",\n fill: \"#5082E6\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.9177 25.1285C33.1472 25.1285 34.9545 23.3211 34.9545 21.0917C34.9545 18.8623 33.1472 17.0549 30.9177 17.0549C28.6883 17.0549 26.881 18.8623 26.881 21.0917C26.881 23.3211 28.6883 25.1285 30.9177 25.1285Z\",\n fill: \"#5082E6\"\n});\n\nvar SvgLogo = function SvgLogo(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 47,\n height: 49,\n viewBox: \"0 0 47 49\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogo, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logo.0fbce9ff.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1_2)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.5664 34.4901C8.4093 35.2227 14.7243 35.7138 17.9256 35.9312V29.9735C15.218 29.7642 9.4047 29.3455 7.0237 28.7256C6.3548 28.5565 5.8849 27.9366 5.8849 27.212V17.9696H0V27.212C0 30.6498 2.2935 33.6447 5.5664 34.4901Z\",\n fill: \"#5AD2FF\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.4337 1.586C30.4361 0.5555 24.575 0.00810051 19.9961 0.00810051V5.9577C24.0893 5.9577 29.4407 6.4407 32.9684 7.3585C33.6374 7.5276 34.1072 8.1556 34.1072 8.8802V17.9857H39.9921V8.864C40.0001 5.4263 37.7146 2.4314 34.4337 1.586Z\",\n fill: \"#FABE00\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.004 0V5.9496C15.9108 5.9496 10.5594 6.4327 7.0237 7.3424C6.3548 7.5195 5.8849 8.1395 5.8849 8.864V17.9696L0 12.02V8.864C0 5.4263 2.2855 2.4314 5.5664 1.586C9.564 0.5475 15.4251 0 20.004 0Z\",\n fill: \"#E62D32\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M34.4965 34.6465C34.4995 34.6455 34.5024 34.6443 34.5052 34.643C37.4994 33.2422 39.9999 31.1409 39.9999 27.212V23.9112L34.115 17.9615V25.6103C34.1108 27.2849 33.9768 27.9824 32.4428 28.7499L17.9255 35.9394V43L34.4965 34.6465Z\",\n fill: \"#5082E6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.4741 22.0518C15.4092 22.0518 16.978 20.4658 16.978 18.5094C16.978 16.553 15.4092 14.967 13.4741 14.967C11.539 14.967 9.97021 16.553 9.97021 18.5094C9.97021 20.4658 11.539 22.0518 13.4741 22.0518Z\",\n fill: \"#5082E6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.8364 22.0518C28.7715 22.0518 30.3403 20.4658 30.3403 18.5094C30.3403 16.553 28.7715 14.967 26.8364 14.967C24.9013 14.967 23.3325 16.553 23.3325 18.5094C23.3325 20.4658 24.9013 22.0518 26.8364 22.0518Z\",\n fill: \"#5082E6\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M76.4476 30.9415V26.0684H62.8947V20.4609H73.1778V15.5879H62.8947V10.5253H76.0764V5.6365H57.4609V30.9415H76.4476ZM143.659 24.9721L141.487 30.935H135.698L145.649 5.6379H151.415L161.366 30.935H155.577L153.405 24.9721H143.659ZM148.548 11.9721L145.46 20.2807H151.62L148.548 11.9721ZM185.5 5.8H175.78V31H186.04C187.216 31 188.272 30.82 189.208 30.46C190.168 30.1 190.984 29.5961 191.656 28.9481C192.328 28.3001 192.844 27.5441 193.204 26.68C193.588 25.792 193.78 24.832 193.78 23.8C193.78 22.624 193.564 21.64 193.132 20.8481C192.7 20.056 192.22 19.408 191.692 18.904C191.068 18.3281 190.384 17.86 189.64 17.5C190.168 17.236 190.648 16.864 191.08 16.384C191.44 15.976 191.764 15.448 192.052 14.8C192.364 14.128 192.52 13.288 192.52 12.28C192.52 11.392 192.34 10.552 191.98 9.76C191.644 8.968 191.164 8.284 190.54 7.708C189.94 7.108 189.208 6.64 188.344 6.304C187.48 5.968 186.532 5.8 185.5 5.8ZM189.712 27.1841C188.8 28.0481 187.576 28.48 186.04 28.48H178.48V18.7601H186.04C186.808 18.7601 187.504 18.904 188.128 19.192C188.752 19.456 189.28 19.816 189.712 20.272C190.144 20.7281 190.48 21.268 190.72 21.892C190.96 22.492 191.08 23.128 191.08 23.8C191.08 25.168 190.624 26.2961 189.712 27.1841ZM188.668 15.304C187.924 16.024 186.868 16.384 185.5 16.384H178.48V8.32H185.5C186.868 8.32 187.924 8.692 188.668 9.436C189.436 10.1561 189.82 11.1041 189.82 12.28C189.82 13.5521 189.436 14.5601 188.668 15.304ZM202.925 30.6761C204.005 31.1321 205.157 31.3601 206.381 31.3601C207.605 31.3601 208.745 31.1321 209.801 30.6761C210.881 30.1961 211.817 29.5601 212.609 28.7681C213.401 27.9521 214.025 27.004 214.481 25.924C214.961 24.82 215.201 23.632 215.201 22.3601C215.201 21.1121 214.961 19.936 214.481 18.832C214.025 17.7281 213.401 16.7801 212.609 15.988C211.817 15.172 210.881 14.536 209.801 14.08C208.745 13.6 207.605 13.3601 206.381 13.3601C205.157 13.3601 204.005 13.6 202.925 14.08C201.869 14.536 200.945 15.172 200.153 15.988C199.361 16.7801 198.725 17.7281 198.245 18.832C197.789 19.936 197.561 21.1121 197.561 22.3601C197.561 23.632 197.789 24.82 198.245 25.924C198.725 27.004 199.361 27.9521 200.153 28.7681C200.945 29.5601 201.869 30.1961 202.925 30.6761ZM208.793 28.516C208.049 28.852 207.245 29.0201 206.381 29.0201C205.517 29.0201 204.701 28.852 203.933 28.516C203.189 28.156 202.529 27.688 201.953 27.112C201.377 26.512 200.921 25.804 200.585 24.988C200.249 24.172 200.081 23.2961 200.081 22.3601C200.081 21.4241 200.249 20.548 200.585 19.732C200.921 18.916 201.377 18.2081 201.953 17.6081C202.529 17.008 203.189 16.54 203.933 16.204C204.701 15.868 205.517 15.7001 206.381 15.7001C207.245 15.7001 208.049 15.868 208.793 16.204C209.561 16.54 210.233 17.008 210.809 17.6081C211.385 18.2081 211.841 18.916 212.177 19.732C212.513 20.548 212.681 21.4241 212.681 22.3601C212.681 23.2961 212.513 24.172 212.177 24.988C211.841 25.804 211.385 26.512 210.809 27.112C210.233 27.712 209.561 28.18 208.793 28.516ZM225.896 31.3601C224.408 31.3601 223.244 30.928 222.404 30.064C221.564 29.2 221.144 27.952 221.144 26.32V16.0601H217.904V13.72H219.884C220.844 13.72 221.324 13.12 221.324 11.92V7.96H223.664V13.72H227.444V16.0601H223.664V26.32C223.664 27.232 223.868 27.9161 224.276 28.3721C224.708 28.8041 225.284 29.0201 226.004 29.0201C226.316 29.0201 226.616 28.9961 226.904 28.9481C227.192 28.9001 227.444 28.8401 227.66 28.7681C227.924 28.6721 228.152 28.576 228.344 28.48V30.82C228.128 30.916 227.888 31.0121 227.624 31.1081C227.408 31.1801 227.144 31.2401 226.832 31.2881C226.544 31.3361 226.232 31.3601 225.896 31.3601ZM82.561 30.935V5.6379H87.994V26.0699H99.731V30.9429H82.561V30.935ZM131.394 5.6379H126.592L117.841 16.6635L109.177 5.6379H104.288V30.9429H109.722V14.144L117.841 24.4271L125.976 14.0729V30.935H131.394V5.6379Z\",\n fill: \"white\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1_2\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 229,\n height: 43,\n fill: \"white\"\n})));\n\nvar SvgLogoElmaBot = function SvgLogoElmaBot(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 229,\n height: 43,\n viewBox: \"0 0 229 43\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogoElmaBot, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logo_elma_bot.f17ce886.svg\";\nexport { ForwardRef as ReactComponent };","import { MenuFoldOutlined, MenuUnfoldOutlined, ContainerOutlined, UserOutlined, TeamOutlined } from '@ant-design/icons';\nimport { Layout, Menu } from 'antd';\nimport { ClickParam } from 'antd/es/menu';\nimport React, { createElement, useContext, useEffect, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router';\n\nimport { AboutModel } from '../../api';\nimport { applicationApi } from '../apis';\nimport { AlertTypes } from '../constants';\nimport { StoreContext } from '../store';\nimport UserInfo from '../components/UserInfo';\nimport { Logo, LogoElmaBot } from '../assets';\n\nconst { Header, Content, Sider } = Layout;\n\ninterface IMenuItem {\n path: string;\n icon: React.ReactNode;\n content: string;\n}\n\nconst BaseLayout: React.FC<{}> = (props) => {\n const { children } = props;\n const history = useHistory();\n const location = useLocation();\n const { SetAlert } = useContext(StoreContext).actions;\n const [collapsed, setCollapsed] = useState(false);\n const [selectedKeys, setSelectedKeys] = useState(['']);\n const [appInfo, setAppInfo] = useState({ name: '', description: '', version: '' } as AboutModel);\n\n const menuItems: IMenuItem[] = [\n {\n path: '/tenants',\n icon: ,\n content: 'Тенанты',\n },\n {\n path: '/roles',\n icon: ,\n content: 'Роли',\n },\n {\n path: '/users',\n icon: ,\n content: 'Пользователи',\n },\n ];\n\n const onMenuClick = (clickParam: ClickParam) => {\n const { key } = clickParam;\n setSelectedKeys([key]);\n history.push(key);\n };\n\n const initSelectedKeys = () => {\n const { pathname } = window.location;\n\n setSelectedKeys(menuItems.filter((item) => pathname.indexOf(item.path) === 0).map((item) => item.path));\n };\n useEffect(initSelectedKeys, []);\n\n const loadAppInfoAsync = async () => {\n try {\n const response = await applicationApi.getAboutInfo();\n setAppInfo(response.data);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке данных о приложении',\n description: e.toString(),\n });\n }\n };\n const loadAppInfo = () => {\n loadAppInfoAsync();\n };\n useEffect(loadAppInfo, []);\n\n const onLocationChanged = () => {\n setSelectedKeys(menuItems.filter((item) => location.pathname.indexOf(item.path) === 0).map((item) => item.path));\n };\n\n useEffect(onLocationChanged, [location]);\n\n return (\n \n \n
\n {collapsed ? (\n \n ) : (\n \n )}\n
\n \n {menuItems.map((menuItem) => (\n \n {menuItem.content}\n \n ))}\n \n
\n \n
\n {createElement(collapsed ? MenuUnfoldOutlined : MenuFoldOutlined, {\n className: 'trigger',\n onClick: () => setCollapsed(!collapsed),\n })}\n Version: {appInfo.version}\n \n
\n \n \n {children}\n \n \n
\n
\n );\n};\n\nexport default BaseLayout;\n","import React, { useContext, useState } from 'react';\nimport { Button, Form, Input, Modal, Row, Tooltip } from 'antd';\nimport { DeleteOutlined, RollbackOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { TenantModel } from '../../../api';\nimport { tenantApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\n\nexport interface ITenantDeletionProps {\n tenant: TenantModel;\n onDeleted: () => void;\n}\n\nconst TenantDeletion: React.FC = ({ tenant, onDeleted = () => {} }) => {\n const { SetAlert } = useContext(StoreContext).actions;\n const [modalVisible, setModalVisible] = useState(false);\n const [deletionDisabled, setDeletionDisabled] = useState(true);\n\n const onOpenModalBtnClick = () => {\n setModalVisible(true);\n };\n\n const onModalCancel = () => {\n setModalVisible(false);\n };\n\n const onDelete = async () => {\n if (deletionDisabled) {\n return;\n }\n\n try {\n await tenantApi.deleteTenant(tenant.id!);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Тенант удален',\n description: tenant.name || '',\n });\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при удалении тенанта',\n description: e.toString(),\n });\n }\n\n setModalVisible(false);\n onDeleted();\n };\n\n const onNameEdit = (e: any) => {\n setDeletionDisabled(e.target.value !== tenant.name);\n };\n\n return (\n
\n \n \n \n ,\n ]}\n title=\"Удаление тенанта\"\n visible={modalVisible}\n onCancel={onModalCancel}\n >\n
\n \n \n \n
\n \n
\n );\n};\n\nexport default TenantDeletion;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Button, PageHeader, Row, Table, Tooltip } from 'antd';\nimport { Link, useHistory } from 'react-router-dom';\nimport { EditOutlined, PlusCircleOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { TenantModel } from '../../../api';\nimport { tenantApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\nimport TenantDeletion from '../../components/tenants/TenantDeletion';\n\nconst TenantList: React.FC<{}> = () => {\n const { SetAlert } = useContext(StoreContext).actions;\n const [loading, setLoading] = useState(false);\n const [tenants, setTenants] = useState([] as TenantModel[]);\n const [total, setTotal] = useState(0);\n const history = useHistory();\n\n const [pagination, setPagination] = useState({\n current: 1,\n pageSize: 25,\n });\n\n const loadDataAsync = async () => {\n setLoading(true);\n try {\n const response = await tenantApi.searchTenants(undefined, pagination.current - 1, pagination.pageSize);\n setTenants(response.data.items || []);\n setTotal(response.data.totalItemCount || 0);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке списка тенантов',\n description: e.toString(),\n });\n }\n setLoading(false);\n };\n const loadData = () => {\n loadDataAsync();\n };\n useEffect(loadData, [pagination]);\n\n const onAddBtnClick = () => {\n history.push('/tenants/add');\n };\n\n const onEditBtnClick = (tenant: TenantModel) => {\n history.push(`/tenants/${tenant.id}/edit`);\n };\n\n const onTableChange = (tablePagination: any) => setPagination(tablePagination);\n\n const columns = [\n {\n title: 'ИД',\n dataIndex: 'id',\n ellipsis: false,\n render: (_text: any, tenant: TenantModel) => (\n \n {tenant.id}\n \n ),\n },\n {\n title: 'Наименование',\n dataIndex: 'name',\n ellipsis: true,\n },\n {\n title: 'Описание',\n dataIndex: 'description',\n ellipsis: true,\n },\n {\n title: 'Действия',\n dataIndex: 'actions',\n render: (_text: any, tenant: TenantModel) => (\n \n \n }\n style={{ marginRight: 4 }}\n type=\"ghost\"\n onClick={() => onEditBtnClick(tenant)}\n />\n \n \n \n ),\n ellipsis: false,\n width: '120px',\n },\n ];\n\n return (\n
\n } type=\"primary\" onClick={onAddBtnClick}>\n Добавить\n ,\n ]}\n title=\"Тенанты\"\n />\n ({ key: i, ...item }))}\n loading={loading}\n pagination={{ ...pagination, total }}\n onChange={onTableChange}\n />\n
\n );\n};\n\nexport default TenantList;\n","import React from 'react';\nimport { Button, Input, Table, Tooltip } from 'antd';\nimport { DeleteOutlined, PlusCircleOutlined } from '@ant-design/icons';\n\nimport { TenantExternalInfoModel } from '../../../api';\n\nexport interface IExternalInfoListEditProps {\n externals: TenantExternalInfoModel[];\n onChanged: (items: TenantExternalInfoModel[]) => void;\n}\n\nconst ExternalInfoListEdit: React.FC = ({ externals, onChanged = () => {} }) => {\n const onProviderIdChanged = (value: string, index: number) => {\n const items = [...externals];\n items[index] = {\n providerId: value,\n tenantId: externals[index].tenantId,\n };\n onChanged(items);\n };\n\n const onTenantIdChanged = (value: string, index: number) => {\n const items = [...externals];\n items[index] = {\n providerId: externals[index].providerId,\n tenantId: value,\n };\n onChanged(items);\n };\n\n const onAddItem = () => {\n const items = [...externals];\n items.push({ providerId: '', tenantId: '' });\n onChanged(items);\n };\n\n const onRemoveItem = (index: number) => {\n const items = [...externals];\n items.splice(index, 1);\n onChanged(items);\n };\n\n const columns = [\n {\n title: 'ИД внешнего поставщика',\n dataIndex: 'providerId',\n key: 'providerId',\n render: (value: string, _: any, index: number) => (\n onProviderIdChanged(e.target.value, index)}\n />\n ),\n },\n {\n title: 'ИД тенанта в поставщике',\n dataIndex: 'tenantId',\n key: 'tenantId',\n render: (value: string, _: any, index: number) => (\n onTenantIdChanged(e.target.value, index)}\n />\n ),\n },\n {\n width: '120px',\n title: () => (\n \n \n \n ),\n render: (_: string, __: any, index: number) => (\n \n \n \n ),\n },\n ];\n\n return ;\n};\n\nexport default ExternalInfoListEdit;\n","import React, { useContext, useState } from 'react';\nimport { Button, Form, Input, PageHeader, Space } from 'antd';\nimport { useHistory } from 'react-router';\nimport { RollbackOutlined, SaveOutlined } from '@ant-design/icons';\n\nimport { TenantCreationRequest, TenantExternalInfoModel } from '../../../api';\nimport { StoreContext } from '../../store';\nimport { tenantApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\nimport ExternalInfoListEdit from '../../components/tenants/ExternalInfoListEdit';\n\nconst TenantAdd: React.FC<{}> = () => {\n const [form] = Form.useForm();\n const [saving, setSaving] = useState(false);\n const { SetAlert } = useContext(StoreContext).actions;\n const history = useHistory();\n const [externals, setExternals] = useState([] as TenantExternalInfoModel[]);\n\n const onExternalsChanged = (items: TenantExternalInfoModel[]) => {\n setExternals(items);\n };\n\n const onFinish = async () => {\n const newTenant: TenantCreationRequest = {\n name: form.getFieldValue('name'),\n description: form.getFieldValue('description'),\n externals: externals,\n };\n\n setSaving(true);\n try {\n const response = await tenantApi.createTenant(newTenant);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Добавлен новый тенант',\n description: newTenant.name,\n });\n history.push(`/tenants/${response.data.id}`);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при сохранении тенанта',\n description: e.toString(),\n });\n setSaving(false);\n }\n };\n\n const onBackBtnClick = () => {\n history.push('/tenants');\n };\n\n return (\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default TenantAdd;\n","import React from 'react';\nimport { Table } from 'antd';\n\nimport { TenantExternalInfoModel } from '../../../api';\n\nexport interface IExternalInfoListViewProps {\n externals: TenantExternalInfoModel[];\n}\n\nconst ExternalInfoListView: React.FC = ({ externals }) => {\n const columns = [\n {\n title: 'ИД внешнего поставщика',\n dataIndex: 'providerId',\n key: 'providerId',\n },\n {\n title: 'ИД тенанта в поставщике',\n dataIndex: 'tenantId',\n key: 'tenantId',\n },\n ];\n\n return
;\n};\n\nexport default ExternalInfoListView;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Avatar, Button, Descriptions, Divider, PageHeader, Row, Space, Spin } from 'antd';\nimport { useParams, useHistory } from 'react-router';\nimport { ContainerOutlined, EditOutlined, RollbackOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { TenantModel } from '../../../api';\nimport { tenantApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\nimport ExternalInfoListView from '../../components/tenants/ExternalInfoListView';\n\nconst TenantCard: React.FC<{}> = () => {\n const { id } = useParams<{ id: string }>();\n const history = useHistory();\n const { SetAlert } = useContext(StoreContext).actions;\n const [loading, setLoading] = useState(false);\n const [tenant, setTenant] = useState({} as TenantModel);\n\n const loadDataAsync = async () => {\n setLoading(true);\n try {\n const response = await tenantApi.getTenant(id);\n setTenant(response.data);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке карточки тенанта',\n description: e.toString(),\n });\n }\n setLoading(false);\n };\n const loadData = () => {\n loadDataAsync();\n };\n useEffect(loadData, []);\n\n const onBackBtnClick = () => {\n history.push('/tenants');\n };\n\n const onEditBtnClick = () => {\n history.push(`/tenants/${tenant.id}/edit`);\n };\n\n if (loading)\n return (\n \n \n \n );\n return (\n
\n } type=\"primary\" onClick={onEditBtnClick}>\n Редактировать\n ,\n ,\n ]}\n title={\n \n } size={64} />\n \n {tenant.name}\n Тенант\n \n \n }\n />\n \n \n {tenant.id}\n {tenant.name}\n {tenant.description}\n \n \n \n
\n );\n};\n\nexport default TenantCard;\n","import React, { useContext, useState, useEffect } from 'react';\nimport { Button, Form, Input, PageHeader, Space } from 'antd';\nimport { useParams } from 'react-router';\nimport { useHistory } from 'react-router';\nimport { RollbackOutlined, SaveOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { TenantModel, TenantExternalInfoModel, TenantUpdatingRequest } from '../../../api';\nimport { tenantApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\nimport ExternalInfoListEdit from '../../components/tenants/ExternalInfoListEdit';\n\nconst TenantEdit: React.FC<{}> = () => {\n const { id } = useParams<{ id: string }>();\n const history = useHistory();\n const [form] = Form.useForm();\n const { SetAlert } = useContext(StoreContext).actions;\n const [loading, setLoading] = useState(false);\n const [tenant, setTenant] = useState({} as TenantModel);\n\n const loadDataAsync = async () => {\n setLoading(true);\n try {\n const response = await tenantApi.getTenant(id);\n setTenant(response.data);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке данных тенанта',\n description: e.toString(),\n });\n }\n setLoading(false);\n };\n const loadData = () => {\n loadDataAsync();\n };\n useEffect(loadData, []);\n\n const loadDataToForm = () => {\n form.setFieldsValue({\n name: tenant.name,\n description: tenant.description,\n });\n };\n useEffect(loadDataToForm, [tenant]);\n\n const onExternalsChanged = (items: TenantExternalInfoModel[]) => {\n setTenant({\n ...tenant,\n externals: items,\n });\n };\n\n const onFinish = async () => {\n const newTenant: TenantUpdatingRequest = {\n name: form.getFieldValue('name'),\n description: form.getFieldValue('description'),\n externals: tenant.externals,\n };\n\n setLoading(true);\n try {\n await tenantApi.updateTenant(id, newTenant);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Тенант изменен',\n description: newTenant.name,\n });\n history.push(`/tenants/${id}`);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при изменении тенанта',\n description: e.toString(),\n });\n setLoading(false);\n }\n };\n\n const onBackBtnClick = () => {\n history.push('/tenants');\n };\n\n return (\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default TenantEdit;\n","import React, { useContext, useState } from 'react';\nimport { Button, Form, Input, Modal, Row, Tooltip } from 'antd';\nimport { DeleteOutlined, RollbackOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { RoleModel } from '../../../api';\nimport { roleApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\n\nexport interface IRoleDeletionProps {\n role: RoleModel;\n onDeleted: () => void;\n}\n\nconst RoleDeletion: React.FC = ({ role, onDeleted = () => {} }) => {\n const { SetAlert } = useContext(StoreContext).actions;\n const [modalVisible, setModalVisible] = useState(false);\n const [deletionDisabled, setDeletionDisabled] = useState(true);\n\n const onOpenModalBtnClick = () => {\n setModalVisible(true);\n };\n\n const onModalCancel = () => {\n setModalVisible(false);\n };\n\n const onDelete = async () => {\n if (deletionDisabled) {\n return;\n }\n\n try {\n await roleApi.deleteRole(role.id!);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Роль удалена',\n description: role.name || '',\n });\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при удалении роли',\n description: e.toString(),\n });\n }\n\n setModalVisible(false);\n onDeleted();\n };\n\n const onNameEdit = (e: any) => {\n setDeletionDisabled(e.target.value !== role.name);\n };\n\n return (\n
\n \n \n \n ,\n ]}\n title=\"Удаление роли\"\n visible={modalVisible}\n onCancel={onModalCancel}\n >\n
\n \n \n \n \n \n
\n );\n};\n\nexport default RoleDeletion;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Button, PageHeader, Row, Table, Tooltip } from 'antd';\nimport { Link, useHistory } from 'react-router-dom';\nimport { EditOutlined, PlusCircleOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { RoleModel } from '../../../api';\nimport { roleApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\nimport RoleDeletion from '../../components/roles/RoleDeletion';\n\nconst RoleList: React.FC<{}> = () => {\n const { SetAlert } = useContext(StoreContext).actions;\n const [loading, setLoading] = useState(false);\n const [roles, setRoles] = useState([] as RoleModel[]);\n const [total, setTotal] = useState(0);\n const history = useHistory();\n\n const [pagination, setPagination] = useState({\n current: 1,\n pageSize: 25,\n });\n\n const loadDataAsync = async () => {\n setLoading(true);\n try {\n const response = await roleApi.searchRoles(undefined, pagination.current - 1, pagination.pageSize);\n setRoles(response.data.items || []);\n setTotal(response.data.totalItemCount || 0);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке списка ролей',\n description: e.toString(),\n });\n }\n setLoading(false);\n };\n const loadData = () => {\n loadDataAsync();\n };\n useEffect(loadData, [pagination]);\n\n const onAddBtnClick = () => {\n history.push('/roles/add');\n };\n\n const onEditBtnClick = (role: RoleModel) => {\n history.push(`/roles/${role.id}/edit`);\n };\n\n const onTableChange = (tablePagination: any) => setPagination(tablePagination);\n\n const columns = [\n {\n title: 'ИД',\n dataIndex: 'id',\n ellipsis: false,\n render: (_text: any, role: RoleModel) => (\n \n {role.id}\n \n ),\n },\n {\n title: 'Наименование',\n dataIndex: 'name',\n ellipsis: true,\n },\n {\n title: 'Описание',\n dataIndex: 'description',\n ellipsis: true,\n },\n {\n title: 'Действия',\n dataIndex: 'actions',\n render: (_text: any, role: RoleModel) => (\n \n \n }\n style={{ marginRight: 4 }}\n type=\"ghost\"\n onClick={() => onEditBtnClick(role)}\n />\n \n \n \n ),\n ellipsis: false,\n width: '120px',\n },\n ];\n\n return (\n
\n } type=\"primary\" onClick={onAddBtnClick}>\n Добавить\n ,\n ]}\n title=\"Роли\"\n />\n ({ key: i, ...item }))}\n loading={loading}\n pagination={{ ...pagination, total }}\n onChange={onTableChange}\n />\n
\n );\n};\n\nexport default RoleList;\n","import React, { useContext, useState } from 'react';\nimport { Button, Form, Input, PageHeader, Space } from 'antd';\nimport { useHistory } from 'react-router';\nimport { RollbackOutlined, SaveOutlined } from '@ant-design/icons';\nimport { StatusCodes } from 'http-status-codes';\n\nimport { RoleCreationRequest } from '../../../api';\nimport { StoreContext } from '../../store';\nimport { roleApi } from '../../apis';\nimport { AlertTypes, IDENTITY_ERROR_PREFIX } from '../../constants';\n\nconst RoleAdd: React.FC<{}> = () => {\n const [form] = Form.useForm();\n const [saving, setSaving] = useState(false);\n const { SetAlert } = useContext(StoreContext).actions;\n const history = useHistory();\n\n const onFinish = async () => {\n const newRole: RoleCreationRequest = {\n name: form.getFieldValue('name'),\n description: form.getFieldValue('description'),\n };\n\n setSaving(true);\n try {\n const response = await roleApi.createRole(newRole);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Добавлена новая роль',\n description: newRole.name,\n });\n history.push(`/roles/${response.data.id}`);\n } catch (e) {\n if (e.response.status === StatusCodes.UNPROCESSABLE_ENTITY) {\n const problem = e.response.data;\n const errors = Object.keys(problem).filter((k) => k.startsWith(IDENTITY_ERROR_PREFIX));\n\n if (errors.length) {\n form.setFields([\n {\n name: 'name',\n value: newRole.name,\n errors: errors.map((k) => problem[k]),\n },\n ]);\n setSaving(false);\n return;\n }\n }\n\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при сохранении роли',\n description: e.toString(),\n });\n setSaving(false);\n }\n };\n\n const onBackBtnClick = () => {\n history.push('/roles');\n };\n\n return (\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default RoleAdd;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Avatar, Button, Descriptions, Divider, PageHeader, Row, Space, Spin } from 'antd';\nimport { useParams, useHistory } from 'react-router';\nimport { TeamOutlined, EditOutlined, RollbackOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { RoleModel } from '../../../api';\nimport { roleApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\n\nconst RoleCard: React.FC<{}> = () => {\n const { id } = useParams<{ id: string }>();\n const history = useHistory();\n const { SetAlert } = useContext(StoreContext).actions;\n const [loading, setLoading] = useState(false);\n const [role, setRole] = useState({} as RoleModel);\n\n const loadDataAsync = async () => {\n setLoading(true);\n try {\n const response = await roleApi.getRole(id);\n setRole(response.data);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке карточки роли',\n description: e.toString(),\n });\n }\n setLoading(false);\n };\n const loadData = () => {\n loadDataAsync();\n };\n useEffect(loadData, []);\n\n const onBackBtnClick = () => {\n history.push('/roles');\n };\n\n const onEditBtnClick = () => {\n history.push(`/roles/${role.id}/edit`);\n };\n\n if (loading)\n return (\n \n \n \n );\n return (\n
\n } type=\"primary\" onClick={onEditBtnClick}>\n Редактировать\n ,\n ,\n ]}\n title={\n \n } size={64} />\n \n {role.name}\n Роль\n \n \n }\n />\n \n \n {role.id}\n {role.name}\n {role.description}\n \n
\n );\n};\n\nexport default RoleCard;\n","import React, { useContext, useState, useEffect } from 'react';\nimport { Button, Form, Input, PageHeader, Space } from 'antd';\nimport { useParams } from 'react-router';\nimport { useHistory } from 'react-router';\nimport { RollbackOutlined, SaveOutlined } from '@ant-design/icons';\nimport { StatusCodes } from 'http-status-codes';\n\nimport { StoreContext } from '../../store';\nimport { RoleModel, RoleUpdatingRequest } from '../../../api';\nimport { roleApi } from '../../apis';\nimport { AlertTypes, IDENTITY_ERROR_PREFIX } from '../../constants';\n\nconst RoleEdit: React.FC<{}> = () => {\n const { id } = useParams<{ id: string }>();\n const history = useHistory();\n const [form] = Form.useForm();\n const { SetAlert } = useContext(StoreContext).actions;\n const [loading, setLoading] = useState(false);\n const [role, setRole] = useState({} as RoleModel);\n\n const loadDataAsync = async () => {\n setLoading(true);\n try {\n const response = await roleApi.getRole(id);\n setRole(response.data);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке данных роли',\n description: e.toString(),\n });\n }\n setLoading(false);\n };\n const loadData = () => {\n loadDataAsync();\n };\n useEffect(loadData, []);\n\n const loadDataToForm = () => {\n form.setFieldsValue({\n name: role.name,\n description: role.description,\n });\n };\n useEffect(loadDataToForm, [role]);\n\n const onFinish = async () => {\n const newRole: RoleUpdatingRequest = {\n name: form.getFieldValue('name'),\n description: form.getFieldValue('description'),\n };\n\n setLoading(true);\n try {\n await roleApi.updateRole(id, newRole);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Роль изменена',\n description: newRole.name,\n });\n history.push(`/roles/${id}`);\n } catch (e) {\n if (e.response.status === StatusCodes.UNPROCESSABLE_ENTITY) {\n const problem = e.response.data;\n const errors = Object.keys(problem).filter((k) => k.startsWith(IDENTITY_ERROR_PREFIX));\n\n if (errors.length) {\n form.setFields([\n {\n name: 'name',\n value: newRole.name,\n errors: errors.map((k) => problem[k]),\n },\n ]);\n setLoading(false);\n return;\n }\n }\n\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при изменении роли',\n description: e.toString(),\n });\n setLoading(false);\n }\n };\n\n const onBackBtnClick = () => {\n history.push('/roles');\n };\n\n return (\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default RoleEdit;\n","import React, { useContext, useState } from 'react';\nimport { Button, Form, Input, Modal, Row, Tooltip } from 'antd';\nimport { DeleteOutlined, RollbackOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { UserModel } from '../../../api';\nimport { userApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\n\nexport interface IUserDeletionProps {\n user: UserModel;\n onDeleted: () => void;\n}\n\nconst UserDeletion: React.FC = ({ user, onDeleted = () => {} }) => {\n const { SetAlert } = useContext(StoreContext).actions;\n const [modalVisible, setModalVisible] = useState(false);\n const [deletionDisabled, setDeletionDisabled] = useState(true);\n\n const onOpenModalBtnClick = () => {\n setModalVisible(true);\n };\n\n const onModalCancel = () => {\n setModalVisible(false);\n };\n\n const onDelete = async () => {\n if (deletionDisabled) {\n return;\n }\n\n try {\n await userApi.deleteUser(user.id!);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Пользователь удален',\n description: user.login || '',\n });\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при удалении пользователя',\n description: e.toString(),\n });\n }\n\n setModalVisible(false);\n onDeleted();\n };\n\n const onLoginEdit = (e: any) => {\n setDeletionDisabled(e.target.value !== user.login);\n };\n\n return (\n
\n \n \n \n ,\n ]}\n title=\"Удаление пользователя\"\n visible={modalVisible}\n onCancel={onModalCancel}\n >\n
\n \n \n \n \n \n
\n );\n};\n\nexport default UserDeletion;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Button, PageHeader, Row, Table, Tooltip } from 'antd';\nimport { Link, useHistory } from 'react-router-dom';\nimport { EditOutlined, PlusCircleOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { UserModel } from '../../../api';\nimport { userApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\nimport UserDeletion from '../../components/users/UserDeletion';\n\nconst UserList: React.FC<{}> = () => {\n const { SetAlert } = useContext(StoreContext).actions;\n const [loading, setLoading] = useState(false);\n const [users, setUsers] = useState([] as UserModel[]);\n const [total, setTotal] = useState(0);\n const history = useHistory();\n\n const [pagination, setPagination] = useState({\n current: 1,\n pageSize: 25,\n });\n\n const loadDataAsync = async () => {\n setLoading(true);\n try {\n const response = await userApi.searchUsers(undefined, pagination.current - 1, pagination.pageSize);\n setUsers(response.data.items || []);\n setTotal(response.data.totalItemCount || 0);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке списка пользователей',\n description: e.toString(),\n });\n }\n setLoading(false);\n };\n const loadData = () => {\n loadDataAsync();\n };\n useEffect(loadData, [pagination]);\n\n const onAddBtnClick = () => {\n history.push('/users/add');\n };\n\n const onEditBtnClick = (user: UserModel) => {\n history.push(`/users/${user.id}/edit`);\n };\n\n const onTableChange = (tablePagination: any) => setPagination(tablePagination);\n\n const columns = [\n {\n title: 'ИД',\n dataIndex: 'id',\n ellipsis: false,\n render: (_text: any, user: UserModel) => (\n \n {user.id}\n \n ),\n },\n {\n title: 'Логин',\n dataIndex: 'login',\n ellipsis: false,\n },\n {\n title: 'Email',\n dataIndex: 'email',\n ellipsis: false,\n },\n {\n title: 'Телефон',\n dataIndex: 'phoneNumber',\n ellipsis: false,\n },\n {\n title: 'Полное ФИО',\n dataIndex: 'fullName',\n ellipsis: true,\n },\n {\n title: 'Краткое ФИО',\n dataIndex: 'shortName',\n ellipsis: true,\n },\n {\n title: 'Тененты',\n dataIndex: 'tenantNames',\n ellipsis: true,\n },\n {\n title: 'Роли',\n dataIndex: 'roleNames',\n ellipsis: true,\n },\n {\n title: 'Действия',\n dataIndex: 'actions',\n render: (_text: any, user: UserModel) => (\n \n \n }\n style={{ marginRight: 4 }}\n type=\"ghost\"\n onClick={() => onEditBtnClick(user)}\n />\n \n \n \n ),\n ellipsis: false,\n width: '120px',\n },\n ];\n\n return (\n
\n } type=\"primary\" onClick={onAddBtnClick}>\n Добавить\n ,\n ]}\n title=\"Пользователи\"\n />\n ({ key: i, ...item }))}\n loading={loading}\n pagination={{ ...pagination, total }}\n onChange={onTableChange}\n />\n
\n );\n};\n\nexport default UserList;\n","import React from 'react';\nimport { Button, Input, Table, Tooltip } from 'antd';\nimport { DeleteOutlined, PlusCircleOutlined } from '@ant-design/icons';\n\nimport { UserLoginInfoModel } from '../../../api';\n\nexport interface ILoginInfoListEditProps {\n logins: UserLoginInfoModel[];\n onChanged: (items: UserLoginInfoModel[]) => void;\n}\n\nconst LoginInfoListEdit: React.FC = ({ logins, onChanged = () => {} }) => {\n const onLoginProviderChanged = (value: string, index: number) => {\n const items = [...logins];\n items[index] = {\n loginProvider: value,\n providerKey: logins[index].providerKey,\n providerDisplayName: logins[index].providerDisplayName,\n };\n onChanged(items);\n };\n\n const onProviderKeyChanged = (value: string, index: number) => {\n const items = [...logins];\n items[index] = {\n loginProvider: logins[index].loginProvider,\n providerKey: value,\n providerDisplayName: logins[index].providerDisplayName,\n };\n onChanged(items);\n };\n\n const onProviderDisplayNameChanged = (value: string, index: number) => {\n const items = [...logins];\n items[index] = {\n loginProvider: logins[index].loginProvider,\n providerKey: logins[index].providerKey,\n providerDisplayName: value,\n };\n onChanged(items);\n };\n\n const onAddItem = () => {\n const items = [...logins];\n items.push({ loginProvider: '', providerKey: '' });\n onChanged(items);\n };\n\n const onRemoveItem = (index: number) => {\n const items = [...logins];\n items.splice(index, 1);\n onChanged(items);\n };\n\n const columns = [\n {\n title: 'ИД внешнего поставщика',\n dataIndex: 'loginProvider',\n key: 'loginProvider',\n render: (value: string, _: any, index: number) => (\n onLoginProviderChanged(e.target.value, index)}\n />\n ),\n },\n {\n title: 'ИД пользователя в поставщике',\n dataIndex: 'providerKey',\n key: 'providerKey',\n render: (value: string, _: any, index: number) => (\n onProviderKeyChanged(e.target.value, index)}\n />\n ),\n },\n {\n title: 'Отображаемое имя пользователя в поставщике',\n dataIndex: 'providerDisplayName',\n key: 'providerDisplayName',\n render: (value: string, _: any, index: number) => (\n onProviderDisplayNameChanged(e.target.value, index)}\n />\n ),\n },\n {\n width: '120px',\n title: () => (\n \n \n \n ),\n render: (_: string, __: any, index: number) => (\n \n \n \n ),\n },\n ];\n\n return
;\n};\n\nexport default LoginInfoListEdit;\n","import React, { useContext, useState } from 'react';\nimport { Button, Form, Input, PageHeader, Space } from 'antd';\nimport { useHistory } from 'react-router';\nimport { RollbackOutlined, SaveOutlined } from '@ant-design/icons';\nimport { StatusCodes } from 'http-status-codes';\n\nimport { UserCreationRequest, UserLoginInfoModel } from '../../../api';\nimport { StoreContext } from '../../store';\nimport { userApi } from '../../apis';\nimport { AlertTypes, IDENTITY_ERROR_PREFIX } from '../../constants';\nimport LoginInfoListEdit from '../../components/users/LoginInfoListEdit';\n\nconst PASSWORD_ERROR_PREFIX = IDENTITY_ERROR_PREFIX + 'Password';\n\nconst RoleAdd: React.FC<{}> = () => {\n const [form] = Form.useForm();\n const [saving, setSaving] = useState(false);\n const { SetAlert } = useContext(StoreContext).actions;\n const history = useHistory();\n const [logins, setLogins] = useState([] as UserLoginInfoModel[]);\n\n const onLoginsChanged = (items: UserLoginInfoModel[]) => {\n setLogins(items);\n };\n\n const onFinish = async () => {\n const newUser: UserCreationRequest = {\n login: form.getFieldValue('login'),\n password: form.getFieldValue('password'),\n email: form.getFieldValue('email'),\n phoneNumber: form.getFieldValue('phoneNumber'),\n fullName: form.getFieldValue('fullName'),\n shortName: form.getFieldValue('shortName'),\n familyName: form.getFieldValue('familyName'),\n givenName: form.getFieldValue('givenName'),\n middleName: form.getFieldValue('middleName'),\n roleNames: form.getFieldValue('roleNames'),\n tenantNames: form.getFieldValue('tenantNames'),\n logins: logins,\n };\n\n setSaving(true);\n try {\n const response = await userApi.createUser(newUser);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Добавлен новый пользователь',\n description: newUser.fullName,\n });\n history.push(`/users/${response.data.id}`);\n } catch (e) {\n if (e.response.status === StatusCodes.UNPROCESSABLE_ENTITY) {\n const problem = e.response.data;\n const errors = Object.keys(problem).filter((k) => k.startsWith(IDENTITY_ERROR_PREFIX));\n\n if (errors.length) {\n form.setFields([\n {\n name: 'login',\n value: newUser.login,\n errors: errors.filter((k) => !k.startsWith(PASSWORD_ERROR_PREFIX)).map((k) => problem[k]),\n },\n {\n name: 'password',\n value: newUser.password,\n errors: errors.filter((k) => k.startsWith(PASSWORD_ERROR_PREFIX)).map((k) => problem[k]),\n },\n ]);\n setSaving(false);\n return;\n }\n }\n\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при сохранении пользователя',\n description: e.toString(),\n });\n setSaving(false);\n }\n };\n\n const onBackBtnClick = () => {\n history.push('/users');\n };\n\n return (\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default RoleAdd;\n","import React, { useContext, useState } from 'react';\nimport { Button, Form, Input, Modal, Row } from 'antd';\nimport { EditOutlined, SaveOutlined, RollbackOutlined } from '@ant-design/icons';\nimport { StatusCodes } from 'http-status-codes';\n\nimport { StoreContext } from '../../store';\nimport { UserModel, PasswordChangingRequest } from '../../../api';\nimport { userApi } from '../../apis';\nimport { AlertTypes, IDENTITY_ERROR_PREFIX } from '../../constants';\n\nexport interface IPasswordChangingProps {\n user: UserModel;\n}\n\nconst PASSWORD_MISMATCH_KEY = IDENTITY_ERROR_PREFIX + 'PasswordMismatch';\n\nconst PasswordChanging: React.FC = ({ user }) => {\n const [form] = Form.useForm();\n const { SetAlert } = useContext(StoreContext).actions;\n const [modalVisible, setModalVisible] = useState(false);\n\n const openModal = () => {\n setModalVisible(true);\n };\n\n const closeModal = () => {\n setModalVisible(false);\n form.setFieldsValue({\n currentPassword: null,\n newPassword: null,\n });\n };\n\n const onSave = () => {\n form.submit();\n };\n\n const onFinish = async () => {\n const changingRequest: PasswordChangingRequest = {\n currentPassword: form.getFieldValue('currentPassword'),\n newPassword: form.getFieldValue('newPassword'),\n };\n\n try {\n await userApi.changeUserPassword(user.id!, changingRequest);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Пароль изменен',\n description: user.login || '',\n });\n } catch (e) {\n if (e.response.status === StatusCodes.UNPROCESSABLE_ENTITY) {\n const problem = e.response.data;\n const errors = Object.keys(problem).filter((k) => k.startsWith(IDENTITY_ERROR_PREFIX));\n\n if (errors.length) {\n form.setFields([\n {\n name: 'currentPassword',\n value: changingRequest.currentPassword,\n errors: errors.filter((k) => k === PASSWORD_MISMATCH_KEY).map((k) => problem[k]),\n },\n {\n name: 'newPassword',\n value: changingRequest.newPassword,\n errors: errors.filter((k) => k !== PASSWORD_MISMATCH_KEY).map((k) => problem[k]),\n },\n ]);\n return;\n }\n }\n\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при изменении пароля',\n description: e.toString(),\n });\n }\n\n closeModal();\n };\n\n return (\n
\n \n \n \n \n ,\n ]}\n title=\"Изменение пароля\"\n visible={modalVisible}\n onCancel={closeModal}\n >\n
\n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default PasswordChanging;\n","import React from 'react';\nimport { Table } from 'antd';\n\nimport { UserLoginInfoModel } from '../../../api';\n\nexport interface ILoginlInfoListViewProps {\n logins: UserLoginInfoModel[];\n}\n\nconst ExternalInfoListView: React.FC = ({ logins }) => {\n const columns = [\n {\n title: 'ИД внешнего поставщика',\n dataIndex: 'loginProvider',\n key: 'loginProvider',\n },\n {\n title: 'ИД пользователя в поставщике',\n dataIndex: 'providerKey',\n key: 'providerKey',\n },\n {\n title: 'Отображаемое имя пользователя в поставщике',\n dataIndex: 'providerDisplayName',\n key: 'providerDisplayName',\n },\n ];\n\n return
;\n};\n\nexport default ExternalInfoListView;\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Avatar, Button, Descriptions, Divider, PageHeader, Row, Space, Spin } from 'antd';\nimport { useParams, useHistory } from 'react-router';\nimport { UserOutlined, EditOutlined, RollbackOutlined } from '@ant-design/icons';\n\nimport { StoreContext } from '../../store';\nimport { UserModel } from '../../../api';\nimport { userApi } from '../../apis';\nimport { AlertTypes } from '../../constants';\nimport PasswordChanging from '../../components/users/PasswordChanging';\nimport LoginInfoListView from '../../components/users/LoginInfoListView';\n\nconst UserCard: React.FC<{}> = () => {\n const { id } = useParams<{ id: string }>();\n const history = useHistory();\n const { SetAlert } = useContext(StoreContext).actions;\n const [loading, setLoading] = useState(false);\n const [user, setUser] = useState({} as UserModel);\n\n const loadDataAsync = async () => {\n setLoading(true);\n try {\n const response = await userApi.getUser(id);\n setUser(response.data);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке карточки пользователя',\n description: e.toString(),\n });\n }\n setLoading(false);\n };\n const loadData = () => {\n loadDataAsync();\n };\n useEffect(loadData, []);\n\n const onBackBtnClick = () => {\n history.push('/users');\n };\n\n const onEditBtnClick = () => {\n history.push(`/users/${user.id}/edit`);\n };\n\n if (loading)\n return (\n \n \n \n );\n return (\n
\n } type=\"primary\" onClick={onEditBtnClick}>\n Редактировать\n ,\n ,\n ]}\n title={\n \n } size={64} />\n \n {user.login}\n Пользователь\n \n \n }\n />\n \n \n {user.id}\n {user.login}\n \n \n \n {user.email}\n {user.phoneNumber}\n {user.fullName}\n {user.shortName}\n {user.familyName}\n {user.givenName}\n {user.middleName}\n {user.tenantNames}\n {user.roleNames}\n \n \n \n
\n );\n};\n\nexport default UserCard;\n","import React, { useContext, useState, useEffect } from 'react';\nimport { Button, Form, Input, PageHeader, Space } from 'antd';\nimport { useParams } from 'react-router';\nimport { useHistory } from 'react-router';\nimport { RollbackOutlined, SaveOutlined } from '@ant-design/icons';\nimport { StatusCodes } from 'http-status-codes';\n\nimport { StoreContext } from '../../store';\nimport { UserModel, UserLoginInfoModel, UserUpdatingRequest } from '../../../api';\nimport { userApi } from '../../apis';\nimport { AlertTypes, IDENTITY_ERROR_PREFIX } from '../../constants';\nimport LoginInfoListEdit from '../../components/users/LoginInfoListEdit';\n\nconst RoleEdit: React.FC<{}> = () => {\n const { id } = useParams<{ id: string }>();\n const history = useHistory();\n const [form] = Form.useForm();\n const { SetAlert } = useContext(StoreContext).actions;\n const [loading, setLoading] = useState(false);\n const [user, setUser] = useState({} as UserModel);\n\n const loadDataAsync = async () => {\n setLoading(true);\n try {\n const response = await userApi.getUser(id);\n setUser(response.data);\n } catch (e) {\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при загрузке данных пользователя',\n description: e.toString(),\n });\n }\n setLoading(false);\n };\n const loadData = () => {\n loadDataAsync();\n };\n useEffect(loadData, []);\n\n const loadDataToForm = () => {\n form.setFieldsValue({\n login: user.login,\n email: user.email,\n phoneNumber: user.phoneNumber,\n fullName: user.fullName,\n shortName: user.shortName,\n familyName: user.familyName,\n givenName: user.givenName,\n middleName: user.middleName,\n roleNames: user.roleNames,\n tenantNames: user.tenantNames,\n });\n };\n useEffect(loadDataToForm, [user]);\n\n const onLoginsChanged = (items: UserLoginInfoModel[]) => {\n setUser({\n ...user,\n logins: items,\n });\n };\n\n const onFinish = async () => {\n const newUser: UserUpdatingRequest = {\n login: form.getFieldValue('login'),\n email: form.getFieldValue('email'),\n phoneNumber: form.getFieldValue('phoneNumber'),\n fullName: form.getFieldValue('fullName'),\n shortName: form.getFieldValue('shortName'),\n familyName: form.getFieldValue('familyName'),\n givenName: form.getFieldValue('givenName'),\n middleName: form.getFieldValue('middleName'),\n roleNames: form.getFieldValue('roleNames'),\n tenantNames: form.getFieldValue('tenantNames'),\n logins: user.logins,\n };\n\n setLoading(true);\n try {\n await userApi.updateUser(id, newUser);\n SetAlert({\n type: AlertTypes.SUCCESS,\n message: 'Пользователь изменен',\n description: newUser.login,\n });\n history.push(`/users/${id}`);\n } catch (e) {\n if (e.response.status === StatusCodes.UNPROCESSABLE_ENTITY) {\n const problem = e.response.data;\n const errors = Object.keys(problem).filter((k) => k.startsWith(IDENTITY_ERROR_PREFIX));\n\n if (errors.length) {\n form.setFields([\n {\n name: 'login',\n value: newUser.login,\n errors: errors.map((k) => problem[k]),\n },\n ]);\n setLoading(false);\n return;\n }\n }\n\n SetAlert({\n type: AlertTypes.ERROR,\n message: 'Ошибка при изменении пользователя',\n description: e.toString(),\n });\n setLoading(false);\n }\n };\n\n const onBackBtnClick = () => {\n history.push('/users');\n };\n\n return (\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nexport default RoleEdit;\n","import React from 'react';\nimport { Redirect, Route, Router, Switch } from 'react-router';\n\nimport './App.less';\nimport { browserHistory } from './utils/historyUtil';\nimport BaseLayout from './layouts/BaseLayout';\nimport TenantList from './pages/tenants/TenantList';\nimport TenantAdd from './pages/tenants/TenantAdd';\nimport TenantCard from './pages/tenants/TenantCard';\nimport TenantEdit from './pages/tenants/TenantEdit';\nimport RoleList from './pages/roles/RoleList';\nimport RoleAdd from './pages/roles/RoleAdd';\nimport RoleCard from './pages/roles/RoleCard';\nimport RoleEdit from './pages/roles/RoleEdit';\nimport UserList from './pages/users/UserList';\nimport UserAdd from './pages/users/UserAdd';\nimport UserCard from './pages/users/UserCard';\nimport UserEdit from './pages/users/UserEdit';\n\nfunction App() {\n return (\n \n \n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n (\n \n \n \n )}\n />\n \n \n \n \n ;\n \n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ninterface IConfig {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n}\n\nexport function register(config?: IConfig) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: IConfig) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: IConfig) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (response.status === 404 || (contentType != null && contentType.indexOf('javascript') === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import React, { useContext, useEffect } from 'react';\nimport { Alert, Space } from 'antd';\n\nimport { StoreContext } from '../store';\nimport { IAlert } from '../store/types';\nimport { AlertTypes } from '../constants';\n\nconst ALERT_CLOSING_TIMEOUT = 5000;\n\nconst Alerts: React.FC<{}> = () => {\n const { state, actions } = useContext(StoreContext);\n const { alerts } = state;\n const { RemoveAlert } = actions;\n\n const onAlertClose = (alert: IAlert) => () => {\n RemoveAlert(alert.id!);\n };\n\n const closeAlerts = () => {\n alerts.forEach((alert) => {\n // ошибки автоматом не скрываем\n if (alert.type === AlertTypes.ERROR) {\n return;\n }\n setTimeout(() => {\n RemoveAlert(alert.id!);\n }, ALERT_CLOSING_TIMEOUT);\n });\n };\n\n useEffect(closeAlerts, [alerts]);\n\n return (\n \n \n {alerts.map((alert) => (\n \n ))}\n \n \n );\n};\n\nexport default Alerts;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { processAuth } from './utils/oidcUtil';\nimport App from './App';\nimport './index.css';\nimport * as serviceWorker from './serviceWorker';\nimport { StoreProvider } from './store';\nimport Alerts from './components/Alerts';\n\n(async () => {\n if (!(await processAuth())) {\n return;\n }\n\n ReactDOM.render(\n \n \n \n ,\n document.getElementById('root')\n );\n\n // If you want your app to work offline and load faster, you can change\n // unregister() to register() below. Note this comes with some pitfalls.\n // Learn more about service workers: https://bit.ly/CRA-PWA\n serviceWorker.unregister();\n})();\n"],"sourceRoot":""}