@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.
@@ -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":";;;;;;;;;;;;;AA4BA,MAAM,oBAAA,GAAuB,CAAC,QAAiC,KAAA;AAC7D,EAAM,MAAA,mBAAA,GAAsB,CAC1B,eACuB,KAAA;AACvB,IAAI,IAAA,eAAA,CAAgB,SAAS,CAAG,EAAA;AAC9B,MAAA,KAAA,IAAS,IAAI,eAAgB,CAAA,MAAA,GAAS,CAAG,EAAA,CAAA,IAAK,GAAG,CAAK,EAAA,EAAA;AACpD,QAAA,IAAI,eAAgB,CAAA,CAAC,CAAE,CAAA,IAAA,KAAS,OAAS,EAAA;AACvC,UAAA,eAAA,CAAgB,GAAI,EAAA,CAAA;AAAA,SACf,MAAA;AACL,UAAO,OAAA,eAAA,CAAA;AAAA,SACT;AAAA,OACF;AAAA,KACF;AACA,IAAO,OAAA,eAAA,CAAA;AAAA,GACT,CAAA;AACA,EAAA,MAAM,iBAA2B,EAAC,CAAA;AAClC,EAAA,IAAI,QAAS,CAAA,CAAC,CAAG,EAAA,IAAA,KAAS,cAAgB,EAAA;AACxC,IAAA,cAAA,CAAe,KAAK,CAAE,CAAA,CAAA,CAAA;AAAA,GACxB;AACA,EAAS,QAAA,CAAA,OAAA,CAAQ,CAAC,OAAA,EAAS,KAAU,KAAA;AACnC,IAAI,IAAA,OAAA,CAAQ,SAAS,cAAgB,EAAA;AACnC,MAAA,cAAA,CAAe,KAAK,KAAK,CAAA,CAAA;AAAA,KAC3B;AAAA,GACD,CAAA,CAAA;AACD,EAAA,MAAM,WAA8B,EAAC,CAAA;AACrC,EAAe,cAAA,CAAA,OAAA,CAAQ,CAAC,YAAA,EAAc,UAAe,KAAA;AACnD,IAAM,MAAA,KAAA,GACJ,eAAe,CAAI,GAAA,QAAA,CAAS,SACxB,YAAe,GAAA,CAAA,GACf,SAAS,MAAS,GAAA,CAAA,CAAA;AACxB,IAAM,MAAA,GAAA,GACJ,aAAa,CAAI,GAAA,cAAA,CAAe,SAC5B,cAAe,CAAA,UAAA,GAAa,CAAC,CAC7B,GAAA,KAAA,CAAA,CAAA;AACN,IAAA,QAAA,CAAS,IAAK,CAAA;AAAA,MACZ,SAAA,EAAW,kBAAkB,UAAU,CAAA,CAAA;AAAA,MACvC,aAAA,EACE,iBAAiB,CACb,CAAA,GAAA;AAAA,QACE,GAAG,SAAS,YAAY,CAAA;AAAA,QACxB,gBAAA,EAAkB,iBAAiB,UAAU,CAAA,CAAA;AAAA,OAE/C,GAAA,KAAA,CAAA;AAAA,MACN,iBAAiB,mBAAoB,CAAA,QAAA,CAAS,MAAM,KAAO,EAAA,GAAG,CAAC,CAAE,CAAA,GAAA;AAAA,QAC/D,CAAC,cAAoB,MAAA;AAAA,UACnB,GAAG,cAAA;AAAA,UACH,kBAAkB,CAChB,eAAA,EAAA,cAAA,CAAe,MAAM,cAAe,CAAA,IAAA,IAAQ,UAC9C,CAAA,CAAA;AAAA,SACF,CAAA;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAAA,GACF,CAAA,CAAA;AACD,EAAO,OAAA,QAAA,CAAA;AACT,CAAA,CAAA;AAEA,MAAM,iCAAA,GAAoC,CAAC,KAAmC,KAAA;AAC5E,EAAA,MAAM,WAAWA,cAAM,CAAA,OAAA;AAAA,IACrB,MAAM,aAAa,KAAO,EAAA,UAAA,EAAY,KAAK,QAAU,EAAA,OAAA,IAAW,EAAE,CAAA;AAAA,IAClE,CAAC,KAAA,EAAO,UAAY,EAAA,IAAA,CAAK,UAAU,OAAO,CAAA;AAAA,GAC5C,CAAA;AAEA,EAAA,MAAM,WAAWA,cAAM,CAAA,OAAA;AAAA,IACrB,MAAM,qBAAqB,QAAQ,CAAA;AAAA,IACnC,CAAC,QAAQ,CAAA;AAAA,GACX,CAAA;AAEA,EAAA,MAAM,uBAAuBA,cAAM,CAAA,WAAA;AAAA,IACjC,CAAC,WAAmB,eAA8C,KAAA;AAChE,MAAM,MAAA,SAAA,GACJ,gBAAgB,SAAU,CAAA,CAAC,YAAY,OAAQ,CAAA,IAAA,KAAS,QAAQ,CAChE,KAAA,CAAA,CAAA,CAAA;AACF,MACE,uBAAA,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EACE,YACI,2CACA,GAAA,CAAA,yDAAA,CAAA;AAAA,UAIL,QAAA,EAAA,eAAA,CAAgB,GAAI,CAAA,CAAC,OAAY,KAAA;AAChC,YAAA,MAAM,OAAU,GAAA;AAAA,cACd,GAAG,OAAA;AAAA,cACH,QAAW,GAAA;AACT,gBAAA,WAAA,CAAY,QAAQ,QAAU,EAAA,KAAK,CAChC,CAAA,IAAA,CAAK,CAAC,cAAmB,KAAA;AACxB,kBAAA,IAAI,cAAgB,EAAA;AAClB,oBAAe,cAAA,EAAA,CAAA;AAAA,mBACjB;AAAA,iBACD,CAAA,CACA,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAAA,eACxB;AAAA,aACF,CAAA;AACA,YAAA,QAAQ,QAAQ,IAAM;AAAA,cACpB,KAAK,OAAS,EAAA;AACZ,gBAAA,MAAM,IAAO,GAAA,IAAA,CAAK,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AACpC,gBACE,uBAAA,GAAA;AAAA,kBAAC,GAAA;AAAA,kBAAA;AAAA,oBAEE,GAAG,WAAW,kCAAkC,CAAA;AAAA,oBAEjD,+BAAC,OAAM,EAAA,EAAA,EAAA,EAAI,EAAE,KAAA,EAAO,QAClB,EAAA,QAAA,EAAA;AAAA,sCAAA,GAAA,CAAC,WACC,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EACE,eAAK,OAAQ,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AAC5B,wBAAO,uBAAA,GAAA,CAAC,IAAiB,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAT,MAAgB,CAAA,CAAA;AAAA,uBACjC,GACH,CACF,EAAA,CAAA;AAAA,0CACC,OACE,EAAA,EAAA,QAAA,EAAA,IAAA,CAAK,IAAK,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAA;AACtB,wBAAA,2BACG,IACE,EAAA,EAAA,QAAA,EAAA,GAAA,CAAI,MAAM,GAAI,CAAA,CAAC,MAAM,CAAM,KAAA;AAC1B,0BACE,uBAAA,GAAA,CAAC,IACE,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EADM,CAAG,EAAA,IAAI,IAAI,IAAK,CAAA,OAAA,CAAQ,CAAC,CAAC,CAEnC,CAAA,CAAA,CAAA;AAAA,yBAEH,CAPM,EAAA,EAAA,GAAA,CAAI,KAAM,CAAA,IAAA,CAAK,GAAG,CAQ3B,CAAA,CAAA;AAAA,uBAEH,CACH,EAAA,CAAA;AAAA,qBACF,EAAA,CAAA;AAAA,mBAAA;AAAA,kBA1BK,OAAQ,CAAA,gBAAA;AAAA,iBA2Bf,CAAA;AAAA,eAEJ;AAAA,cACA,KAAK,iBAAA;AACH,gBACE,uBAAA,GAAA;AAAA,kBAAC,GAAA;AAAA,kBAAA;AAAA,oBAEC,WAAW,OAAQ,CAAA,KAAA;AAAA,oBACnB,EAAG,EAAA,IAAA;AAAA,oBAEF,QAAA,EAAA,OAAA,CAAQ,SAAS,OAAQ,CAAA,IAAA;AAAA,mBAAA;AAAA,kBAJrB,OAAQ,CAAA,gBAAA;AAAA,iBAKf,CAAA;AAAA,cAEJ,KAAK,SAAA;AACH,gBACE,uBAAA,GAAA;AAAA,kBAAC,GAAA;AAAA,kBAAA;AAAA,oBAEC,uBAAyB,EAAA;AAAA,sBACvB,MAAA,EAAQ,OAAQ,CAAA,KAAA,IAAS,OAAQ,CAAA,IAAA;AAAA,qBACnC;AAAA,oBACA,WAAW,OAAQ,CAAA,KAAA;AAAA,mBAAA;AAAA,kBAJd,OAAQ,CAAA,gBAAA;AAAA,iBAKf,CAAA;AAAA,cAEJ,KAAK,UAAA;AACH,gBACE,uBAAA,GAAA;AAAA,kBAAC,eAAA;AAAA,kBAAA;AAAA,oBAEE,GAAG,KAAA;AAAA,oBACJ,OAAA;AAAA,mBAAA;AAAA,kBAFK,OAAQ,CAAA,gBAAA;AAAA,iBAGf,CAAA;AAAA,cAEJ,KAAK,MAAA;AACH,gBACE,uBAAA,GAAA;AAAA,kBAAC,gBAAA;AAAA,kBAAA;AAAA,oBAEE,GAAG,KAAA;AAAA,oBACJ,OAAA;AAAA,mBAAA;AAAA,kBAFK,OAAQ,CAAA,gBAAA;AAAA,iBAGf,CAAA;AAAA,cAEJ,KAAK,QAAA,CAAA;AAAA,cACL,KAAK,UAAA,CAAA;AAAA,cACL,KAAK,MAAA;AACH,gBACE,uBAAA,GAAA;AAAA,kBAAC,YAAA;AAAA,kBAAA;AAAA,oBAEE,GAAG,KAAA;AAAA,oBACJ,OAAA;AAAA,mBAAA;AAAA,kBAFK,OAAQ,CAAA,gBAAA;AAAA,iBAGf,CAAA;AAAA,cAEJ,KAAK,QAAA;AACH,gBACE,uBAAA,GAAA;AAAA,kBAAC,aAAA;AAAA,kBAAA;AAAA,oBAEE,GAAG,KAAA;AAAA,oBACJ,OAAA;AAAA,mBAAA;AAAA,kBAFK,OAAQ,CAAA,gBAAA;AAAA,iBAGf,CAAA;AAAA,cAEJ,KAAK,OAAA;AACH,gBACE,uBAAA,GAAA;AAAA,kBAAC,YAAA;AAAA,kBAAA;AAAA,oBAEE,GAAG,KAAA;AAAA,oBACJ,OAAA;AAAA,mBAAA;AAAA,kBAFK,OAAQ,CAAA,gBAAA;AAAA,iBAGf,CAAA;AAAA,cAEJ,KAAK,UAAA;AACH,gBACE,uBAAA,GAAA;AAAA,kBAAC,eAAA;AAAA,kBAAA;AAAA,oBAEE,GAAG,KAAA;AAAA,oBACJ,OAAA;AAAA,mBAAA;AAAA,kBAFK,OAAQ,CAAA,gBAAA;AAAA,iBAGf,CAAA;AAAA,cAEJ,KAAK,OAAA;AACH,gBAAA,uBACG,GAAA,CAAA,GAAA,EAAA,EAAmC,SAAU,EAAA,QAAA,EAAA,EAApC,QAAQ,gBAAqC,CAAA,CAAA;AAAA,cAE3D;AACE,gBAAQ,OAAA,CAAA,IAAA;AAAA,kBACN,CAAA,wBAAA,EAA2B,QAAQ,IAAI,CAAA,CAAA;AAAA,kBACvC,OAAA;AAAA,iBACF,CAAA;AACA,gBAAO,OAAA,IAAA,CAAA;AAAA,aACX;AAAA,WACD,CAAA;AAAA,SAAA;AAAA,QAnII,SAAA;AAAA,OAoIP,CAAA;AAAA,KAEJ;AAAA,IACA,CAAC,KAAK,CAAA;AAAA,GACR,CAAA;AACA,EAAA,2BACG,GAAI,EAAA,EAAA,SAAA,EAAU,2BACZ,QAAS,EAAA,QAAA,CAAA,GAAA,CAAI,CAAC,OAAY,KAAA;AACzB,IAAA,IAAI,QAAQ,aAAe,EAAA;AACzB,MAAO,OAAA,oBAAA;AAAA,QACL,OAAQ,CAAA,SAAA;AAAA,QACR,OAAQ,CAAA,eAAA;AAAA,OACV,CAAA;AAAA,KACF;AACA,IAAA,OAAO,oBAAqB,CAAA,OAAA,CAAQ,SAAW,EAAA,OAAA,CAAQ,eAAe,CAAA,CAAA;AAAA,GACvE,CACH,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEO,MAAM,yBAAyBA,cAAM,CAAA,IAAA;AAAA,EAC1C,iCAAA;AACF,EAAA;AAEA,sBAAA,CAAuB,WAAc,GAAA,wBAAA;;;;"}
@@ -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;;;;"}