@apia/api 0.2.4 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +29 -2
- package/dist/index.js +187 -116
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import React__default from 'react';
|
|
2
3
|
import { AxiosResponse, AxiosRequestConfig } from 'axios';
|
|
3
|
-
import { TModify, TApiaLoad } from '@apia/util';
|
|
4
|
+
import { TModify, TApiaLoad, TApiaFormElement } from '@apia/util';
|
|
4
5
|
import { TNotificationMessage, notify } from '@apia/notifications';
|
|
5
6
|
import { TModal } from '@apia/components';
|
|
6
7
|
import QueryString from 'qs';
|
|
@@ -207,6 +208,17 @@ type TApiaApiMethodHandler = {
|
|
|
207
208
|
setValue: (name: string, value: string) => void;
|
|
208
209
|
};
|
|
209
210
|
type TApiaApiMethod = (handler: TApiaApiMethodHandler, props: TMethod['props']) => Promise<void> | void;
|
|
211
|
+
type TApiaApiField = TApiaApiMethodHandler & {
|
|
212
|
+
element: TModify<TApiaFormElement, {
|
|
213
|
+
onChange: React.ChangeEventHandler;
|
|
214
|
+
}>;
|
|
215
|
+
};
|
|
216
|
+
type TStoredApiaApiMethod = (props?: TMethod['props']) => unknown;
|
|
217
|
+
/**
|
|
218
|
+
* Este método permite cargar en forma asíncrona un método que se encuentre
|
|
219
|
+
* dentro del directorio /api/methods
|
|
220
|
+
*/
|
|
221
|
+
declare function getFunction(name: string, handler: TApiaApiMethodHandler): Promise<TStoredApiaApiMethod | undefined>;
|
|
210
222
|
interface IModalConfig {
|
|
211
223
|
modalTitle?: string;
|
|
212
224
|
onClose?: () => void;
|
|
@@ -225,4 +237,19 @@ interface IApiaApiHandlerState {
|
|
|
225
237
|
}
|
|
226
238
|
declare const ApiaApiHandler: React.MemoExoticComponent<() => React.JSX.Element>;
|
|
227
239
|
|
|
228
|
-
|
|
240
|
+
declare global {
|
|
241
|
+
interface Window {
|
|
242
|
+
SALT: string;
|
|
243
|
+
IV: string;
|
|
244
|
+
PASSPHRASE: string;
|
|
245
|
+
KEY_SIZE: string;
|
|
246
|
+
ITERATION_COUNT: string;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Permite cargar en forma asíncrona un modal que se encuentre dentro del
|
|
251
|
+
* directorio /api/modals
|
|
252
|
+
* */
|
|
253
|
+
declare const getModal: (path: string) => React__default.LazyExoticComponent<React__default.ComponentType<TApiaApiField>>;
|
|
254
|
+
|
|
255
|
+
export { ApiaApi, ApiaApiHandler, IApiaApiRequestConfig, TApiaApiAxiosResponse, TApiaApiMethod, TApiaApiResult, getFunction, getModal, makeApiaUrl };
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import React__default, { createContext } from 'react';
|
|
|
4
4
|
import { Box, getVariant } from '@apia/theme';
|
|
5
5
|
import { debugDispatcher, EventEmitter, parseXmlAsync, arrayOrArray, useMount, encrypt, WithEventsValue, focus, focusSelector, useStateRef, useUnmount } from '@apia/util';
|
|
6
6
|
import { notify, getNotificationMessageObj, dispatchNotifications } from '@apia/notifications';
|
|
7
|
-
import { classToValidate, Checkbox, FileInput, classToValidationFunction, Input, Radio, Select, useFormContext, validationsStore, hasSucceedFormValidation, Form } from '@apia/validations';
|
|
7
|
+
import { classToValidate, Checkbox, FileInput, classToValidationFunction, Input, Radio, Select, Textarea, useFormContext, validationsStore, hasSucceedFormValidation, Form } from '@apia/validations';
|
|
8
8
|
import { SimpleButton, useModal, Modal, ProgressBar } from '@apia/components';
|
|
9
9
|
import axios from 'axios';
|
|
10
10
|
import { merge, uniqueId } from 'lodash';
|
|
@@ -20,21 +20,21 @@ const ApiaApiContext = ({
|
|
|
20
20
|
};
|
|
21
21
|
var ApiaApiContext$1 = React.memo(ApiaApiContext);
|
|
22
22
|
|
|
23
|
-
var __defProp$
|
|
23
|
+
var __defProp$9 = Object.defineProperty;
|
|
24
24
|
var __defProps$4 = Object.defineProperties;
|
|
25
25
|
var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
|
|
26
|
-
var __getOwnPropSymbols$
|
|
27
|
-
var __hasOwnProp$
|
|
28
|
-
var __propIsEnum$
|
|
29
|
-
var __defNormalProp$
|
|
30
|
-
var __spreadValues$
|
|
26
|
+
var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
|
|
27
|
+
var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
|
|
28
|
+
var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
|
|
29
|
+
var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
30
|
+
var __spreadValues$9 = (a, b) => {
|
|
31
31
|
for (var prop in b || (b = {}))
|
|
32
|
-
if (__hasOwnProp$
|
|
33
|
-
__defNormalProp$
|
|
34
|
-
if (__getOwnPropSymbols$
|
|
35
|
-
for (var prop of __getOwnPropSymbols$
|
|
36
|
-
if (__propIsEnum$
|
|
37
|
-
__defNormalProp$
|
|
32
|
+
if (__hasOwnProp$9.call(b, prop))
|
|
33
|
+
__defNormalProp$9(a, prop, b[prop]);
|
|
34
|
+
if (__getOwnPropSymbols$9)
|
|
35
|
+
for (var prop of __getOwnPropSymbols$9(b)) {
|
|
36
|
+
if (__propIsEnum$9.call(b, prop))
|
|
37
|
+
__defNormalProp$9(a, prop, b[prop]);
|
|
38
38
|
}
|
|
39
39
|
return a;
|
|
40
40
|
};
|
|
@@ -42,11 +42,11 @@ var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
|
|
|
42
42
|
var __objRest$1 = (source, exclude) => {
|
|
43
43
|
var target = {};
|
|
44
44
|
for (var prop in source)
|
|
45
|
-
if (__hasOwnProp$
|
|
45
|
+
if (__hasOwnProp$9.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
46
46
|
target[prop] = source[prop];
|
|
47
|
-
if (source != null && __getOwnPropSymbols$
|
|
48
|
-
for (var prop of __getOwnPropSymbols$
|
|
49
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
47
|
+
if (source != null && __getOwnPropSymbols$9)
|
|
48
|
+
for (var prop of __getOwnPropSymbols$9(source)) {
|
|
49
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum$9.call(source, prop))
|
|
50
50
|
target[prop] = source[prop];
|
|
51
51
|
}
|
|
52
52
|
return target;
|
|
@@ -165,7 +165,7 @@ function handleActions(actions) {
|
|
|
165
165
|
);
|
|
166
166
|
const actionsArray = arrayOrArray(actions.action);
|
|
167
167
|
actionsArray.forEach((action) => {
|
|
168
|
-
ApiaActions.emit("action", __spreadProps$4(__spreadValues$
|
|
168
|
+
ApiaActions.emit("action", __spreadProps$4(__spreadValues$9({}, action), {
|
|
169
169
|
param: arrayOrArray(action.param)
|
|
170
170
|
}));
|
|
171
171
|
});
|
|
@@ -192,7 +192,7 @@ function handleOnClose({
|
|
|
192
192
|
});
|
|
193
193
|
if (notificationsObject)
|
|
194
194
|
notificationsObject.forEach((notification) => {
|
|
195
|
-
notify(__spreadProps$4(__spreadValues$
|
|
195
|
+
notify(__spreadProps$4(__spreadValues$9({}, notification), {
|
|
196
196
|
onClose: func.default
|
|
197
197
|
}));
|
|
198
198
|
});
|
|
@@ -254,7 +254,7 @@ const parseSuccessfulResponse = (_0, _1, ..._2) => __async$2(void 0, [_0, _1, ..
|
|
|
254
254
|
return null;
|
|
255
255
|
}
|
|
256
256
|
if (behaveConfig.validateResponse) {
|
|
257
|
-
const validateResult = yield behaveConfig.validateResponse(__spreadProps$4(__spreadValues$
|
|
257
|
+
const validateResult = yield behaveConfig.validateResponse(__spreadProps$4(__spreadValues$9({}, response), {
|
|
258
258
|
data: (_a = parsedObj == null ? void 0 : parsedObj.load) != null ? _a : parsedObj
|
|
259
259
|
}));
|
|
260
260
|
if (typeof validateResult === "string")
|
|
@@ -331,7 +331,7 @@ const parseSuccessfulResponse = (_0, _1, ..._2) => __async$2(void 0, [_0, _1, ..
|
|
|
331
331
|
);
|
|
332
332
|
if (!handle(load, currentUrl, {
|
|
333
333
|
methodsPath: outerBehaveConfig.methodsPath,
|
|
334
|
-
modalConfiguration: __spreadProps$4(__spreadValues$
|
|
334
|
+
modalConfiguration: __spreadProps$4(__spreadValues$9({}, behaveConfig.modalConfiguration), {
|
|
335
335
|
onClose: () => {
|
|
336
336
|
var _a2, _b2;
|
|
337
337
|
if (onClose)
|
|
@@ -355,9 +355,9 @@ const parseSuccessfulResponse = (_0, _1, ..._2) => __async$2(void 0, [_0, _1, ..
|
|
|
355
355
|
);
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
|
-
return __spreadProps$4(__spreadValues$
|
|
358
|
+
return __spreadProps$4(__spreadValues$9({}, load), { sysMessages, exceptions, sysExceptions });
|
|
359
359
|
}
|
|
360
|
-
return __spreadProps$4(__spreadValues$
|
|
360
|
+
return __spreadProps$4(__spreadValues$9({}, rest), { sysMessages, exceptions, sysExceptions });
|
|
361
361
|
}
|
|
362
362
|
return null;
|
|
363
363
|
});
|
|
@@ -387,7 +387,7 @@ function handleResponse(_0, _1) {
|
|
|
387
387
|
data: parsedResponse
|
|
388
388
|
}
|
|
389
389
|
);
|
|
390
|
-
return __spreadProps$4(__spreadValues$
|
|
390
|
+
return __spreadProps$4(__spreadValues$9({}, result), {
|
|
391
391
|
data: parsedResponse,
|
|
392
392
|
hasError: !!(parsedResponse == null ? void 0 : parsedResponse.exceptions) || !!(parsedResponse == null ? void 0 : parsedResponse.sysExceptions),
|
|
393
393
|
hasMessages: !!(parsedResponse == null ? void 0 : parsedResponse.sysMessages)
|
|
@@ -404,7 +404,7 @@ function post(par1, par2) {
|
|
|
404
404
|
return __async$2(this, null, function* () {
|
|
405
405
|
const actualUrl = typeof par1 !== "string" ? makeApiaUrl() : par1;
|
|
406
406
|
const configParameter = typeof par1 === "string" ? par2 != null ? par2 : defaultConfig : par1;
|
|
407
|
-
const behaveConfig = __spreadProps$4(__spreadValues$
|
|
407
|
+
const behaveConfig = __spreadProps$4(__spreadValues$9({}, getConfig(configParameter)), {
|
|
408
408
|
postData: configParameter.postDataTreatement === "stringify" ? QueryString.stringify(
|
|
409
409
|
configParameter.postData,
|
|
410
410
|
configParameter.stringifyOptions
|
|
@@ -495,7 +495,7 @@ function makeApiaUrl(props) {
|
|
|
495
495
|
"avoidTabId",
|
|
496
496
|
"tabId"
|
|
497
497
|
]);
|
|
498
|
-
actualQueryData = __spreadValues$
|
|
498
|
+
actualQueryData = __spreadValues$9({}, rest);
|
|
499
499
|
}
|
|
500
500
|
const queryString = QueryString.stringify(
|
|
501
501
|
actualQueryData,
|
|
@@ -532,19 +532,19 @@ function makeApiaUrl(props) {
|
|
|
532
532
|
return `${contextWord ? "/" : ""}${contextWord}/${actualAjaxUrl}?${timestamp}${!(props == null ? void 0 : props.preventAsXmlParameter) ? "asXml=true&" : ""}${(props == null ? void 0 : props.queryString) ? `${props.queryString}&` : ""}${queryString ? `${queryString}&` : ""}${tabId}`;
|
|
533
533
|
}
|
|
534
534
|
|
|
535
|
-
var __defProp$
|
|
536
|
-
var __getOwnPropSymbols$
|
|
537
|
-
var __hasOwnProp$
|
|
538
|
-
var __propIsEnum$
|
|
539
|
-
var __defNormalProp$
|
|
540
|
-
var __spreadValues$
|
|
535
|
+
var __defProp$8 = Object.defineProperty;
|
|
536
|
+
var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
|
|
537
|
+
var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
|
|
538
|
+
var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
|
|
539
|
+
var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
540
|
+
var __spreadValues$8 = (a, b) => {
|
|
541
541
|
for (var prop in b || (b = {}))
|
|
542
|
-
if (__hasOwnProp$
|
|
543
|
-
__defNormalProp$
|
|
544
|
-
if (__getOwnPropSymbols$
|
|
545
|
-
for (var prop of __getOwnPropSymbols$
|
|
546
|
-
if (__propIsEnum$
|
|
547
|
-
__defNormalProp$
|
|
542
|
+
if (__hasOwnProp$8.call(b, prop))
|
|
543
|
+
__defNormalProp$8(a, prop, b[prop]);
|
|
544
|
+
if (__getOwnPropSymbols$8)
|
|
545
|
+
for (var prop of __getOwnPropSymbols$8(b)) {
|
|
546
|
+
if (__propIsEnum$8.call(b, prop))
|
|
547
|
+
__defNormalProp$8(a, prop, b[prop]);
|
|
548
548
|
}
|
|
549
549
|
return a;
|
|
550
550
|
};
|
|
@@ -555,7 +555,7 @@ const ApiaApiCheckbox = (props) => {
|
|
|
555
555
|
[element.class]
|
|
556
556
|
);
|
|
557
557
|
const validationRules = React__default.useMemo(
|
|
558
|
-
() => __spreadValues$
|
|
558
|
+
() => __spreadValues$8({
|
|
559
559
|
required: element.mandatory
|
|
560
560
|
}, classToValidate(element.class)),
|
|
561
561
|
[element.class, element.mandatory]
|
|
@@ -580,19 +580,19 @@ const ApiaApiCheckbox = (props) => {
|
|
|
580
580
|
);
|
|
581
581
|
};
|
|
582
582
|
|
|
583
|
-
var __defProp$
|
|
584
|
-
var __getOwnPropSymbols$
|
|
585
|
-
var __hasOwnProp$
|
|
586
|
-
var __propIsEnum$
|
|
587
|
-
var __defNormalProp$
|
|
588
|
-
var __spreadValues$
|
|
583
|
+
var __defProp$7 = Object.defineProperty;
|
|
584
|
+
var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
|
|
585
|
+
var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
|
|
586
|
+
var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
|
|
587
|
+
var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
588
|
+
var __spreadValues$7 = (a, b) => {
|
|
589
589
|
for (var prop in b || (b = {}))
|
|
590
|
-
if (__hasOwnProp$
|
|
591
|
-
__defNormalProp$
|
|
592
|
-
if (__getOwnPropSymbols$
|
|
593
|
-
for (var prop of __getOwnPropSymbols$
|
|
594
|
-
if (__propIsEnum$
|
|
595
|
-
__defNormalProp$
|
|
590
|
+
if (__hasOwnProp$7.call(b, prop))
|
|
591
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
592
|
+
if (__getOwnPropSymbols$7)
|
|
593
|
+
for (var prop of __getOwnPropSymbols$7(b)) {
|
|
594
|
+
if (__propIsEnum$7.call(b, prop))
|
|
595
|
+
__defNormalProp$7(a, prop, b[prop]);
|
|
596
596
|
}
|
|
597
597
|
return a;
|
|
598
598
|
};
|
|
@@ -603,7 +603,7 @@ const ApiaApiFileInput = (props) => {
|
|
|
603
603
|
[element.class]
|
|
604
604
|
);
|
|
605
605
|
const validationRules = React__default.useMemo(
|
|
606
|
-
() => __spreadValues$
|
|
606
|
+
() => __spreadValues$7({
|
|
607
607
|
required: element.mandatory
|
|
608
608
|
}, classToValidate(element.class)),
|
|
609
609
|
[element.class, element.mandatory]
|
|
@@ -623,51 +623,51 @@ const ApiaApiFileInput = (props) => {
|
|
|
623
623
|
};
|
|
624
624
|
ApiaApiFileInput.displayName = "ApiaApiFileInput";
|
|
625
625
|
|
|
626
|
-
var __defProp$
|
|
626
|
+
var __defProp$6 = Object.defineProperty;
|
|
627
627
|
var __defProps$3 = Object.defineProperties;
|
|
628
628
|
var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
|
|
629
|
-
var __getOwnPropSymbols$
|
|
630
|
-
var __hasOwnProp$
|
|
631
|
-
var __propIsEnum$
|
|
632
|
-
var __defNormalProp$
|
|
633
|
-
var __spreadValues$
|
|
629
|
+
var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
|
|
630
|
+
var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
|
|
631
|
+
var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
|
|
632
|
+
var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
633
|
+
var __spreadValues$6 = (a, b) => {
|
|
634
634
|
for (var prop in b || (b = {}))
|
|
635
|
-
if (__hasOwnProp$
|
|
636
|
-
__defNormalProp$
|
|
637
|
-
if (__getOwnPropSymbols$
|
|
638
|
-
for (var prop of __getOwnPropSymbols$
|
|
639
|
-
if (__propIsEnum$
|
|
640
|
-
__defNormalProp$
|
|
635
|
+
if (__hasOwnProp$6.call(b, prop))
|
|
636
|
+
__defNormalProp$6(a, prop, b[prop]);
|
|
637
|
+
if (__getOwnPropSymbols$6)
|
|
638
|
+
for (var prop of __getOwnPropSymbols$6(b)) {
|
|
639
|
+
if (__propIsEnum$6.call(b, prop))
|
|
640
|
+
__defNormalProp$6(a, prop, b[prop]);
|
|
641
641
|
}
|
|
642
642
|
return a;
|
|
643
643
|
};
|
|
644
644
|
var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
|
|
645
|
-
const
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
);
|
|
665
|
-
}
|
|
666
|
-
});
|
|
645
|
+
const getModal = (path) => {
|
|
646
|
+
return React__default.lazy(() => {
|
|
647
|
+
return new Promise((resolve) => {
|
|
648
|
+
import(
|
|
649
|
+
/* webpackChunkName: "handlerModal" */
|
|
650
|
+
/* webpackInclude: /\.tsx?$/ */
|
|
651
|
+
`/api/modals/${path}`
|
|
652
|
+
).then((result) => {
|
|
653
|
+
resolve(
|
|
654
|
+
result
|
|
655
|
+
);
|
|
656
|
+
}).catch((error) => {
|
|
657
|
+
resolve({
|
|
658
|
+
default: () => {
|
|
659
|
+
console.error(error);
|
|
660
|
+
throw new Error(
|
|
661
|
+
`The above error ocurred at component ApiaApiHandler/${path}, does it exist?`
|
|
662
|
+
);
|
|
663
|
+
}
|
|
667
664
|
});
|
|
668
665
|
});
|
|
669
666
|
});
|
|
670
|
-
}
|
|
667
|
+
});
|
|
668
|
+
};
|
|
669
|
+
const ApiaApiInput = (props) => {
|
|
670
|
+
const element = React__default.useMemo(() => props.element, [props.element]);
|
|
671
671
|
const [Submodal, setSubmodal] = React__default.useState(null);
|
|
672
672
|
useMount(() => {
|
|
673
673
|
if (element.modalFunction) {
|
|
@@ -683,7 +683,7 @@ const ApiaApiInput = (props) => {
|
|
|
683
683
|
[element.class, element.type]
|
|
684
684
|
);
|
|
685
685
|
const validationRules = React__default.useMemo(
|
|
686
|
-
() => __spreadValues$
|
|
686
|
+
() => __spreadValues$6({
|
|
687
687
|
required: element.mandatory,
|
|
688
688
|
maxLength: element.maxlength ? Number(element.maxlength) : void 0,
|
|
689
689
|
pattern: element.regExp,
|
|
@@ -719,7 +719,7 @@ const ApiaApiInput = (props) => {
|
|
|
719
719
|
);
|
|
720
720
|
if (element.modalFunction) {
|
|
721
721
|
if (Submodal) {
|
|
722
|
-
return /* @__PURE__ */ jsx(React__default.Suspense, { children: /* @__PURE__ */ jsx(Submodal, __spreadProps$3(__spreadValues$
|
|
722
|
+
return /* @__PURE__ */ jsx(React__default.Suspense, { children: /* @__PURE__ */ jsx(Submodal, __spreadProps$3(__spreadValues$6({}, props), { element })) });
|
|
723
723
|
}
|
|
724
724
|
return null;
|
|
725
725
|
}
|
|
@@ -744,19 +744,19 @@ const ApiaApiInput = (props) => {
|
|
|
744
744
|
};
|
|
745
745
|
ApiaApiInput.displayName = "ApiaApiInput";
|
|
746
746
|
|
|
747
|
-
var __defProp$
|
|
748
|
-
var __getOwnPropSymbols$
|
|
749
|
-
var __hasOwnProp$
|
|
750
|
-
var __propIsEnum$
|
|
751
|
-
var __defNormalProp$
|
|
752
|
-
var __spreadValues$
|
|
747
|
+
var __defProp$5 = Object.defineProperty;
|
|
748
|
+
var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
|
|
749
|
+
var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
|
|
750
|
+
var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
|
|
751
|
+
var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
752
|
+
var __spreadValues$5 = (a, b) => {
|
|
753
753
|
for (var prop in b || (b = {}))
|
|
754
|
-
if (__hasOwnProp$
|
|
755
|
-
__defNormalProp$
|
|
756
|
-
if (__getOwnPropSymbols$
|
|
757
|
-
for (var prop of __getOwnPropSymbols$
|
|
758
|
-
if (__propIsEnum$
|
|
759
|
-
__defNormalProp$
|
|
754
|
+
if (__hasOwnProp$5.call(b, prop))
|
|
755
|
+
__defNormalProp$5(a, prop, b[prop]);
|
|
756
|
+
if (__getOwnPropSymbols$5)
|
|
757
|
+
for (var prop of __getOwnPropSymbols$5(b)) {
|
|
758
|
+
if (__propIsEnum$5.call(b, prop))
|
|
759
|
+
__defNormalProp$5(a, prop, b[prop]);
|
|
760
760
|
}
|
|
761
761
|
return a;
|
|
762
762
|
};
|
|
@@ -777,7 +777,7 @@ const ApiaApiRadio = (props) => {
|
|
|
777
777
|
[(_a = element.options) == null ? void 0 : _a.option]
|
|
778
778
|
);
|
|
779
779
|
const validationRules = React__default.useMemo(
|
|
780
|
-
() => __spreadValues$
|
|
780
|
+
() => __spreadValues$5({
|
|
781
781
|
required: element.mandatory
|
|
782
782
|
}, classToValidate(element.class)),
|
|
783
783
|
[element.class, element.mandatory]
|
|
@@ -799,19 +799,19 @@ const ApiaApiRadio = (props) => {
|
|
|
799
799
|
};
|
|
800
800
|
ApiaApiRadio.displayName = "ApiaApiRadio";
|
|
801
801
|
|
|
802
|
-
var __defProp$
|
|
803
|
-
var __getOwnPropSymbols$
|
|
804
|
-
var __hasOwnProp$
|
|
805
|
-
var __propIsEnum$
|
|
806
|
-
var __defNormalProp$
|
|
807
|
-
var __spreadValues$
|
|
802
|
+
var __defProp$4 = Object.defineProperty;
|
|
803
|
+
var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
|
|
804
|
+
var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
|
|
805
|
+
var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
|
|
806
|
+
var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
807
|
+
var __spreadValues$4 = (a, b) => {
|
|
808
808
|
for (var prop in b || (b = {}))
|
|
809
|
-
if (__hasOwnProp$
|
|
810
|
-
__defNormalProp$
|
|
811
|
-
if (__getOwnPropSymbols$
|
|
812
|
-
for (var prop of __getOwnPropSymbols$
|
|
813
|
-
if (__propIsEnum$
|
|
814
|
-
__defNormalProp$
|
|
809
|
+
if (__hasOwnProp$4.call(b, prop))
|
|
810
|
+
__defNormalProp$4(a, prop, b[prop]);
|
|
811
|
+
if (__getOwnPropSymbols$4)
|
|
812
|
+
for (var prop of __getOwnPropSymbols$4(b)) {
|
|
813
|
+
if (__propIsEnum$4.call(b, prop))
|
|
814
|
+
__defNormalProp$4(a, prop, b[prop]);
|
|
815
815
|
}
|
|
816
816
|
return a;
|
|
817
817
|
};
|
|
@@ -830,7 +830,7 @@ const ApiaApiSelect = (props) => {
|
|
|
830
830
|
})
|
|
831
831
|
);
|
|
832
832
|
const validationRules = React__default.useMemo(
|
|
833
|
-
() => __spreadValues$
|
|
833
|
+
() => __spreadValues$4({
|
|
834
834
|
required: element.mandatory
|
|
835
835
|
}, classToValidate(element.class)),
|
|
836
836
|
[element.class, element.mandatory]
|
|
@@ -874,6 +874,65 @@ const ApiaApiSelect = (props) => {
|
|
|
874
874
|
};
|
|
875
875
|
ApiaApiSelect.displayName = "ApiaApiSelect";
|
|
876
876
|
|
|
877
|
+
var __defProp$3 = Object.defineProperty;
|
|
878
|
+
var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
|
|
879
|
+
var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
|
|
880
|
+
var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
|
|
881
|
+
var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
882
|
+
var __spreadValues$3 = (a, b) => {
|
|
883
|
+
for (var prop in b || (b = {}))
|
|
884
|
+
if (__hasOwnProp$3.call(b, prop))
|
|
885
|
+
__defNormalProp$3(a, prop, b[prop]);
|
|
886
|
+
if (__getOwnPropSymbols$3)
|
|
887
|
+
for (var prop of __getOwnPropSymbols$3(b)) {
|
|
888
|
+
if (__propIsEnum$3.call(b, prop))
|
|
889
|
+
__defNormalProp$3(a, prop, b[prop]);
|
|
890
|
+
}
|
|
891
|
+
return a;
|
|
892
|
+
};
|
|
893
|
+
const ApiaApiTextArea = (props) => {
|
|
894
|
+
const element = React__default.useMemo(() => props.element, [props.element]);
|
|
895
|
+
const className = React__default.useMemo(
|
|
896
|
+
() => element.class ? `handler__textarea ${element.class}` : "handler__textarea",
|
|
897
|
+
[element.class]
|
|
898
|
+
);
|
|
899
|
+
const validationRules = React__default.useMemo(
|
|
900
|
+
() => __spreadValues$3({
|
|
901
|
+
required: element.mandatory,
|
|
902
|
+
maxLength: element.maxlength ? Number(element.maxlength) : void 0,
|
|
903
|
+
pattern: element.regExp,
|
|
904
|
+
patternMessage: element.regExpMessage
|
|
905
|
+
}, classToValidate(element.class)),
|
|
906
|
+
[
|
|
907
|
+
element.class,
|
|
908
|
+
element.mandatory,
|
|
909
|
+
element.maxlength,
|
|
910
|
+
element.regExp,
|
|
911
|
+
element.regExpMessage
|
|
912
|
+
]
|
|
913
|
+
);
|
|
914
|
+
const validationFunction = React__default.useMemo(
|
|
915
|
+
() => classToValidationFunction(element.class),
|
|
916
|
+
[element.class]
|
|
917
|
+
);
|
|
918
|
+
return /* @__PURE__ */ jsx(
|
|
919
|
+
Textarea,
|
|
920
|
+
{
|
|
921
|
+
className,
|
|
922
|
+
name: element.id || element.name,
|
|
923
|
+
label: element.text,
|
|
924
|
+
title: element.title || element.text,
|
|
925
|
+
value: element.value,
|
|
926
|
+
readOnly: element.readonly,
|
|
927
|
+
disabled: element.disabled,
|
|
928
|
+
validationFunction,
|
|
929
|
+
validationRules,
|
|
930
|
+
onChange: element.onChange
|
|
931
|
+
}
|
|
932
|
+
);
|
|
933
|
+
};
|
|
934
|
+
ApiaApiTextArea.displayName = "ApiaApiTextArea";
|
|
935
|
+
|
|
877
936
|
var __defProp$2 = Object.defineProperty;
|
|
878
937
|
var __defProps$2 = Object.defineProperties;
|
|
879
938
|
var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
|
|
@@ -1047,6 +1106,14 @@ const NonMemoizedApiaApiFieldsContainer = (props) => {
|
|
|
1047
1106
|
}),
|
|
1048
1107
|
element.sectionElementId
|
|
1049
1108
|
);
|
|
1109
|
+
case "textarea":
|
|
1110
|
+
return /* @__PURE__ */ jsx(
|
|
1111
|
+
ApiaApiTextArea,
|
|
1112
|
+
__spreadProps$2(__spreadValues$2({}, props), {
|
|
1113
|
+
element
|
|
1114
|
+
}),
|
|
1115
|
+
element.sectionElementId
|
|
1116
|
+
);
|
|
1050
1117
|
case "empty":
|
|
1051
1118
|
return /* @__PURE__ */ jsx(Box, { className: "spacer" }, element.sectionElementId);
|
|
1052
1119
|
default:
|
|
@@ -1232,7 +1299,11 @@ const NonMemoizedApiaApiButtonsContainer = (props) => {
|
|
|
1232
1299
|
modalConfiguration,
|
|
1233
1300
|
methodsPath
|
|
1234
1301
|
}).finally(() => {
|
|
1302
|
+
var _a3;
|
|
1235
1303
|
runButtonMethod();
|
|
1304
|
+
if ((_a3 = props == null ? void 0 : props.definition) == null ? void 0 : _a3.form.closeOnSubmit) {
|
|
1305
|
+
props.close();
|
|
1306
|
+
}
|
|
1236
1307
|
});
|
|
1237
1308
|
} else {
|
|
1238
1309
|
runButtonMethod();
|
|
@@ -1697,4 +1768,4 @@ const ApiaApiHandlerNonMemoized = () => {
|
|
|
1697
1768
|
};
|
|
1698
1769
|
const ApiaApiHandler = React.memo(ApiaApiHandlerNonMemoized);
|
|
1699
1770
|
|
|
1700
|
-
export { ApiaApi, ApiaApiHandler, makeApiaUrl };
|
|
1771
|
+
export { ApiaApi, ApiaApiHandler, getFunction, getModal, makeApiaUrl };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/ApiaApiContext.tsx","../src/apiaApi.ts","../src/fields/ApiaApiCheckbox.tsx","../src/fields/ApiaApiFileInput.tsx","../src/fields/ApiaApiInput.tsx","../src/fields/ApiaApiRadio.tsx","../src/fields/ApiaApiSelect.tsx","../src/fields/ApiaApiFieldsContainer.tsx","../src/buttons/ApiaApiButtonsContainer.tsx","../src/ApiaApiHandler.tsx"],"sourcesContent":["import { createContext } from 'react';\nimport * as React from 'react';\n\nlet apiaApiId: string | undefined;\n\nexport function getApiaApiId() {\n if (!apiaApiId) throw new Error('There is no apia api id');\n return apiaApiId;\n}\n\nconst ApiaApiId = createContext<string | undefined>('apiaApi');\n\nconst ApiaApiContext = ({\n children,\n id,\n}: {\n id: string;\n children: React.ReactNode;\n}) => {\n apiaApiId = id;\n return <ApiaApiId.Provider value={id}>{children}</ApiaApiId.Provider>;\n};\n\nexport default React.memo(ApiaApiContext);\n","/* eslint-disable @typescript-eslint/no-invalid-void-type */\nimport axios, { AxiosResponse } from 'axios';\nimport { merge } from 'lodash';\nimport QueryString from 'qs';\nimport { session } from '@apia/session';\nimport {\n arrayOrArray,\n parseXmlAsync,\n EventEmitter,\n TModify,\n TApiaAction,\n TApiaSystemMessageObj,\n debugDispatcher,\n TNotificationMessage,\n} from '@apia/util';\nimport {\n dispatchNotifications,\n getNotificationMessageObj,\n notify,\n} from '@apia/notifications';\nimport { handle } from './ApiaApiHandler';\nimport {\n IApiaApiRequestConfig,\n TApiaApiConfigurator,\n TApiaApiResult,\n TColors,\n} from './types';\n\ndebugDispatcher.on(\n 'parseXml',\n async ([text]) => {\n const result = await parseXmlAsync<unknown>(text as string);\n console.info(result);\n },\n 'Acepta un parámetro de tipo string y realiza un parseo como si fuera xml, convirtiéndolo a objeto javascript.',\n);\n\nconst defaultConfig: IApiaApiRequestConfig<unknown> = {\n debug: true,\n colors: {\n exception: 'red',\n alert: 'yellow',\n message: 'lightgreen',\n },\n handleLoad: false,\n};\n\nconst STORED_CONFIG = 'ApiaApiConfig';\n\nlet forcedConfig: Partial<IApiaApiRequestConfig<unknown>> = {};\nconst storedConfig = localStorage.getItem(STORED_CONFIG);\nif (storedConfig)\n forcedConfig = JSON.parse(storedConfig) as Partial<\n IApiaApiRequestConfig<unknown>\n >;\n\nexport function getApiaApiConfigurator(): TApiaApiConfigurator {\n return {\n reset() {\n forcedConfig = {};\n localStorage.removeItem(STORED_CONFIG);\n },\n config(newConfig) {\n if (\n newConfig.notificationsCategory ||\n newConfig.axiosConfig ||\n newConfig.modalConfiguration ||\n newConfig.handleLoad ||\n newConfig.queryData ||\n newConfig.stringifyOptions ||\n newConfig.validateResponse\n )\n throw new Error('Operación ilegal');\n\n const toStoreConfig = merge(forcedConfig, newConfig);\n localStorage.setItem(STORED_CONFIG, JSON.stringify(toStoreConfig));\n forcedConfig = toStoreConfig;\n console.log('Se guardó la configuración correctamente', {\n config: toStoreConfig,\n });\n },\n shout() {\n console.log({ config: getConfig({}) });\n },\n theme(theme) {\n if (theme.toLowerCase() === 'dark') {\n getApiaApiConfigurator().config({\n colors: {\n exception: 'red',\n alert: 'yellow',\n message: 'lightgreen',\n },\n });\n } else if (theme.toLowerCase() === 'light') {\n getApiaApiConfigurator().config({\n colors: {\n exception: 'red',\n alert: '#e0e006',\n message: 'darkgreen',\n },\n });\n } else {\n console.log(`Tema ${theme} desconocido, prueba 'light' o 'dark'.`);\n return;\n }\n\n console.log(`Tema ${theme} establecido correctamente.`);\n },\n };\n}\n\nfunction getConfig<LoadType>(\n outerBehaveConfig?: IApiaApiRequestConfig<LoadType>,\n) {\n return merge({}, defaultConfig, outerBehaveConfig, forcedConfig);\n}\n\nfunction makeUrl(\n url: string,\n queryData: IApiaApiRequestConfig<unknown>['queryData'],\n stringifyOptions: IApiaApiRequestConfig<unknown>['stringifyOptions'],\n) {\n let finalUrl = url;\n const questionMarkIndex = finalUrl.indexOf('?');\n\n if (questionMarkIndex === -1) finalUrl += '?';\n else if (questionMarkIndex !== finalUrl.length - 1 && !finalUrl.endsWith('&'))\n finalUrl += '&';\n let parsedUrl = `${finalUrl}${\n queryData ? QueryString.stringify(queryData, stringifyOptions) : ''\n }`;\n if (parsedUrl.endsWith('&') || parsedUrl.endsWith('?')) {\n parsedUrl = parsedUrl.slice(0, parsedUrl.length - 1);\n }\n return parsedUrl;\n}\n\nconst getURLActionName = (url: string): string => {\n const actionIdx = url.match(/action=(\\w+)/)?.[1];\n return actionIdx ?? 'noAction';\n};\n\nexport const ApiaActions = new (class ApiaActions extends EventEmitter<{\n action: TModify<TApiaAction, { param: string[] }>;\n}> {})();\n\nfunction getColor(\n color: keyof TColors,\n colors: TColors = defaultConfig.colors ?? {\n exception: 'red',\n alert: 'yellow',\n message: 'green',\n },\n) {\n return colors[color] as string;\n}\n\nconst handleWrongResponse = (error: Error) => {\n let errorMessage: string;\n if (typeof error !== 'string') {\n if (error.message) errorMessage = error.message;\n else errorMessage = error.toString();\n } else errorMessage = error;\n\n notify({\n type: 'danger',\n message: error.message.replaceAll('AxiosError', 'Error'),\n });\n console.log('%c ', 'font-size:10vh');\n console.log('%cError in ApiaApi', 'color:red;font-size:2em;font-weight:bold');\n console.log(`red/${errorMessage}`, { error });\n console.log('%c ', 'font-size:10vh');\n};\n\nexport function isJsonResponse(response: AxiosResponse<unknown>) {\n return (response.headers['content-type'] as string).match('application/json');\n}\nexport function isXmlResponse(response: AxiosResponse<unknown>) {\n return (response.headers['content-type'] as string).match(\n /(?:application|text)?\\/xml/,\n );\n}\nexport function isHtmlResponse(response: AxiosResponse<unknown>) {\n return (response.headers['content-type'] as string).match(\n /(?:application|text)?\\/html/,\n );\n}\n\nfunction handleActions(actions: TApiaSystemMessageObj['actions']) {\n if (actions) {\n if (getConfig().debug)\n console.log(\n '%cHandled actions: ',\n `color: ${getConfig().colors?.message ?? 'green'}`,\n { actions },\n );\n const actionsArray = arrayOrArray(actions.action);\n actionsArray.forEach((action) => {\n ApiaActions.emit('action', {\n ...action,\n param: arrayOrArray(action.param),\n });\n });\n }\n}\nfunction handleOnClose({\n exceptions,\n onClose,\n sysExceptions,\n sysMessages,\n}: TModify<TNotificationMessage, { onClose: string }>) {\n try {\n import(\n /* webpackChunkName: \"api-[request]\" */ `/api/onClose/${onClose}.ts`\n ).then(\n (func: { default: () => void }) => {\n if (exceptions || sysExceptions || sysMessages) {\n const notificationsObject = getNotificationMessageObj({\n exceptions,\n onClose,\n sysExceptions,\n sysMessages,\n });\n if (notificationsObject)\n notificationsObject.forEach((notification) => {\n notify({\n ...notification,\n onClose: func.default,\n });\n });\n else func.default();\n } else func.default();\n },\n (e) => {\n notify({\n message: `onClose action not found: ${String(e)}`,\n type: 'danger',\n });\n },\n );\n } catch (e) {\n parseMessages({ exceptions, sysExceptions, sysMessages });\n console.error('Error while handling onClose');\n console.error(e);\n }\n}\n\nexport function parseMessages(response: Record<string, unknown>) {\n if (!response) return;\n const { exceptions, sysMessages, sysExceptions } = response;\n if (exceptions || sysExceptions || sysMessages) {\n try {\n dispatchNotifications({\n exceptions,\n sysExceptions,\n sysMessages,\n } as TNotificationMessage);\n } catch (e: unknown) {\n handleWrongResponse(new Error(e as string));\n }\n }\n}\n\nexport const parseSuccessfulResponse = async <\n LoadType extends Record<string, unknown>,\n>(\n response: AxiosResponse<string>,\n currentUrl: string,\n outerBehaveConfig: IApiaApiRequestConfig<LoadType> = defaultConfig,\n) => {\n const behaveConfig = getConfig(outerBehaveConfig);\n\n let parsedObj: TApiaSystemMessageObj<LoadType> | void | undefined = undefined;\n if (isJsonResponse(response)) {\n if (typeof response.data === 'string')\n parsedObj = JSON.parse(\n response.data.trim(),\n ) as TApiaSystemMessageObj<LoadType> | void;\n else if (typeof response.data === 'object' && response.data)\n parsedObj = response.data;\n } else if (isXmlResponse(response)) {\n parsedObj = await parseXmlAsync<LoadType>(response.data).catch(\n (e: unknown) => {\n handleWrongResponse(new Error(e as string));\n },\n );\n } else if (isHtmlResponse(response)) {\n console.error(\n 'El contenido devuelto es Html, no se esperaba esa respuesta',\n );\n return null;\n }\n\n if (behaveConfig.validateResponse) {\n const validateResult = await behaveConfig.validateResponse({\n ...response,\n data: parsedObj?.load ?? parsedObj,\n });\n if (typeof validateResult === 'string')\n throw new Error(`Validation error: ${validateResult}`);\n else if (!validateResult) {\n throw new Error('Error');\n }\n }\n\n if (parsedObj) {\n const {\n actions,\n onClose,\n exceptions,\n sysExceptions,\n sysMessages,\n load,\n ...rest\n } = parsedObj; // Session handling\n if (rest.code === '-1' && exceptions) {\n session.invalidate();\n return null;\n }\n\n if (exceptions && behaveConfig.debug) {\n console.log(\n `%cparseSuccessfulResponse`,\n `color: ${getColor('exception', behaveConfig.colors)}`,\n {\n exceptions,\n },\n );\n }\n if (sysExceptions && behaveConfig.debug) {\n console.log(\n `%cparseSuccessfulResponse`,\n `color: ${getColor('exception', behaveConfig.colors)}`,\n {\n sysExceptions,\n },\n );\n }\n if (sysMessages && behaveConfig.debug) {\n console.log(\n `%cparseSuccessfulResponse`,\n `color: ${getColor('alert', behaveConfig.colors)}`,\n {\n sysMessages,\n },\n );\n }\n\n handleActions(actions);\n\n if (behaveConfig.handleLoad && onClose)\n handleOnClose({\n exceptions,\n onClose,\n sysExceptions,\n sysMessages,\n });\n else parseMessages({ exceptions, sysExceptions, sysMessages });\n\n if (load) {\n if (behaveConfig.handleLoad) {\n console.log(\n `%chandleLoad`,\n `color: ${getColor('message', behaveConfig.colors)}`,\n {\n load,\n },\n );\n if (\n !handle(load, currentUrl, {\n methodsPath: outerBehaveConfig.methodsPath,\n modalConfiguration: {\n ...behaveConfig.modalConfiguration,\n onClose: () => {\n if (onClose)\n handleOnClose({\n exceptions,\n onClose,\n sysExceptions,\n sysMessages,\n });\n if (behaveConfig.modalConfiguration?.onClose)\n behaveConfig.modalConfiguration?.onClose();\n },\n },\n })\n ) {\n console.log(\n `%cunhandledLoad -> There is no handler defined`,\n `color: ${getColor('exception', behaveConfig.colors)}`,\n {\n load,\n },\n );\n }\n }\n return { ...load, sysMessages, exceptions, sysExceptions };\n }\n return { ...(rest as LoadType), sysMessages, exceptions, sysExceptions };\n }\n\n return null;\n};\n\nexport type TApiaApiAxiosResponse<LoadType> = AxiosResponse<LoadType | null> & {\n hasError: boolean;\n hasMessages: boolean;\n};\n\nasync function handleResponse<LoadType extends Record<string, unknown>>(\n result: AxiosResponse<string> | void,\n currentUrl: string,\n outerBehaveConfig: IApiaApiRequestConfig<LoadType> = defaultConfig,\n): Promise<TApiaApiAxiosResponse<LoadType> | null> {\n const behaveConfig = getConfig(outerBehaveConfig);\n try {\n if (!result || result.data === undefined) {\n if (behaveConfig.debug)\n console.log(\n `%cApiaApi wrong response`,\n `color: ${getColor('alert', behaveConfig.colors)}`,\n );\n } else {\n const parsedResponse = await parseSuccessfulResponse<LoadType>(\n result,\n currentUrl,\n behaveConfig,\n );\n\n const action = getURLActionName(currentUrl);\n if (behaveConfig.debug)\n console.log(\n `%c <- ApiaApi.${result.config.method ?? ''} ${action} `,\n `color: ${getColor('message', behaveConfig.colors)}`,\n {\n data: parsedResponse,\n },\n );\n\n return {\n ...result,\n data: parsedResponse,\n hasError:\n !!parsedResponse?.exceptions || !!parsedResponse?.sysExceptions,\n hasMessages: !!parsedResponse?.sysMessages,\n };\n }\n } catch (e: unknown) {\n handleWrongResponse(new Error(e as string));\n return null;\n }\n\n return null;\n}\n\n/**\n* IMPORTANT!! The ApiaApi is programmed under the slogan that\n * **should never throw an exception**. **Errors** coming from\n * connectivity or exceptions on the server **will be handled\n * automatically** by ApiaApi, using the notification system\n * of the application. It is possible to determine in what context they should\n * be thrown those exceptions (global, main, modal) using the\n * alertsCategory configuration properties **(see errorsHandling.md)**.\n *\n * @param url String, the url you want to call\n * @param config interface IApiaApiRequestConfig<DataType>;\n *\n * @throws Nothing\n *\n * @example\n *\n * ApiaApi.post<ResponseType>('url...', {\n axiosConfig?: AxiosRequestConfig;\n\n // Configuración de postData\n postData? unknown;\n postDataTreatement?: 'stringify' | undefined;\n\n // Configuración de queryString\n queryData?: string | Record<string, unknown>;\n stringifyOptions?: QueryString.IStringifyOptions;\n\n // Response validator,\n // If it returns true, everything continues correctly\n // If it returns false, the ApiaApi throws a standard error.\n // If it returns string, ApiaApi throws the error returned in the string.\n validateResponse?: (\n response: AxiosResponse<DataType | null>,\n ) => boolean | string;\n\n // Configuración de alertas\n alertsImportance?: TAlertImportance;\n\n // Configuración de ApiaApiHandler, falta documentar\n handleLoad?: boolean;\n eventsHandler?: IEventsHandler;\n\n // other configuration\n colors?: TColors;\n debug?: boolean;\n }\n * @returns The type of the return value depends on the type passed when calling the function. If there was an error it returns null.\n */\nasync function post<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n DataType = unknown,\n>(\n url:\n | string\n | TModify<\n IApiaApiRequestConfig<LoadType>,\n { postData?: DataType; postDataTreatement?: 'stringify' }\n >,\n config?: TModify<\n IApiaApiRequestConfig<LoadType>,\n {\n postData?: DataType;\n postDataTreatement?: 'stringify';\n }\n >,\n): TApiaApiResult<LoadType>;\nasync function post<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n DataType = unknown,\n>(\n config: TModify<\n IApiaApiRequestConfig<LoadType>,\n {\n postData?: DataType;\n postDataTreatement?: 'stringify';\n }\n >,\n): TApiaApiResult<LoadType>;\nasync function post<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n DataType = unknown,\n T = unknown,\n>(\n par1:\n | string\n | TModify<\n IApiaApiRequestConfig<LoadType>,\n { postData?: DataType; postDataTreatement?: 'stringify' }\n >,\n par2?: TModify<\n IApiaApiRequestConfig<LoadType>,\n { postData?: DataType; postDataTreatement?: 'stringify' }\n >,\n): TApiaApiResult<LoadType> {\n const actualUrl = typeof par1 !== 'string' ? makeApiaUrl() : par1;\n\n const configParameter = (\n typeof par1 === 'string' ? par2 ?? defaultConfig : par1\n ) as TModify<\n IApiaApiRequestConfig<LoadType>,\n { postData?: DataType; postDataTreatement?: 'stringify' }\n >;\n\n const behaveConfig = {\n ...getConfig(configParameter),\n postData:\n configParameter.postDataTreatement === 'stringify'\n ? QueryString.stringify(\n configParameter.postData,\n configParameter.stringifyOptions,\n )\n : configParameter.postData,\n };\n\n const parsedUrl = makeUrl(\n actualUrl,\n behaveConfig.queryData,\n behaveConfig.stringifyOptions,\n );\n\n if (behaveConfig.debug) {\n const queryString = actualUrl.split('&');\n const action = getURLActionName(actualUrl);\n\n console.log(\n `%cApiaApi.post ${action}`,\n `color: ${getColor('message', behaveConfig.colors)}`,\n {\n url: parsedUrl,\n queryDataInURL: [...queryString],\n queryData: behaveConfig.queryData,\n formData: behaveConfig.postData,\n stringifyOptiopns: behaveConfig.stringifyOptions,\n },\n );\n }\n\n const response = await axios\n .post<T, AxiosResponse<string>, DataType | string>(\n parsedUrl,\n behaveConfig.postData,\n behaveConfig.axiosConfig,\n )\n .catch((e: unknown) => {\n handleWrongResponse(new Error(e as string));\n });\n\n if (response) {\n const result = handleResponse<LoadType>(response, actualUrl, behaveConfig);\n return result;\n }\n return null;\n}\n\n/**\n * IMPORTANTE!! El ApiaApi está programado bajo la consigna de que\n * **no debe tirar núnca una excepción**. **Los errores** provenientes\n * de la conectividad o de excepciones en el servidor **serán manejados\n * automáticamente** por el ApiaApi utilizando el sistema de notificaciones\n * de la aplicación. Es posible determinar en qué contexto deben\n * ser lanzadas esas excepciones (global, main, modal) utilizando las\n * propiedades de configuración alertsCategory **(ver errorsHandling.md)**.\n *\n * @param url String, el url al que se desea llamar\n * @param config interface IApiaApiRequestConfig<DataType>;\n *\n * @throws Nothing\n *\n * @example\n *\n * ApiaApi.get<TipoDeRespuesta>('url...', {\n axiosConfig?: AxiosRequestConfig;\n\n // Configuración de queryString\n queryData?: string | Record<string, unknown>;\n stringifyOptions?: QueryString.IStringifyOptions;\n\n // Validador de respuesta,\n // Si devuelve true, todo sigue correctamente\n // Si devuelve false, el ApiaApi tira un error estándar.\n // Si devuelve string, el ApiaApi tira el error devuelto en el string.\n validateResponse?: (\n response: AxiosResponse<DataType | null>,\n ) => boolean | string;\n\n // Configuración de alertas\n alertsImportance?: TAlertImportance;\n\n // Configuración de ApiaApiHandler, falta documentar\n handleLoad?: boolean;\n eventsHandler?: IEventsHandler;\n\n // Otra configuración\n colors?: TColors;\n debug?: boolean;\n }\n * @returns El tipo del valor devuelto depende del tipo pasado al llamar a la función. Si hubo un error devuelve null\n */\nasync function get<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n>(\n url: string | IApiaApiRequestConfig<LoadType>,\n config?: IApiaApiRequestConfig<LoadType>,\n): TApiaApiResult<LoadType>;\nasync function get<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n>(config: IApiaApiRequestConfig<LoadType>): TApiaApiResult<LoadType>;\nasync function get<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n T = unknown,\n D = unknown,\n>(\n par1: string | IApiaApiRequestConfig<LoadType>,\n par2?: IApiaApiRequestConfig<LoadType>,\n): TApiaApiResult<LoadType> {\n const actualUrl = typeof par1 !== 'string' ? makeApiaUrl() : par1;\n\n const behaveConfig = getConfig<LoadType>(\n typeof par1 === 'string' ? par2 ?? defaultConfig : par1,\n );\n\n const parsedUrl = makeUrl(\n actualUrl,\n behaveConfig.queryData,\n behaveConfig.stringifyOptions,\n );\n\n if (behaveConfig.debug)\n console.log(\n `%cApiaApi.get`,\n `color: ${getColor('message', behaveConfig.colors)}`,\n {\n url: parsedUrl,\n },\n );\n const response = await axios\n .get<T, AxiosResponse<string>, D>(parsedUrl, behaveConfig.axiosConfig)\n .catch((e: unknown) => {\n handleWrongResponse(new Error(e as string));\n });\n if (response) {\n const result = await handleResponse<LoadType>(\n response,\n actualUrl,\n behaveConfig,\n );\n return result;\n }\n return null;\n}\n\nconst ApiaApi = {\n get,\n getConfig,\n post,\n};\n/**\n * Creates an url based on the general requirements of Apia.\n * If the ajaxUrl property is not passed, it will use the\n * window.URL_REQUEST_AJAX. Its use is very simple, just pass the objects you\n * want to appear in the query string.\n *\n * @example makeApiaUrl({\n * ajaxUrl: 'the.endpoint.you.want',\n * queryString: 'an=existent&query=string',\n * action: 'theAction',\n * anotherProp: 15\n * })\n *\n * @returns the well formed url, in the example, the response url is:\n * /context/the.endpoint.you.want?an=existent&query=string&anotherProp=15&tabId=...&tokenId=...&action=theAction\n */\nexport function makeApiaUrl(props?: {\n action?: string;\n ajaxUrl?: string;\n queryString?: string;\n stringifyOptions?: QueryString.IStringifyOptions;\n tabId?: string | number;\n preventAsXmlParameter?: boolean;\n avoidTabId?: boolean;\n [key: string]: unknown;\n}) {\n let actualQueryData: Record<string, unknown> | unknown = {};\n\n if (props) {\n const {\n ajaxUrl,\n queryString,\n stringifyOptions,\n shouldAvoidTabId,\n preventAsXmlParameter,\n avoidTabId,\n tabId: outerTabId,\n ...rest\n } = props;\n actualQueryData = { ...rest };\n }\n\n const queryString = QueryString.stringify(\n actualQueryData,\n props?.stringifyOptions ?? {\n arrayFormat: 'repeat',\n encodeValuesOnly: false,\n },\n );\n\n let actualAjaxUrl = props?.ajaxUrl ?? window.URL_REQUEST_AJAX;\n if (actualAjaxUrl.indexOf('?') === actualAjaxUrl.length - 1) {\n actualAjaxUrl = actualAjaxUrl.slice(0, actualAjaxUrl.length - 1);\n }\n if (!actualAjaxUrl.startsWith('/')) {\n actualAjaxUrl = `/${actualAjaxUrl}`;\n }\n\n const match = window.TAB_ID_REQUEST.match(/tokenId=(\\w+)/);\n const currentTokenId = (match ?? [])[1];\n\n let tabId = (\n props?.tabId\n ? `&tabId=${props.tabId}&tokenId=${currentTokenId}`\n : window.TAB_ID_REQUEST\n ).slice(1);\n if (props?.avoidTabId) {\n tabId = '';\n }\n\n let { CONTEXT } = window;\n if (CONTEXT?.endsWith('/')) {\n CONTEXT += CONTEXT.slice(0, CONTEXT.length - 1);\n }\n\n let timestamp = `timestamp=${Date.now()}&`;\n if (\n (props?.queryString && props.queryString.includes('timestamp=')) ||\n queryString?.includes('timestamp=')\n ) {\n timestamp = '';\n }\n\n const contextWord = CONTEXT.replaceAll('/', '');\n actualAjaxUrl = actualAjaxUrl.match(\n new RegExp(`^(?:(?:/?${contextWord})?/)?(.+)$`),\n )?.[1] as string;\n\n return `${\n contextWord ? '/' : ''\n }${contextWord}/${actualAjaxUrl}?${timestamp}${\n !props?.preventAsXmlParameter ? 'asXml=true&' : ''\n }${props?.queryString ? `${props.queryString}&` : ''}${\n queryString ? `${queryString}&` : ''\n }${tabId}`;\n}\n\ndeclare global {\n interface Window {\n TAB_ID_REQUEST: string;\n CONTEXT: string;\n URL_REQUEST_AJAX: string;\n }\n}\n\nexport default ApiaApi;\n","import { classToValidate, Checkbox } from '@apia/validations';\nimport React from 'react';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport const ApiaApiCheckbox = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n const className = React.useMemo(\n () =>\n element.class\n ? `handler__checkbox ${element.class}`\n : 'handler__checkbox',\n [element.class],\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n ...classToValidate(element.class),\n }),\n [element.class, element.mandatory],\n );\n const submitValueParser = React.useCallback(\n (value: boolean | string) => value === 'on' || value === true,\n [],\n );\n return (\n <Checkbox\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n initialValue={String(element.selected) === 'true'}\n disabled={element.readonly || element.disabled}\n validationRules={validationRules}\n onChange={element.onChange}\n submitValueParser={submitValueParser}\n />\n );\n};\n","import { classToValidate, FileInput } from '@apia/validations';\nimport React from 'react';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport const ApiaApiFileInput = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n const className = React.useMemo(\n () => (element.class ? `handler__file ${element.class}` : 'handler__file'),\n [element.class],\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n ...classToValidate(element.class),\n }),\n [element.class, element.mandatory],\n );\n\n return (\n <FileInput\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n readOnly={element.readonly}\n disabled={element.disabled}\n validationRules={validationRules}\n />\n );\n};\n\nApiaApiFileInput.displayName = 'ApiaApiFileInput';\n","import { encrypt, useMount } from '@apia/util';\nimport {\n classToValidate,\n classToValidationFunction,\n Input,\n} from '@apia/validations';\nimport React from 'react';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport const ApiaApiInput = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n\n const getModal = React.useCallback((path: string) => {\n return React.lazy<React.ComponentType<TApiaApiField>>(() => {\n return new Promise<{\n default: React.ComponentType<TApiaApiField>;\n }>((resolve) => {\n import(\n /* webpackChunkName: \"handlerModal\" */\n /* webpackInclude: /\\.tsx?$/ */\n `/api/modals/${path}`\n )\n .then((result: unknown) => {\n resolve(\n result as {\n default: React.ComponentType<TApiaApiField>;\n },\n );\n })\n .catch((error: unknown) => {\n resolve({\n default: () => {\n console.error(error);\n throw new Error(\n `The above error ocurred at component ApiaApiHandler/${path}, does it exist?`,\n );\n },\n });\n });\n });\n });\n }, []);\n\n const [Submodal, setSubmodal] = React.useState<React.LazyExoticComponent<\n React.ComponentType<TApiaApiField>\n > | null>(null);\n\n useMount(() => {\n if (element.modalFunction) {\n const found = element.modalFunction.match(/(?:fnc)?(\\w+)\\(?\\)?$/);\n if (found) {\n const modalName = found[found.length - 1];\n setSubmodal(getModal(modalName));\n }\n }\n });\n\n const className = React.useMemo(\n () =>\n element.class\n ? `handler__${element.type} ${element.class}`\n : `handler__${element.type}`,\n [element.class, element.type],\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n maxLength: element.maxlength ? Number(element.maxlength) : undefined,\n pattern: element.regExp,\n patternMessage: element.regExpMessage,\n ...classToValidate(element.class),\n }),\n [\n element.class,\n element.mandatory,\n element.maxlength,\n element.regExp,\n element.regExpMessage,\n ],\n );\n const validationFunction = React.useMemo(\n () => classToValidationFunction(element.class),\n [element.class],\n );\n const submitValueParser = React.useCallback(\n (value: string) => {\n if (element.type === 'password') {\n return encrypt(\n window.SALT,\n window.IV,\n window.PASSPHRASE,\n value,\n Number(window.KEY_SIZE),\n Number(window.ITERATION_COUNT),\n );\n }\n return value;\n },\n [element.type],\n );\n\n if (element.modalFunction) {\n if (Submodal) {\n return (\n <React.Suspense>\n <Submodal {...props} element={element} />\n </React.Suspense>\n );\n }\n return null;\n }\n\n return (\n <Input\n type={element.type}\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n value={element.value}\n readOnly={element.readonly}\n disabled={element.disabled}\n validationFunction={validationFunction}\n validationRules={validationRules}\n submitValueParser={submitValueParser}\n onChange={element.onChange}\n autoComplete={element.type === 'password' ? 'new-password' : undefined}\n />\n );\n};\n\nApiaApiInput.displayName = 'ApiaApiInput';\n","import { arrayOrArray } from '@apia/util';\nimport { classToValidate, Radio } from '@apia/validations';\nimport React from 'react';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport const ApiaApiRadio = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n const className = React.useMemo(\n () =>\n element.class ? `handler__radio ${element.class}` : 'handler__radio',\n [element.class],\n );\n const options = React.useMemo(\n () =>\n arrayOrArray(element.options?.option).map((currOption) => {\n return { value: currOption.value, label: currOption.content };\n }),\n [element.options?.option],\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n ...classToValidate(element.class),\n }),\n [element.class, element.mandatory],\n );\n return (\n <Radio\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n initialValue={element.value}\n disabled={element.readonly || element.disabled}\n validationRules={validationRules}\n options={options}\n onChange={element.onChange}\n />\n );\n};\n\nApiaApiRadio.displayName = 'ApiaApiRadio';\n","import React from 'react';\nimport { arrayOrArray, EventEmitter } from '@apia/util';\nimport { classToValidate, Select } from '@apia/validations';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport type TOption = {\n content: string;\n value: string;\n};\n\nexport const apiaApiSelectOptions =\n new (class ApiaApiSelectOptions extends EventEmitter<{\n setOptions: {\n fieldName: string;\n options: TOption[];\n };\n }> {})();\n\nexport const ApiaApiSelect = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n const className = React.useMemo(\n () =>\n element.class ? `handler__select ${element.class}` : 'handler__select',\n [element.class],\n );\n const [options, setOptions] = React.useState<\n {\n value: string;\n label: string;\n }[]\n >(\n arrayOrArray(element.options?.option).map((currOption) => {\n return { value: currOption.value, label: currOption.content };\n }),\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n ...classToValidate(element.class),\n }),\n [element.class, element.mandatory],\n );\n\n React.useEffect(() => {\n const unsuscribe = apiaApiSelectOptions.on('setOptions', (ev) => {\n if (ev.fieldName === element.name) {\n setOptions(\n ev.options.map((currOption) => ({\n value: currOption.value,\n label: currOption.content,\n })),\n );\n }\n });\n\n return () => {\n unsuscribe();\n };\n }, [element.name]);\n\n const initialValue = React.useMemo(\n () =>\n options.find((current) => current.value === props.element.value)?.value ??\n options[0]?.value ??\n '',\n [options, props.element.value],\n );\n\n return (\n <Select\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n initialValue={initialValue}\n disabled={element.readonly || element.disabled}\n validationRules={validationRules}\n options={options}\n onChange={element.onChange}\n />\n );\n};\n\nApiaApiSelect.displayName = 'ApiaApiSelect';\n","import { getVariant } from '@apia/theme';\nimport { arrayOrArray, TApiaFormElement, TApiaLoad } from '@apia/util';\nimport { uniqueId } from 'lodash';\nimport React from 'react';\nimport { Box } from '@apia/theme';\nimport { getFunction, TApiaApiMethodHandler } from '../ApiaApiHandler';\nimport { TModalTable } from '../types';\nimport { ApiaApiCheckbox } from './ApiaApiCheckbox';\nimport { ApiaApiFileInput } from './ApiaApiFileInput';\nimport { ApiaApiInput } from './ApiaApiInput';\nimport { ApiaApiRadio } from './ApiaApiRadio';\nimport { ApiaApiSelect } from './ApiaApiSelect';\n\ntype TApiaApiFieldsContainer = TApiaApiMethodHandler & {\n definition?: TApiaLoad | undefined;\n};\n\ntype TApiaApiSectionElement = TApiaFormElement & {\n sectionElementId: string;\n};\n\ntype TApiaApiSection = {\n sectionId: string;\n sectionHeader?: TApiaApiSectionElement;\n sectionElements: TApiaApiSectionElement[];\n};\n\nconst parseApiaApiSections = (elements: TApiaFormElement[]) => {\n const removeEndingSpacers = (\n sectionElements: TApiaFormElement[],\n ): TApiaFormElement[] => {\n if (sectionElements.length > 1) {\n for (let i = sectionElements.length - 1; i >= 0; i--) {\n if (sectionElements[i].type === 'empty') {\n sectionElements.pop();\n } else {\n return sectionElements;\n }\n }\n }\n return sectionElements;\n };\n const sectionIndexes: number[] = [];\n if (elements[0]?.type !== '2columnTitle') {\n sectionIndexes.push(-1);\n }\n elements.forEach((element, index) => {\n if (element.type === '2columnTitle') {\n sectionIndexes.push(index);\n }\n });\n const sections: TApiaApiSection[] = [];\n sectionIndexes.forEach((sectionIndex, arrayIndex) => {\n const start =\n sectionIndex + 1 < elements.length\n ? sectionIndex + 1\n : elements.length - 1;\n const end =\n arrayIndex + 1 < sectionIndexes.length\n ? sectionIndexes[arrayIndex + 1]\n : undefined;\n sections.push({\n sectionId: `ApiaApiSection_${arrayIndex}`,\n sectionHeader:\n sectionIndex !== -1\n ? {\n ...elements[sectionIndex],\n sectionElementId: `sectionHeader_${arrayIndex}`,\n }\n : undefined,\n sectionElements: removeEndingSpacers(elements.slice(start, end)).map(\n (currentElement) => ({\n ...currentElement,\n sectionElementId: `sectionElement_${\n currentElement.id || currentElement.name || uniqueId()\n }`,\n }),\n ),\n });\n });\n return sections;\n};\n\nconst NonMemoizedApiaApiFieldsContainer = (props: TApiaApiFieldsContainer) => {\n const elements = React.useMemo(\n () => arrayOrArray(props?.definition?.form.elements?.element ?? []),\n [props?.definition?.form.elements?.element],\n );\n\n const sections = React.useMemo(\n () => parseApiaApiSections(elements),\n [elements],\n );\n\n const renderSectionContent = React.useCallback(\n (sectionId: string, sectionElements: TApiaApiSectionElement[]) => {\n const isVisible =\n sectionElements.findIndex((element) => element.type !== 'hidden') !==\n -1;\n return (\n <Box\n className={\n isVisible\n ? 'handler__form__elements__section__content'\n : `handler__form__elements__section__content handler__hidden`\n }\n key={sectionId}\n >\n {sectionElements.map((current) => {\n const element = {\n ...current,\n onChange() {\n getFunction(current.onChange, props)\n .then((onChangeMethod) => {\n if (onChangeMethod) {\n onChangeMethod();\n }\n })\n .catch(console.error);\n },\n };\n switch (element.type) {\n case 'table': {\n const data = JSON.parse(element.text) as TModalTable;\n return (\n <Box\n key={element.sectionElementId}\n {...getVariant('layout.common.tables.information')}\n >\n <table sx={{ width: '100%' }}>\n <thead>\n <tr>\n {data.columns.map((column) => {\n return <th key={column}>{column}</th>;\n })}\n </tr>\n </thead>\n <tbody>\n {data.rows.map((row) => {\n return (\n <tr key={row.cells.join('-')}>\n {row.cells.map((cell, i) => {\n return (\n <td key={`${cell}_${data.columns[i]}`}>\n {cell}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n </Box>\n );\n }\n case '2columnSubTitle':\n return (\n <Box\n key={element.sectionElementId}\n className={element.class}\n as=\"h6\"\n >\n {element.value || element.text}\n </Box>\n );\n case '2column':\n return (\n <Box\n key={element.sectionElementId}\n dangerouslySetInnerHTML={{\n __html: element.value || element.text,\n }}\n className={element.class}\n />\n );\n case 'checkbox':\n return (\n <ApiaApiCheckbox\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'file':\n return (\n <ApiaApiFileInput\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'hidden':\n case 'password':\n case 'text':\n return (\n <ApiaApiInput\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'select':\n return (\n <ApiaApiSelect\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'radio':\n return (\n <ApiaApiRadio\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'empty':\n return (\n <Box key={element.sectionElementId} className=\"spacer\" />\n );\n default:\n console.warn(\n `Unhandled element type: ${element.type}`,\n element,\n );\n return null;\n }\n })}\n </Box>\n );\n },\n [props],\n );\n return (\n <Box className=\"handler__form__elements\">\n {sections.map((section) => {\n if (section.sectionHeader) {\n return renderSectionContent(\n section.sectionId,\n section.sectionElements,\n );\n }\n return renderSectionContent(section.sectionId, section.sectionElements);\n })}\n </Box>\n );\n};\n\nexport const ApiaApiFieldsContainer = React.memo(\n NonMemoizedApiaApiFieldsContainer,\n);\n\nApiaApiFieldsContainer.displayName = 'ApiaApiFieldsContainer';\n","import { arrayOrArray, TApiaFormButton, TApiaLoad } from '@apia/util';\nimport { uniqueId } from 'lodash';\nimport QueryString from 'qs';\nimport React from 'react';\nimport { Box } from '@apia/theme';\nimport {\n hasSucceedFormValidation,\n useFormContext,\n validationsStore,\n} from '@apia/validations';\nimport { ISimpleButton, SimpleButton } from '@apia/components';\nimport { getFunction, TApiaApiMethodHandler } from '../ApiaApiHandler';\nimport ApiaApi from '../apiaApi';\n\ntype TApiaApiButtonsContainer = TApiaApiMethodHandler & {\n definition?: TApiaLoad | undefined;\n};\n\ntype TApiaApiButton = Omit<TApiaFormButton, 'type'> &\n Pick<ISimpleButton, 'type'> & {\n buttonKey: string;\n };\n\nconst parseButtons = (buttons: TApiaFormButton[]): TApiaApiButton[] => {\n return buttons.map((currentButton) => ({\n ...currentButton,\n buttonKey: uniqueId(),\n type: ['submitAjax', 'submit'].includes(currentButton.type)\n ? 'submit'\n : 'button',\n }));\n};\n\nconst NonMemoizedApiaApiButtonsContainer = (\n props: TApiaApiButtonsContainer,\n) => {\n const buttonElements = React.useMemo(\n () => arrayOrArray(props.definition?.form.buttons?.button ?? []),\n [props.definition?.form.buttons?.button],\n );\n const buttons = React.useMemo(\n () => parseButtons(buttonElements),\n [buttonElements],\n );\n const modalConfiguration = React.useMemo(\n () => props.configuration?.modalConfiguration,\n [props.configuration?.modalConfiguration],\n );\n const methodsPath = React.useMemo(\n () => props.configuration?.methodsPath,\n [props.configuration?.methodsPath],\n );\n const { name: apiaApiForm } = useFormContext();\n\n const renderButton = React.useCallback(\n (currentButton: TApiaApiButton) => {\n const key = currentButton.buttonKey;\n const className = `handler__${currentButton.type ?? ''}`;\n const onClick = () => {\n void (async function submitForm() {\n const validationResult = await validationsStore.validateForm(\n apiaApiForm,\n );\n if (!hasSucceedFormValidation(validationResult)) {\n return;\n }\n const { submitValues } = validationResult;\n\n function runButtonMethod() {\n void (async () => {\n if (currentButton.onclick) {\n const actions = currentButton.onclick.split(';');\n // eslint-disable-next-line no-restricted-syntax\n for await (const action of actions) {\n const method = await getFunction(action, {\n ...props,\n });\n\n if (method) {\n method({\n currentUrl: props.definition?.form.action ?? 'noUrl',\n });\n } else {\n throw new Error(\n `The requested action is not defined: \"${\n props.definition?.form.action ?? ''\n }\"`,\n );\n }\n }\n }\n })();\n }\n\n if (props?.definition && currentButton.type === 'submit') {\n const formData = new FormData();\n Object.entries(submitValues).forEach(([name, value]) => {\n formData.append(name, (value as string | Blob) ?? '');\n });\n\n const hasContext = props?.definition.form.action.match(\n new RegExp(`^${window.CONTEXT}/`),\n );\n const url = `${hasContext ? '' : window.CONTEXT}${\n !props?.definition.form.action.startsWith('/') ? '/' : ''\n }${props?.definition.form.action}`;\n\n props.setState((current) => ({\n ...current,\n isLoading: true,\n }));\n\n void ApiaApi.post(url, {\n postData: props.state.isMultipart\n ? formData\n : QueryString.stringify(\n [...formData.entries(), ['isAjax', true]].reduce<\n Record<string, string>\n >((accumulated, [name, value]) => {\n const retValue = { ...accumulated };\n retValue[name.toString()] = value.toString();\n return retValue;\n }, {}),\n ),\n handleLoad: true,\n notificationsCategory: 'apiaApiHandler',\n modalConfiguration,\n methodsPath,\n }).finally(() => {\n runButtonMethod();\n });\n } else {\n runButtonMethod();\n }\n })();\n };\n return (\n <SimpleButton\n className={className}\n disabled={props.state.disabled}\n id={currentButton.id || currentButton.text}\n isLoading={props.state.isLoading}\n key={key}\n title={currentButton.text}\n type={currentButton.type}\n onClick={onClick}\n >\n {currentButton.text}\n </SimpleButton>\n );\n },\n [apiaApiForm, methodsPath, modalConfiguration, props],\n );\n\n return (\n <Box className=\"handler__form__buttons\">\n {buttons.map((currentButton) => renderButton(currentButton))}\n </Box>\n );\n};\n\nexport const ApiaApiButtonsContainer = React.memo(\n NonMemoizedApiaApiButtonsContainer,\n);\n","/* eslint-disable max-classes-per-file */\n\nimport * as React from 'react';\nimport { Box } from '@apia/theme';\nimport { AxiosResponse } from 'axios';\nimport {\n arrayOrArray,\n EventEmitter,\n focus,\n focusSelector,\n TApiaAction,\n TApiaFormElement,\n TApiaFunction,\n TApiaLoad,\n TApiaLoadText,\n TModify,\n useMount,\n useStateRef,\n useUnmount,\n WithEventsValue,\n} from '@apia/util';\nimport { notify } from '@apia/notifications';\nimport { Form, validationsStore } from '@apia/validations';\nimport { Modal, ProgressBar, TModal, useModal } from '@apia/components';\nimport { getVariant } from '@apia/theme';\nimport ApiaApiContext from './ApiaApiContext';\nimport { IApiaApiRequestConfig } from './types';\nimport { ApiaActions } from './apiaApi';\nimport { ApiaApiFieldsContainer } from './fields/ApiaApiFieldsContainer';\nimport { ApiaApiButtonsContainer } from './buttons/ApiaApiButtonsContainer';\n\nexport type TMessage = {\n isHtml?: boolean;\n predicate: string;\n title?: string;\n};\ntype TMessageLocal = { title: string; predicate: string };\ntype TMethod = {\n name: string;\n props: {\n attributes?: Record<string, unknown>;\n currentUrl?: string;\n funCall?: string;\n inlineArguments?: string[];\n messages?: unknown;\n };\n};\nconst ApiaApiMessenger = new (class extends EventEmitter<{\n message: TMessageLocal;\n}> {})();\nconst FunctionsDispatcher = new (class extends EventEmitter<{\n method: TMethod;\n}> {})();\n\nexport type TApiaApiMethodHandler = {\n alert: typeof notify;\n close: () => void;\n configuration?: THandleConfiguration;\n formDefinition: TApiaLoad;\n setModalProps?: (\n configuration: THandleConfiguration,\n formDefinition?: TApiaLoad,\n ) => TModal | null;\n reset: () => void;\n setError: typeof notify;\n setMessage: (message: Record<string, unknown>) => unknown;\n setState: React.Dispatch<React.SetStateAction<IApiaApiHandlerState>>;\n state: IApiaApiHandlerState;\n setValue: (name: string, value: string) => void;\n};\n\nexport type TApiaApiMethod = (\n handler: TApiaApiMethodHandler,\n props: TMethod['props'],\n) => Promise<void> | void;\n\nexport type TApiaApiField = TApiaApiMethodHandler & {\n element: TModify<TApiaFormElement, { onChange: React.ChangeEventHandler }>;\n};\n\nexport const apiaApiForm = 'ApiaApiForm';\n\ntype TStoredApiaApiMethod = (props?: TMethod['props']) => unknown;\n\nconst methods: Record<string, TStoredApiaApiMethod> = {};\n\nexport async function getFunction(\n name: string,\n handler: TApiaApiMethodHandler,\n): Promise<TStoredApiaApiMethod | undefined> {\n return new Promise((resolve) => {\n try {\n const separateNameFromParametersRegex =\n /^\\/?([\\w\\d_-]+)\\/?(?:\\(([^)]*)\\))?$/;\n const match = name.match(separateNameFromParametersRegex);\n if (match) {\n const functionName = match[1];\n const parameters = match[2];\n const path: string = [\n ...(handler.configuration?.methodsPath\n ?.split('/')\n .filter((current) => !!current) ?? []),\n functionName,\n ].join('/');\n const storeMethodAndResolve = (result: { default: TApiaApiMethod }) => {\n if (typeof result.default !== 'function') notFound();\n const method = result.default;\n methods[functionName] = (props?: TMethod['props']) => {\n return method(handler, {\n ...props,\n inlineArguments:\n parameters?.split(',').map((argument) => {\n if (argument.startsWith(\"'\") || argument.startsWith('\"'))\n return argument.slice(1, argument.length - 1);\n return argument;\n }) ?? [],\n });\n };\n resolve(methods[functionName]);\n };\n\n const notFound = () => {\n throw new Error(\n `${functionName}.ts not found at ${path}.ts nor ./${functionName}.ts`,\n );\n };\n\n import(\n /* webpackChunkName: \"api-methods-[request]\" */ `/api/methods/${path}.ts`\n )\n .then(storeMethodAndResolve)\n .catch(() => {\n if (handler.configuration?.methodsPath !== undefined)\n import(\n /* webpackChunkName: \"api-methods-[request]\" */ `/api/methods/${functionName}.ts`\n )\n\n .then(storeMethodAndResolve)\n .catch(notFound);\n else {\n notFound();\n }\n });\n }\n } catch (e) {\n console.error(e);\n handler.reset();\n handler.setError({\n type: 'danger',\n message: 'Error while loading current method.',\n });\n }\n });\n}\n\nexport function isForm(\n responseObject: Record<string, unknown>,\n): responseObject is TApiaLoad {\n return (\n responseObject.form !== undefined &&\n typeof responseObject.form === 'object' &&\n !!responseObject.form\n );\n}\n\nexport function isFunction(\n responseObject: Record<string, unknown>,\n): responseObject is TApiaLoad<TApiaFunction> {\n return (\n typeof responseObject.canClose === 'boolean' &&\n typeof responseObject.type === 'string' &&\n !!responseObject.function\n );\n}\n\nfunction isMessage(\n responseObject: Record<string, unknown>,\n): responseObject is TApiaLoad<TApiaLoadText> {\n if (\n typeof responseObject.canClose === 'boolean' &&\n typeof responseObject.type === 'string' &&\n typeof responseObject.text === 'object' &&\n responseObject.text &&\n typeof (responseObject.text as Record<string, unknown>).label === 'string'\n ) {\n return true;\n }\n return false;\n}\n\nexport interface IModalConfig {\n modalTitle?: string;\n onClose?: () => void;\n onMessage?: (message: Record<string, unknown>) => unknown;\n onMessageClose?: () => unknown;\n onSubmitted?: (\n handler: TApiaApiMethodHandler,\n response: AxiosResponse<Record<string, unknown> | null> | null,\n ) => unknown;\n}\n\nconst modalConfigurationHandler = new WithEventsValue<THandleConfiguration>();\n\nfunction useModalConfiguration() {\n const [, setValue, value] = useStateRef<THandleConfiguration | undefined>(\n undefined,\n );\n\n const handleChange = React.useCallback(\n (newEventsHandler: THandleConfiguration | undefined) => {\n setValue(newEventsHandler);\n },\n [setValue],\n );\n\n useMount(() => {\n modalConfigurationHandler.on('update', handleChange);\n });\n\n useUnmount(() => {\n return modalConfigurationHandler.off('update', handleChange);\n });\n\n return value;\n}\n\nexport type THandleConfiguration = Partial<\n Pick<\n IApiaApiRequestConfig<unknown>,\n 'modalConfiguration' | 'methodsPath' | 'setModalProps'\n >\n>;\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nlet currentForm: TApiaLoad | undefined;\nconst currentFormDispatcher =\n new (class currentFormDispatcher extends EventEmitter<{\n form: TApiaLoad;\n }> {\n emit<K extends 'form'>(\n eventName: K,\n params?: { form: TApiaLoad }[K] | undefined,\n ): void {\n super.emit(eventName, params);\n currentForm = params;\n }\n })();\n\nexport function handle(\n responseObject: Record<string, unknown>,\n currentUrl: string,\n configuration: THandleConfiguration,\n) {\n modalConfigurationHandler.value = configuration;\n if (isForm(responseObject)) {\n currentFormDispatcher.emit('form', responseObject);\n return true;\n }\n if (isFunction(responseObject)) {\n FunctionsDispatcher.emit('method', {\n name: responseObject.function.name,\n props: {\n messages: responseObject.function.messages,\n attributes: responseObject.function,\n currentUrl,\n },\n });\n return true;\n }\n if (isMessage(responseObject)) {\n ApiaApiMessenger.emit('message', {\n predicate: responseObject.text.content,\n title: responseObject.text.title,\n });\n return true;\n }\n return false;\n}\n\nexport interface IApiaApiHandlerState {\n disabled: boolean;\n isLoading: boolean;\n isMultipart: boolean;\n progress: number;\n errors: Record<string, string>;\n windowIndex: number;\n}\n\nconst initialState: Omit<IApiaApiHandlerState, 'windowIndex'> = {\n disabled: false,\n isLoading: false,\n isMultipart: false,\n progress: 0,\n errors: {},\n};\n\nconst ApiaApiHandlerNonMemoized = () => {\n const configuration = useModalConfiguration();\n\n const [state, setState] = React.useState<IApiaApiHandlerState>({\n ...initialState,\n windowIndex: -1,\n });\n\n const [currentForm, setCurrentForm] = React.useState<TApiaLoad | undefined>(\n undefined,\n );\n React.useEffect(() => {\n return currentFormDispatcher.on('form', setCurrentForm);\n }, []);\n\n const setValue = React.useCallback((name: string, value: string) => {\n return validationsStore.setFieldValue(apiaApiForm, name, value);\n }, []);\n\n React.useEffect(() => {\n if (!currentForm) return;\n const elements = arrayOrArray(currentForm?.form?.elements?.element ?? []);\n\n let isMultipart = false;\n const elementsValues = Object.values(elements);\n let i = 0;\n while (i < elementsValues.length && !isMultipart) {\n if (elementsValues[i++].type === 'file') {\n isMultipart = true;\n }\n }\n\n setState((currentState) => {\n return {\n ...currentState,\n ...initialState,\n isMultipart,\n };\n });\n }, [currentForm]);\n\n const { show, onClose, ...modalHookProps } = useModal();\n\n const close = React.useCallback(() => {\n onClose();\n currentFormDispatcher.emit('form', undefined);\n setState((currentState) => {\n return { ...currentState, ...initialState };\n });\n configuration.current?.modalConfiguration?.onClose?.();\n\n validationsStore.unregisterForm(apiaApiForm);\n }, [onClose, configuration]);\n\n const modalRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n const elements = modalRef.current?.querySelectorAll(\n 'a,input,textarea,button',\n );\n if (elements?.length === 1)\n void focus.on(([...elements] as HTMLElement[])[0]);\n });\n\n const setError = React.useCallback(\n (notification: Parameters<typeof notify>[0]) => {\n notify({ ...notification });\n },\n [],\n );\n\n const initialFocusGetter = React.useCallback((ref: HTMLElement) => {\n return ref?.querySelector(focusSelector) as HTMLElement;\n }, []);\n\n const defaultModalProps = React.useMemo(\n (): TModal => ({\n onClose: close,\n id: apiaApiForm,\n title:\n configuration.current?.modalConfiguration?.modalTitle ??\n currentForm?.form.title,\n size: 'md-fixed',\n shouldCloseOnEsc: !state.disabled,\n shouldCloseOnOverlayClick: !state.disabled,\n initialFocusGetter,\n }),\n [\n close,\n configuration,\n currentForm?.form.title,\n initialFocusGetter,\n state.disabled,\n ],\n );\n\n const getModalProps = React.useCallback(\n (innerHandler: TApiaApiMethodHandler) => {\n if (innerHandler.setModalProps) {\n const overrideProps = innerHandler.setModalProps?.(\n {\n methodsPath: innerHandler.configuration?.methodsPath,\n modalConfiguration: innerHandler.configuration?.modalConfiguration,\n },\n innerHandler.formDefinition,\n );\n if (overrideProps) {\n const currentOnClose = () => {\n overrideProps?.onClose?.();\n defaultModalProps.onClose?.();\n };\n const currentOnExited = () => {\n overrideProps?.onExited?.();\n modalHookProps?.onExited?.();\n };\n return {\n ...defaultModalProps,\n ...overrideProps,\n ...modalHookProps,\n onClose: currentOnClose,\n onExited: currentOnExited,\n };\n }\n }\n return { ...defaultModalProps, ...modalHookProps };\n },\n [defaultModalProps, modalHookProps],\n );\n\n const getHandler = React.useCallback(() => {\n const newHandler: TApiaApiMethodHandler = {\n alert,\n close,\n configuration: configuration.current,\n formDefinition: currentForm as TApiaLoad,\n reset: () => {\n return setState((currentState) => {\n return {\n ...currentState,\n ...initialState,\n };\n });\n },\n setError,\n setMessage: (message) => {\n if (configuration.current?.modalConfiguration?.onMessage)\n configuration.current.modalConfiguration.onMessage(message);\n },\n setState,\n state,\n setValue,\n };\n return newHandler;\n }, [close, configuration, currentForm, setError, state, setValue]);\n\n const handler = getHandler();\n const modalProps = getModalProps(handler);\n\n const handleAction = React.useCallback(\n async (action: TModify<TApiaAction, { param: string[] }>) => {\n const innerHandler = getHandler();\n if (action.toDo === 'ajaxHiddeAll') {\n close();\n }\n if (action.toDo === 'functionTimedCall') {\n const method = await getFunction(\n arrayOrArray(action.param)[1],\n innerHandler,\n );\n\n if (method) {\n /*\n * Aquí el timeout se utiliza debido a que Apia lo establece de esa\n * forma,\n * Existe un retorno de Apia llamado functionTimedCall que\n * espera que una función se ejecute luego de un timeout, y\n * yo solamente respeté dicho comportamiento.\n */\n setTimeout(\n () =>\n method({\n currentUrl: innerHandler.formDefinition?.form.action ?? 'noUrl',\n }),\n Number(action.param[0]),\n );\n }\n }\n },\n [close, getHandler],\n );\n\n const handleFunction = React.useCallback(\n async ({ name, props: { messages, attributes, currentUrl } }: TMethod) => {\n const innerHandler = getHandler();\n const method = await getFunction(`${name}`, innerHandler);\n if (method) {\n method({ messages, attributes, currentUrl });\n }\n },\n [getHandler],\n );\n\n const handleMessage = React.useCallback(\n (ev: TMessage) => {\n const innerHandler = getHandler();\n notify({\n message: ev.predicate,\n type: 'warning',\n onClose: innerHandler.configuration?.modalConfiguration?.onMessageClose,\n });\n const onMessage =\n innerHandler.configuration?.modalConfiguration?.onMessage;\n if (onMessage) {\n onMessage(ev);\n }\n },\n [getHandler],\n );\n\n React.useEffect(() => {\n ApiaApiMessenger.on('message', handleMessage);\n FunctionsDispatcher.on('method', handleFunction);\n ApiaActions.on('action', handleAction);\n\n return () => {\n ApiaApiMessenger.off('message', handleMessage);\n FunctionsDispatcher.off('method', handleFunction);\n ApiaActions.off('action', handleAction);\n };\n }, [handleAction, handleFunction, handleMessage, state.windowIndex]);\n\n React.useEffect(() => {\n if (currentForm) {\n show();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentForm]);\n\n const formRef = React.useCallback(\n async (el: HTMLElement) => {\n if (el && currentForm?.form.onLoad) {\n const method = await getFunction(\n `${currentForm?.form.onLoad}`,\n getHandler(),\n );\n if (method) {\n method();\n }\n }\n },\n [currentForm?.form.onLoad, getHandler],\n );\n\n return (\n <ApiaApiContext id={apiaApiForm}>\n <Modal {...modalProps} ref={modalRef}>\n {currentForm && (\n <Box {...getVariant('layout.common.modals.apiaApi')}>\n <Form\n name={apiaApiForm}\n unregisterOnUnmount\n avoidFieldsOverride\n className=\"handler__form\"\n >\n <ApiaApiFieldsContainer definition={currentForm} {...handler} />\n {state.isMultipart && state.progress > 0 && (\n <Box className=\"progressBox\">\n <ProgressBar\n id=\"ApiaApiHandler progress\"\n progress={state.progress}\n loading\n />\n </Box>\n )}\n <ApiaApiButtonsContainer definition={currentForm} {...handler} />\n <Box ref={formRef} sx={{ display: 'none' }} />\n </Form>\n </Box>\n )}\n </Modal>\n </ApiaApiContext>\n );\n};\n\nexport const ApiaApiHandler = React.memo(ApiaApiHandlerNonMemoized);\n"],"names":["__async","ApiaActions","__spreadProps","__spreadValues","__objRest","_a","_b","React","_c","_d","currentFormDispatcher","currentForm","ApiaApiContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/ApiaApiContext.tsx","../src/apiaApi.ts","../src/fields/ApiaApiCheckbox.tsx","../src/fields/ApiaApiFileInput.tsx","../src/fields/ApiaApiInput.tsx","../src/fields/ApiaApiRadio.tsx","../src/fields/ApiaApiSelect.tsx","../src/fields/ApiaApiTextArea.tsx","../src/fields/ApiaApiFieldsContainer.tsx","../src/buttons/ApiaApiButtonsContainer.tsx","../src/ApiaApiHandler.tsx"],"sourcesContent":["import { createContext } from 'react';\nimport * as React from 'react';\n\nlet apiaApiId: string | undefined;\n\nexport function getApiaApiId() {\n if (!apiaApiId) throw new Error('There is no apia api id');\n return apiaApiId;\n}\n\nconst ApiaApiId = createContext<string | undefined>('apiaApi');\n\nconst ApiaApiContext = ({\n children,\n id,\n}: {\n id: string;\n children: React.ReactNode;\n}) => {\n apiaApiId = id;\n return <ApiaApiId.Provider value={id}>{children}</ApiaApiId.Provider>;\n};\n\nexport default React.memo(ApiaApiContext);\n","/* eslint-disable @typescript-eslint/no-invalid-void-type */\nimport axios, { AxiosResponse } from 'axios';\nimport { merge } from 'lodash';\nimport QueryString from 'qs';\nimport { session } from '@apia/session';\nimport {\n arrayOrArray,\n parseXmlAsync,\n EventEmitter,\n TModify,\n TApiaAction,\n TApiaSystemMessageObj,\n debugDispatcher,\n TNotificationMessage,\n} from '@apia/util';\nimport {\n dispatchNotifications,\n getNotificationMessageObj,\n notify,\n} from '@apia/notifications';\nimport { handle } from './ApiaApiHandler';\nimport {\n IApiaApiRequestConfig,\n TApiaApiConfigurator,\n TApiaApiResult,\n TColors,\n} from './types';\n\ndebugDispatcher.on(\n 'parseXml',\n async ([text]) => {\n const result = await parseXmlAsync<unknown>(text as string);\n console.info(result);\n },\n 'Acepta un parámetro de tipo string y realiza un parseo como si fuera xml, convirtiéndolo a objeto javascript.',\n);\n\nconst defaultConfig: IApiaApiRequestConfig<unknown> = {\n debug: true,\n colors: {\n exception: 'red',\n alert: 'yellow',\n message: 'lightgreen',\n },\n handleLoad: false,\n};\n\nconst STORED_CONFIG = 'ApiaApiConfig';\n\nlet forcedConfig: Partial<IApiaApiRequestConfig<unknown>> = {};\nconst storedConfig = localStorage.getItem(STORED_CONFIG);\nif (storedConfig)\n forcedConfig = JSON.parse(storedConfig) as Partial<\n IApiaApiRequestConfig<unknown>\n >;\n\nexport function getApiaApiConfigurator(): TApiaApiConfigurator {\n return {\n reset() {\n forcedConfig = {};\n localStorage.removeItem(STORED_CONFIG);\n },\n config(newConfig) {\n if (\n newConfig.notificationsCategory ||\n newConfig.axiosConfig ||\n newConfig.modalConfiguration ||\n newConfig.handleLoad ||\n newConfig.queryData ||\n newConfig.stringifyOptions ||\n newConfig.validateResponse\n )\n throw new Error('Operación ilegal');\n\n const toStoreConfig = merge(forcedConfig, newConfig);\n localStorage.setItem(STORED_CONFIG, JSON.stringify(toStoreConfig));\n forcedConfig = toStoreConfig;\n console.log('Se guardó la configuración correctamente', {\n config: toStoreConfig,\n });\n },\n shout() {\n console.log({ config: getConfig({}) });\n },\n theme(theme) {\n if (theme.toLowerCase() === 'dark') {\n getApiaApiConfigurator().config({\n colors: {\n exception: 'red',\n alert: 'yellow',\n message: 'lightgreen',\n },\n });\n } else if (theme.toLowerCase() === 'light') {\n getApiaApiConfigurator().config({\n colors: {\n exception: 'red',\n alert: '#e0e006',\n message: 'darkgreen',\n },\n });\n } else {\n console.log(`Tema ${theme} desconocido, prueba 'light' o 'dark'.`);\n return;\n }\n\n console.log(`Tema ${theme} establecido correctamente.`);\n },\n };\n}\n\nfunction getConfig<LoadType>(\n outerBehaveConfig?: IApiaApiRequestConfig<LoadType>,\n) {\n return merge({}, defaultConfig, outerBehaveConfig, forcedConfig);\n}\n\nfunction makeUrl(\n url: string,\n queryData: IApiaApiRequestConfig<unknown>['queryData'],\n stringifyOptions: IApiaApiRequestConfig<unknown>['stringifyOptions'],\n) {\n let finalUrl = url;\n const questionMarkIndex = finalUrl.indexOf('?');\n\n if (questionMarkIndex === -1) finalUrl += '?';\n else if (questionMarkIndex !== finalUrl.length - 1 && !finalUrl.endsWith('&'))\n finalUrl += '&';\n let parsedUrl = `${finalUrl}${\n queryData ? QueryString.stringify(queryData, stringifyOptions) : ''\n }`;\n if (parsedUrl.endsWith('&') || parsedUrl.endsWith('?')) {\n parsedUrl = parsedUrl.slice(0, parsedUrl.length - 1);\n }\n return parsedUrl;\n}\n\nconst getURLActionName = (url: string): string => {\n const actionIdx = url.match(/action=(\\w+)/)?.[1];\n return actionIdx ?? 'noAction';\n};\n\nexport const ApiaActions = new (class ApiaActions extends EventEmitter<{\n action: TModify<TApiaAction, { param: string[] }>;\n}> {})();\n\nfunction getColor(\n color: keyof TColors,\n colors: TColors = defaultConfig.colors ?? {\n exception: 'red',\n alert: 'yellow',\n message: 'green',\n },\n) {\n return colors[color] as string;\n}\n\nconst handleWrongResponse = (error: Error) => {\n let errorMessage: string;\n if (typeof error !== 'string') {\n if (error.message) errorMessage = error.message;\n else errorMessage = error.toString();\n } else errorMessage = error;\n\n notify({\n type: 'danger',\n message: error.message.replaceAll('AxiosError', 'Error'),\n });\n console.log('%c ', 'font-size:10vh');\n console.log('%cError in ApiaApi', 'color:red;font-size:2em;font-weight:bold');\n console.log(`red/${errorMessage}`, { error });\n console.log('%c ', 'font-size:10vh');\n};\n\nexport function isJsonResponse(response: AxiosResponse<unknown>) {\n return (response.headers['content-type'] as string).match('application/json');\n}\nexport function isXmlResponse(response: AxiosResponse<unknown>) {\n return (response.headers['content-type'] as string).match(\n /(?:application|text)?\\/xml/,\n );\n}\nexport function isHtmlResponse(response: AxiosResponse<unknown>) {\n return (response.headers['content-type'] as string).match(\n /(?:application|text)?\\/html/,\n );\n}\n\nfunction handleActions(actions: TApiaSystemMessageObj['actions']) {\n if (actions) {\n if (getConfig().debug)\n console.log(\n '%cHandled actions: ',\n `color: ${getConfig().colors?.message ?? 'green'}`,\n { actions },\n );\n const actionsArray = arrayOrArray(actions.action);\n actionsArray.forEach((action) => {\n ApiaActions.emit('action', {\n ...action,\n param: arrayOrArray(action.param),\n });\n });\n }\n}\nfunction handleOnClose({\n exceptions,\n onClose,\n sysExceptions,\n sysMessages,\n}: TModify<TNotificationMessage, { onClose: string }>) {\n try {\n import(\n /* webpackChunkName: \"api-[request]\" */ `/api/onClose/${onClose}.ts`\n ).then(\n (func: { default: () => void }) => {\n if (exceptions || sysExceptions || sysMessages) {\n const notificationsObject = getNotificationMessageObj({\n exceptions,\n onClose,\n sysExceptions,\n sysMessages,\n });\n if (notificationsObject)\n notificationsObject.forEach((notification) => {\n notify({\n ...notification,\n onClose: func.default,\n });\n });\n else func.default();\n } else func.default();\n },\n (e) => {\n notify({\n message: `onClose action not found: ${String(e)}`,\n type: 'danger',\n });\n },\n );\n } catch (e) {\n parseMessages({ exceptions, sysExceptions, sysMessages });\n console.error('Error while handling onClose');\n console.error(e);\n }\n}\n\nexport function parseMessages(response: Record<string, unknown>) {\n if (!response) return;\n const { exceptions, sysMessages, sysExceptions } = response;\n if (exceptions || sysExceptions || sysMessages) {\n try {\n dispatchNotifications({\n exceptions,\n sysExceptions,\n sysMessages,\n } as TNotificationMessage);\n } catch (e: unknown) {\n handleWrongResponse(new Error(e as string));\n }\n }\n}\n\nexport const parseSuccessfulResponse = async <\n LoadType extends Record<string, unknown>,\n>(\n response: AxiosResponse<string>,\n currentUrl: string,\n outerBehaveConfig: IApiaApiRequestConfig<LoadType> = defaultConfig,\n) => {\n const behaveConfig = getConfig(outerBehaveConfig);\n\n let parsedObj: TApiaSystemMessageObj<LoadType> | void | undefined = undefined;\n if (isJsonResponse(response)) {\n if (typeof response.data === 'string')\n parsedObj = JSON.parse(\n response.data.trim(),\n ) as TApiaSystemMessageObj<LoadType> | void;\n else if (typeof response.data === 'object' && response.data)\n parsedObj = response.data;\n } else if (isXmlResponse(response)) {\n parsedObj = await parseXmlAsync<LoadType>(response.data).catch(\n (e: unknown) => {\n handleWrongResponse(new Error(e as string));\n },\n );\n } else if (isHtmlResponse(response)) {\n console.error(\n 'El contenido devuelto es Html, no se esperaba esa respuesta',\n );\n return null;\n }\n\n if (behaveConfig.validateResponse) {\n const validateResult = await behaveConfig.validateResponse({\n ...response,\n data: parsedObj?.load ?? parsedObj,\n });\n if (typeof validateResult === 'string')\n throw new Error(`Validation error: ${validateResult}`);\n else if (!validateResult) {\n throw new Error('Error');\n }\n }\n\n if (parsedObj) {\n const {\n actions,\n onClose,\n exceptions,\n sysExceptions,\n sysMessages,\n load,\n ...rest\n } = parsedObj; // Session handling\n if (rest.code === '-1' && exceptions) {\n session.invalidate();\n return null;\n }\n\n if (exceptions && behaveConfig.debug) {\n console.log(\n `%cparseSuccessfulResponse`,\n `color: ${getColor('exception', behaveConfig.colors)}`,\n {\n exceptions,\n },\n );\n }\n if (sysExceptions && behaveConfig.debug) {\n console.log(\n `%cparseSuccessfulResponse`,\n `color: ${getColor('exception', behaveConfig.colors)}`,\n {\n sysExceptions,\n },\n );\n }\n if (sysMessages && behaveConfig.debug) {\n console.log(\n `%cparseSuccessfulResponse`,\n `color: ${getColor('alert', behaveConfig.colors)}`,\n {\n sysMessages,\n },\n );\n }\n\n handleActions(actions);\n\n if (behaveConfig.handleLoad && onClose)\n handleOnClose({\n exceptions,\n onClose,\n sysExceptions,\n sysMessages,\n });\n else parseMessages({ exceptions, sysExceptions, sysMessages });\n\n if (load) {\n if (behaveConfig.handleLoad) {\n console.log(\n `%chandleLoad`,\n `color: ${getColor('message', behaveConfig.colors)}`,\n {\n load,\n },\n );\n if (\n !handle(load, currentUrl, {\n methodsPath: outerBehaveConfig.methodsPath,\n modalConfiguration: {\n ...behaveConfig.modalConfiguration,\n onClose: () => {\n if (onClose)\n handleOnClose({\n exceptions,\n onClose,\n sysExceptions,\n sysMessages,\n });\n if (behaveConfig.modalConfiguration?.onClose)\n behaveConfig.modalConfiguration?.onClose();\n },\n },\n })\n ) {\n console.log(\n `%cunhandledLoad -> There is no handler defined`,\n `color: ${getColor('exception', behaveConfig.colors)}`,\n {\n load,\n },\n );\n }\n }\n return { ...load, sysMessages, exceptions, sysExceptions };\n }\n return { ...(rest as LoadType), sysMessages, exceptions, sysExceptions };\n }\n\n return null;\n};\n\nexport type TApiaApiAxiosResponse<LoadType> = AxiosResponse<LoadType | null> & {\n hasError: boolean;\n hasMessages: boolean;\n};\n\nasync function handleResponse<LoadType extends Record<string, unknown>>(\n result: AxiosResponse<string> | void,\n currentUrl: string,\n outerBehaveConfig: IApiaApiRequestConfig<LoadType> = defaultConfig,\n): Promise<TApiaApiAxiosResponse<LoadType> | null> {\n const behaveConfig = getConfig(outerBehaveConfig);\n try {\n if (!result || result.data === undefined) {\n if (behaveConfig.debug)\n console.log(\n `%cApiaApi wrong response`,\n `color: ${getColor('alert', behaveConfig.colors)}`,\n );\n } else {\n const parsedResponse = await parseSuccessfulResponse<LoadType>(\n result,\n currentUrl,\n behaveConfig,\n );\n\n const action = getURLActionName(currentUrl);\n if (behaveConfig.debug)\n console.log(\n `%c <- ApiaApi.${result.config.method ?? ''} ${action} `,\n `color: ${getColor('message', behaveConfig.colors)}`,\n {\n data: parsedResponse,\n },\n );\n\n return {\n ...result,\n data: parsedResponse,\n hasError:\n !!parsedResponse?.exceptions || !!parsedResponse?.sysExceptions,\n hasMessages: !!parsedResponse?.sysMessages,\n };\n }\n } catch (e: unknown) {\n handleWrongResponse(new Error(e as string));\n return null;\n }\n\n return null;\n}\n\n/**\n* IMPORTANT!! The ApiaApi is programmed under the slogan that\n * **should never throw an exception**. **Errors** coming from\n * connectivity or exceptions on the server **will be handled\n * automatically** by ApiaApi, using the notification system\n * of the application. It is possible to determine in what context they should\n * be thrown those exceptions (global, main, modal) using the\n * alertsCategory configuration properties **(see errorsHandling.md)**.\n *\n * @param url String, the url you want to call\n * @param config interface IApiaApiRequestConfig<DataType>;\n *\n * @throws Nothing\n *\n * @example\n *\n * ApiaApi.post<ResponseType>('url...', {\n axiosConfig?: AxiosRequestConfig;\n\n // Configuración de postData\n postData? unknown;\n postDataTreatement?: 'stringify' | undefined;\n\n // Configuración de queryString\n queryData?: string | Record<string, unknown>;\n stringifyOptions?: QueryString.IStringifyOptions;\n\n // Response validator,\n // If it returns true, everything continues correctly\n // If it returns false, the ApiaApi throws a standard error.\n // If it returns string, ApiaApi throws the error returned in the string.\n validateResponse?: (\n response: AxiosResponse<DataType | null>,\n ) => boolean | string;\n\n // Configuración de alertas\n alertsImportance?: TAlertImportance;\n\n // Configuración de ApiaApiHandler, falta documentar\n handleLoad?: boolean;\n eventsHandler?: IEventsHandler;\n\n // other configuration\n colors?: TColors;\n debug?: boolean;\n }\n * @returns The type of the return value depends on the type passed when calling the function. If there was an error it returns null.\n */\nasync function post<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n DataType = unknown,\n>(\n url:\n | string\n | TModify<\n IApiaApiRequestConfig<LoadType>,\n { postData?: DataType; postDataTreatement?: 'stringify' }\n >,\n config?: TModify<\n IApiaApiRequestConfig<LoadType>,\n {\n postData?: DataType;\n postDataTreatement?: 'stringify';\n }\n >,\n): TApiaApiResult<LoadType>;\nasync function post<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n DataType = unknown,\n>(\n config: TModify<\n IApiaApiRequestConfig<LoadType>,\n {\n postData?: DataType;\n postDataTreatement?: 'stringify';\n }\n >,\n): TApiaApiResult<LoadType>;\nasync function post<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n DataType = unknown,\n T = unknown,\n>(\n par1:\n | string\n | TModify<\n IApiaApiRequestConfig<LoadType>,\n { postData?: DataType; postDataTreatement?: 'stringify' }\n >,\n par2?: TModify<\n IApiaApiRequestConfig<LoadType>,\n { postData?: DataType; postDataTreatement?: 'stringify' }\n >,\n): TApiaApiResult<LoadType> {\n const actualUrl = typeof par1 !== 'string' ? makeApiaUrl() : par1;\n\n const configParameter = (\n typeof par1 === 'string' ? par2 ?? defaultConfig : par1\n ) as TModify<\n IApiaApiRequestConfig<LoadType>,\n { postData?: DataType; postDataTreatement?: 'stringify' }\n >;\n\n const behaveConfig = {\n ...getConfig(configParameter),\n postData:\n configParameter.postDataTreatement === 'stringify'\n ? QueryString.stringify(\n configParameter.postData,\n configParameter.stringifyOptions,\n )\n : configParameter.postData,\n };\n\n const parsedUrl = makeUrl(\n actualUrl,\n behaveConfig.queryData,\n behaveConfig.stringifyOptions,\n );\n\n if (behaveConfig.debug) {\n const queryString = actualUrl.split('&');\n const action = getURLActionName(actualUrl);\n\n console.log(\n `%cApiaApi.post ${action}`,\n `color: ${getColor('message', behaveConfig.colors)}`,\n {\n url: parsedUrl,\n queryDataInURL: [...queryString],\n queryData: behaveConfig.queryData,\n formData: behaveConfig.postData,\n stringifyOptiopns: behaveConfig.stringifyOptions,\n },\n );\n }\n\n const response = await axios\n .post<T, AxiosResponse<string>, DataType | string>(\n parsedUrl,\n behaveConfig.postData,\n behaveConfig.axiosConfig,\n )\n .catch((e: unknown) => {\n handleWrongResponse(new Error(e as string));\n });\n\n if (response) {\n const result = handleResponse<LoadType>(response, actualUrl, behaveConfig);\n return result;\n }\n return null;\n}\n\n/**\n * IMPORTANTE!! El ApiaApi está programado bajo la consigna de que\n * **no debe tirar núnca una excepción**. **Los errores** provenientes\n * de la conectividad o de excepciones en el servidor **serán manejados\n * automáticamente** por el ApiaApi utilizando el sistema de notificaciones\n * de la aplicación. Es posible determinar en qué contexto deben\n * ser lanzadas esas excepciones (global, main, modal) utilizando las\n * propiedades de configuración alertsCategory **(ver errorsHandling.md)**.\n *\n * @param url String, el url al que se desea llamar\n * @param config interface IApiaApiRequestConfig<DataType>;\n *\n * @throws Nothing\n *\n * @example\n *\n * ApiaApi.get<TipoDeRespuesta>('url...', {\n axiosConfig?: AxiosRequestConfig;\n\n // Configuración de queryString\n queryData?: string | Record<string, unknown>;\n stringifyOptions?: QueryString.IStringifyOptions;\n\n // Validador de respuesta,\n // Si devuelve true, todo sigue correctamente\n // Si devuelve false, el ApiaApi tira un error estándar.\n // Si devuelve string, el ApiaApi tira el error devuelto en el string.\n validateResponse?: (\n response: AxiosResponse<DataType | null>,\n ) => boolean | string;\n\n // Configuración de alertas\n alertsImportance?: TAlertImportance;\n\n // Configuración de ApiaApiHandler, falta documentar\n handleLoad?: boolean;\n eventsHandler?: IEventsHandler;\n\n // Otra configuración\n colors?: TColors;\n debug?: boolean;\n }\n * @returns El tipo del valor devuelto depende del tipo pasado al llamar a la función. Si hubo un error devuelve null\n */\nasync function get<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n>(\n url: string | IApiaApiRequestConfig<LoadType>,\n config?: IApiaApiRequestConfig<LoadType>,\n): TApiaApiResult<LoadType>;\nasync function get<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n>(config: IApiaApiRequestConfig<LoadType>): TApiaApiResult<LoadType>;\nasync function get<\n LoadType extends Record<string, unknown> = Record<string, unknown>,\n T = unknown,\n D = unknown,\n>(\n par1: string | IApiaApiRequestConfig<LoadType>,\n par2?: IApiaApiRequestConfig<LoadType>,\n): TApiaApiResult<LoadType> {\n const actualUrl = typeof par1 !== 'string' ? makeApiaUrl() : par1;\n\n const behaveConfig = getConfig<LoadType>(\n typeof par1 === 'string' ? par2 ?? defaultConfig : par1,\n );\n\n const parsedUrl = makeUrl(\n actualUrl,\n behaveConfig.queryData,\n behaveConfig.stringifyOptions,\n );\n\n if (behaveConfig.debug)\n console.log(\n `%cApiaApi.get`,\n `color: ${getColor('message', behaveConfig.colors)}`,\n {\n url: parsedUrl,\n },\n );\n const response = await axios\n .get<T, AxiosResponse<string>, D>(parsedUrl, behaveConfig.axiosConfig)\n .catch((e: unknown) => {\n handleWrongResponse(new Error(e as string));\n });\n if (response) {\n const result = await handleResponse<LoadType>(\n response,\n actualUrl,\n behaveConfig,\n );\n return result;\n }\n return null;\n}\n\nconst ApiaApi = {\n get,\n getConfig,\n post,\n};\n/**\n * Creates an url based on the general requirements of Apia.\n * If the ajaxUrl property is not passed, it will use the\n * window.URL_REQUEST_AJAX. Its use is very simple, just pass the objects you\n * want to appear in the query string.\n *\n * @example makeApiaUrl({\n * ajaxUrl: 'the.endpoint.you.want',\n * queryString: 'an=existent&query=string',\n * action: 'theAction',\n * anotherProp: 15\n * })\n *\n * @returns the well formed url, in the example, the response url is:\n * /context/the.endpoint.you.want?an=existent&query=string&anotherProp=15&tabId=...&tokenId=...&action=theAction\n */\nexport function makeApiaUrl(props?: {\n action?: string;\n ajaxUrl?: string;\n queryString?: string;\n stringifyOptions?: QueryString.IStringifyOptions;\n tabId?: string | number;\n preventAsXmlParameter?: boolean;\n avoidTabId?: boolean;\n [key: string]: unknown;\n}) {\n let actualQueryData: Record<string, unknown> | unknown = {};\n\n if (props) {\n const {\n ajaxUrl,\n queryString,\n stringifyOptions,\n shouldAvoidTabId,\n preventAsXmlParameter,\n avoidTabId,\n tabId: outerTabId,\n ...rest\n } = props;\n actualQueryData = { ...rest };\n }\n\n const queryString = QueryString.stringify(\n actualQueryData,\n props?.stringifyOptions ?? {\n arrayFormat: 'repeat',\n encodeValuesOnly: false,\n },\n );\n\n let actualAjaxUrl = props?.ajaxUrl ?? window.URL_REQUEST_AJAX;\n if (actualAjaxUrl.indexOf('?') === actualAjaxUrl.length - 1) {\n actualAjaxUrl = actualAjaxUrl.slice(0, actualAjaxUrl.length - 1);\n }\n if (!actualAjaxUrl.startsWith('/')) {\n actualAjaxUrl = `/${actualAjaxUrl}`;\n }\n\n const match = window.TAB_ID_REQUEST.match(/tokenId=(\\w+)/);\n const currentTokenId = (match ?? [])[1];\n\n let tabId = (\n props?.tabId\n ? `&tabId=${props.tabId}&tokenId=${currentTokenId}`\n : window.TAB_ID_REQUEST\n ).slice(1);\n if (props?.avoidTabId) {\n tabId = '';\n }\n\n let { CONTEXT } = window;\n if (CONTEXT?.endsWith('/')) {\n CONTEXT += CONTEXT.slice(0, CONTEXT.length - 1);\n }\n\n let timestamp = `timestamp=${Date.now()}&`;\n if (\n (props?.queryString && props.queryString.includes('timestamp=')) ||\n queryString?.includes('timestamp=')\n ) {\n timestamp = '';\n }\n\n const contextWord = CONTEXT.replaceAll('/', '');\n actualAjaxUrl = actualAjaxUrl.match(\n new RegExp(`^(?:(?:/?${contextWord})?/)?(.+)$`),\n )?.[1] as string;\n\n return `${\n contextWord ? '/' : ''\n }${contextWord}/${actualAjaxUrl}?${timestamp}${\n !props?.preventAsXmlParameter ? 'asXml=true&' : ''\n }${props?.queryString ? `${props.queryString}&` : ''}${\n queryString ? `${queryString}&` : ''\n }${tabId}`;\n}\n\ndeclare global {\n interface Window {\n TAB_ID_REQUEST: string;\n CONTEXT: string;\n URL_REQUEST_AJAX: string;\n }\n}\n\nexport default ApiaApi;\n","import { classToValidate, Checkbox } from '@apia/validations';\nimport React from 'react';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport const ApiaApiCheckbox = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n const className = React.useMemo(\n () =>\n element.class\n ? `handler__checkbox ${element.class}`\n : 'handler__checkbox',\n [element.class],\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n ...classToValidate(element.class),\n }),\n [element.class, element.mandatory],\n );\n const submitValueParser = React.useCallback(\n (value: boolean | string) => value === 'on' || value === true,\n [],\n );\n return (\n <Checkbox\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n initialValue={String(element.selected) === 'true'}\n disabled={element.readonly || element.disabled}\n validationRules={validationRules}\n onChange={element.onChange}\n submitValueParser={submitValueParser}\n />\n );\n};\n","import { classToValidate, FileInput } from '@apia/validations';\nimport React from 'react';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport const ApiaApiFileInput = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n const className = React.useMemo(\n () => (element.class ? `handler__file ${element.class}` : 'handler__file'),\n [element.class],\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n ...classToValidate(element.class),\n }),\n [element.class, element.mandatory],\n );\n\n return (\n <FileInput\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n readOnly={element.readonly}\n disabled={element.disabled}\n validationRules={validationRules}\n />\n );\n};\n\nApiaApiFileInput.displayName = 'ApiaApiFileInput';\n","import { encrypt, useMount } from '@apia/util';\nimport {\n classToValidate,\n classToValidationFunction,\n Input,\n} from '@apia/validations';\nimport React from 'react';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\ndeclare global {\n interface Window {\n SALT: string;\n IV: string;\n PASSPHRASE: string;\n KEY_SIZE: string;\n ITERATION_COUNT: string;\n }\n}\n\n/**\n * Permite cargar en forma asíncrona un modal que se encuentre dentro del\n * directorio /api/modals\n * */\nexport const getModal = (path: string) => {\n return React.lazy<React.ComponentType<TApiaApiField>>(() => {\n return new Promise<{\n default: React.ComponentType<TApiaApiField>;\n }>((resolve) => {\n import(\n /* webpackChunkName: \"handlerModal\" */\n /* webpackInclude: /\\.tsx?$/ */\n `/api/modals/${path}`\n )\n .then((result: unknown) => {\n resolve(\n result as {\n default: React.ComponentType<TApiaApiField>;\n },\n );\n })\n .catch((error: unknown) => {\n resolve({\n default: () => {\n console.error(error);\n throw new Error(\n `The above error ocurred at component ApiaApiHandler/${path}, does it exist?`,\n );\n },\n });\n });\n });\n });\n};\n\nexport const ApiaApiInput = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n\n const [Submodal, setSubmodal] = React.useState<React.LazyExoticComponent<\n React.ComponentType<TApiaApiField>\n > | null>(null);\n\n useMount(() => {\n if (element.modalFunction) {\n const found = element.modalFunction.match(/(?:fnc)?(\\w+)\\(?\\)?$/);\n if (found) {\n const modalName = found[found.length - 1];\n setSubmodal(getModal(modalName));\n }\n }\n });\n\n const className = React.useMemo(\n () =>\n element.class\n ? `handler__${element.type} ${element.class}`\n : `handler__${element.type}`,\n [element.class, element.type],\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n maxLength: element.maxlength ? Number(element.maxlength) : undefined,\n pattern: element.regExp,\n patternMessage: element.regExpMessage,\n ...classToValidate(element.class),\n }),\n [\n element.class,\n element.mandatory,\n element.maxlength,\n element.regExp,\n element.regExpMessage,\n ],\n );\n const validationFunction = React.useMemo(\n () => classToValidationFunction(element.class),\n [element.class],\n );\n const submitValueParser = React.useCallback(\n (value: string) => {\n if (element.type === 'password') {\n return encrypt(\n window.SALT,\n window.IV,\n window.PASSPHRASE,\n value,\n Number(window.KEY_SIZE),\n Number(window.ITERATION_COUNT),\n );\n }\n return value;\n },\n [element.type],\n );\n\n if (element.modalFunction) {\n if (Submodal) {\n return (\n <React.Suspense>\n <Submodal {...props} element={element} />\n </React.Suspense>\n );\n }\n return null;\n }\n\n return (\n <Input\n type={element.type}\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n value={element.value}\n readOnly={element.readonly}\n disabled={element.disabled}\n validationFunction={validationFunction}\n validationRules={validationRules}\n submitValueParser={submitValueParser}\n onChange={element.onChange}\n autoComplete={element.type === 'password' ? 'new-password' : undefined}\n />\n );\n};\n\nApiaApiInput.displayName = 'ApiaApiInput';\n","import { arrayOrArray } from '@apia/util';\nimport { classToValidate, Radio } from '@apia/validations';\nimport React from 'react';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport const ApiaApiRadio = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n const className = React.useMemo(\n () =>\n element.class ? `handler__radio ${element.class}` : 'handler__radio',\n [element.class],\n );\n const options = React.useMemo(\n () =>\n arrayOrArray(element.options?.option).map((currOption) => {\n return { value: currOption.value, label: currOption.content };\n }),\n [element.options?.option],\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n ...classToValidate(element.class),\n }),\n [element.class, element.mandatory],\n );\n return (\n <Radio\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n initialValue={element.value}\n disabled={element.readonly || element.disabled}\n validationRules={validationRules}\n options={options}\n onChange={element.onChange}\n />\n );\n};\n\nApiaApiRadio.displayName = 'ApiaApiRadio';\n","import React from 'react';\nimport { arrayOrArray, EventEmitter } from '@apia/util';\nimport { classToValidate, Select } from '@apia/validations';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport type TOption = {\n content: string;\n value: string;\n};\n\nexport const apiaApiSelectOptions =\n new (class ApiaApiSelectOptions extends EventEmitter<{\n setOptions: {\n fieldName: string;\n options: TOption[];\n };\n }> {})();\n\nexport const ApiaApiSelect = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n const className = React.useMemo(\n () =>\n element.class ? `handler__select ${element.class}` : 'handler__select',\n [element.class],\n );\n const [options, setOptions] = React.useState<\n {\n value: string;\n label: string;\n }[]\n >(\n arrayOrArray(element.options?.option).map((currOption) => {\n return { value: currOption.value, label: currOption.content };\n }),\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n ...classToValidate(element.class),\n }),\n [element.class, element.mandatory],\n );\n\n React.useEffect(() => {\n const unsuscribe = apiaApiSelectOptions.on('setOptions', (ev) => {\n if (ev.fieldName === element.name) {\n setOptions(\n ev.options.map((currOption) => ({\n value: currOption.value,\n label: currOption.content,\n })),\n );\n }\n });\n\n return () => {\n unsuscribe();\n };\n }, [element.name]);\n\n const initialValue = React.useMemo(\n () =>\n options.find((current) => current.value === props.element.value)?.value ??\n options[0]?.value ??\n '',\n [options, props.element.value],\n );\n\n return (\n <Select\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n initialValue={initialValue}\n disabled={element.readonly || element.disabled}\n validationRules={validationRules}\n options={options}\n onChange={element.onChange}\n />\n );\n};\n\nApiaApiSelect.displayName = 'ApiaApiSelect';\n","import {\n classToValidate,\n classToValidationFunction,\n Textarea,\n} from '@apia/validations';\nimport React from 'react';\nimport { TApiaApiField } from '../ApiaApiHandler';\n\nexport const ApiaApiTextArea = (props: TApiaApiField) => {\n const element = React.useMemo(() => props.element, [props.element]);\n\n const className = React.useMemo(\n () =>\n element.class\n ? `handler__textarea ${element.class}`\n : 'handler__textarea',\n [element.class],\n );\n const validationRules = React.useMemo(\n () => ({\n required: element.mandatory,\n maxLength: element.maxlength ? Number(element.maxlength) : undefined,\n pattern: element.regExp,\n patternMessage: element.regExpMessage,\n ...classToValidate(element.class),\n }),\n [\n element.class,\n element.mandatory,\n element.maxlength,\n element.regExp,\n element.regExpMessage,\n ],\n );\n const validationFunction = React.useMemo(\n () => classToValidationFunction(element.class),\n [element.class],\n );\n\n return (\n <Textarea\n className={className}\n name={element.id || element.name}\n label={element.text}\n title={element.title || element.text}\n value={element.value}\n readOnly={element.readonly}\n disabled={element.disabled}\n validationFunction={validationFunction}\n validationRules={validationRules}\n onChange={element.onChange}\n />\n );\n};\n\nApiaApiTextArea.displayName = 'ApiaApiTextArea';\n","import { getVariant } from '@apia/theme';\nimport { arrayOrArray, TApiaFormElement, TApiaLoad } from '@apia/util';\nimport { uniqueId } from 'lodash';\nimport React from 'react';\nimport { Box } from '@apia/theme';\nimport { getFunction, TApiaApiMethodHandler } from '../ApiaApiHandler';\nimport { TModalTable } from '../types';\nimport { ApiaApiCheckbox } from './ApiaApiCheckbox';\nimport { ApiaApiFileInput } from './ApiaApiFileInput';\nimport { ApiaApiInput } from './ApiaApiInput';\nimport { ApiaApiRadio } from './ApiaApiRadio';\nimport { ApiaApiSelect } from './ApiaApiSelect';\nimport { ApiaApiTextArea } from './ApiaApiTextArea';\n\ntype TApiaApiFieldsContainer = TApiaApiMethodHandler & {\n definition?: TApiaLoad | undefined;\n};\n\ntype TApiaApiSectionElement = TApiaFormElement & {\n sectionElementId: string;\n};\n\ntype TApiaApiSection = {\n sectionId: string;\n sectionHeader?: TApiaApiSectionElement;\n sectionElements: TApiaApiSectionElement[];\n};\n\nconst parseApiaApiSections = (elements: TApiaFormElement[]) => {\n const removeEndingSpacers = (\n sectionElements: TApiaFormElement[],\n ): TApiaFormElement[] => {\n if (sectionElements.length > 1) {\n for (let i = sectionElements.length - 1; i >= 0; i--) {\n if (sectionElements[i].type === 'empty') {\n sectionElements.pop();\n } else {\n return sectionElements;\n }\n }\n }\n return sectionElements;\n };\n const sectionIndexes: number[] = [];\n if (elements[0]?.type !== '2columnTitle') {\n sectionIndexes.push(-1);\n }\n elements.forEach((element, index) => {\n if (element.type === '2columnTitle') {\n sectionIndexes.push(index);\n }\n });\n const sections: TApiaApiSection[] = [];\n sectionIndexes.forEach((sectionIndex, arrayIndex) => {\n const start =\n sectionIndex + 1 < elements.length\n ? sectionIndex + 1\n : elements.length - 1;\n const end =\n arrayIndex + 1 < sectionIndexes.length\n ? sectionIndexes[arrayIndex + 1]\n : undefined;\n sections.push({\n sectionId: `ApiaApiSection_${arrayIndex}`,\n sectionHeader:\n sectionIndex !== -1\n ? {\n ...elements[sectionIndex],\n sectionElementId: `sectionHeader_${arrayIndex}`,\n }\n : undefined,\n sectionElements: removeEndingSpacers(elements.slice(start, end)).map(\n (currentElement) => ({\n ...currentElement,\n sectionElementId: `sectionElement_${\n currentElement.id || currentElement.name || uniqueId()\n }`,\n }),\n ),\n });\n });\n return sections;\n};\n\nconst NonMemoizedApiaApiFieldsContainer = (props: TApiaApiFieldsContainer) => {\n const elements = React.useMemo(\n () => arrayOrArray(props?.definition?.form.elements?.element ?? []),\n [props?.definition?.form.elements?.element],\n );\n\n const sections = React.useMemo(\n () => parseApiaApiSections(elements),\n [elements],\n );\n\n const renderSectionContent = React.useCallback(\n (sectionId: string, sectionElements: TApiaApiSectionElement[]) => {\n const isVisible =\n sectionElements.findIndex((element) => element.type !== 'hidden') !==\n -1;\n return (\n <Box\n className={\n isVisible\n ? 'handler__form__elements__section__content'\n : `handler__form__elements__section__content handler__hidden`\n }\n key={sectionId}\n >\n {sectionElements.map((current) => {\n const element = {\n ...current,\n onChange() {\n getFunction(current.onChange, props)\n .then((onChangeMethod) => {\n if (onChangeMethod) {\n onChangeMethod();\n }\n })\n .catch(console.error);\n },\n };\n switch (element.type) {\n case 'table': {\n const data = JSON.parse(element.text) as TModalTable;\n return (\n <Box\n key={element.sectionElementId}\n {...getVariant('layout.common.tables.information')}\n >\n <table sx={{ width: '100%' }}>\n <thead>\n <tr>\n {data.columns.map((column) => {\n return <th key={column}>{column}</th>;\n })}\n </tr>\n </thead>\n <tbody>\n {data.rows.map((row) => {\n return (\n <tr key={row.cells.join('-')}>\n {row.cells.map((cell, i) => {\n return (\n <td key={`${cell}_${data.columns[i]}`}>\n {cell}\n </td>\n );\n })}\n </tr>\n );\n })}\n </tbody>\n </table>\n </Box>\n );\n }\n case '2columnSubTitle':\n return (\n <Box\n key={element.sectionElementId}\n className={element.class}\n as=\"h6\"\n >\n {element.value || element.text}\n </Box>\n );\n case '2column':\n return (\n <Box\n key={element.sectionElementId}\n dangerouslySetInnerHTML={{\n __html: element.value || element.text,\n }}\n className={element.class}\n />\n );\n case 'checkbox':\n return (\n <ApiaApiCheckbox\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'file':\n return (\n <ApiaApiFileInput\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'hidden':\n case 'password':\n case 'text':\n return (\n <ApiaApiInput\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'select':\n return (\n <ApiaApiSelect\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'radio':\n return (\n <ApiaApiRadio\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'textarea':\n return (\n <ApiaApiTextArea\n key={element.sectionElementId}\n {...props}\n element={element}\n />\n );\n case 'empty':\n return (\n <Box key={element.sectionElementId} className=\"spacer\" />\n );\n default:\n console.warn(\n `Unhandled element type: ${element.type}`,\n element,\n );\n return null;\n }\n })}\n </Box>\n );\n },\n [props],\n );\n return (\n <Box className=\"handler__form__elements\">\n {sections.map((section) => {\n if (section.sectionHeader) {\n return renderSectionContent(\n section.sectionId,\n section.sectionElements,\n );\n }\n return renderSectionContent(section.sectionId, section.sectionElements);\n })}\n </Box>\n );\n};\n\nexport const ApiaApiFieldsContainer = React.memo(\n NonMemoizedApiaApiFieldsContainer,\n);\n\nApiaApiFieldsContainer.displayName = 'ApiaApiFieldsContainer';\n","import { arrayOrArray, TApiaFormButton, TApiaLoad } from '@apia/util';\nimport { uniqueId } from 'lodash';\nimport QueryString from 'qs';\nimport React from 'react';\nimport { Box } from '@apia/theme';\nimport {\n hasSucceedFormValidation,\n useFormContext,\n validationsStore,\n} from '@apia/validations';\nimport { ISimpleButton, SimpleButton } from '@apia/components';\nimport { getFunction, TApiaApiMethodHandler } from '../ApiaApiHandler';\nimport ApiaApi from '../apiaApi';\n\ntype TApiaApiButtonsContainer = TApiaApiMethodHandler & {\n definition?: TApiaLoad | undefined;\n};\n\ntype TApiaApiButton = Omit<TApiaFormButton, 'type'> &\n Pick<ISimpleButton, 'type'> & {\n buttonKey: string;\n };\n\nconst parseButtons = (buttons: TApiaFormButton[]): TApiaApiButton[] => {\n return buttons.map((currentButton) => ({\n ...currentButton,\n buttonKey: uniqueId(),\n type: ['submitAjax', 'submit'].includes(currentButton.type)\n ? 'submit'\n : 'button',\n }));\n};\n\nconst NonMemoizedApiaApiButtonsContainer = (\n props: TApiaApiButtonsContainer,\n) => {\n const buttonElements = React.useMemo(\n () => arrayOrArray(props.definition?.form.buttons?.button ?? []),\n [props.definition?.form.buttons?.button],\n );\n const buttons = React.useMemo(\n () => parseButtons(buttonElements),\n [buttonElements],\n );\n const modalConfiguration = React.useMemo(\n () => props.configuration?.modalConfiguration,\n [props.configuration?.modalConfiguration],\n );\n const methodsPath = React.useMemo(\n () => props.configuration?.methodsPath,\n [props.configuration?.methodsPath],\n );\n const { name: apiaApiForm } = useFormContext();\n\n const renderButton = React.useCallback(\n (currentButton: TApiaApiButton) => {\n const key = currentButton.buttonKey;\n const className = `handler__${currentButton.type ?? ''}`;\n const onClick = () => {\n void (async function submitForm() {\n const validationResult = await validationsStore.validateForm(\n apiaApiForm,\n );\n if (!hasSucceedFormValidation(validationResult)) {\n return;\n }\n const { submitValues } = validationResult;\n\n function runButtonMethod() {\n void (async () => {\n if (currentButton.onclick) {\n const actions = currentButton.onclick.split(';');\n // eslint-disable-next-line no-restricted-syntax\n for await (const action of actions) {\n const method = await getFunction(action, {\n ...props,\n });\n\n if (method) {\n method({\n currentUrl: props.definition?.form.action ?? 'noUrl',\n });\n } else {\n throw new Error(\n `The requested action is not defined: \"${\n props.definition?.form.action ?? ''\n }\"`,\n );\n }\n }\n }\n })();\n }\n\n if (props?.definition && currentButton.type === 'submit') {\n const formData = new FormData();\n Object.entries(submitValues).forEach(([name, value]) => {\n formData.append(name, (value as string | Blob) ?? '');\n });\n\n const hasContext = props?.definition.form.action.match(\n new RegExp(`^${window.CONTEXT}/`),\n );\n const url = `${hasContext ? '' : window.CONTEXT}${\n !props?.definition.form.action.startsWith('/') ? '/' : ''\n }${props?.definition.form.action}`;\n\n props.setState((current) => ({\n ...current,\n isLoading: true,\n }));\n\n void ApiaApi.post(url, {\n postData: props.state.isMultipart\n ? formData\n : QueryString.stringify(\n [...formData.entries(), ['isAjax', true]].reduce<\n Record<string, string>\n >((accumulated, [name, value]) => {\n const retValue = { ...accumulated };\n retValue[name.toString()] = value.toString();\n return retValue;\n }, {}),\n ),\n handleLoad: true,\n notificationsCategory: 'apiaApiHandler',\n modalConfiguration,\n methodsPath,\n }).finally(() => {\n runButtonMethod();\n if (props?.definition?.form.closeOnSubmit) {\n props.close();\n }\n });\n } else {\n runButtonMethod();\n }\n })();\n };\n return (\n <SimpleButton\n className={className}\n disabled={props.state.disabled}\n id={currentButton.id || currentButton.text}\n isLoading={props.state.isLoading}\n key={key}\n title={currentButton.text}\n type={currentButton.type}\n onClick={onClick}\n >\n {currentButton.text}\n </SimpleButton>\n );\n },\n [apiaApiForm, methodsPath, modalConfiguration, props],\n );\n\n return (\n <Box className=\"handler__form__buttons\">\n {buttons.map((currentButton) => renderButton(currentButton))}\n </Box>\n );\n};\n\nexport const ApiaApiButtonsContainer = React.memo(\n NonMemoizedApiaApiButtonsContainer,\n);\n","/* eslint-disable max-classes-per-file */\n\nimport * as React from 'react';\nimport { Box } from '@apia/theme';\nimport { AxiosResponse } from 'axios';\nimport {\n arrayOrArray,\n EventEmitter,\n focus,\n focusSelector,\n TApiaAction,\n TApiaFormElement,\n TApiaFunction,\n TApiaLoad,\n TApiaLoadText,\n TModify,\n useMount,\n useStateRef,\n useUnmount,\n WithEventsValue,\n} from '@apia/util';\nimport { notify } from '@apia/notifications';\nimport { Form, validationsStore } from '@apia/validations';\nimport { Modal, ProgressBar, TModal, useModal } from '@apia/components';\nimport { getVariant } from '@apia/theme';\nimport ApiaApiContext from './ApiaApiContext';\nimport { IApiaApiRequestConfig } from './types';\nimport { ApiaActions } from './apiaApi';\nimport { ApiaApiFieldsContainer } from './fields/ApiaApiFieldsContainer';\nimport { ApiaApiButtonsContainer } from './buttons/ApiaApiButtonsContainer';\n\nexport type TMessage = {\n isHtml?: boolean;\n predicate: string;\n title?: string;\n};\ntype TMessageLocal = { title: string; predicate: string };\ntype TMethod = {\n name: string;\n props: {\n attributes?: Record<string, unknown>;\n currentUrl?: string;\n funCall?: string;\n inlineArguments?: string[];\n messages?: unknown;\n };\n};\nconst ApiaApiMessenger = new (class extends EventEmitter<{\n message: TMessageLocal;\n}> {})();\nconst FunctionsDispatcher = new (class extends EventEmitter<{\n method: TMethod;\n}> {})();\n\nexport type TApiaApiMethodHandler = {\n alert: typeof notify;\n close: () => void;\n configuration?: THandleConfiguration;\n formDefinition: TApiaLoad;\n setModalProps?: (\n configuration: THandleConfiguration,\n formDefinition?: TApiaLoad,\n ) => TModal | null;\n reset: () => void;\n setError: typeof notify;\n setMessage: (message: Record<string, unknown>) => unknown;\n setState: React.Dispatch<React.SetStateAction<IApiaApiHandlerState>>;\n state: IApiaApiHandlerState;\n setValue: (name: string, value: string) => void;\n};\n\nexport type TApiaApiMethod = (\n handler: TApiaApiMethodHandler,\n props: TMethod['props'],\n) => Promise<void> | void;\n\nexport type TApiaApiField = TApiaApiMethodHandler & {\n element: TModify<TApiaFormElement, { onChange: React.ChangeEventHandler }>;\n};\n\nexport const apiaApiForm = 'ApiaApiForm';\n\ntype TStoredApiaApiMethod = (props?: TMethod['props']) => unknown;\n\nconst methods: Record<string, TStoredApiaApiMethod> = {};\n\n/**\n * Este método permite cargar en forma asíncrona un método que se encuentre\n * dentro del directorio /api/methods\n */\nexport async function getFunction(\n name: string,\n handler: TApiaApiMethodHandler,\n): Promise<TStoredApiaApiMethod | undefined> {\n return new Promise((resolve) => {\n try {\n const separateNameFromParametersRegex =\n /^\\/?([\\w\\d_-]+)\\/?(?:\\(([^)]*)\\))?$/;\n const match = name.match(separateNameFromParametersRegex);\n if (match) {\n const functionName = match[1];\n const parameters = match[2];\n const path: string = [\n ...(handler.configuration?.methodsPath\n ?.split('/')\n .filter((current) => !!current) ?? []),\n functionName,\n ].join('/');\n const storeMethodAndResolve = (result: { default: TApiaApiMethod }) => {\n if (typeof result.default !== 'function') notFound();\n const method = result.default;\n methods[functionName] = (props?: TMethod['props']) => {\n return method(handler, {\n ...props,\n inlineArguments:\n parameters?.split(',').map((argument) => {\n if (argument.startsWith(\"'\") || argument.startsWith('\"'))\n return argument.slice(1, argument.length - 1);\n return argument;\n }) ?? [],\n });\n };\n resolve(methods[functionName]);\n };\n\n const notFound = () => {\n throw new Error(\n `${functionName}.ts not found at ${path}.ts nor ./${functionName}.ts`,\n );\n };\n\n import(\n /* webpackChunkName: \"api-methods-[request]\" */ `/api/methods/${path}.ts`\n )\n .then(storeMethodAndResolve)\n .catch(() => {\n if (handler.configuration?.methodsPath !== undefined)\n import(\n /* webpackChunkName: \"api-methods-[request]\" */ `/api/methods/${functionName}.ts`\n )\n\n .then(storeMethodAndResolve)\n .catch(notFound);\n else {\n notFound();\n }\n });\n }\n } catch (e) {\n console.error(e);\n handler.reset();\n handler.setError({\n type: 'danger',\n message: 'Error while loading current method.',\n });\n }\n });\n}\n\nexport function isForm(\n responseObject: Record<string, unknown>,\n): responseObject is TApiaLoad {\n return (\n responseObject.form !== undefined &&\n typeof responseObject.form === 'object' &&\n !!responseObject.form\n );\n}\n\nexport function isFunction(\n responseObject: Record<string, unknown>,\n): responseObject is TApiaLoad<TApiaFunction> {\n return (\n typeof responseObject.canClose === 'boolean' &&\n typeof responseObject.type === 'string' &&\n !!responseObject.function\n );\n}\n\nfunction isMessage(\n responseObject: Record<string, unknown>,\n): responseObject is TApiaLoad<TApiaLoadText> {\n if (\n typeof responseObject.canClose === 'boolean' &&\n typeof responseObject.type === 'string' &&\n typeof responseObject.text === 'object' &&\n responseObject.text &&\n typeof (responseObject.text as Record<string, unknown>).label === 'string'\n ) {\n return true;\n }\n return false;\n}\n\nexport interface IModalConfig {\n modalTitle?: string;\n onClose?: () => void;\n onMessage?: (message: Record<string, unknown>) => unknown;\n onMessageClose?: () => unknown;\n onSubmitted?: (\n handler: TApiaApiMethodHandler,\n response: AxiosResponse<Record<string, unknown> | null> | null,\n ) => unknown;\n}\n\nconst modalConfigurationHandler = new WithEventsValue<THandleConfiguration>();\n\nfunction useModalConfiguration() {\n const [, setValue, value] = useStateRef<THandleConfiguration | undefined>(\n undefined,\n );\n\n const handleChange = React.useCallback(\n (newEventsHandler: THandleConfiguration | undefined) => {\n setValue(newEventsHandler);\n },\n [setValue],\n );\n\n useMount(() => {\n modalConfigurationHandler.on('update', handleChange);\n });\n\n useUnmount(() => {\n return modalConfigurationHandler.off('update', handleChange);\n });\n\n return value;\n}\n\nexport type THandleConfiguration = Partial<\n Pick<\n IApiaApiRequestConfig<unknown>,\n 'modalConfiguration' | 'methodsPath' | 'setModalProps'\n >\n>;\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nlet currentForm: TApiaLoad | undefined;\nconst currentFormDispatcher =\n new (class currentFormDispatcher extends EventEmitter<{\n form: TApiaLoad;\n }> {\n emit<K extends 'form'>(\n eventName: K,\n params?: { form: TApiaLoad }[K] | undefined,\n ): void {\n super.emit(eventName, params);\n currentForm = params;\n }\n })();\n\nexport function handle(\n responseObject: Record<string, unknown>,\n currentUrl: string,\n configuration: THandleConfiguration,\n) {\n modalConfigurationHandler.value = configuration;\n if (isForm(responseObject)) {\n currentFormDispatcher.emit('form', responseObject);\n return true;\n }\n if (isFunction(responseObject)) {\n FunctionsDispatcher.emit('method', {\n name: responseObject.function.name,\n props: {\n messages: responseObject.function.messages,\n attributes: responseObject.function,\n currentUrl,\n },\n });\n return true;\n }\n if (isMessage(responseObject)) {\n ApiaApiMessenger.emit('message', {\n predicate: responseObject.text.content,\n title: responseObject.text.title,\n });\n return true;\n }\n return false;\n}\n\nexport interface IApiaApiHandlerState {\n disabled: boolean;\n isLoading: boolean;\n isMultipart: boolean;\n progress: number;\n errors: Record<string, string>;\n windowIndex: number;\n}\n\nconst initialState: Omit<IApiaApiHandlerState, 'windowIndex'> = {\n disabled: false,\n isLoading: false,\n isMultipart: false,\n progress: 0,\n errors: {},\n};\n\nconst ApiaApiHandlerNonMemoized = () => {\n const configuration = useModalConfiguration();\n\n const [state, setState] = React.useState<IApiaApiHandlerState>({\n ...initialState,\n windowIndex: -1,\n });\n\n const [currentForm, setCurrentForm] = React.useState<TApiaLoad | undefined>(\n undefined,\n );\n React.useEffect(() => {\n return currentFormDispatcher.on('form', setCurrentForm);\n }, []);\n\n const setValue = React.useCallback((name: string, value: string) => {\n return validationsStore.setFieldValue(apiaApiForm, name, value);\n }, []);\n\n React.useEffect(() => {\n if (!currentForm) return;\n const elements = arrayOrArray(currentForm?.form?.elements?.element ?? []);\n\n let isMultipart = false;\n const elementsValues = Object.values(elements);\n let i = 0;\n while (i < elementsValues.length && !isMultipart) {\n if (elementsValues[i++].type === 'file') {\n isMultipart = true;\n }\n }\n\n setState((currentState) => {\n return {\n ...currentState,\n ...initialState,\n isMultipart,\n };\n });\n }, [currentForm]);\n\n const { show, onClose, ...modalHookProps } = useModal();\n\n const close = React.useCallback(() => {\n onClose();\n currentFormDispatcher.emit('form', undefined);\n setState((currentState) => {\n return { ...currentState, ...initialState };\n });\n configuration.current?.modalConfiguration?.onClose?.();\n\n validationsStore.unregisterForm(apiaApiForm);\n }, [onClose, configuration]);\n\n const modalRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n const elements = modalRef.current?.querySelectorAll(\n 'a,input,textarea,button',\n );\n if (elements?.length === 1)\n void focus.on(([...elements] as HTMLElement[])[0]);\n });\n\n const setError = React.useCallback(\n (notification: Parameters<typeof notify>[0]) => {\n notify({ ...notification });\n },\n [],\n );\n\n const initialFocusGetter = React.useCallback((ref: HTMLElement) => {\n return ref?.querySelector(focusSelector) as HTMLElement;\n }, []);\n\n const defaultModalProps = React.useMemo(\n (): TModal => ({\n onClose: close,\n id: apiaApiForm,\n title:\n configuration.current?.modalConfiguration?.modalTitle ??\n currentForm?.form.title,\n size: 'md-fixed',\n shouldCloseOnEsc: !state.disabled,\n shouldCloseOnOverlayClick: !state.disabled,\n initialFocusGetter,\n }),\n [\n close,\n configuration,\n currentForm?.form.title,\n initialFocusGetter,\n state.disabled,\n ],\n );\n\n const getModalProps = React.useCallback(\n (innerHandler: TApiaApiMethodHandler) => {\n if (innerHandler.setModalProps) {\n const overrideProps = innerHandler.setModalProps?.(\n {\n methodsPath: innerHandler.configuration?.methodsPath,\n modalConfiguration: innerHandler.configuration?.modalConfiguration,\n },\n innerHandler.formDefinition,\n );\n if (overrideProps) {\n const currentOnClose = () => {\n overrideProps?.onClose?.();\n defaultModalProps.onClose?.();\n };\n const currentOnExited = () => {\n overrideProps?.onExited?.();\n modalHookProps?.onExited?.();\n };\n return {\n ...defaultModalProps,\n ...overrideProps,\n ...modalHookProps,\n onClose: currentOnClose,\n onExited: currentOnExited,\n };\n }\n }\n return { ...defaultModalProps, ...modalHookProps };\n },\n [defaultModalProps, modalHookProps],\n );\n\n const getHandler = React.useCallback(() => {\n const newHandler: TApiaApiMethodHandler = {\n alert,\n close,\n configuration: configuration.current,\n formDefinition: currentForm as TApiaLoad,\n reset: () => {\n return setState((currentState) => {\n return {\n ...currentState,\n ...initialState,\n };\n });\n },\n setError,\n setMessage: (message) => {\n if (configuration.current?.modalConfiguration?.onMessage)\n configuration.current.modalConfiguration.onMessage(message);\n },\n setState,\n state,\n setValue,\n };\n return newHandler;\n }, [close, configuration, currentForm, setError, state, setValue]);\n\n const handler = getHandler();\n const modalProps = getModalProps(handler);\n\n const handleAction = React.useCallback(\n async (action: TModify<TApiaAction, { param: string[] }>) => {\n const innerHandler = getHandler();\n if (action.toDo === 'ajaxHiddeAll') {\n close();\n }\n if (action.toDo === 'functionTimedCall') {\n const method = await getFunction(\n arrayOrArray(action.param)[1],\n innerHandler,\n );\n\n if (method) {\n /*\n * Aquí el timeout se utiliza debido a que Apia lo establece de esa\n * forma,\n * Existe un retorno de Apia llamado functionTimedCall que\n * espera que una función se ejecute luego de un timeout, y\n * yo solamente respeté dicho comportamiento.\n */\n setTimeout(\n () =>\n method({\n currentUrl: innerHandler.formDefinition?.form.action ?? 'noUrl',\n }),\n Number(action.param[0]),\n );\n }\n }\n },\n [close, getHandler],\n );\n\n const handleFunction = React.useCallback(\n async ({ name, props: { messages, attributes, currentUrl } }: TMethod) => {\n const innerHandler = getHandler();\n const method = await getFunction(`${name}`, innerHandler);\n if (method) {\n method({ messages, attributes, currentUrl });\n }\n },\n [getHandler],\n );\n\n const handleMessage = React.useCallback(\n (ev: TMessage) => {\n const innerHandler = getHandler();\n notify({\n message: ev.predicate,\n type: 'warning',\n onClose: innerHandler.configuration?.modalConfiguration?.onMessageClose,\n });\n const onMessage =\n innerHandler.configuration?.modalConfiguration?.onMessage;\n if (onMessage) {\n onMessage(ev);\n }\n },\n [getHandler],\n );\n\n React.useEffect(() => {\n ApiaApiMessenger.on('message', handleMessage);\n FunctionsDispatcher.on('method', handleFunction);\n ApiaActions.on('action', handleAction);\n\n return () => {\n ApiaApiMessenger.off('message', handleMessage);\n FunctionsDispatcher.off('method', handleFunction);\n ApiaActions.off('action', handleAction);\n };\n }, [handleAction, handleFunction, handleMessage, state.windowIndex]);\n\n React.useEffect(() => {\n if (currentForm) {\n show();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentForm]);\n\n const formRef = React.useCallback(\n async (el: HTMLElement) => {\n if (el && currentForm?.form.onLoad) {\n const method = await getFunction(\n `${currentForm?.form.onLoad}`,\n getHandler(),\n );\n if (method) {\n method();\n }\n }\n },\n [currentForm?.form.onLoad, getHandler],\n );\n\n return (\n <ApiaApiContext id={apiaApiForm}>\n <Modal {...modalProps} ref={modalRef}>\n {currentForm && (\n <Box {...getVariant('layout.common.modals.apiaApi')}>\n <Form\n name={apiaApiForm}\n unregisterOnUnmount\n avoidFieldsOverride\n className=\"handler__form\"\n >\n <ApiaApiFieldsContainer definition={currentForm} {...handler} />\n {state.isMultipart && state.progress > 0 && (\n <Box className=\"progressBox\">\n <ProgressBar\n id=\"ApiaApiHandler progress\"\n progress={state.progress}\n loading\n />\n </Box>\n )}\n <ApiaApiButtonsContainer definition={currentForm} {...handler} />\n <Box ref={formRef} sx={{ display: 'none' }} />\n </Form>\n </Box>\n )}\n </Modal>\n </ApiaApiContext>\n );\n};\n\nexport const ApiaApiHandler = React.memo(ApiaApiHandlerNonMemoized);\n"],"names":["__async","ApiaActions","__spreadProps","__spreadValues","__objRest","_a","_b","React","_c","_d","currentFormDispatcher","currentForm","ApiaApiContext"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,18 +6,18 @@
|
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
|
-
"version": "0.2
|
|
9
|
+
"version": "0.3.2",
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "rollup -c rollup.config.esb.mjs",
|
|
12
12
|
"buildDev": "rollup -c rollup.config.esb.mjs --dev",
|
|
13
13
|
"watch": "rollup -c rollup.config.esb.mjs --dev --watch"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@apia/components": "^0.2
|
|
17
|
-
"@apia/notifications": "^0.2
|
|
18
|
-
"@apia/theme": "^0.2
|
|
19
|
-
"@apia/util": "^0.2
|
|
20
|
-
"@apia/validations": "^0.2
|
|
16
|
+
"@apia/components": "^0.3.2",
|
|
17
|
+
"@apia/notifications": "^0.3.2",
|
|
18
|
+
"@apia/theme": "^0.3.2",
|
|
19
|
+
"@apia/util": "^0.3.2",
|
|
20
|
+
"@apia/validations": "^0.3.2",
|
|
21
21
|
"axios": "^1.3.4",
|
|
22
22
|
"lodash": "^4.17.21"
|
|
23
23
|
},
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"url": "http://corp-gitlab-01.domst.st.net/products/apia/ApiaNPMPackages.git",
|
|
50
50
|
"directory": "packages/api"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "47097c7453c80431e43a263258953eb6217eb633"
|
|
53
53
|
}
|