@nolwenture/formik-jsonschema-form 0.24.0 → 0.25.0
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/Form.stories.d.ts +1 -0
- package/dist/Form.stories.js +4 -0
- package/dist/FormPdf.d.ts +6 -0
- package/dist/FormPdf.js +48 -0
- package/dist/FormPdf.stories.d.ts +11 -0
- package/dist/FormPdf.stories.js +148 -0
- package/dist/FormPdf.test.d.ts +1 -0
- package/dist/FormPdf.test.js +13 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/pdfFields/AnyField.d.ts +3 -0
- package/dist/pdfFields/AnyField.js +22 -0
- package/dist/pdfFields/ArrayField.d.ts +3 -0
- package/dist/pdfFields/ArrayField.js +41 -0
- package/dist/pdfFields/BooleanField.d.ts +3 -0
- package/dist/pdfFields/BooleanField.js +27 -0
- package/dist/pdfFields/DateField.d.ts +3 -0
- package/dist/pdfFields/DateField.js +16 -0
- package/dist/pdfFields/EJSField.d.ts +3 -0
- package/dist/pdfFields/EJSField.js +24 -0
- package/dist/pdfFields/MultipleChoiceField.d.ts +3 -0
- package/dist/pdfFields/MultipleChoiceField.js +20 -0
- package/dist/pdfFields/NullField.d.ts +3 -0
- package/dist/pdfFields/NullField.js +8 -0
- package/dist/pdfFields/NumberField.d.ts +3 -0
- package/dist/pdfFields/NumberField.js +6 -0
- package/dist/pdfFields/ObjectField.d.ts +3 -0
- package/dist/pdfFields/ObjectField.js +59 -0
- package/dist/pdfFields/RadioField.d.ts +3 -0
- package/dist/pdfFields/RadioField.js +6 -0
- package/dist/pdfFields/SchemaField.d.ts +3 -0
- package/dist/pdfFields/SchemaField.js +31 -0
- package/dist/pdfFields/SearchMultiTagSelectField.d.ts +3 -0
- package/dist/pdfFields/SearchMultiTagSelectField.js +14 -0
- package/dist/pdfFields/SearchableSelectField.d.ts +3 -0
- package/dist/pdfFields/SearchableSelectField.js +9 -0
- package/dist/pdfFields/StringField.d.ts +3 -0
- package/dist/pdfFields/StringField.js +27 -0
- package/dist/pdfFields/TextAreaField.d.ts +3 -0
- package/dist/pdfFields/TextAreaField.js +13 -0
- package/dist/pdfFields/ToggleField.d.ts +3 -0
- package/dist/pdfFields/ToggleField.js +6 -0
- package/dist/pdfFields/index.d.ts +16 -0
- package/dist/pdfFields/index.js +16 -0
- package/dist/pdfFields/types.d.ts +10 -0
- package/dist/pdfFields/types.js +10 -0
- package/dist/pdfTemplates/ArrayFieldTemplate.d.ts +3 -0
- package/dist/pdfTemplates/ArrayFieldTemplate.js +16 -0
- package/dist/pdfTemplates/CollapsibleObjectFieldTemplate.d.ts +3 -0
- package/dist/pdfTemplates/CollapsibleObjectFieldTemplate.js +20 -0
- package/dist/pdfTemplates/FieldTemplate.d.ts +3 -0
- package/dist/pdfTemplates/FieldTemplate.js +15 -0
- package/dist/pdfTemplates/ObjectFieldTemplate.d.ts +3 -0
- package/dist/pdfTemplates/ObjectFieldTemplate.js +18 -0
- package/dist/pdfTemplates/index.d.ts +4 -0
- package/dist/pdfTemplates/index.js +4 -0
- package/dist/sampleData/completeSchema.d.ts +1 -0
- package/dist/sampleData/completeSchema.js +23 -2
- package/dist/sampleData/ejsSchema.d.ts +6 -0
- package/dist/sampleData/ejsSchema.js +25 -0
- package/dist/sampleData/multipleChoiceSchema.d.ts +6 -0
- package/dist/sampleData/multipleChoiceSchema.js +8 -1
- package/dist/sampleData/pdfProExampleSchema.d.ts +21 -0
- package/dist/sampleData/pdfProExampleSchema.js +185 -0
- package/dist/sampleData/simpleData.js +1 -0
- package/dist/styledComponents.d.ts +12 -1
- package/dist/styledComponents.js +55 -0
- package/dist/types.d.ts +26 -0
- package/dist/utils/getEnums.d.ts +13 -0
- package/dist/utils/getEnums.js +12 -0
- package/package.json +2 -1
package/dist/styledComponents.js
CHANGED
|
@@ -488,6 +488,61 @@ export const SearchClearButton = styled.span `
|
|
|
488
488
|
export const SearchInputContainer = styled.div `
|
|
489
489
|
display: flex;
|
|
490
490
|
`;
|
|
491
|
+
export const StringFieldPdf = styled.div `
|
|
492
|
+
white-space: pre-line;
|
|
493
|
+
`;
|
|
494
|
+
export const TextAreaPdf = styled.div `
|
|
495
|
+
white-space: pre-line;
|
|
496
|
+
`;
|
|
497
|
+
export const EJSField = styled.div `
|
|
498
|
+
width: 100%;
|
|
499
|
+
`;
|
|
500
|
+
export const BooleanFieldPdf = ({ name, className, value, label, }) => {
|
|
501
|
+
return (_jsx("div", { className: className, children: value === true ? (_jsxs("div", { children: [_jsx("span", { children: "\u2713" }), _jsx("span", { children: label !== undefined ? label : "Selected" })] })) : (_jsxs("div", { children: [_jsx("span", { children: "\u2716" }), _jsx("span", { children: label !== undefined ? label : "Not selected" })] })) }));
|
|
502
|
+
};
|
|
503
|
+
const NotSelected = styled.div `
|
|
504
|
+
opacity: 0.3;
|
|
505
|
+
display: flex;
|
|
506
|
+
align-items: center;
|
|
507
|
+
`;
|
|
508
|
+
const Selected = styled.div `
|
|
509
|
+
display: flex;
|
|
510
|
+
align-items: center;
|
|
511
|
+
`;
|
|
512
|
+
const SelectedBox = styled.span `
|
|
513
|
+
color: white;
|
|
514
|
+
background: black;
|
|
515
|
+
padding: 0 0.2rem;
|
|
516
|
+
font-size: small;
|
|
517
|
+
display: inline-flex;
|
|
518
|
+
justify-content: center;
|
|
519
|
+
align-items: center;
|
|
520
|
+
`;
|
|
521
|
+
const NotSelectedCircle = styled.span `
|
|
522
|
+
color: white;
|
|
523
|
+
background: black;
|
|
524
|
+
padding: 0.1rem;
|
|
525
|
+
border-radius: 50%;
|
|
526
|
+
font-size: x-small;
|
|
527
|
+
display: inline-flex;
|
|
528
|
+
justify-content: center;
|
|
529
|
+
align-items: center;
|
|
530
|
+
height: 1rem;
|
|
531
|
+
width: 1rem;
|
|
532
|
+
`;
|
|
533
|
+
export const MultipleChoiceFieldPdf = ({ inputProps, name, className, style, selected, notSelected, }) => {
|
|
534
|
+
return (_jsxs(MultipleChoiceFieldContainer, { className: className, style: getStyle(style !== null && style !== void 0 ? style : ""), children: [!selected && !notSelected && _jsx(_Fragment, { children: "Nothing was selected" }), selected &&
|
|
535
|
+
selected.length > 0 &&
|
|
536
|
+
selected.map((s) => {
|
|
537
|
+
var _a, _b;
|
|
538
|
+
return (_jsx(MultipleChoiceFieldElement, { children: _jsxs(Selected, { children: [_jsx(SelectedBox, { children: "\u2713" }), _jsx(MultipleChoiceFieldLabel, { children: (_a = s.title) !== null && _a !== void 0 ? _a : "Hello" })] }) }, (_b = s.title) !== null && _b !== void 0 ? _b : s));
|
|
539
|
+
}), notSelected &&
|
|
540
|
+
(notSelected === null || notSelected === void 0 ? void 0 : notSelected.length) > 0 &&
|
|
541
|
+
notSelected.map((n) => {
|
|
542
|
+
var _a;
|
|
543
|
+
return (_jsx(MultipleChoiceFieldElement, { children: _jsxs(NotSelected, { children: [_jsx(NotSelectedCircle, { children: "\u2715" }), _jsx(MultipleChoiceFieldLabel, { children: n.title })] }) }, (_a = n.title) !== null && _a !== void 0 ? _a : n));
|
|
544
|
+
})] }));
|
|
545
|
+
};
|
|
491
546
|
// --> FileUploadField
|
|
492
547
|
export const FileUploadButton = styled.button `
|
|
493
548
|
background-color: #ccc;
|
package/dist/types.d.ts
CHANGED
|
@@ -163,6 +163,11 @@ export type ComponentsType = {
|
|
|
163
163
|
SearchClearButton: React.FunctionComponent<any>;
|
|
164
164
|
SearchInputContainer: React.FunctionComponent<any>;
|
|
165
165
|
FileUploadField: React.FunctionComponent<any>;
|
|
166
|
+
StringFieldPdf: React.FunctionComponent<any>;
|
|
167
|
+
TextAreaPdf: React.FunctionComponent<any>;
|
|
168
|
+
EJSField: React.FunctionComponent<any>;
|
|
169
|
+
BooleanFieldPdf: React.FunctionComponent<any>;
|
|
170
|
+
MultipleChoiceFieldPdf: React.FunctionComponent<any>;
|
|
166
171
|
};
|
|
167
172
|
export declare enum ObjectFieldButtonPurpose {
|
|
168
173
|
ADD = 0,
|
|
@@ -212,6 +217,22 @@ export type MultipleChoiceFieldProps = {
|
|
|
212
217
|
value?: string | number;
|
|
213
218
|
form?: FormikContextType<unknown>;
|
|
214
219
|
};
|
|
220
|
+
export type MultipleChoiceFieldPdfProps = {
|
|
221
|
+
selected: {
|
|
222
|
+
const: string | number;
|
|
223
|
+
title: string;
|
|
224
|
+
}[] | undefined;
|
|
225
|
+
notSelected: {
|
|
226
|
+
const: string | number;
|
|
227
|
+
title: string;
|
|
228
|
+
}[] | undefined;
|
|
229
|
+
inputProps?: any;
|
|
230
|
+
name?: React.ReactNode;
|
|
231
|
+
className?: string;
|
|
232
|
+
style?: string;
|
|
233
|
+
value?: string | number;
|
|
234
|
+
form?: FormikContextType<unknown>;
|
|
235
|
+
};
|
|
215
236
|
export type ToggleSwitchFieldProps = {
|
|
216
237
|
inputProps: any;
|
|
217
238
|
name: React.ReactNode;
|
|
@@ -308,4 +329,9 @@ declare module "yup" {
|
|
|
308
329
|
mixedOf(schemas: MixedOfProps): this;
|
|
309
330
|
}
|
|
310
331
|
}
|
|
332
|
+
export type StringFieldPdfProps = {
|
|
333
|
+
className: string;
|
|
334
|
+
name: string;
|
|
335
|
+
value: string | undefined;
|
|
336
|
+
};
|
|
311
337
|
export {};
|
package/dist/utils/getEnums.d.ts
CHANGED
|
@@ -11,3 +11,16 @@ export declare const getEnums: ({ schema }: {
|
|
|
11
11
|
title: string;
|
|
12
12
|
}[];
|
|
13
13
|
} | undefined;
|
|
14
|
+
export declare const getSelectedEnum: (selected: string | number | string[] | number[] | undefined, enums: {
|
|
15
|
+
values: never[];
|
|
16
|
+
type?: undefined;
|
|
17
|
+
} | {
|
|
18
|
+
type: string;
|
|
19
|
+
values: {
|
|
20
|
+
const: any;
|
|
21
|
+
title: string;
|
|
22
|
+
}[];
|
|
23
|
+
} | undefined) => undefined | {
|
|
24
|
+
const: string | number;
|
|
25
|
+
title: string;
|
|
26
|
+
}[];
|
package/dist/utils/getEnums.js
CHANGED
|
@@ -31,3 +31,15 @@ export const getEnums = ({ schema }) => {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
|
+
export const getSelectedEnum = (selected, enums) => {
|
|
35
|
+
if (Array.isArray(selected)) {
|
|
36
|
+
const stuff = selected
|
|
37
|
+
.map((v) => enums === null || enums === void 0 ? void 0 : enums.values.find((e) => e.const === v))
|
|
38
|
+
.filter((e) => !!e);
|
|
39
|
+
return stuff.length > 0 ? stuff : undefined;
|
|
40
|
+
}
|
|
41
|
+
if (typeof selected === "string" || typeof selected === "number") {
|
|
42
|
+
return enums === null || enums === void 0 ? void 0 : enums.values.filter((e) => e.const === selected);
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nolwenture/formik-jsonschema-form",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "Formik form generation from json schema",
|
|
5
5
|
"author": "Antti Vikman <antti.vikman@nolwenture.com>",
|
|
6
6
|
"contributors": [
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"@testing-library/jest-dom": "^6.4.2",
|
|
58
58
|
"@testing-library/react": "^14.2.2",
|
|
59
59
|
"@testing-library/user-event": "^14.5.2",
|
|
60
|
+
"@types/ejs": "^3.1.5",
|
|
60
61
|
"@types/jest": "^29.5.12",
|
|
61
62
|
"@types/node": "^20.12.2",
|
|
62
63
|
"@types/react": "^18.2.73",
|