@apia/api 3.0.1 → 3.0.6
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 +297 -4
- package/dist/index.js +3212 -3
- package/dist/index.js.map +1 -1
- package/package.json +11 -9
- package/dist/ApiaApiContext.js +0 -15
- package/dist/ApiaApiContext.js.map +0 -1
- package/dist/ApiaApiHandler.d.ts +0 -62
- package/dist/ApiaApiHandler.d.ts.map +0 -1
- package/dist/ApiaApiHandler.js +0 -374
- package/dist/ApiaApiHandler.js.map +0 -1
- package/dist/apiaApi.d.ts +0 -156
- package/dist/apiaApi.d.ts.map +0 -1
- package/dist/apiaApi.js +0 -458
- package/dist/apiaApi.js.map +0 -1
- package/dist/buttons/ApiaApiButtonsContainer.js +0 -129
- package/dist/buttons/ApiaApiButtonsContainer.js.map +0 -1
- package/dist/fields/ApiaApiCheckbox.js +0 -39
- package/dist/fields/ApiaApiCheckbox.js.map +0 -1
- package/dist/fields/ApiaApiFieldsContainer.js +0 -213
- package/dist/fields/ApiaApiFieldsContainer.js.map +0 -1
- package/dist/fields/ApiaApiFileInput.js +0 -34
- package/dist/fields/ApiaApiFileInput.js.map +0 -1
- package/dist/fields/ApiaApiInput.d.ts +0 -20
- package/dist/fields/ApiaApiInput.d.ts.map +0 -1
- package/dist/fields/ApiaApiInput.js +0 -110
- package/dist/fields/ApiaApiInput.js.map +0 -1
- package/dist/fields/ApiaApiRadio.js +0 -43
- package/dist/fields/ApiaApiRadio.js.map +0 -1
- package/dist/fields/ApiaApiSelect.js +0 -64
- package/dist/fields/ApiaApiSelect.js.map +0 -1
- package/dist/fields/ApiaApiTextArea.js +0 -50
- package/dist/fields/ApiaApiTextArea.js.map +0 -1
- package/dist/types.d.ts +0 -39
- package/dist/types.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApiaApiButtonsContainer.js","sources":["../../src/buttons/ApiaApiButtonsContainer.tsx"],"sourcesContent":["import { arrayOrArray, TApiaFormButton, TApiaLoad } from '@apia/util';\nimport uniqueId from 'lodash-es/uniqueId';\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 =\n await validationsStore.validateForm(apiaApiForm);\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"],"names":["React"],"mappings":"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"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
-
import { classToValidate, Checkbox } from '@apia/validations';
|
|
3
|
-
import React__default from 'react';
|
|
4
|
-
|
|
5
|
-
const ApiaApiCheckbox = (props) => {
|
|
6
|
-
const element = React__default.useMemo(() => props.element, [props.element]);
|
|
7
|
-
const className = React__default.useMemo(
|
|
8
|
-
() => element.class ? `handler__checkbox ${element.class}` : "handler__checkbox",
|
|
9
|
-
[element.class]
|
|
10
|
-
);
|
|
11
|
-
const validationRules = React__default.useMemo(
|
|
12
|
-
() => ({
|
|
13
|
-
required: element.mandatory,
|
|
14
|
-
...classToValidate(element.class)
|
|
15
|
-
}),
|
|
16
|
-
[element.class, element.mandatory]
|
|
17
|
-
);
|
|
18
|
-
const submitValueParser = React__default.useCallback(
|
|
19
|
-
(value) => value === "on" || value === true,
|
|
20
|
-
[]
|
|
21
|
-
);
|
|
22
|
-
return /* @__PURE__ */ jsx(
|
|
23
|
-
Checkbox,
|
|
24
|
-
{
|
|
25
|
-
className,
|
|
26
|
-
name: element.id || element.name,
|
|
27
|
-
label: element.text,
|
|
28
|
-
title: element.title || element.text,
|
|
29
|
-
initialValue: String(element.selected) === "true",
|
|
30
|
-
disabled: element.readonly || element.disabled,
|
|
31
|
-
validationRules,
|
|
32
|
-
onChange: element.onChange,
|
|
33
|
-
submitValueParser
|
|
34
|
-
}
|
|
35
|
-
);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export { ApiaApiCheckbox };
|
|
39
|
-
//# sourceMappingURL=ApiaApiCheckbox.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApiaApiCheckbox.js","sources":["../../src/fields/ApiaApiCheckbox.tsx"],"sourcesContent":["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"],"names":["React"],"mappings":";;;;AAIa,MAAA,eAAA,GAAkB,CAAC,KAAyB,KAAA;AACvD,EAAM,MAAA,OAAA,GAAUA,eAAM,OAAQ,CAAA,MAAM,MAAM,OAAS,EAAA,CAAC,KAAM,CAAA,OAAO,CAAC,CAAA,CAAA;AAClE,EAAA,MAAM,YAAYA,cAAM,CAAA,OAAA;AAAA,IACtB,MACE,OAAQ,CAAA,KAAA,GACJ,CAAqB,kBAAA,EAAA,OAAA,CAAQ,KAAK,CAClC,CAAA,GAAA,mBAAA;AAAA,IACN,CAAC,QAAQ,KAAK,CAAA;AAAA,GAChB,CAAA;AACA,EAAA,MAAM,kBAAkBA,cAAM,CAAA,OAAA;AAAA,IAC5B,OAAO;AAAA,MACL,UAAU,OAAQ,CAAA,SAAA;AAAA,MAClB,GAAG,eAAgB,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,KAClC,CAAA;AAAA,IACA,CAAC,OAAA,CAAQ,KAAO,EAAA,OAAA,CAAQ,SAAS,CAAA;AAAA,GACnC,CAAA;AACA,EAAA,MAAM,oBAAoBA,cAAM,CAAA,WAAA;AAAA,IAC9B,CAAC,KAAA,KAA4B,KAAU,KAAA,IAAA,IAAQ,KAAU,KAAA,IAAA;AAAA,IACzD,EAAC;AAAA,GACH,CAAA;AACA,EACE,uBAAA,GAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,IAAA,EAAM,OAAQ,CAAA,EAAA,IAAM,OAAQ,CAAA,IAAA;AAAA,MAC5B,OAAO,OAAQ,CAAA,IAAA;AAAA,MACf,KAAA,EAAO,OAAQ,CAAA,KAAA,IAAS,OAAQ,CAAA,IAAA;AAAA,MAChC,YAAc,EAAA,MAAA,CAAO,OAAQ,CAAA,QAAQ,CAAM,KAAA,MAAA;AAAA,MAC3C,QAAA,EAAU,OAAQ,CAAA,QAAA,IAAY,OAAQ,CAAA,QAAA;AAAA,MACtC,eAAA;AAAA,MACA,UAAU,OAAQ,CAAA,QAAA;AAAA,MAClB,iBAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ;;;;"}
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { jsx, jsxs } from '@apia/theme/jsx-runtime';
|
|
2
|
-
import { Box, getVariant } from '@apia/theme';
|
|
3
|
-
import { arrayOrArray } from '@apia/util';
|
|
4
|
-
import uniqueId from 'lodash-es/uniqueId';
|
|
5
|
-
import React__default from 'react';
|
|
6
|
-
import { getFunction } from '../ApiaApiHandler.js';
|
|
7
|
-
import { ApiaApiCheckbox } from './ApiaApiCheckbox.js';
|
|
8
|
-
import { ApiaApiFileInput } from './ApiaApiFileInput.js';
|
|
9
|
-
import { ApiaApiInput } from './ApiaApiInput.js';
|
|
10
|
-
import { ApiaApiRadio } from './ApiaApiRadio.js';
|
|
11
|
-
import { ApiaApiSelect } from './ApiaApiSelect.js';
|
|
12
|
-
import { ApiaApiTextArea } from './ApiaApiTextArea.js';
|
|
13
|
-
|
|
14
|
-
const parseApiaApiSections = (elements) => {
|
|
15
|
-
const removeEndingSpacers = (sectionElements) => {
|
|
16
|
-
if (sectionElements.length > 1) {
|
|
17
|
-
for (let i = sectionElements.length - 1; i >= 0; i--) {
|
|
18
|
-
if (sectionElements[i].type === "empty") {
|
|
19
|
-
sectionElements.pop();
|
|
20
|
-
} else {
|
|
21
|
-
return sectionElements;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return sectionElements;
|
|
26
|
-
};
|
|
27
|
-
const sectionIndexes = [];
|
|
28
|
-
if (elements[0]?.type !== "2columnTitle") {
|
|
29
|
-
sectionIndexes.push(-1);
|
|
30
|
-
}
|
|
31
|
-
elements.forEach((element, index) => {
|
|
32
|
-
if (element.type === "2columnTitle") {
|
|
33
|
-
sectionIndexes.push(index);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
const sections = [];
|
|
37
|
-
sectionIndexes.forEach((sectionIndex, arrayIndex) => {
|
|
38
|
-
const start = sectionIndex + 1 < elements.length ? sectionIndex + 1 : elements.length - 1;
|
|
39
|
-
const end = arrayIndex + 1 < sectionIndexes.length ? sectionIndexes[arrayIndex + 1] : void 0;
|
|
40
|
-
sections.push({
|
|
41
|
-
sectionId: `ApiaApiSection_${arrayIndex}`,
|
|
42
|
-
sectionHeader: sectionIndex !== -1 ? {
|
|
43
|
-
...elements[sectionIndex],
|
|
44
|
-
sectionElementId: `sectionHeader_${arrayIndex}`
|
|
45
|
-
} : void 0,
|
|
46
|
-
sectionElements: removeEndingSpacers(elements.slice(start, end)).map(
|
|
47
|
-
(currentElement) => ({
|
|
48
|
-
...currentElement,
|
|
49
|
-
sectionElementId: `sectionElement_${currentElement.id || currentElement.name || uniqueId()}`
|
|
50
|
-
})
|
|
51
|
-
)
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
return sections;
|
|
55
|
-
};
|
|
56
|
-
const NonMemoizedApiaApiFieldsContainer = (props) => {
|
|
57
|
-
const elements = React__default.useMemo(
|
|
58
|
-
() => arrayOrArray(props?.definition?.form.elements?.element ?? []),
|
|
59
|
-
[props?.definition?.form.elements?.element]
|
|
60
|
-
);
|
|
61
|
-
const sections = React__default.useMemo(
|
|
62
|
-
() => parseApiaApiSections(elements),
|
|
63
|
-
[elements]
|
|
64
|
-
);
|
|
65
|
-
const renderSectionContent = React__default.useCallback(
|
|
66
|
-
(sectionId, sectionElements) => {
|
|
67
|
-
const isVisible = sectionElements.findIndex((element) => element.type !== "hidden") !== -1;
|
|
68
|
-
return /* @__PURE__ */ jsx(
|
|
69
|
-
Box,
|
|
70
|
-
{
|
|
71
|
-
className: isVisible ? "handler__form__elements__section__content" : `handler__form__elements__section__content handler__hidden`,
|
|
72
|
-
children: sectionElements.map((current) => {
|
|
73
|
-
const element = {
|
|
74
|
-
...current,
|
|
75
|
-
onChange() {
|
|
76
|
-
getFunction(current.onChange, props).then((onChangeMethod) => {
|
|
77
|
-
if (onChangeMethod) {
|
|
78
|
-
onChangeMethod();
|
|
79
|
-
}
|
|
80
|
-
}).catch(console.error);
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
switch (element.type) {
|
|
84
|
-
case "table": {
|
|
85
|
-
const data = JSON.parse(element.text);
|
|
86
|
-
return /* @__PURE__ */ jsx(
|
|
87
|
-
Box,
|
|
88
|
-
{
|
|
89
|
-
...getVariant("layout.common.tables.information"),
|
|
90
|
-
children: /* @__PURE__ */ jsxs("table", { sx: { width: "100%" }, children: [
|
|
91
|
-
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { children: data.columns.map((column) => {
|
|
92
|
-
return /* @__PURE__ */ jsx("th", { children: column }, column);
|
|
93
|
-
}) }) }),
|
|
94
|
-
/* @__PURE__ */ jsx("tbody", { children: data.rows.map((row) => {
|
|
95
|
-
return /* @__PURE__ */ jsx("tr", { children: row.cells.map((cell, i) => {
|
|
96
|
-
return /* @__PURE__ */ jsx("td", { children: cell }, `${cell}_${data.columns[i]}`);
|
|
97
|
-
}) }, row.cells.join("-"));
|
|
98
|
-
}) })
|
|
99
|
-
] })
|
|
100
|
-
},
|
|
101
|
-
element.sectionElementId
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
case "2columnSubTitle":
|
|
105
|
-
return /* @__PURE__ */ jsx(
|
|
106
|
-
Box,
|
|
107
|
-
{
|
|
108
|
-
className: element.class,
|
|
109
|
-
as: "h6",
|
|
110
|
-
children: element.value || element.text
|
|
111
|
-
},
|
|
112
|
-
element.sectionElementId
|
|
113
|
-
);
|
|
114
|
-
case "2column":
|
|
115
|
-
return /* @__PURE__ */ jsx(
|
|
116
|
-
Box,
|
|
117
|
-
{
|
|
118
|
-
dangerouslySetInnerHTML: {
|
|
119
|
-
__html: element.value || element.text
|
|
120
|
-
},
|
|
121
|
-
className: element.class
|
|
122
|
-
},
|
|
123
|
-
element.sectionElementId
|
|
124
|
-
);
|
|
125
|
-
case "checkbox":
|
|
126
|
-
return /* @__PURE__ */ jsx(
|
|
127
|
-
ApiaApiCheckbox,
|
|
128
|
-
{
|
|
129
|
-
...props,
|
|
130
|
-
element
|
|
131
|
-
},
|
|
132
|
-
element.sectionElementId
|
|
133
|
-
);
|
|
134
|
-
case "file":
|
|
135
|
-
return /* @__PURE__ */ jsx(
|
|
136
|
-
ApiaApiFileInput,
|
|
137
|
-
{
|
|
138
|
-
...props,
|
|
139
|
-
element
|
|
140
|
-
},
|
|
141
|
-
element.sectionElementId
|
|
142
|
-
);
|
|
143
|
-
case "hidden":
|
|
144
|
-
case "password":
|
|
145
|
-
case "text":
|
|
146
|
-
return /* @__PURE__ */ jsx(
|
|
147
|
-
ApiaApiInput,
|
|
148
|
-
{
|
|
149
|
-
...props,
|
|
150
|
-
element
|
|
151
|
-
},
|
|
152
|
-
element.sectionElementId
|
|
153
|
-
);
|
|
154
|
-
case "select":
|
|
155
|
-
return /* @__PURE__ */ jsx(
|
|
156
|
-
ApiaApiSelect,
|
|
157
|
-
{
|
|
158
|
-
...props,
|
|
159
|
-
element
|
|
160
|
-
},
|
|
161
|
-
element.sectionElementId
|
|
162
|
-
);
|
|
163
|
-
case "radio":
|
|
164
|
-
return /* @__PURE__ */ jsx(
|
|
165
|
-
ApiaApiRadio,
|
|
166
|
-
{
|
|
167
|
-
...props,
|
|
168
|
-
element
|
|
169
|
-
},
|
|
170
|
-
element.sectionElementId
|
|
171
|
-
);
|
|
172
|
-
case "textarea":
|
|
173
|
-
return /* @__PURE__ */ jsx(
|
|
174
|
-
ApiaApiTextArea,
|
|
175
|
-
{
|
|
176
|
-
...props,
|
|
177
|
-
element
|
|
178
|
-
},
|
|
179
|
-
element.sectionElementId
|
|
180
|
-
);
|
|
181
|
-
case "empty":
|
|
182
|
-
return /* @__PURE__ */ jsx(Box, { className: "spacer" }, element.sectionElementId);
|
|
183
|
-
default:
|
|
184
|
-
console.warn(
|
|
185
|
-
`Unhandled element type: ${element.type}`,
|
|
186
|
-
element
|
|
187
|
-
);
|
|
188
|
-
return null;
|
|
189
|
-
}
|
|
190
|
-
})
|
|
191
|
-
},
|
|
192
|
-
sectionId
|
|
193
|
-
);
|
|
194
|
-
},
|
|
195
|
-
[props]
|
|
196
|
-
);
|
|
197
|
-
return /* @__PURE__ */ jsx(Box, { className: "handler__form__elements", children: sections.map((section) => {
|
|
198
|
-
if (section.sectionHeader) {
|
|
199
|
-
return renderSectionContent(
|
|
200
|
-
section.sectionId,
|
|
201
|
-
section.sectionElements
|
|
202
|
-
);
|
|
203
|
-
}
|
|
204
|
-
return renderSectionContent(section.sectionId, section.sectionElements);
|
|
205
|
-
}) });
|
|
206
|
-
};
|
|
207
|
-
const ApiaApiFieldsContainer = React__default.memo(
|
|
208
|
-
NonMemoizedApiaApiFieldsContainer
|
|
209
|
-
);
|
|
210
|
-
ApiaApiFieldsContainer.displayName = "ApiaApiFieldsContainer";
|
|
211
|
-
|
|
212
|
-
export { ApiaApiFieldsContainer };
|
|
213
|
-
//# sourceMappingURL=ApiaApiFieldsContainer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApiaApiFieldsContainer.js","sources":["../../src/fields/ApiaApiFieldsContainer.tsx"],"sourcesContent":["import { getVariant } from '@apia/theme';\nimport { arrayOrArray, TApiaFormElement, TApiaLoad } from '@apia/util';\nimport uniqueId from 'lodash-es/uniqueId';\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"],"names":["React"],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
-
import { classToValidate, FileInput } from '@apia/validations';
|
|
3
|
-
import React__default from 'react';
|
|
4
|
-
|
|
5
|
-
const ApiaApiFileInput = (props) => {
|
|
6
|
-
const element = React__default.useMemo(() => props.element, [props.element]);
|
|
7
|
-
const className = React__default.useMemo(
|
|
8
|
-
() => element.class ? `handler__file ${element.class}` : "handler__file",
|
|
9
|
-
[element.class]
|
|
10
|
-
);
|
|
11
|
-
const validationRules = React__default.useMemo(
|
|
12
|
-
() => ({
|
|
13
|
-
required: element.mandatory,
|
|
14
|
-
...classToValidate(element.class)
|
|
15
|
-
}),
|
|
16
|
-
[element.class, element.mandatory]
|
|
17
|
-
);
|
|
18
|
-
return /* @__PURE__ */ jsx(
|
|
19
|
-
FileInput,
|
|
20
|
-
{
|
|
21
|
-
className,
|
|
22
|
-
name: element.id || element.name,
|
|
23
|
-
label: element.text,
|
|
24
|
-
title: element.title || element.text,
|
|
25
|
-
readOnly: element.readonly,
|
|
26
|
-
disabled: element.disabled,
|
|
27
|
-
validationRules
|
|
28
|
-
}
|
|
29
|
-
);
|
|
30
|
-
};
|
|
31
|
-
ApiaApiFileInput.displayName = "ApiaApiFileInput";
|
|
32
|
-
|
|
33
|
-
export { ApiaApiFileInput };
|
|
34
|
-
//# sourceMappingURL=ApiaApiFileInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApiaApiFileInput.js","sources":["../../src/fields/ApiaApiFileInput.tsx"],"sourcesContent":["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"],"names":["React"],"mappings":";;;;AAIa,MAAA,gBAAA,GAAmB,CAAC,KAAyB,KAAA;AACxD,EAAM,MAAA,OAAA,GAAUA,eAAM,OAAQ,CAAA,MAAM,MAAM,OAAS,EAAA,CAAC,KAAM,CAAA,OAAO,CAAC,CAAA,CAAA;AAClE,EAAA,MAAM,YAAYA,cAAM,CAAA,OAAA;AAAA,IACtB,MAAO,OAAQ,CAAA,KAAA,GAAQ,CAAiB,cAAA,EAAA,OAAA,CAAQ,KAAK,CAAK,CAAA,GAAA,eAAA;AAAA,IAC1D,CAAC,QAAQ,KAAK,CAAA;AAAA,GAChB,CAAA;AACA,EAAA,MAAM,kBAAkBA,cAAM,CAAA,OAAA;AAAA,IAC5B,OAAO;AAAA,MACL,UAAU,OAAQ,CAAA,SAAA;AAAA,MAClB,GAAG,eAAgB,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,KAClC,CAAA;AAAA,IACA,CAAC,OAAA,CAAQ,KAAO,EAAA,OAAA,CAAQ,SAAS,CAAA;AAAA,GACnC,CAAA;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,IAAA,EAAM,OAAQ,CAAA,EAAA,IAAM,OAAQ,CAAA,IAAA;AAAA,MAC5B,OAAO,OAAQ,CAAA,IAAA;AAAA,MACf,KAAA,EAAO,OAAQ,CAAA,KAAA,IAAS,OAAQ,CAAA,IAAA;AAAA,MAChC,UAAU,OAAQ,CAAA,QAAA;AAAA,MAClB,UAAU,OAAQ,CAAA,QAAA;AAAA,MAClB,eAAA;AAAA,KAAA;AAAA,GACF,CAAA;AAEJ,EAAA;AAEA,gBAAA,CAAiB,WAAc,GAAA,kBAAA;;;;"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
import { TApiaApiField } from '../ApiaApiHandler.js';
|
|
3
|
-
|
|
4
|
-
declare global {
|
|
5
|
-
interface Window {
|
|
6
|
-
SALT: string;
|
|
7
|
-
IV: string;
|
|
8
|
-
PASSPHRASE: string;
|
|
9
|
-
KEY_SIZE: number;
|
|
10
|
-
ITERATION_COUNT: string;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Permite cargar en forma asíncrona un modal que se encuentre dentro del
|
|
15
|
-
* directorio /api/modals
|
|
16
|
-
* */
|
|
17
|
-
declare const getModal: (path: string) => React__default.LazyExoticComponent<React__default.ComponentType<TApiaApiField>>;
|
|
18
|
-
|
|
19
|
-
export { getModal };
|
|
20
|
-
//# sourceMappingURL=ApiaApiInput.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApiaApiInput.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
-
import { useMount, encrypt } from '@apia/util';
|
|
3
|
-
import { classToValidate, classToValidationFunction, Input } from '@apia/validations';
|
|
4
|
-
import React__default from 'react';
|
|
5
|
-
|
|
6
|
-
const getModal = (path) => {
|
|
7
|
-
return React__default.lazy(() => {
|
|
8
|
-
return new Promise((resolve) => {
|
|
9
|
-
import(
|
|
10
|
-
/* webpackChunkName: "handlerModal" */
|
|
11
|
-
/* webpackInclude: /\.tsx?$/ */
|
|
12
|
-
`/api/modals/${path}`
|
|
13
|
-
).then((result) => {
|
|
14
|
-
resolve(
|
|
15
|
-
result
|
|
16
|
-
);
|
|
17
|
-
}).catch((error) => {
|
|
18
|
-
resolve({
|
|
19
|
-
default: () => {
|
|
20
|
-
console.error(error);
|
|
21
|
-
throw new Error(
|
|
22
|
-
`The above error ocurred at component ApiaApiHandler/${path}, does it exist?`
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
const ApiaApiInput = (props) => {
|
|
31
|
-
const element = React__default.useMemo(() => props.element, [props.element]);
|
|
32
|
-
const [Submodal, setSubmodal] = React__default.useState(null);
|
|
33
|
-
useMount(() => {
|
|
34
|
-
if (element.modalFunction) {
|
|
35
|
-
const found = element.modalFunction.match(/(?:fnc)?(\w+)\(?\)?$/);
|
|
36
|
-
if (found) {
|
|
37
|
-
const modalName = found[found.length - 1];
|
|
38
|
-
setSubmodal(getModal(modalName));
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
const className = React__default.useMemo(
|
|
43
|
-
() => element.class ? `handler__${element.type} ${element.class}` : `handler__${element.type}`,
|
|
44
|
-
[element.class, element.type]
|
|
45
|
-
);
|
|
46
|
-
const validationRules = React__default.useMemo(
|
|
47
|
-
() => ({
|
|
48
|
-
required: element.mandatory,
|
|
49
|
-
maxLength: element.maxlength ? Number(element.maxlength) : void 0,
|
|
50
|
-
pattern: element.regExp,
|
|
51
|
-
patternMessage: element.regExpMessage,
|
|
52
|
-
...classToValidate(element.class)
|
|
53
|
-
}),
|
|
54
|
-
[
|
|
55
|
-
element.class,
|
|
56
|
-
element.mandatory,
|
|
57
|
-
element.maxlength,
|
|
58
|
-
element.regExp,
|
|
59
|
-
element.regExpMessage
|
|
60
|
-
]
|
|
61
|
-
);
|
|
62
|
-
const validationFunction = React__default.useMemo(
|
|
63
|
-
() => classToValidationFunction(element.class),
|
|
64
|
-
[element.class]
|
|
65
|
-
);
|
|
66
|
-
const submitValueParser = React__default.useCallback(
|
|
67
|
-
(value) => {
|
|
68
|
-
if (element.type === "password") {
|
|
69
|
-
return encrypt(
|
|
70
|
-
window.SALT,
|
|
71
|
-
window.IV,
|
|
72
|
-
window.PASSPHRASE,
|
|
73
|
-
value,
|
|
74
|
-
Number(window.KEY_SIZE),
|
|
75
|
-
Number(window.ITERATION_COUNT)
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
return value;
|
|
79
|
-
},
|
|
80
|
-
[element.type]
|
|
81
|
-
);
|
|
82
|
-
if (element.modalFunction) {
|
|
83
|
-
if (Submodal) {
|
|
84
|
-
return /* @__PURE__ */ jsx(React__default.Suspense, { children: /* @__PURE__ */ jsx(Submodal, { ...props, element }) });
|
|
85
|
-
}
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
return /* @__PURE__ */ jsx(
|
|
89
|
-
Input,
|
|
90
|
-
{
|
|
91
|
-
type: element.isADate ? "date" : element.type,
|
|
92
|
-
className,
|
|
93
|
-
name: element.id || element.name,
|
|
94
|
-
label: element.text,
|
|
95
|
-
title: element.title || element.text,
|
|
96
|
-
value: element.value,
|
|
97
|
-
readOnly: element.readonly,
|
|
98
|
-
disabled: element.disabled,
|
|
99
|
-
validationFunction,
|
|
100
|
-
validationRules,
|
|
101
|
-
submitValueParser,
|
|
102
|
-
onChange: element.onChange,
|
|
103
|
-
autoComplete: element.type === "password" ? "new-password" : void 0
|
|
104
|
-
}
|
|
105
|
-
);
|
|
106
|
-
};
|
|
107
|
-
ApiaApiInput.displayName = "ApiaApiInput";
|
|
108
|
-
|
|
109
|
-
export { ApiaApiInput, getModal };
|
|
110
|
-
//# sourceMappingURL=ApiaApiInput.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApiaApiInput.js","sources":["../../src/fields/ApiaApiInput.tsx"],"sourcesContent":["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: number;\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.isADate ? 'date' : 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"],"names":["React"],"mappings":"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"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
-
import { arrayOrArray } from '@apia/util';
|
|
3
|
-
import { classToValidate, Radio } from '@apia/validations';
|
|
4
|
-
import React__default from 'react';
|
|
5
|
-
|
|
6
|
-
const ApiaApiRadio = (props) => {
|
|
7
|
-
const element = React__default.useMemo(() => props.element, [props.element]);
|
|
8
|
-
const className = React__default.useMemo(
|
|
9
|
-
() => element.class ? `handler__radio ${element.class}` : "handler__radio",
|
|
10
|
-
[element.class]
|
|
11
|
-
);
|
|
12
|
-
const options = React__default.useMemo(
|
|
13
|
-
() => arrayOrArray(element.options?.option).map((currOption) => {
|
|
14
|
-
return { value: currOption.value, label: currOption.content };
|
|
15
|
-
}),
|
|
16
|
-
[element.options?.option]
|
|
17
|
-
);
|
|
18
|
-
const validationRules = React__default.useMemo(
|
|
19
|
-
() => ({
|
|
20
|
-
required: element.mandatory,
|
|
21
|
-
...classToValidate(element.class)
|
|
22
|
-
}),
|
|
23
|
-
[element.class, element.mandatory]
|
|
24
|
-
);
|
|
25
|
-
return /* @__PURE__ */ jsx(
|
|
26
|
-
Radio,
|
|
27
|
-
{
|
|
28
|
-
className,
|
|
29
|
-
name: element.id || element.name,
|
|
30
|
-
label: element.text,
|
|
31
|
-
title: element.title || element.text,
|
|
32
|
-
initialValue: element.value,
|
|
33
|
-
disabled: element.readonly || element.disabled,
|
|
34
|
-
validationRules,
|
|
35
|
-
options,
|
|
36
|
-
onChange: element.onChange
|
|
37
|
-
}
|
|
38
|
-
);
|
|
39
|
-
};
|
|
40
|
-
ApiaApiRadio.displayName = "ApiaApiRadio";
|
|
41
|
-
|
|
42
|
-
export { ApiaApiRadio };
|
|
43
|
-
//# sourceMappingURL=ApiaApiRadio.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApiaApiRadio.js","sources":["../../src/fields/ApiaApiRadio.tsx"],"sourcesContent":["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"],"names":["React"],"mappings":";;;;;AAKa,MAAA,YAAA,GAAe,CAAC,KAAyB,KAAA;AACpD,EAAM,MAAA,OAAA,GAAUA,eAAM,OAAQ,CAAA,MAAM,MAAM,OAAS,EAAA,CAAC,KAAM,CAAA,OAAO,CAAC,CAAA,CAAA;AAClE,EAAA,MAAM,YAAYA,cAAM,CAAA,OAAA;AAAA,IACtB,MACE,OAAQ,CAAA,KAAA,GAAQ,CAAkB,eAAA,EAAA,OAAA,CAAQ,KAAK,CAAK,CAAA,GAAA,gBAAA;AAAA,IACtD,CAAC,QAAQ,KAAK,CAAA;AAAA,GAChB,CAAA;AACA,EAAA,MAAM,UAAUA,cAAM,CAAA,OAAA;AAAA,IACpB,MACE,aAAa,OAAQ,CAAA,OAAA,EAAS,MAAM,CAAE,CAAA,GAAA,CAAI,CAAC,UAAe,KAAA;AACxD,MAAA,OAAO,EAAE,KAAO,EAAA,UAAA,CAAW,KAAO,EAAA,KAAA,EAAO,WAAW,OAAQ,EAAA,CAAA;AAAA,KAC7D,CAAA;AAAA,IACH,CAAC,OAAQ,CAAA,OAAA,EAAS,MAAM,CAAA;AAAA,GAC1B,CAAA;AACA,EAAA,MAAM,kBAAkBA,cAAM,CAAA,OAAA;AAAA,IAC5B,OAAO;AAAA,MACL,UAAU,OAAQ,CAAA,SAAA;AAAA,MAClB,GAAG,eAAgB,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,KAClC,CAAA;AAAA,IACA,CAAC,OAAA,CAAQ,KAAO,EAAA,OAAA,CAAQ,SAAS,CAAA;AAAA,GACnC,CAAA;AACA,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,IAAA,EAAM,OAAQ,CAAA,EAAA,IAAM,OAAQ,CAAA,IAAA;AAAA,MAC5B,OAAO,OAAQ,CAAA,IAAA;AAAA,MACf,KAAA,EAAO,OAAQ,CAAA,KAAA,IAAS,OAAQ,CAAA,IAAA;AAAA,MAChC,cAAc,OAAQ,CAAA,KAAA;AAAA,MACtB,QAAA,EAAU,OAAQ,CAAA,QAAA,IAAY,OAAQ,CAAA,QAAA;AAAA,MACtC,eAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAU,OAAQ,CAAA,QAAA;AAAA,KAAA;AAAA,GACpB,CAAA;AAEJ,EAAA;AAEA,YAAA,CAAa,WAAc,GAAA,cAAA;;;;"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
import { arrayOrArray, EventEmitter } from '@apia/util';
|
|
4
|
-
import { classToValidate, Select } from '@apia/validations';
|
|
5
|
-
|
|
6
|
-
class ApiaApiSelectOptions extends EventEmitter {
|
|
7
|
-
}
|
|
8
|
-
const apiaApiSelectOptions = new ApiaApiSelectOptions();
|
|
9
|
-
const ApiaApiSelect = (props) => {
|
|
10
|
-
const element = React__default.useMemo(() => props.element, [props.element]);
|
|
11
|
-
const className = React__default.useMemo(
|
|
12
|
-
() => element.class ? `handler__select ${element.class}` : "handler__select",
|
|
13
|
-
[element.class]
|
|
14
|
-
);
|
|
15
|
-
const [options, setOptions] = React__default.useState(
|
|
16
|
-
arrayOrArray(element.options?.option).map((currOption) => {
|
|
17
|
-
return { value: currOption.value, label: currOption.content };
|
|
18
|
-
})
|
|
19
|
-
);
|
|
20
|
-
const validationRules = React__default.useMemo(
|
|
21
|
-
() => ({
|
|
22
|
-
required: element.mandatory,
|
|
23
|
-
...classToValidate(element.class)
|
|
24
|
-
}),
|
|
25
|
-
[element.class, element.mandatory]
|
|
26
|
-
);
|
|
27
|
-
React__default.useEffect(() => {
|
|
28
|
-
const unsuscribe = apiaApiSelectOptions.on("setOptions", (ev) => {
|
|
29
|
-
if (ev.fieldName === element.name) {
|
|
30
|
-
setOptions(
|
|
31
|
-
ev.options.map((currOption) => ({
|
|
32
|
-
value: currOption.value,
|
|
33
|
-
label: currOption.content
|
|
34
|
-
}))
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
return () => {
|
|
39
|
-
unsuscribe();
|
|
40
|
-
};
|
|
41
|
-
}, [element.name]);
|
|
42
|
-
const initialValue = React__default.useMemo(
|
|
43
|
-
() => options.find((current) => current.value === props.element.value)?.value ?? options[0]?.value ?? "",
|
|
44
|
-
[options, props.element.value]
|
|
45
|
-
);
|
|
46
|
-
return /* @__PURE__ */ jsx(
|
|
47
|
-
Select,
|
|
48
|
-
{
|
|
49
|
-
className,
|
|
50
|
-
name: element.id || element.name,
|
|
51
|
-
label: element.text,
|
|
52
|
-
title: element.title || element.text,
|
|
53
|
-
initialValue,
|
|
54
|
-
disabled: element.readonly || element.disabled,
|
|
55
|
-
validationRules,
|
|
56
|
-
options,
|
|
57
|
-
onChange: element.onChange
|
|
58
|
-
}
|
|
59
|
-
);
|
|
60
|
-
};
|
|
61
|
-
ApiaApiSelect.displayName = "ApiaApiSelect";
|
|
62
|
-
|
|
63
|
-
export { ApiaApiSelect, apiaApiSelectOptions };
|
|
64
|
-
//# sourceMappingURL=ApiaApiSelect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ApiaApiSelect.js","sources":["../../src/fields/ApiaApiSelect.tsx"],"sourcesContent":["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\nclass ApiaApiSelectOptions extends EventEmitter<{\n setOptions: {\n fieldName: string;\n options: TOption[];\n };\n}> {}\n\nexport const apiaApiSelectOptions = new ApiaApiSelectOptions();\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"],"names":["React"],"mappings":";;;;;AAUA,MAAM,6BAA6B,YAKhC,CAAA;AAAC,CAAA;AAES,MAAA,oBAAA,GAAuB,IAAI,oBAAqB,GAAA;AAEhD,MAAA,aAAA,GAAgB,CAAC,KAAyB,KAAA;AACrD,EAAM,MAAA,OAAA,GAAUA,eAAM,OAAQ,CAAA,MAAM,MAAM,OAAS,EAAA,CAAC,KAAM,CAAA,OAAO,CAAC,CAAA,CAAA;AAClE,EAAA,MAAM,YAAYA,cAAM,CAAA,OAAA;AAAA,IACtB,MACE,OAAQ,CAAA,KAAA,GAAQ,CAAmB,gBAAA,EAAA,OAAA,CAAQ,KAAK,CAAK,CAAA,GAAA,iBAAA;AAAA,IACvD,CAAC,QAAQ,KAAK,CAAA;AAAA,GAChB,CAAA;AACA,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,cAAM,CAAA,QAAA;AAAA,IAMlC,aAAa,OAAQ,CAAA,OAAA,EAAS,MAAM,CAAE,CAAA,GAAA,CAAI,CAAC,UAAe,KAAA;AACxD,MAAA,OAAO,EAAE,KAAO,EAAA,UAAA,CAAW,KAAO,EAAA,KAAA,EAAO,WAAW,OAAQ,EAAA,CAAA;AAAA,KAC7D,CAAA;AAAA,GACH,CAAA;AACA,EAAA,MAAM,kBAAkBA,cAAM,CAAA,OAAA;AAAA,IAC5B,OAAO;AAAA,MACL,UAAU,OAAQ,CAAA,SAAA;AAAA,MAClB,GAAG,eAAgB,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,KAClC,CAAA;AAAA,IACA,CAAC,OAAA,CAAQ,KAAO,EAAA,OAAA,CAAQ,SAAS,CAAA;AAAA,GACnC,CAAA;AAEA,EAAAA,cAAA,CAAM,UAAU,MAAM;AACpB,IAAA,MAAM,UAAa,GAAA,oBAAA,CAAqB,EAAG,CAAA,YAAA,EAAc,CAAC,EAAO,KAAA;AAC/D,MAAI,IAAA,EAAA,CAAG,SAAc,KAAA,OAAA,CAAQ,IAAM,EAAA;AACjC,QAAA,UAAA;AAAA,UACE,EAAG,CAAA,OAAA,CAAQ,GAAI,CAAA,CAAC,UAAgB,MAAA;AAAA,YAC9B,OAAO,UAAW,CAAA,KAAA;AAAA,YAClB,OAAO,UAAW,CAAA,OAAA;AAAA,WAClB,CAAA,CAAA;AAAA,SACJ,CAAA;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAED,IAAA,OAAO,MAAM;AACX,MAAW,UAAA,EAAA,CAAA;AAAA,KACb,CAAA;AAAA,GACC,EAAA,CAAC,OAAQ,CAAA,IAAI,CAAC,CAAA,CAAA;AAEjB,EAAA,MAAM,eAAeA,cAAM,CAAA,OAAA;AAAA,IACzB,MACE,OAAA,CAAQ,IAAK,CAAA,CAAC,YAAY,OAAQ,CAAA,KAAA,KAAU,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAG,EAAA,KAAA,IAClE,OAAQ,CAAA,CAAC,GAAG,KACZ,IAAA,EAAA;AAAA,IACF,CAAC,OAAA,EAAS,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,GAC/B,CAAA;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,IAAA,EAAM,OAAQ,CAAA,EAAA,IAAM,OAAQ,CAAA,IAAA;AAAA,MAC5B,OAAO,OAAQ,CAAA,IAAA;AAAA,MACf,KAAA,EAAO,OAAQ,CAAA,KAAA,IAAS,OAAQ,CAAA,IAAA;AAAA,MAChC,YAAA;AAAA,MACA,QAAA,EAAU,OAAQ,CAAA,QAAA,IAAY,OAAQ,CAAA,QAAA;AAAA,MACtC,eAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAU,OAAQ,CAAA,QAAA;AAAA,KAAA;AAAA,GACpB,CAAA;AAEJ,EAAA;AAEA,aAAA,CAAc,WAAc,GAAA,eAAA;;;;"}
|