@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 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
- export { ApiaApi, ApiaApiHandler, IApiaApiRequestConfig, TApiaApiAxiosResponse, TApiaApiMethod, TApiaApiResult, makeApiaUrl };
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$8 = Object.defineProperty;
23
+ var __defProp$9 = Object.defineProperty;
24
24
  var __defProps$4 = Object.defineProperties;
25
25
  var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
26
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
27
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
28
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
29
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
30
- var __spreadValues$8 = (a, b) => {
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$8.call(b, prop))
33
- __defNormalProp$8(a, prop, b[prop]);
34
- if (__getOwnPropSymbols$8)
35
- for (var prop of __getOwnPropSymbols$8(b)) {
36
- if (__propIsEnum$8.call(b, prop))
37
- __defNormalProp$8(a, prop, b[prop]);
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$8.call(source, prop) && exclude.indexOf(prop) < 0)
45
+ if (__hasOwnProp$9.call(source, prop) && exclude.indexOf(prop) < 0)
46
46
  target[prop] = source[prop];
47
- if (source != null && __getOwnPropSymbols$8)
48
- for (var prop of __getOwnPropSymbols$8(source)) {
49
- if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))
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$8({}, action), {
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$8({}, notification), {
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$8({}, response), {
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$8({}, behaveConfig.modalConfiguration), {
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$8({}, load), { sysMessages, exceptions, sysExceptions });
358
+ return __spreadProps$4(__spreadValues$9({}, load), { sysMessages, exceptions, sysExceptions });
359
359
  }
360
- return __spreadProps$4(__spreadValues$8({}, rest), { sysMessages, exceptions, sysExceptions });
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$8({}, result), {
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$8({}, getConfig(configParameter)), {
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$8({}, rest);
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$7 = Object.defineProperty;
536
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
537
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
538
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
539
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
540
- var __spreadValues$7 = (a, b) => {
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$7.call(b, prop))
543
- __defNormalProp$7(a, prop, b[prop]);
544
- if (__getOwnPropSymbols$7)
545
- for (var prop of __getOwnPropSymbols$7(b)) {
546
- if (__propIsEnum$7.call(b, prop))
547
- __defNormalProp$7(a, prop, b[prop]);
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$7({
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$6 = Object.defineProperty;
584
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
585
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
586
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
587
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
588
- var __spreadValues$6 = (a, b) => {
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$6.call(b, prop))
591
- __defNormalProp$6(a, prop, b[prop]);
592
- if (__getOwnPropSymbols$6)
593
- for (var prop of __getOwnPropSymbols$6(b)) {
594
- if (__propIsEnum$6.call(b, prop))
595
- __defNormalProp$6(a, prop, b[prop]);
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$6({
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$5 = Object.defineProperty;
626
+ var __defProp$6 = Object.defineProperty;
627
627
  var __defProps$3 = Object.defineProperties;
628
628
  var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
629
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
630
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
631
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
632
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
633
- var __spreadValues$5 = (a, b) => {
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$5.call(b, prop))
636
- __defNormalProp$5(a, prop, b[prop]);
637
- if (__getOwnPropSymbols$5)
638
- for (var prop of __getOwnPropSymbols$5(b)) {
639
- if (__propIsEnum$5.call(b, prop))
640
- __defNormalProp$5(a, prop, b[prop]);
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 ApiaApiInput = (props) => {
646
- const element = React__default.useMemo(() => props.element, [props.element]);
647
- const getModal = React__default.useCallback((path) => {
648
- return React__default.lazy(() => {
649
- return new Promise((resolve) => {
650
- import(
651
- /* webpackChunkName: "handlerModal" */
652
- /* webpackInclude: /\.tsx?$/ */
653
- `/api/modals/${path}`
654
- ).then((result) => {
655
- resolve(
656
- result
657
- );
658
- }).catch((error) => {
659
- resolve({
660
- default: () => {
661
- console.error(error);
662
- throw new Error(
663
- `The above error ocurred at component ApiaApiHandler/${path}, does it exist?`
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$5({
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$5({}, props), { element })) });
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$4 = Object.defineProperty;
748
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
749
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
750
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
751
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
752
- var __spreadValues$4 = (a, b) => {
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$4.call(b, prop))
755
- __defNormalProp$4(a, prop, b[prop]);
756
- if (__getOwnPropSymbols$4)
757
- for (var prop of __getOwnPropSymbols$4(b)) {
758
- if (__propIsEnum$4.call(b, prop))
759
- __defNormalProp$4(a, prop, b[prop]);
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$4({
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$3 = Object.defineProperty;
803
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
804
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
805
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
806
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
807
- var __spreadValues$3 = (a, b) => {
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$3.call(b, prop))
810
- __defNormalProp$3(a, prop, b[prop]);
811
- if (__getOwnPropSymbols$3)
812
- for (var prop of __getOwnPropSymbols$3(b)) {
813
- if (__propIsEnum$3.call(b, prop))
814
- __defNormalProp$3(a, prop, b[prop]);
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$3({
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.4",
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.4",
17
- "@apia/notifications": "^0.2.4",
18
- "@apia/theme": "^0.2.4",
19
- "@apia/util": "^0.2.4",
20
- "@apia/validations": "^0.2.4",
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": "f14ade3161fb978c89e9f0949e46aca54d2e1db3"
52
+ "gitHead": "47097c7453c80431e43a263258953eb6217eb633"
53
53
  }