@arquimedes.co/eureka-forms 2.0.119 → 2.0.121

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/@Types/ErkValue.d.ts +16 -0
  2. package/dist/@Types/ErkValue.js +1 -0
  3. package/dist/@Types/Form.d.ts +1 -0
  4. package/dist/@Types/FormStep.d.ts +8 -1
  5. package/dist/@Types/User.d.ts +13 -0
  6. package/dist/@Types/User.js +1 -0
  7. package/dist/App/AppHooks.js +29 -10
  8. package/dist/Form/Form.js +6 -2
  9. package/dist/Form/Form.module.css +9 -0
  10. package/dist/FormSteps/ClassifierSelectorStep/MaterialClassifierSelectorStep/MaterialClassifierSelectorStep.js +3 -3
  11. package/dist/FormSteps/EntityValueStep/MaterialEntityValuePickerStep/MaterialEntityValuePickerStep.js +132 -30
  12. package/dist/Icons/EmailIcon.d.ts +4 -0
  13. package/dist/Icons/EmailIcon.js +17 -0
  14. package/dist/Icons/LockedIcon.d.ts +4 -0
  15. package/dist/Icons/LockedIcon.js +17 -0
  16. package/dist/Login/Login.module.css +135 -0
  17. package/dist/Login/LoginLayout.module.css +68 -0
  18. package/dist/Login/LoginPage.d.ts +11 -0
  19. package/dist/Login/LoginPage.js +177 -0
  20. package/dist/Login/LoginTextField.d.ts +15 -0
  21. package/dist/Login/LoginTextField.js +134 -0
  22. package/dist/Services/DraftService.js +2 -5
  23. package/dist/Services/IntegrationService.d.ts +21 -0
  24. package/dist/Services/IntegrationService.js +69 -0
  25. package/dist/Services/UserService.d.ts +10 -0
  26. package/dist/Services/UserService.js +71 -0
  27. package/dist/Shared/Navbar/Navbar.d.ts +2 -1
  28. package/dist/Shared/Navbar/Navbar.js +84 -3
  29. package/dist/Shared/Navbar/Navbar.module.css +15 -0
  30. package/dist/States/GlobalSlice.d.ts +6 -1
  31. package/dist/States/GlobalSlice.js +6 -1
  32. package/dist/constants/ErkValueTypes.d.ts +6 -0
  33. package/dist/constants/ErkValueTypes.js +7 -0
  34. package/dist/constants/FormStepTypes.d.ts +2 -1
  35. package/dist/constants/FormStepTypes.js +1 -0
  36. package/dist/hooks.d.ts +3 -0
  37. package/dist/hooks.js +62 -1
  38. package/package.json +2 -1
@@ -0,0 +1,68 @@
1
+ .loginLayout {
2
+ height: 100vh;
3
+ display: flex;
4
+ width: 100vw;
5
+ overflow: hidden;
6
+ background-color: #f0f0f0;
7
+
8
+ position: relative;
9
+ }
10
+ .semiCircle {
11
+ margin-top: auto;
12
+ width: 30vmin;
13
+ height: 30vmin;
14
+ min-width: 100px;
15
+ min-height: 100px;
16
+ object-fit: contain;
17
+ background-color: #98c1d9;
18
+ border-top-left-radius: 0%;
19
+ border-top-right-radius: 100%;
20
+ border-bottom-left-radius: 0%;
21
+ border-bottom-right-radius: 0%;
22
+ }
23
+ .triangle {
24
+ width: 0;
25
+ height: 0;
26
+ border-bottom: 500px solid #ee6c4d;
27
+ border-left: 500px solid transparent;
28
+ margin-left: auto;
29
+ transform: translateY(-300px) translateX(150px) rotate(10deg);
30
+ }
31
+ .cardLayout {
32
+ height: 100%;
33
+ width: 100%;
34
+ display: flex;
35
+ position: absolute;
36
+ left: 0;
37
+ right: 0;
38
+ top: 0;
39
+ bottom: 0;
40
+ overflow: hidden;
41
+ overflow-y: auto;
42
+ }
43
+ .loginCard {
44
+ margin: 7.5vh auto;
45
+ z-index: 2;
46
+ width: 85vw;
47
+ background-color: white;
48
+ border-radius: 20px;
49
+ min-height: 85vh;
50
+ height: fit-content;
51
+ display: flex;
52
+ flex-direction: column;
53
+ }
54
+ .cardContainer {
55
+ display: flex;
56
+ flex-grow: 1;
57
+ flex-direction: row;
58
+ height: 100%;
59
+ }
60
+
61
+ @media screen and (max-width: 320px) {
62
+ .loginCard {
63
+ width: 100vw;
64
+ height: 100vh;
65
+ margin: 0px;
66
+ border-radius: 0px;
67
+ }
68
+ }
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { Form } from '../@Types';
3
+ interface LoginPageProps {
4
+ form: Form;
5
+ }
6
+ /**
7
+ * Displays the specific login component depending on the url
8
+ * @returns the respective component
9
+ */
10
+ declare function LoginPage({ form }: LoginPageProps): JSX.Element;
11
+ export default LoginPage;
@@ -0,0 +1,177 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
49
+ import { useState } from 'react';
50
+ import layoutStyles from './LoginLayout.module.css';
51
+ import styles from './Login.module.css';
52
+ import Loader from '../Shared/Loader/Loader';
53
+ import { Controller, useForm } from 'react-hook-form';
54
+ import axiosInstance from '../Utils/AxiosAPI';
55
+ import { useAppDispatch } from '../hooks';
56
+ import { login } from '../Services/UserService';
57
+ import { setUser } from '../States/GlobalSlice';
58
+ import { jwtDecode } from 'jwt-decode';
59
+ import LoginTextField from './LoginTextField';
60
+ import MaterialProviders from '../Utils/MaterialProviders';
61
+ var EMAIL_REGEX = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
62
+ /**
63
+ * Displays the specific login component depending on the url
64
+ * @returns the respective component
65
+ */
66
+ function LoginPage(_a) {
67
+ var _this = this;
68
+ var form = _a.form;
69
+ var dispatch = useAppDispatch();
70
+ /** If login has errors */
71
+ var _b = useState(false), wrongLogin = _b[0], setWrongLogin = _b[1];
72
+ /** if waiting for response */
73
+ var _c = useState(false), loading = _c[0], setLoading = _c[1];
74
+ var _d = useForm({
75
+ mode: 'onTouched',
76
+ }), getValues = _d.getValues, clearErrors = _d.clearErrors, errors = _d.formState.errors, setError = _d.setError, trigger = _d.trigger, control = _d.control;
77
+ /**
78
+ * Handles login, redirects the user if the current subdomain is not valid
79
+ */
80
+ var handleLogin = function () { return __awaiter(_this, void 0, void 0, function () {
81
+ var isValid, values, isInternal, payload, token, user, err_1;
82
+ var _a, _b;
83
+ return __generator(this, function (_c) {
84
+ switch (_c.label) {
85
+ case 0: return [4 /*yield*/, trigger()];
86
+ case 1:
87
+ isValid = _c.sent();
88
+ values = getValues();
89
+ isInternal = ['andres'].includes(values.email);
90
+ if (!((isValid || isInternal) && form.apiKey)) return [3 /*break*/, 6];
91
+ _c.label = 2;
92
+ case 2:
93
+ _c.trys.push([2, 5, , 6]);
94
+ setLoading(true);
95
+ payload = values;
96
+ if (isInternal) {
97
+ payload.email = values.email + '@capta.co';
98
+ }
99
+ return [4 /*yield*/, login(form.apiKey, payload)];
100
+ case 3:
101
+ token = _c.sent();
102
+ localStorage.setItem('token', token);
103
+ user = jwtDecode(token);
104
+ axiosInstance.defaults.headers.Authorization =
105
+ 'Bearer ' + token;
106
+ return [4 /*yield*/, dispatch(setUser(user))];
107
+ case 4:
108
+ _c.sent();
109
+ return [3 /*break*/, 6];
110
+ case 5:
111
+ err_1 = _c.sent();
112
+ setLoading(false);
113
+ if (((_a = err_1 === null || err_1 === void 0 ? void 0 : err_1.response) === null || _a === void 0 ? void 0 : _a.status) !== 400) {
114
+ console.error(err_1);
115
+ }
116
+ if (((_b = err_1 === null || err_1 === void 0 ? void 0 : err_1.response) === null || _b === void 0 ? void 0 : _b.data) === 'Invalid Organization') {
117
+ setError('password', {
118
+ type: 'pattern',
119
+ message: 'Organización inválida',
120
+ });
121
+ }
122
+ else {
123
+ setError('password', {
124
+ type: 'pattern',
125
+ message: 'Correo o contraseña incorrecta',
126
+ });
127
+ }
128
+ setError('email', {
129
+ type: 'pattern',
130
+ message: '',
131
+ });
132
+ setWrongLogin(true);
133
+ return [3 /*break*/, 6];
134
+ case 6: return [2 /*return*/];
135
+ }
136
+ });
137
+ }); };
138
+ /**
139
+ * Function that clears errors if there are any.
140
+ */
141
+ var clearWrongLogin = function () {
142
+ if (wrongLogin) {
143
+ setWrongLogin(false);
144
+ clearErrors(['email', 'password']);
145
+ }
146
+ };
147
+ return (_jsx(MaterialProviders, { children: _jsxs("div", __assign({ className: layoutStyles.loginLayout }, { children: [_jsx("div", { className: layoutStyles.semiCircle }), _jsx("div", { className: layoutStyles.triangle }), _jsx("div", __assign({ className: layoutStyles.cardLayout }, { children: _jsx("div", __assign({ className: layoutStyles.loginCard }, { children: _jsxs("div", __assign({ className: layoutStyles.cardContainer }, { children: [_jsxs("div", __assign({ className: styles.leftPanel }, { children: [_jsx("div", __assign({ className: styles.logo }, { children: _jsx("img", { alt: 'Capta', className: 'capta-logo', src: '/Capta.svg' }) })), _jsx("h1", { children: "Inicia sesi\u00F3n en Capta" }), _jsxs("div", __assign({ className: styles.loginInputsContainer }, { children: [_jsx("div", __assign({ className: styles.loginInput }, { children: _jsx(Controller, { name: "email", control: control, defaultValue: "", rules: {
148
+ required: 'El correo es obligatorio',
149
+ pattern: {
150
+ value: EMAIL_REGEX,
151
+ message: 'El correo no es válido',
152
+ },
153
+ }, render: function (_a) {
154
+ var _b;
155
+ var field = _a.field;
156
+ return (_jsx(LoginTextField, __assign({}, field, { "data-testid": "login_email", handleEnter: handleLogin, handleChange: clearWrongLogin, email: true, name: "email", disabled: loading, placeholder: "Correo", error: !!errors.email, helperText: errors.email
157
+ ? (_b = errors.email.message) === null || _b === void 0 ? void 0 : _b.toString()
158
+ : '' })));
159
+ } }) })), _jsx("div", __assign({ className: styles.loginInput }, { children: _jsx(Controller, { name: "password", control: control, defaultValue: "", rules: {
160
+ required: 'La contraseña es obligatoria',
161
+ }, render: function (_a) {
162
+ var _b;
163
+ var field = _a.field;
164
+ return (_jsx(LoginTextField, __assign({}, field, { disabled: loading, "data-testid": "login_password", handleEnter: handleLogin, handleChange: clearWrongLogin, name: "password", placeholder: "Contrase\u00F1a", error: !!errors.password, helperText: errors.password
165
+ ? (_b = errors.password.message) === null || _b === void 0 ? void 0 : _b.toString()
166
+ : '' })));
167
+ } }) }))] })), _jsxs("button", __assign({ "data-testid": "login_submit", className: styles.loginButton, onClick: function () {
168
+ if (!loading) {
169
+ void handleLogin();
170
+ }
171
+ }, disabled: loading }, { children: [_jsx("label", __assign({ style: {
172
+ visibility: loading
173
+ ? 'hidden'
174
+ : 'visible',
175
+ } }, { children: "Inicia sesi\u00F3n" })), loading && (_jsx("div", __assign({ className: styles.loaderContainer }, { children: _jsx(Loader, { color: "white" }) })))] }))] })), _jsx("div", __assign({ className: styles.rightPanel }, { children: _jsxs("div", __assign({ className: styles.rightPanelMessage }, { children: [_jsx("h1", { children: "\u00A1Bienvenid@!" }), _jsx("p", { children: "Ingresa tu correo y contrase\u00F1a para ingresar al formulario." })] })) }))] })) })) }))] })) }));
176
+ }
177
+ export default LoginPage;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ interface ComponentProps {
3
+ /** Function called on Enter */
4
+ handleEnter: any;
5
+ /** IF is of type email */
6
+ email: boolean;
7
+ /** Function called on change */
8
+ onChange: React.ChangeEventHandler;
9
+ /** Function called on change */
10
+ handleChange: any;
11
+ }
12
+ declare class LoginTextField extends React.Component<ComponentProps | any> {
13
+ render(): JSX.Element;
14
+ }
15
+ export default LoginTextField;
@@ -0,0 +1,134 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __assign = (this && this.__assign) || function () {
17
+ __assign = Object.assign || function(t) {
18
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
19
+ s = arguments[i];
20
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
+ t[p] = s[p];
22
+ }
23
+ return t;
24
+ };
25
+ return __assign.apply(this, arguments);
26
+ };
27
+ var __rest = (this && this.__rest) || function (s, e) {
28
+ var t = {};
29
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
30
+ t[p] = s[p];
31
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
32
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
33
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34
+ t[p[i]] = s[p[i]];
35
+ }
36
+ return t;
37
+ };
38
+ import { jsx as _jsx } from "react/jsx-runtime";
39
+ import React from 'react';
40
+ import TextField from '@material-ui/core/TextField';
41
+ import { withStyles } from '@material-ui/core/styles';
42
+ import MailOutlineIcon from '@material-ui/icons/MailOutline';
43
+ import InputAdornment from '@material-ui/core/InputAdornment';
44
+ import LockIcon from '@material-ui/icons/Lock';
45
+ var CustomTextField = withStyles({
46
+ root: {
47
+ '& input': {
48
+ padding: '6px 0px',
49
+ backgroundColor: '#ebebeb',
50
+ fontWeight: 300,
51
+ height: 40,
52
+ borderRadius: 10,
53
+ },
54
+ '& label.EF-MuiInputLabel-shrink': {
55
+ marginTop: '0px',
56
+ margin: -2,
57
+ },
58
+ '& input + fieldset': {
59
+ borderRadius: 10,
60
+ },
61
+ '& .EF-MuiInput-underline:after': {
62
+ borderBottomColor: '#3d5a7f',
63
+ },
64
+ '& .EF-MuiInputBase-root': {
65
+ backgroundColor: '#ebebeb',
66
+ },
67
+ '& .EF-MuiOutlinedInput-root': {
68
+ borderRadius: 10,
69
+ backgroundColor: '#ebebeb',
70
+ '&.Mui-focused fieldset': {
71
+ borderColor: '#3d5a7f',
72
+ },
73
+ },
74
+ '& label.Mui-focused': {
75
+ color: '#3d5a7f',
76
+ },
77
+ //ESsto es lo nuevo
78
+ '& input, textarea': {
79
+ padding: '6px 0px',
80
+ fontWeight: 300,
81
+ height: 40,
82
+ backgroundColor: '#ebebeb',
83
+ borderRadius: 10,
84
+ },
85
+ '& label': {
86
+ marginTop: '-4px',
87
+ whiteSpace: 'nowrap',
88
+ overflow: 'hidden',
89
+ textOverflow: 'ellipsis',
90
+ maxWidth: 'calc(100% - 22px)',
91
+ },
92
+ '& .EF-MuiOutlinedInput-root:hover .EF-MuiOutlinedInput-notchedOutline': {
93
+ borderColor: '#3d5a7f',
94
+ },
95
+ '& .Mui-error': {},
96
+ '& .EF-MuiOutlinedInput-adornedEnd': {
97
+ paddingRight: '7px',
98
+ },
99
+ '& .EF-MuiFormHelperText-root': {
100
+ color: '#0a0101ff',
101
+ position: 'relative',
102
+ marginRight: 14,
103
+ },
104
+ '& .EF-MuiFormHelperText-root.Mui-error': {
105
+ color: '#cc2936',
106
+ },
107
+ '& .EF-MuiOutlinedInput-multiline': {
108
+ padding: 0,
109
+ backgroundColor: '#ebebeb',
110
+ },
111
+ },
112
+ })(TextField);
113
+ var LoginTextField = /** @class */ (function (_super) {
114
+ __extends(LoginTextField, _super);
115
+ function LoginTextField() {
116
+ return _super !== null && _super.apply(this, arguments) || this;
117
+ }
118
+ LoginTextField.prototype.render = function () {
119
+ var _a = this.props, handleEnter = _a.handleEnter, email = _a.email, onChange = _a.onChange, handleChange = _a.handleChange, others = __rest(_a, ["handleEnter", "email", "onChange", "handleChange"]);
120
+ return (_jsx(CustomTextField, __assign({}, others, { variant: "outlined", size: "small", fullWidth: true, type: email ? 'email' : 'password', onChange: function (event) {
121
+ handleChange === null || handleChange === void 0 ? void 0 : handleChange();
122
+ onChange === null || onChange === void 0 ? void 0 : onChange(event);
123
+ }, InputProps: {
124
+ onKeyPress: function (event) {
125
+ if (handleEnter && event.key === 'Enter') {
126
+ handleEnter();
127
+ }
128
+ },
129
+ startAdornment: (_jsx(InputAdornment, __assign({ position: "start" }, { children: email ? _jsx(MailOutlineIcon, {}) : _jsx(LockIcon, {}) }))),
130
+ } })));
131
+ };
132
+ return LoginTextField;
133
+ }(React.Component));
134
+ export default LoginTextField;
@@ -62,14 +62,11 @@ export var DraftApi = RootApi.injectEndpoints({
62
62
  if (!apiKey)
63
63
  return [2 /*return*/, { data: undefined }];
64
64
  if (!idOrganization) return [3 /*break*/, 4];
65
- return [4 /*yield*/, widgetInstance.post("/form/draft/".concat(apiKey, "?idOrganization=").concat(idOrganization), {
66
- property: property,
67
- dependencies: dependencies,
68
- })];
65
+ return [4 /*yield*/, widgetInstance.post("/form/draft/".concat(apiKey, "?idOrganization=").concat(idOrganization), { property: property, dependencies: dependencies })];
69
66
  case 3:
70
67
  response = _d.sent();
71
68
  return [3 /*break*/, 6];
72
- case 4: return [4 /*yield*/, axiosInstance.post("/form/draft/".concat(apiKey), dependencies)];
69
+ case 4: return [4 /*yield*/, axiosInstance.post("/form/draft/".concat(apiKey), { property: property, dependencies: dependencies })];
73
70
  case 5:
74
71
  response = _d.sent();
75
72
  _d.label = 6;
@@ -0,0 +1,21 @@
1
+ export declare const IntegrationsApi: import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<{
2
+ url: string;
3
+ timeout?: number | undefined;
4
+ method?: string | undefined;
5
+ body?: any;
6
+ params?: any;
7
+ headers?: Record<string, any> | undefined;
8
+ }, unknown, unknown, {}, {}>, {
9
+ fetchFilterIntegration: import("@reduxjs/toolkit/query").QueryDefinition<{
10
+ idForm: string;
11
+ idIntegration: string;
12
+ payload: Record<string, any>;
13
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<{
14
+ url: string;
15
+ timeout?: number | undefined;
16
+ method?: string | undefined;
17
+ body?: any;
18
+ params?: any;
19
+ headers?: Record<string, any> | undefined;
20
+ }, unknown, unknown, {}, {}>, never, string[] | undefined, "api">;
21
+ }, "api", never, typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/dist/query/react").reactHooksModuleName>;
@@ -0,0 +1,69 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { RootApi } from '../Utils/_api';
38
+ import axiosInstance from '../Utils/AxiosAPI';
39
+ import widgetInstance from '../Utils/AxiosWidget';
40
+ export var IntegrationsApi = RootApi.injectEndpoints({
41
+ endpoints: function (build) { return ({
42
+ fetchFilterIntegration: build.query({
43
+ queryFn: function (_a, _b) {
44
+ var idForm = _a.idForm, idIntegration = _a.idIntegration, payload = _a.payload;
45
+ var getState = _b.getState;
46
+ return __awaiter(void 0, void 0, void 0, function () {
47
+ var idOrganization, response;
48
+ return __generator(this, function (_c) {
49
+ switch (_c.label) {
50
+ case 0:
51
+ idOrganization = getState().forms[idForm]
52
+ .global.idOrganization;
53
+ if (!idOrganization) return [3 /*break*/, 2];
54
+ return [4 /*yield*/, widgetInstance.post("/form/integrations/".concat(idIntegration, "?idOrganization=").concat(idOrganization), payload)];
55
+ case 1:
56
+ response = _c.sent();
57
+ return [3 /*break*/, 4];
58
+ case 2: return [4 /*yield*/, axiosInstance.post("/form/integrations/".concat(idIntegration), payload)];
59
+ case 3:
60
+ response = _c.sent();
61
+ _c.label = 4;
62
+ case 4: return [2 /*return*/, { data: response.data }];
63
+ }
64
+ });
65
+ });
66
+ },
67
+ }),
68
+ }); },
69
+ });
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Function that handles the app's login
3
+ * @param credentials {email, password} of the user
4
+ * @returns an array with the users Token and RefreshToken
5
+ */
6
+ export declare const login: (apiKey: string, credentials: Record<string, string>) => Promise<string>;
7
+ /**
8
+ * Function that indicates to the server to delete the refresh token
9
+ */
10
+ export declare const logout: (apiKey: string) => Promise<void>;
@@ -0,0 +1,71 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import axiosInstance from '../Utils/AxiosAPI';
38
+ /**
39
+ * Function that handles the app's login
40
+ * @param credentials {email, password} of the user
41
+ * @returns an array with the users Token and RefreshToken
42
+ */
43
+ export var login = function (apiKey, credentials) { return __awaiter(void 0, void 0, void 0, function () {
44
+ var response;
45
+ return __generator(this, function (_a) {
46
+ switch (_a.label) {
47
+ case 0: return [4 /*yield*/, axiosInstance.post("forms/".concat(apiKey, "/auth"), credentials)];
48
+ case 1:
49
+ response = _a.sent();
50
+ return [2 /*return*/, response === null || response === void 0 ? void 0 : response.data];
51
+ }
52
+ });
53
+ }); };
54
+ /**
55
+ * Function that indicates to the server to delete the refresh token
56
+ */
57
+ export var logout = function (apiKey) { return __awaiter(void 0, void 0, void 0, function () {
58
+ return __generator(this, function (_a) {
59
+ switch (_a.label) {
60
+ case 0: return [4 /*yield*/, axiosInstance.delete("forms/".concat(apiKey, "/auth"), {
61
+ headers: {
62
+ Authorization: 'Bearer ' + localStorage.getItem('refreshToken'),
63
+ },
64
+ timeout: 5000,
65
+ })];
66
+ case 1:
67
+ _a.sent();
68
+ return [2 /*return*/];
69
+ }
70
+ });
71
+ }); };
@@ -1,9 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  interface NavBarProps {
3
+ apiKey?: string;
3
4
  /** Url of the current logo of the current organization */
4
5
  logo?: string;
5
6
  /** The color of the navbar */
6
7
  color?: string;
7
8
  }
8
- declare function Navbar({ logo, color }: NavBarProps): JSX.Element;
9
+ declare function Navbar({ logo, color, apiKey }: NavBarProps): JSX.Element;
9
10
  export default Navbar;