@abgov/jsonforms-components 0.0.1 → 1.2.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.
Files changed (123) hide show
  1. package/index.esm.d.ts +1 -0
  2. package/index.esm.js +4831 -0
  3. package/package.json +8 -2
  4. package/src/index.d.ts +5 -0
  5. package/src/lib/Additional/HelpContent.d.ts +21 -0
  6. package/src/lib/Additional/styled-components.d.ts +1 -0
  7. package/src/lib/Cells/DateCell.d.ts +6 -0
  8. package/src/lib/Cells/IntegerCell.d.ts +6 -0
  9. package/src/lib/Cells/NumberCell.d.ts +6 -0
  10. package/src/lib/Cells/TextCell.d.ts +6 -0
  11. package/src/lib/Cells/TimeCell.d.ts +6 -0
  12. package/src/lib/Cells/index.d.ts +2 -0
  13. package/src/lib/Context/index.d.ts +39 -0
  14. package/src/lib/Controls/FileUploader/ContextMenu.d.ts +18 -0
  15. package/src/lib/Controls/FileUploader/FileUploaderControl.d.ts +4 -0
  16. package/src/lib/Controls/FileUploader/FileUploaderTester.d.ts +2 -0
  17. package/src/lib/Controls/FileUploader/styled-components.d.ts +1 -0
  18. package/src/lib/Controls/FormStepper/FormStepperControl.d.ts +14 -0
  19. package/src/lib/Controls/FormStepper/FormStepperTester.d.ts +2 -0
  20. package/src/lib/Controls/FormStepper/styled-components.d.ts +7 -0
  21. package/src/lib/Controls/Inputs/InputBaseControl.d.ts +7 -0
  22. package/src/lib/Controls/Inputs/InputBooleanControl.d.ts +6 -0
  23. package/src/lib/Controls/Inputs/InputBooleanRadioControl.d.ts +6 -0
  24. package/src/lib/Controls/Inputs/InputDateControl.d.ts +9 -0
  25. package/src/lib/Controls/Inputs/InputDateTimeControl.d.ts +9 -0
  26. package/src/lib/Controls/Inputs/InputEnum.d.ts +12 -0
  27. package/src/lib/Controls/Inputs/InputEnumAutoComplete.d.ts +10 -0
  28. package/src/lib/Controls/Inputs/InputEnumRadios.d.ts +12 -0
  29. package/src/lib/Controls/Inputs/InputIntegerControl.d.ts +9 -0
  30. package/src/lib/Controls/Inputs/InputMultiLineTextControl.d.ts +9 -0
  31. package/src/lib/Controls/Inputs/InputNumberControl.d.ts +9 -0
  32. package/src/lib/Controls/Inputs/InputTextControl.d.ts +9 -0
  33. package/src/lib/Controls/Inputs/InputTimeControl.d.ts +9 -0
  34. package/src/lib/Controls/Inputs/{type.ts → type.d.ts} +1 -1
  35. package/src/lib/Controls/ObjectArray/DeleteDialog.d.ts +12 -0
  36. package/src/lib/Controls/ObjectArray/ObjectArray.d.ts +6 -0
  37. package/src/lib/Controls/ObjectArray/ObjectArrayToolBar.d.ts +16 -0
  38. package/src/lib/Controls/ObjectArray/ObjectListControl.d.ts +24 -0
  39. package/src/lib/Controls/ObjectArray/styled-components.d.ts +3 -0
  40. package/src/lib/ErrorHandling/GoAErrorControl.d.ts +15 -0
  41. package/src/lib/ErrorHandling/{MessageControl.tsx → MessageControl.d.ts} +1 -8
  42. package/src/lib/ErrorHandling/errorCheck.d.ts +14 -0
  43. package/src/lib/ErrorHandling/schemaValidation.d.ts +11 -0
  44. package/src/lib/common/Grid.d.ts +11 -0
  45. package/src/lib/jsonforms-components.d.ts +4 -0
  46. package/src/lib/layouts/GroupControl.d.ts +5 -0
  47. package/src/lib/layouts/HorizontalLayoutControl.d.ts +5 -0
  48. package/src/lib/layouts/VerticalLayoutControl.d.ts +4 -0
  49. package/src/lib/util/layout.d.ts +8 -0
  50. package/src/lib/util/schemaUtils.d.ts +1 -0
  51. package/src/lib/util/stringUtils.d.ts +33 -0
  52. package/src/lib/util/style-component.d.ts +1 -0
  53. package/.babelrc +0 -12
  54. package/.eslintrc.json +0 -36
  55. package/.releaserc.json +0 -25
  56. package/jest.config.ts +0 -11
  57. package/project.json +0 -55
  58. package/rollup.config.js +0 -14
  59. package/src/index.ts +0 -166
  60. package/src/lib/Additional/HelpContent.tsx +0 -95
  61. package/src/lib/Additional/styled-components.ts +0 -27
  62. package/src/lib/Cells/DateCell.tsx +0 -10
  63. package/src/lib/Cells/IntegerCell.tsx +0 -10
  64. package/src/lib/Cells/NumberCell.tsx +0 -10
  65. package/src/lib/Cells/TextCell.tsx +0 -10
  66. package/src/lib/Cells/TimeCell.tsx +0 -10
  67. package/src/lib/Cells/index.tsx +0 -14
  68. package/src/lib/Context/index.tsx +0 -172
  69. package/src/lib/Controls/FileUploader/ContextMenu.tsx +0 -50
  70. package/src/lib/Controls/FileUploader/FileUploaderControl.tsx +0 -131
  71. package/src/lib/Controls/FileUploader/FileUploaderTester.tsx +0 -3
  72. package/src/lib/Controls/FileUploader/styled-components.tsx +0 -10
  73. package/src/lib/Controls/FormStepper/FormStepperControl.tsx +0 -269
  74. package/src/lib/Controls/FormStepper/FormStepperTester.tsx +0 -22
  75. package/src/lib/Controls/FormStepper/styled-components.tsx +0 -17
  76. package/src/lib/Controls/Inputs/InputBaseControl.tsx +0 -52
  77. package/src/lib/Controls/Inputs/InputBooleanControl.tsx +0 -67
  78. package/src/lib/Controls/Inputs/InputBooleanRadioControl.tsx +0 -74
  79. package/src/lib/Controls/Inputs/InputDateControl.tsx +0 -90
  80. package/src/lib/Controls/Inputs/InputDateTimeControl.tsx +0 -46
  81. package/src/lib/Controls/Inputs/InputEnum.tsx +0 -74
  82. package/src/lib/Controls/Inputs/InputEnumAutoComplete.tsx +0 -73
  83. package/src/lib/Controls/Inputs/InputEnumRadios.tsx +0 -43
  84. package/src/lib/Controls/Inputs/InputIntegerControl.tsx +0 -63
  85. package/src/lib/Controls/Inputs/InputMultiLineTextControl.tsx +0 -63
  86. package/src/lib/Controls/Inputs/InputNumberControl.tsx +0 -63
  87. package/src/lib/Controls/Inputs/InputTextControl.tsx +0 -62
  88. package/src/lib/Controls/Inputs/InputTimeControl.tsx +0 -46
  89. package/src/lib/Controls/Inputs/inputControl.spec.ts +0 -84
  90. package/src/lib/Controls/ObjectArray/DeleteDialog.tsx +0 -49
  91. package/src/lib/Controls/ObjectArray/ObjectArray.tsx +0 -59
  92. package/src/lib/Controls/ObjectArray/ObjectArrayToolBar.tsx +0 -51
  93. package/src/lib/Controls/ObjectArray/ObjectListControl.tsx +0 -368
  94. package/src/lib/Controls/ObjectArray/styled-components.tsx +0 -13
  95. package/src/lib/ErrorHandling/GoAErrorControl.tsx +0 -53
  96. package/src/lib/ErrorHandling/categorizationValidation.spec.ts +0 -98
  97. package/src/lib/ErrorHandling/controlValildation.spec.ts +0 -57
  98. package/src/lib/ErrorHandling/errorCheck.spec.ts +0 -185
  99. package/src/lib/ErrorHandling/errorCheck.tsx +0 -86
  100. package/src/lib/ErrorHandling/layoutValildation.spec.ts +0 -47
  101. package/src/lib/ErrorHandling/otherValildation.spec.ts +0 -74
  102. package/src/lib/ErrorHandling/schemaValidation.ts +0 -115
  103. package/src/lib/common/Grid.tsx +0 -55
  104. package/src/lib/jsonforms-components.module.scss +0 -7
  105. package/src/lib/jsonforms-components.spec.tsx +0 -10
  106. package/src/lib/jsonforms-components.tsx +0 -14
  107. package/src/lib/layouts/GroupControl.tsx +0 -25
  108. package/src/lib/layouts/HorizontalLayoutControl.tsx +0 -30
  109. package/src/lib/layouts/VerticalLayoutControl.tsx +0 -28
  110. package/src/lib/util/layout.tsx +0 -68
  111. package/src/lib/util/schemaUtils.ts +0 -9
  112. package/src/lib/util/stringUtils.ts +0 -98
  113. package/src/lib/util/style-component.ts +0 -8
  114. package/tsconfig.json +0 -20
  115. package/tsconfig.lib.json +0 -19
  116. package/tsconfig.spec.json +0 -20
  117. /package/src/lib/Additional/{index.ts → index.d.ts} +0 -0
  118. /package/src/lib/Controls/FileUploader/{index.tsx → index.d.ts} +0 -0
  119. /package/src/lib/Controls/FormStepper/{index.tsx → index.d.ts} +0 -0
  120. /package/src/lib/Controls/Inputs/{index.tsx → index.d.ts} +0 -0
  121. /package/src/lib/Controls/ObjectArray/{index.tsx → index.d.ts} +0 -0
  122. /package/src/lib/Controls/{index.tsx → index.d.ts} +0 -0
  123. /package/src/lib/layouts/{index.ts → index.d.ts} +0 -0
package/.eslintrc.json DELETED
@@ -1,36 +0,0 @@
1
- {
2
- "extends": ["plugin:@nx/react", "../../.eslintrc.json"],
3
- "ignorePatterns": ["!**/*"],
4
- "overrides": [
5
- {
6
- "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7
- "rules": {}
8
- },
9
- {
10
- "files": ["*.ts", "*.tsx"],
11
- "rules": {}
12
- },
13
- {
14
- "files": ["*.js", "*.jsx"],
15
- "rules": {}
16
- },
17
- {
18
- "files": ["*.json"],
19
- "parser": "jsonc-eslint-parser",
20
- "rules": {
21
- "@nx/dependency-checks": [
22
- "error",
23
- {
24
- "ignoredDependencies": [
25
- "@abgov/react-components",
26
- "@abgov/react-components-new"
27
- ],
28
- "ignoredFiles": [
29
- "libs/jsonforms-components/rollup.config.js"
30
- ]
31
- }
32
- ]
33
- }
34
- }
35
- ]
36
- }
package/.releaserc.json DELETED
@@ -1,25 +0,0 @@
1
- {
2
- "extends": "../../.releaserc.json",
3
- "tagFormat": "jsonforms-components-v${version}",
4
- "plugins": [
5
- [
6
- "@abgov/nx-release",
7
- {
8
- "project": "jsonforms-components"
9
- }
10
- ],
11
- [
12
- "@semantic-release/npm",
13
- {
14
- "pkgRoot": "dist/libs/jsonforms-components"
15
- }
16
- ],
17
- [
18
- "@semantic-release/github",
19
- {
20
- "releasedLabels": false,
21
- "successComment": false
22
- }
23
- ]
24
- ]
25
- }
package/jest.config.ts DELETED
@@ -1,11 +0,0 @@
1
- /* eslint-disable */
2
- export default {
3
- displayName: 'jsonforms-components',
4
- preset: '../../jest.preset.js',
5
- transform: {
6
- '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7
- '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8
- },
9
- moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10
- coverageDirectory: '../../coverage/libs/jsonforms-components',
11
- };
package/project.json DELETED
@@ -1,55 +0,0 @@
1
- {
2
- "name": "jsonforms-components",
3
- "$schema": "../../node_modules/nx/schemas/project-schema.json",
4
- "sourceRoot": "libs/jsonforms-components/src",
5
- "projectType": "library",
6
- "tags": [],
7
- "targets": {
8
- "lint": {
9
- "executor": "@nx/eslint:lint",
10
- "outputs": ["{options.outputFile}"]
11
- },
12
- "build": {
13
- "executor": "@nx/rollup:rollup",
14
- "outputs": ["{options.outputPath}"],
15
- "options": {
16
- "outputPath": "dist/libs/jsonforms-components",
17
- "tsConfig": "libs/jsonforms-components/tsconfig.lib.json",
18
- "project": "libs/jsonforms-components/package.json",
19
- "entryFile": "libs/jsonforms-components/src/index.ts",
20
- "external": [
21
- "@abgov/react-components-new",
22
- "@jsonforms/core",
23
- "@jsonforms/material-renderers",
24
- "@jsonforms/react",
25
- "@mui/material",
26
- "react",
27
- "react-dom",
28
- "react/jsx-runtime"
29
- ],
30
- "rollupConfig": "libs/jsonforms-components/rollup.config.js",
31
- "compiler": "babel",
32
- "assets": [
33
- {
34
- "glob": "libs/jsonforms-components/README.md",
35
- "input": ".",
36
- "output": "."
37
- }
38
- ]
39
- }
40
- },
41
- "test": {
42
- "executor": "@nx/jest:jest",
43
- "outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
44
- "options": {
45
- "jestConfig": "libs/jsonforms-components/jest.config.ts"
46
- }
47
- },
48
- "release": {
49
- "executor": "nx:run-commands",
50
- "options": {
51
- "command": "npx semantic-release -e ./libs/jsonforms-components/.releaserc.json"
52
- }
53
- }
54
- }
55
- }
package/rollup.config.js DELETED
@@ -1,14 +0,0 @@
1
- const nrwlConfig = require('@nx/react/plugins/bundle-rollup');
2
-
3
- module.exports = (config) => {
4
- const { output, ...nxConfig } = nrwlConfig(config);
5
- return {
6
- ...nxConfig,
7
- output: {
8
- ...output,
9
- paths: {
10
- '@abgov/react-components-new': '@abgov/react-components',
11
- },
12
- },
13
- };
14
- };
package/src/index.ts DELETED
@@ -1,166 +0,0 @@
1
- import { JsonFormsCellRendererRegistryEntry, JsonFormsRendererRegistryEntry } from '@jsonforms/core';
2
- import {
3
- materialAllOfControlTester,
4
- MaterialAllOfRenderer,
5
- materialAnyOfControlTester,
6
- MaterialAnyOfRenderer,
7
- materialObjectControlTester,
8
- MaterialObjectRenderer,
9
- materialOneOfControlTester,
10
- MaterialOneOfRenderer,
11
- MaterialEnumArrayRenderer,
12
- materialEnumArrayRendererTester,
13
- } from '@jsonforms/material-renderers';
14
- import {
15
- MaterialAnyOfStringOrEnumControl,
16
- materialAnyOfStringOrEnumControlTester,
17
- MaterialOneOfEnumControl,
18
- MaterialSliderControl,
19
- materialSliderControlTester,
20
- MaterialOneOfRadioGroupControl,
21
- materialOneOfRadioGroupControlTester,
22
- materialOneOfEnumControlTester,
23
- } from '@jsonforms/material-renderers';
24
- import {
25
- MaterialArrayLayout,
26
- materialArrayLayoutTester,
27
- materialHorizontalLayoutTester,
28
- materialVerticalLayoutTester,
29
- } from '@jsonforms/material-renderers';
30
- import {
31
- MaterialBooleanCell,
32
- materialBooleanCellTester,
33
- MaterialBooleanToggleCell,
34
- materialBooleanToggleCellTester,
35
- MaterialEnumCell,
36
- materialEnumCellTester,
37
- MaterialOneOfEnumCell,
38
- materialOneOfEnumCellTester,
39
- } from '@jsonforms/material-renderers';
40
- import {
41
- GoATextControlTester,
42
- GoAInputTextControl,
43
- GoADateControlTester,
44
- GoAInputDateControl,
45
- GoADateTimeControlTester,
46
- GoAInputDateTimeControl,
47
- GoATimeControlTester,
48
- GoAInputTimeControl,
49
- GoANumberControlTester,
50
- GoAInputNumberControl,
51
- GoAIntegerControlTester,
52
- GoAInputIntegerControl,
53
- CategorizationRendererTester,
54
- FormStepperControl,
55
- FileUploaderTester,
56
- FileUploader,
57
- MultiLineTextControl,
58
- MultiLineTextControlTester,
59
- GoAEnumControl,
60
- GoAEnumAutoCompleteControl,
61
- GoAEnumControlTester,
62
- GoAEnumControlAutoCompleteTester,
63
- GoAEnumRadioGroupControl,
64
- GoARadioGroupControlTester,
65
- GoAArrayControlTester,
66
- GoAArrayControlRenderer,
67
- GoAListWithDetailsTester,
68
- GoABooleanControlTester,
69
- GoABooleanControl,
70
- GoABooleanRadioControlTester,
71
- GoABooleanRadioControl,
72
- } from './lib/Controls';
73
- import { InputCells } from './lib/Cells';
74
- import { GoAVerticalLayout, GoAHorizontalLayout, GoAGroupLayoutTester, GoAGroupControl } from './lib/layouts';
75
- import { withJsonFormsControlProps } from '@jsonforms/react';
76
- import { addData } from './lib/Context';
77
-
78
- import { HelpContent, HelpContentTester } from './lib/Additional';
79
- import GoAErrorControl, { GoAErrorControlTester } from './lib/ErrorHandling/GoAErrorControl';
80
-
81
- export * from './lib/Context';
82
- const countries = ['Argentina', 'Brazil', 'Canada', 'Denmark', 'Egypt', 'France', 'Greece', 'India', 'Japan', 'Kenya'];
83
- addData('countries', countries);
84
- export const GoABaseRenderers: JsonFormsRendererRegistryEntry[] = [
85
- // controls
86
- { tester: GoAEnumControlTester, renderer: GoAEnumControl },
87
- { tester: GoAEnumControlAutoCompleteTester, renderer: GoAEnumAutoCompleteControl },
88
- { tester: GoAIntegerControlTester, renderer: GoAInputIntegerControl },
89
- { tester: GoANumberControlTester, renderer: GoAInputNumberControl },
90
- { tester: GoATextControlTester, renderer: GoAInputTextControl },
91
- { tester: GoADateControlTester, renderer: GoAInputDateControl },
92
- { tester: GoADateTimeControlTester, renderer: GoAInputDateTimeControl },
93
- { tester: GoATimeControlTester, renderer: GoAInputTimeControl },
94
- { tester: materialSliderControlTester, renderer: MaterialSliderControl },
95
- { tester: materialObjectControlTester, renderer: MaterialObjectRenderer },
96
- { tester: materialAllOfControlTester, renderer: MaterialAllOfRenderer },
97
- { tester: materialAnyOfControlTester, renderer: MaterialAnyOfRenderer },
98
- { tester: materialOneOfControlTester, renderer: MaterialOneOfRenderer },
99
- {
100
- tester: GoARadioGroupControlTester,
101
- renderer: GoAEnumRadioGroupControl,
102
- },
103
- { tester: GoABooleanControlTester, renderer: GoABooleanControl },
104
-
105
- { tester: GoABooleanRadioControlTester, renderer: GoABooleanRadioControl },
106
- {
107
- tester: GoAArrayControlTester,
108
- renderer: GoAArrayControlRenderer,
109
- },
110
- {
111
- tester: GoAListWithDetailsTester,
112
- renderer: GoAArrayControlRenderer,
113
- },
114
- {
115
- tester: materialOneOfRadioGroupControlTester,
116
- renderer: MaterialOneOfRadioGroupControl,
117
- },
118
- {
119
- tester: materialOneOfEnumControlTester,
120
- renderer: MaterialOneOfEnumControl,
121
- },
122
- // layouts
123
- { tester: GoAGroupLayoutTester, renderer: GoAGroupControl },
124
- {
125
- tester: materialHorizontalLayoutTester,
126
- renderer: GoAHorizontalLayout,
127
- },
128
- { tester: materialVerticalLayoutTester, renderer: GoAVerticalLayout },
129
- { tester: materialArrayLayoutTester, renderer: MaterialArrayLayout },
130
- // additional
131
- { tester: GoAErrorControlTester, renderer: GoAErrorControl },
132
- {
133
- tester: materialAnyOfStringOrEnumControlTester,
134
- renderer: MaterialAnyOfStringOrEnumControl,
135
- },
136
- {
137
- tester: materialEnumArrayRendererTester,
138
- renderer: MaterialEnumArrayRenderer,
139
- },
140
- {
141
- tester: materialEnumArrayRendererTester,
142
- renderer: MaterialEnumArrayRenderer,
143
- },
144
- {
145
- tester: MultiLineTextControlTester,
146
- renderer: MultiLineTextControl,
147
- },
148
- {
149
- tester: HelpContentTester,
150
- renderer: HelpContent,
151
- },
152
- ];
153
-
154
- export const GoARenderers: JsonFormsRendererRegistryEntry[] = [
155
- ...GoABaseRenderers,
156
- { tester: CategorizationRendererTester, renderer: FormStepperControl },
157
- { tester: FileUploaderTester, renderer: withJsonFormsControlProps(FileUploader) },
158
- ];
159
-
160
- export const GoACells: JsonFormsCellRendererRegistryEntry[] = [
161
- { tester: materialBooleanCellTester, cell: MaterialBooleanCell },
162
- { tester: materialBooleanToggleCellTester, cell: MaterialBooleanToggleCell },
163
- { tester: materialEnumCellTester, cell: MaterialEnumCell },
164
- { tester: materialOneOfEnumCellTester, cell: MaterialOneOfEnumCell },
165
- ...InputCells,
166
- ];
@@ -1,95 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import React from 'react';
3
- import { RankedTester, rankWith, uiTypeIs } from '@jsonforms/core';
4
- import { Hidden } from '@mui/material';
5
- import { GoADetails } from '@abgov/react-components-new';
6
- import { HelpContentDiv } from './styled-components';
7
- import { ControlProps, ControlElement } from '@jsonforms/core';
8
- import { withJsonFormsControlProps } from '@jsonforms/react';
9
- interface OptionProps {
10
- ariaLabel?: string;
11
- help?: string | string[];
12
- variant?: string;
13
- }
14
-
15
- interface CustomControlElement extends ControlElement {
16
- options?: OptionProps;
17
- elements?: CustomControlElement[]; // Assuming elements is an array of similar objects
18
- }
19
-
20
- interface CustomControlProps extends ControlProps {
21
- uischema: CustomControlElement;
22
- }
23
-
24
- export const HelpContentComponent = ({
25
- isParent = true,
26
- ...props
27
- }: CustomControlProps & { isParent?: boolean }): JSX.Element => {
28
- const labelClass = isParent ? 'parent-label' : 'child-label';
29
- const marginClass = isParent ? 'parent-margin' : 'child-margin';
30
- // eslint-disable-next-line
31
- const { uischema, visible, label } = props;
32
- const renderHelp = () =>
33
- Array.isArray(uischema?.options?.help) ? (
34
- <ul>
35
- {uischema?.options?.help.map((line: string, index: number) => (
36
- <li key={index}>{`${line}`}</li>
37
- ))}
38
- </ul>
39
- ) : (
40
- <p className="single-line">{uischema?.options?.help}</p>
41
- );
42
-
43
- return (
44
- <Hidden xsUp={!visible}>
45
- <HelpContentDiv aria-label={uischema.options?.ariaLabel}>
46
- <div className={marginClass}>
47
- {label && !uischema.options?.variant && uischema.options?.variant !== 'details' && (
48
- <div className={labelClass}>
49
- {label}
50
- <br />
51
- </div>
52
- )}
53
- {(!uischema.options?.variant || uischema.options?.variant !== 'details') && renderHelp()}
54
- {uischema.options?.variant && uischema.options?.variant === 'details' && (
55
- <GoADetails heading={label ? label : ''} mt="3xs" mb="none">
56
- {renderHelp()}
57
- {uischema?.elements && uischema?.elements?.length > 0 && <HelpContents elements={uischema?.elements} />}
58
- </GoADetails>
59
- )}
60
- {uischema?.elements && uischema?.elements.length > 0 && uischema.options?.variant !== 'details' && (
61
- <HelpContents elements={uischema.elements} isParent={false} />
62
- )}
63
- </div>
64
- </HelpContentDiv>
65
- </Hidden>
66
- );
67
- };
68
- const HelpContents = ({ elements, isParent = false }: { elements: CustomControlElement[]; isParent?: boolean }) => (
69
- <div>
70
- {elements?.map((element: any) => {
71
- return (
72
- <HelpContentComponent
73
- uischema={element}
74
- label={element.label}
75
- errors={''}
76
- data={undefined}
77
- enabled={false}
78
- visible={true}
79
- path={''}
80
- handleChange={function (path: string, value: any): void {
81
- throw new Error('Function not implemented.');
82
- }}
83
- rootSchema={{}}
84
- id={''}
85
- schema={{}}
86
- isParent={isParent}
87
- />
88
- );
89
- })}
90
- </div>
91
- );
92
-
93
- export const HelpContentTester: RankedTester = rankWith(1, uiTypeIs('HelpContent'));
94
-
95
- export const HelpContent = withJsonFormsControlProps(HelpContentComponent);
@@ -1,27 +0,0 @@
1
- import styled from 'styled-components';
2
-
3
- export const HelpContentDiv = styled.div`
4
- .parent-label {
5
- font-size: 24px;
6
- margin-bottom: 1rem;
7
- font-weight: bold;
8
- }
9
-
10
- .child-label {
11
- font-size: 18px;
12
- margin-bottom: 0.5rem;
13
- font-weight: bold;
14
- }
15
- .parent-margin {
16
- margin-bottom: 1.5rem;
17
- }
18
- .child-margin {
19
- margin-bottom: 0.25rem;
20
- }
21
- ul {
22
- margin: 0 0 0 0.5rem;
23
- }
24
- .single-line {
25
- margin: 0.25rem 0 0.25rem 0;
26
- }
27
- `;
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { CellProps, isDateControl, RankedTester, rankWith, WithClassname } from '@jsonforms/core';
3
- import { withJsonFormsCellProps } from '@jsonforms/react';
4
- import { GoADateInput } from '../Controls';
5
-
6
- export const GoADateCell = (props: CellProps & WithClassname) => <GoADateInput {...props} />;
7
-
8
- export const GoADateCellTester: RankedTester = rankWith(1, isDateControl);
9
-
10
- export default withJsonFormsCellProps(GoADateCell);
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { CellProps, isIntegerControl, RankedTester, rankWith, WithClassname } from '@jsonforms/core';
3
- import { withJsonFormsCellProps } from '@jsonforms/react';
4
- import { GoAInputInteger } from '../Controls';
5
-
6
- export const GoAIntegerCell = (props: CellProps & WithClassname) => <GoAInputInteger {...props} />;
7
-
8
- export const GoAIntegerCellTester: RankedTester = rankWith(1, isIntegerControl);
9
-
10
- export default withJsonFormsCellProps(GoAIntegerCell);
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { CellProps, isNumberControl, RankedTester, rankWith, WithClassname } from '@jsonforms/core';
3
- import { withJsonFormsCellProps } from '@jsonforms/react';
4
- import { GoANumberInput } from '../Controls';
5
-
6
- export const GoANumberCell = (props: CellProps & WithClassname) => <GoANumberInput {...props} />;
7
-
8
- export const GoANumberCellTester: RankedTester = rankWith(1, isNumberControl);
9
-
10
- export default withJsonFormsCellProps(GoANumberCell);
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { CellProps, isStringControl, RankedTester, rankWith, WithClassname } from '@jsonforms/core';
3
- import { withJsonFormsCellProps } from '@jsonforms/react';
4
- import { GoAInputText } from '../Controls';
5
-
6
- export const GoATextCell = (props: CellProps & WithClassname) => <GoAInputText {...props} />;
7
-
8
- export const GoATextCellTester: RankedTester = rankWith(1, isStringControl);
9
-
10
- export default withJsonFormsCellProps(GoATextCell);
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { CellProps, isTimeControl, RankedTester, rankWith, WithClassname } from '@jsonforms/core';
3
- import { withJsonFormsCellProps } from '@jsonforms/react';
4
- import { GoADateInput } from '../Controls';
5
-
6
- export const GoATimeCell = (props: CellProps & WithClassname) => <GoADateInput {...props} />;
7
-
8
- export const GoATimeCellTester: RankedTester = rankWith(2, isTimeControl);
9
-
10
- export default withJsonFormsCellProps(GoATimeCell);
@@ -1,14 +0,0 @@
1
- import { GoATextCell, GoATextCellTester } from './TextCell';
2
- import { GoADateCell, GoADateCellTester } from './DateCell';
3
- import { GoATimeCell, GoATimeCellTester } from './TimeCell';
4
- import { GoANumberCell, GoANumberCellTester } from './NumberCell';
5
- import { GoAIntegerCell, GoAIntegerCellTester } from './IntegerCell';
6
- import { withJsonFormsCellProps } from '@jsonforms/react';
7
- import { JsonFormsCellRendererRegistryEntry } from '@jsonforms/core';
8
- export const InputCells: JsonFormsCellRendererRegistryEntry[] = [
9
- { tester: GoATextCellTester, cell: withJsonFormsCellProps(GoATextCell) },
10
- { tester: GoADateCellTester, cell: withJsonFormsCellProps(GoADateCell) },
11
- { tester: GoATimeCellTester, cell: withJsonFormsCellProps(GoATimeCell) },
12
- { tester: GoANumberCellTester, cell: withJsonFormsCellProps(GoANumberCell) },
13
- { tester: GoAIntegerCellTester, cell: withJsonFormsCellProps(GoAIntegerCell) },
14
- ];
@@ -1,172 +0,0 @@
1
- import React, { createContext } from 'react';
2
- import axios, { AxiosRequestConfig, AxiosStatic } from 'axios';
3
-
4
- interface enumerators {
5
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
- data: Map<string, () => any>;
7
- functions: Map<string, () => (file: File, propertyId: string) => void>;
8
- }
9
-
10
- export interface AllData {
11
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
- [x: string]: any;
13
- }
14
-
15
- const getAxiosInterceptorConfig = (axios: AxiosStatic): [number, AxiosStatic] => {
16
- const requestId = axios.interceptors.request.use((req) => {
17
- if (req.data === undefined) {
18
- throw new Error(`The URL: ${req.url} encountered a CORS error.`);
19
- }
20
- return req;
21
- });
22
-
23
- return [requestId, axios];
24
- };
25
-
26
- export function addDataByUrl(key: string, url: string, processDataFunction: (url: string) => string[], token?: string) {
27
- let header = {} as AxiosRequestConfig<unknown>;
28
- const [requestId, axiosWithConfig] = getAxiosInterceptorConfig(axios);
29
- if (token) {
30
- header = { ...header, ...{ Authorization: `Bearer ${token}` } };
31
- }
32
-
33
- axiosWithConfig
34
- .get(url, header)
35
- .then((response) => {
36
- const processedData = processDataFunction(response.data);
37
- enumValues.set(key, () => processedData);
38
- })
39
- .catch((err: Error) => {
40
- if (err.message.includes('CORS')) {
41
- console.warn(err.message);
42
- } else {
43
- console.warn(`addDataByUrl: ${err.message}`);
44
- }
45
- });
46
- axiosWithConfig.interceptors.request.eject(requestId);
47
- }
48
-
49
- export function addDataByOptions(key: string, url: string, location: string[], type: string, values: string[]) {
50
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
- const dataFunction = (data: any) => {
52
- let dataLink = data;
53
- let returnData = [''];
54
-
55
- const locationArray = location && !Array.isArray(location) ? [location] : location;
56
- locationArray?.forEach((attribute) => {
57
- dataLink = dataLink[attribute];
58
- });
59
-
60
- const valuesArray = Array.isArray(values) ? values : [values];
61
-
62
- if (type === 'keys') {
63
- returnData = Object.keys(dataLink);
64
- } else {
65
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
- returnData = dataLink.map((entry: any) => {
67
- let parse = '';
68
- valuesArray.forEach((v, index) => {
69
- parse += `${entry[v]}`;
70
-
71
- if (index < valuesArray.length - 1) {
72
- parse += ' ';
73
- }
74
- });
75
- return parse;
76
- });
77
- }
78
-
79
- return returnData;
80
- };
81
-
82
- addDataByUrl(key, url, dataFunction);
83
- }
84
-
85
- interface FileManagement {
86
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
87
- fileList?: any;
88
- uploadFile?: (file: File, propertyId: string) => void;
89
- downloadFile?: (file: File) => void;
90
- deleteFile?: (file: File) => void;
91
- }
92
-
93
- type Props = {
94
- children?: React.ReactNode;
95
- fileManagement?: FileManagement;
96
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
97
- data?: any;
98
- };
99
-
100
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
- const enumValues: Map<string, () => Record<string, any> | string[]> = new Map<string, () => Record<string, any>>();
102
- const enumFunctions: Map<string, () => (file: File, propertyId: string) => void> = new Map<
103
- string,
104
- () => (file: File, propertyId: string) => void
105
- >();
106
-
107
- const baseEnumerator = {
108
- data: enumValues,
109
- functions: enumFunctions,
110
- };
111
-
112
- export const JsonFormContext = createContext(baseEnumerator);
113
-
114
- export function ContextProvider(props: Props): JSX.Element | null {
115
- const outerTheme = React.useContext(JsonFormContext);
116
-
117
- if (props.fileManagement) {
118
- const { fileList, uploadFile, downloadFile, deleteFile } = props.fileManagement;
119
-
120
- /* eslint-disable @typescript-eslint/no-empty-function */
121
- const uploadFileFunction = uploadFile ? uploadFile : () => {};
122
- const downloadFileFunction = downloadFile ? downloadFile : () => {};
123
- const deleteFileFunction = deleteFile ? deleteFile : () => {};
124
-
125
- enumValues.set('file-list', () => fileList);
126
- enumFunctions.set('upload-file', () => uploadFileFunction);
127
- enumFunctions.set('download-file', () => downloadFileFunction);
128
- enumFunctions.set('delete-file', () => deleteFileFunction);
129
- }
130
-
131
- if (props.data) {
132
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
133
- props.data?.forEach((item: any) => {
134
- enumValues.set(Object.keys(item)[0], () => item);
135
- });
136
- }
137
-
138
- if (!props.children) {
139
- return null;
140
- }
141
-
142
- return <JsonFormContext.Provider value={baseEnumerator}>{props.children}</JsonFormContext.Provider>;
143
- }
144
-
145
- /**
146
- * Grabs data stored under a given key
147
- *
148
- */
149
- export function getData(key: string) {
150
- const dataFunction = baseEnumerator.data.get(key);
151
- return dataFunction && dataFunction();
152
- }
153
-
154
- /**
155
- * Grabs all data
156
- *
157
- */
158
- export function getAllData() {
159
- const allData: AllData = [];
160
- baseEnumerator.data.forEach((d, key) => {
161
- allData.push({ [key]: d() });
162
- });
163
- return allData;
164
- }
165
- /**
166
- * Allows additional data to be added under a given key
167
- *
168
- * This data will then be available inside the context
169
- */
170
- export function addData(key: string, data: Record<string, unknown> | unknown[]) {
171
- enumValues.set(key, () => data);
172
- }