@dartech/arsenal-ui 1.2.6 → 1.2.7

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 (271) hide show
  1. package/{index.ts → index.d.ts} +5 -5
  2. package/index.js +1 -0
  3. package/package.json +12 -3
  4. package/src/consts/index.d.ts +12 -0
  5. package/src/interfaces/common.d.ts +17 -0
  6. package/src/interfaces/definition.d.ts +107 -0
  7. package/src/interfaces/{index.ts → index.d.ts} +3 -3
  8. package/src/interfaces/ui.d.ts +70 -0
  9. package/src/lib/Alert/Alert.d.ts +53 -0
  10. package/src/lib/Alert/index.d.ts +1 -0
  11. package/src/lib/Breadcrumbs/Breadcrumbs.d.ts +9 -0
  12. package/src/lib/Breadcrumbs/Breadcrumbs.styled.d.ts +2 -0
  13. package/src/lib/Breadcrumbs/{index.ts → index.d.ts} +1 -1
  14. package/src/lib/ContentLayout/ContentLayout.d.ts +9 -0
  15. package/src/lib/ContentLayout/index.d.ts +1 -0
  16. package/src/lib/Definition/CreateDefinition/CreateDefinition.d.ts +11 -0
  17. package/src/lib/Definition/CreateDefinition/{index.ts → index.d.ts} +1 -1
  18. package/src/lib/Definition/DefinitionFiller/DefinitionFiller.d.ts +10 -0
  19. package/src/lib/Definition/DefinitionFiller/{index.ts → index.d.ts} +1 -1
  20. package/src/lib/Definition/DefinitionValueView/DefinitionValueView.d.ts +8 -0
  21. package/src/lib/Definition/DefinitionValueView/PropertyDataView.d.ts +9 -0
  22. package/src/lib/Definition/DefinitionValueView/{index.ts → index.d.ts} +1 -1
  23. package/src/lib/Definition/{index.ts → index.d.ts} +3 -3
  24. package/src/lib/Forms/BackButton.d.ts +7 -0
  25. package/src/lib/Forms/ControlAceEditor.d.ts +24 -0
  26. package/src/lib/Forms/ControlAutocomplete.d.ts +69 -0
  27. package/src/lib/Forms/ControlCheckbox.d.ts +51 -0
  28. package/src/lib/Forms/ControlDate.d.ts +18 -0
  29. package/src/lib/Forms/ControlDateTime.d.ts +18 -0
  30. package/src/lib/Forms/ControlDebouncedInput.d.ts +4 -0
  31. package/src/lib/Forms/ControlInput.d.ts +59 -0
  32. package/src/lib/Forms/ControlNumberInput.d.ts +51 -0
  33. package/src/lib/Forms/ControlQueryAutocomplete.d.ts +16 -0
  34. package/src/lib/Forms/ControlRadio.d.ts +66 -0
  35. package/src/lib/Forms/ControlSelect.d.ts +67 -0
  36. package/src/lib/Forms/ControlSwitch.d.ts +19 -0
  37. package/src/lib/Forms/ControlTime.d.ts +18 -0
  38. package/src/lib/Forms/CopyButton.d.ts +20 -0
  39. package/src/lib/Forms/{index.ts → index.d.ts} +15 -15
  40. package/src/lib/Forms/useAutocomplete.d.ts +10 -0
  41. package/src/lib/InfoItem/InfoItem.d.ts +10 -0
  42. package/src/lib/InfoItem/{index.ts → index.d.ts} +1 -1
  43. package/src/lib/InfoItem/styles.d.ts +12 -0
  44. package/src/lib/JsonPathPicker/JsonPathPicker.d.ts +10 -0
  45. package/src/lib/JsonPathPicker/PropertyStep.d.ts +11 -0
  46. package/src/lib/JsonPathPicker/{index.ts → index.d.ts} +1 -1
  47. package/src/lib/JsonView/JsonView.d.ts +7 -0
  48. package/src/lib/JsonView/{index.ts → index.d.ts} +1 -1
  49. package/src/lib/Loader/Loader.d.ts +21 -0
  50. package/src/lib/Loader/{index.ts → index.d.ts} +1 -1
  51. package/src/lib/Modals/JsonModalView.d.ts +10 -0
  52. package/src/lib/Modals/{index.ts → index.d.ts} +1 -1
  53. package/src/lib/Property/PropertyFiller/JsonEditor.d.ts +10 -0
  54. package/src/lib/Property/PropertyFiller/MultiplePropertyFiller.d.ts +12 -0
  55. package/src/lib/Property/PropertyFiller/MultiplePropertyWidget.d.ts +11 -0
  56. package/src/lib/Property/PropertyFiller/PropertyFiller.d.ts +12 -0
  57. package/src/lib/Property/PropertyFiller/{index.ts → index.d.ts} +2 -2
  58. package/src/lib/Property/PropertyFiller/usePropertyFiller.d.ts +24 -0
  59. package/src/lib/Property/PropertyFiller/useStyles.d.ts +12 -0
  60. package/src/lib/Property/PropertyValidator/NodeValidator.d.ts +6 -0
  61. package/src/lib/Property/PropertyValidator/NodesList.d.ts +6 -0
  62. package/src/lib/Property/PropertyValidator/NumericTypeValidator.d.ts +8 -0
  63. package/src/lib/Property/PropertyValidator/PropertyValidator.d.ts +6 -0
  64. package/src/lib/Property/PropertyValidator/PropertyValidatorContext.d.ts +3 -0
  65. package/src/lib/Property/PropertyValidator/StringTypeValidator.d.ts +8 -0
  66. package/src/lib/Property/PropertyValidator/ValidationNodeSelector.d.ts +7 -0
  67. package/src/lib/Property/PropertyValidator/index.d.ts +1 -0
  68. package/src/lib/Property/PropertyValueField/BooleanValueField.d.ts +7 -0
  69. package/src/lib/Property/PropertyValueField/DateTimeValueField.d.ts +9 -0
  70. package/src/lib/Property/PropertyValueField/DateValueField.d.ts +9 -0
  71. package/src/lib/Property/PropertyValueField/JsonValueField.d.ts +10 -0
  72. package/src/lib/Property/PropertyValueField/PropertyValueField.d.ts +9 -0
  73. package/src/lib/Property/PropertyValueField/StringValueField.d.ts +9 -0
  74. package/src/lib/Property/PropertyValueField/TimeValueField.d.ts +9 -0
  75. package/src/lib/Property/PropertyValueField/{index.ts → index.d.ts} +1 -1
  76. package/src/lib/Property/PropertyWidget/PropertyWidget.d.ts +13 -0
  77. package/src/lib/Property/PropertyWidget/{index.ts → index.d.ts} +1 -1
  78. package/src/lib/Property/UpsertProperty/CreatePropertiesList.d.ts +13 -0
  79. package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.d.ts +10 -0
  80. package/src/lib/Property/UpsertProperty/CustomPropertyField.d.ts +7 -0
  81. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.d.ts +6 -0
  82. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.d.ts +7 -0
  83. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.d.ts +8 -0
  84. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.d.ts +6 -0
  85. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.d.ts +10 -0
  86. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.d.ts +6 -0
  87. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/{index.ts → index.d.ts} +1 -1
  88. package/src/lib/Property/UpsertProperty/{index.ts → index.d.ts} +2 -2
  89. package/src/lib/Property/UpsertProperty/useCustomFields.d.ts +6 -0
  90. package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.d.ts +8 -0
  91. package/src/lib/Property/ViewPropertiesList/{index.ts → index.d.ts} +1 -1
  92. package/src/lib/Property/ViewProperty/EntityPropertiesShortView.d.ts +7 -0
  93. package/src/lib/Property/ViewProperty/EntityPropertiesView.d.ts +8 -0
  94. package/src/lib/Property/ViewProperty/PropertyDataTable.d.ts +7 -0
  95. package/src/lib/Property/ViewProperty/PropertyItem.d.ts +9 -0
  96. package/src/lib/Property/ViewProperty/ViewProperty.d.ts +9 -0
  97. package/src/lib/Property/ViewProperty/{index.ts → index.d.ts} +1 -1
  98. package/src/lib/Property/{index.ts → index.d.ts} +5 -5
  99. package/src/lib/Sidebar/Sidebar.d.ts +10 -0
  100. package/src/lib/Sidebar/Sidebar.styled.d.ts +117 -0
  101. package/src/lib/Sidebar/SidebarContext.d.ts +11 -0
  102. package/src/lib/Sidebar/SidebarDrawer.d.ts +9 -0
  103. package/src/lib/Sidebar/SidebarLink/MenuIcon.d.ts +7 -0
  104. package/src/lib/Sidebar/SidebarLink/SidebarLink.d.ts +7 -0
  105. package/src/lib/Sidebar/SidebarLink/SidebarLinkItem.d.ts +8 -0
  106. package/src/lib/Sidebar/SidebarLink/SidebarNestedItem.d.ts +10 -0
  107. package/src/lib/Sidebar/SidebarLink/{index.ts → index.d.ts} +2 -2
  108. package/src/lib/Sidebar/index.d.ts +2 -0
  109. package/src/lib/Status/Status.d.ts +8 -0
  110. package/src/lib/Status/{index.ts → index.d.ts} +1 -1
  111. package/src/lib/Status/styles.d.ts +12 -0
  112. package/src/lib/StepperView/StepperView.d.ts +11 -0
  113. package/src/lib/StepperView/{index.ts → index.d.ts} +1 -1
  114. package/src/lib/Table/DataGrid/JsonTypeCell.d.ts +7 -0
  115. package/src/lib/Table/DataGrid/Table.d.ts +49 -0
  116. package/src/lib/Table/DataGrid/TableAction.d.ts +13 -0
  117. package/src/lib/Table/DataGrid/TableColumnMenu.d.ts +3 -0
  118. package/src/lib/Table/DataGrid/TablePagination.d.ts +3 -0
  119. package/src/lib/Table/DataGrid/index.d.ts +2 -0
  120. package/src/lib/Table/DataGrid/styles.d.ts +12 -0
  121. package/src/lib/Table/DataGrid/usePagination.d.ts +5 -0
  122. package/src/lib/Table/DataGrid/useTableQueryPagination.d.ts +11 -0
  123. package/src/lib/Table/DataGrid/useTableQuerySorting.d.ts +6 -0
  124. package/src/lib/Table/SimpleTable/SimpleTable.d.ts +17 -0
  125. package/src/lib/Table/SimpleTable/TableActionCell.d.ts +10 -0
  126. package/src/lib/Table/SimpleTable/index.d.ts +2 -0
  127. package/src/lib/Table/SimpleTable/useTablePagination.d.ts +7 -0
  128. package/src/lib/Table/SimpleTable/useTableSorting.d.ts +6 -0
  129. package/src/lib/Table/index.d.ts +2 -0
  130. package/src/lib/Tabs/RouteTabs.d.ts +11 -0
  131. package/src/lib/Tabs/TabPanel.d.ts +25 -0
  132. package/src/lib/Tabs/{index.ts → index.d.ts} +2 -2
  133. package/src/lib/{index.ts → index.d.ts} +16 -16
  134. package/src/theme/baseTheme.d.ts +2 -0
  135. package/src/theme/index.d.ts +1 -0
  136. package/src/theme/inputThemeOptions.d.ts +117 -0
  137. package/src/theme/stepperThemeOptions.d.ts +16 -0
  138. package/src/theme/tableThemeOptions.d.ts +47 -0
  139. package/src/theme/typographyThemeOptions.d.ts +29 -0
  140. package/src/utils/common.d.ts +7 -0
  141. package/src/utils/dem.d.ts +27 -0
  142. package/src/utils/hooks.d.ts +7 -0
  143. package/src/utils/{index.ts → index.d.ts} +5 -5
  144. package/src/utils/ui-utils.d.ts +14 -0
  145. package/src/utils/validators.d.ts +5 -0
  146. package/.babelrc +0 -13
  147. package/.eslintrc.json +0 -22
  148. package/jest.config.ts +0 -11
  149. package/project.json +0 -94
  150. package/rollup.config.js +0 -146
  151. package/src/assets/chevron_left_gray.svg +0 -3
  152. package/src/consts/index.ts +0 -13
  153. package/src/interfaces/common.ts +0 -18
  154. package/src/interfaces/definition.ts +0 -143
  155. package/src/interfaces/ui.ts +0 -80
  156. package/src/lib/Alert/Alert.tsx +0 -108
  157. package/src/lib/Alert/index.ts +0 -1
  158. package/src/lib/Breadcrumbs/Breadcrumbs.styled.tsx +0 -16
  159. package/src/lib/Breadcrumbs/Breadcrumbs.tsx +0 -40
  160. package/src/lib/ContentLayout/ContentLayout.tsx +0 -31
  161. package/src/lib/ContentLayout/index.ts +0 -1
  162. package/src/lib/Definition/CreateDefinition/CreateDefinition.tsx +0 -78
  163. package/src/lib/Definition/DefinitionFiller/DefinitionFiller.tsx +0 -71
  164. package/src/lib/Definition/DefinitionValueView/DefinitionValueView.tsx +0 -54
  165. package/src/lib/Definition/DefinitionValueView/PropertyDataView.tsx +0 -67
  166. package/src/lib/Forms/BackButton.tsx +0 -46
  167. package/src/lib/Forms/ControlAceEditor.tsx +0 -125
  168. package/src/lib/Forms/ControlAutocomplete.tsx +0 -145
  169. package/src/lib/Forms/ControlCheckbox.tsx +0 -113
  170. package/src/lib/Forms/ControlDate.tsx +0 -75
  171. package/src/lib/Forms/ControlDateTime.tsx +0 -77
  172. package/src/lib/Forms/ControlDebouncedInput.tsx +0 -80
  173. package/src/lib/Forms/ControlInput.tsx +0 -111
  174. package/src/lib/Forms/ControlNumberInput.tsx +0 -121
  175. package/src/lib/Forms/ControlQueryAutocomplete.tsx +0 -197
  176. package/src/lib/Forms/ControlRadio.tsx +0 -136
  177. package/src/lib/Forms/ControlSelect.tsx +0 -164
  178. package/src/lib/Forms/ControlSwitch.tsx +0 -71
  179. package/src/lib/Forms/ControlTime.tsx +0 -93
  180. package/src/lib/Forms/CopyButton.tsx +0 -46
  181. package/src/lib/Forms/useAutocomplete.tsx +0 -47
  182. package/src/lib/InfoItem/InfoItem.tsx +0 -40
  183. package/src/lib/InfoItem/styles.ts +0 -17
  184. package/src/lib/JsonPathPicker/JsonPathPicker.tsx +0 -73
  185. package/src/lib/JsonPathPicker/PropertyStep.tsx +0 -70
  186. package/src/lib/JsonView/JsonView.tsx +0 -41
  187. package/src/lib/Loader/Loader.tsx +0 -41
  188. package/src/lib/Modals/JsonModalView.tsx +0 -53
  189. package/src/lib/Property/PropertyFiller/JsonEditor.tsx +0 -58
  190. package/src/lib/Property/PropertyFiller/MultiplePropertyFiller.tsx +0 -129
  191. package/src/lib/Property/PropertyFiller/MultiplePropertyWidget.tsx +0 -85
  192. package/src/lib/Property/PropertyFiller/PropertyFiller.tsx +0 -199
  193. package/src/lib/Property/PropertyFiller/usePropertyFiller.ts +0 -72
  194. package/src/lib/Property/PropertyFiller/useStyles.ts +0 -12
  195. package/src/lib/Property/PropertyValidator/NodeValidator.tsx +0 -92
  196. package/src/lib/Property/PropertyValidator/NodesList.tsx +0 -26
  197. package/src/lib/Property/PropertyValidator/NumericTypeValidator.tsx +0 -59
  198. package/src/lib/Property/PropertyValidator/PropertyValidator.tsx +0 -42
  199. package/src/lib/Property/PropertyValidator/PropertyValidatorContext.tsx +0 -4
  200. package/src/lib/Property/PropertyValidator/StringTypeValidator.tsx +0 -36
  201. package/src/lib/Property/PropertyValidator/ValidationNodeSelector.tsx +0 -62
  202. package/src/lib/Property/PropertyValidator/index.ts +0 -1
  203. package/src/lib/Property/PropertyValueField/BooleanValueField.tsx +0 -49
  204. package/src/lib/Property/PropertyValueField/DateTimeValueField.tsx +0 -58
  205. package/src/lib/Property/PropertyValueField/DateValueField.tsx +0 -58
  206. package/src/lib/Property/PropertyValueField/JsonValueField.tsx +0 -65
  207. package/src/lib/Property/PropertyValueField/PropertyValueField.tsx +0 -49
  208. package/src/lib/Property/PropertyValueField/StringValueField.tsx +0 -50
  209. package/src/lib/Property/PropertyValueField/TimeValueField.tsx +0 -67
  210. package/src/lib/Property/PropertyWidget/PropertyWidget.tsx +0 -115
  211. package/src/lib/Property/UpsertProperty/CreatePropertiesList.tsx +0 -148
  212. package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.tsx +0 -158
  213. package/src/lib/Property/UpsertProperty/CustomPropertyField.tsx +0 -40
  214. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.tsx +0 -41
  215. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.tsx +0 -27
  216. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.tsx +0 -133
  217. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.tsx +0 -46
  218. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.tsx +0 -52
  219. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.tsx +0 -103
  220. package/src/lib/Property/UpsertProperty/useCustomFields.ts +0 -22
  221. package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.tsx +0 -37
  222. package/src/lib/Property/ViewProperty/EntityPropertiesShortView.tsx +0 -40
  223. package/src/lib/Property/ViewProperty/EntityPropertiesView.tsx +0 -48
  224. package/src/lib/Property/ViewProperty/PropertyDataTable.tsx +0 -148
  225. package/src/lib/Property/ViewProperty/PropertyItem.tsx +0 -43
  226. package/src/lib/Property/ViewProperty/ViewProperty.tsx +0 -52
  227. package/src/lib/Sidebar/Sidebar.styled.tsx +0 -157
  228. package/src/lib/Sidebar/Sidebar.tsx +0 -27
  229. package/src/lib/Sidebar/SidebarContext.tsx +0 -37
  230. package/src/lib/Sidebar/SidebarDrawer.tsx +0 -50
  231. package/src/lib/Sidebar/SidebarLink/MenuIcon.tsx +0 -16
  232. package/src/lib/Sidebar/SidebarLink/SidebarLink.tsx +0 -54
  233. package/src/lib/Sidebar/SidebarLink/SidebarLinkItem.tsx +0 -54
  234. package/src/lib/Sidebar/SidebarLink/SidebarNestedItem.tsx +0 -62
  235. package/src/lib/Sidebar/index.ts +0 -2
  236. package/src/lib/Status/Status.tsx +0 -16
  237. package/src/lib/Status/styles.ts +0 -21
  238. package/src/lib/StepperView/StepperView.tsx +0 -73
  239. package/src/lib/Table/DataGrid/JsonTypeCell.tsx +0 -51
  240. package/src/lib/Table/DataGrid/Table.tsx +0 -117
  241. package/src/lib/Table/DataGrid/TableAction.tsx +0 -43
  242. package/src/lib/Table/DataGrid/TableColumnMenu.tsx +0 -12
  243. package/src/lib/Table/DataGrid/TablePagination.tsx +0 -42
  244. package/src/lib/Table/DataGrid/index.ts +0 -2
  245. package/src/lib/Table/DataGrid/styles.ts +0 -59
  246. package/src/lib/Table/DataGrid/usePagination.ts +0 -15
  247. package/src/lib/Table/DataGrid/useTableQueryPagination.ts +0 -47
  248. package/src/lib/Table/DataGrid/useTableQuerySorting.ts +0 -47
  249. package/src/lib/Table/SimpleTable/SimpleTable.tsx +0 -138
  250. package/src/lib/Table/SimpleTable/TableActionCell.tsx +0 -67
  251. package/src/lib/Table/SimpleTable/index.ts +0 -2
  252. package/src/lib/Table/SimpleTable/useTablePagination.ts +0 -54
  253. package/src/lib/Table/SimpleTable/useTableSorting.ts +0 -50
  254. package/src/lib/Table/index.ts +0 -2
  255. package/src/lib/Tabs/RouteTabs.tsx +0 -54
  256. package/src/lib/Tabs/TabPanel.tsx +0 -42
  257. package/src/theme/baseTheme.ts +0 -128
  258. package/src/theme/fonts.d.ts +0 -2
  259. package/src/theme/index.ts +0 -126
  260. package/src/theme/inputThemeOptions.ts +0 -126
  261. package/src/theme/stepperThemeOptions.ts +0 -20
  262. package/src/theme/tableThemeOptions.ts +0 -50
  263. package/src/theme/typographyThemeOptions.ts +0 -32
  264. package/src/utils/common.ts +0 -73
  265. package/src/utils/dem.ts +0 -431
  266. package/src/utils/hooks.ts +0 -41
  267. package/src/utils/ui-utils.tsx +0 -132
  268. package/src/utils/validators.ts +0 -14
  269. package/tsconfig.json +0 -25
  270. package/tsconfig.lib.json +0 -23
  271. package/tsconfig.spec.json +0 -20
@@ -1,92 +0,0 @@
1
- import { useContext, useMemo, useEffect } from 'react';
2
- import Box from '@mui/material/Box';
3
- import { PropertyType } from '../../../interfaces';
4
- import { ControlSelect, ControlInput, ControlAceEditor } from '../../Forms';
5
- import { PropertyValidatorContext } from './PropertyValidatorContext';
6
- import { useWatch, useFormContext } from 'react-hook-form';
7
- import { StepperView } from '../../StepperView';
8
- import { StringTypeValidator } from './StringTypeValidator';
9
- import { NumericTypeValidator } from './NumericTypeValidator';
10
-
11
- type Props = {
12
- name: string;
13
- }
14
-
15
- const validatorTypes = ['STRING_REGEX', 'JSON_SCHEMA'];
16
-
17
- const numericTypes = new Set([PropertyType.INTEGER, PropertyType.FLOAT, PropertyType.DOUBLE, PropertyType.BIG_DECIMAL, PropertyType.BIG_INTEGER, PropertyType.LONG]);
18
-
19
- const NodeValidator = ({ name }: Props) => {
20
- const { control, setValue } = useFormContext();
21
- const propertyType = useContext(PropertyValidatorContext);
22
- const selectedType = useWatch({ control, name: `${name}.type` });
23
- const renderValidator = useMemo(() => {
24
- if (selectedType === 'STRING_REGEX') {
25
- return (
26
- <ControlInput
27
- control={control}
28
- name={`${name}.pattern`}
29
- label="Pattern"
30
- />
31
- )
32
- }
33
- if (selectedType === 'JSON_SCHEMA') {
34
- switch (true) {
35
- case propertyType === PropertyType.STRING: {
36
- return <StringTypeValidator name={`${name}.node`} control={control} />
37
- }
38
- case numericTypes.has(propertyType as PropertyType): {
39
- return <NumericTypeValidator name={`${name}.node`} control={control} />
40
- }
41
- case propertyType === PropertyType.JSON: {
42
- return (
43
- <ControlAceEditor
44
- label="Properties"
45
- control={control}
46
- name={`${name}.properties`}
47
- validateJson
48
- parseValue
49
- />
50
- )
51
- }
52
- default: return 'Not available for type ' + propertyType;
53
- }
54
- }
55
- return null;
56
- }, [propertyType, selectedType, control, name]);
57
-
58
- useEffect(() => {
59
- if (numericTypes.has(propertyType as PropertyType) && selectedType === 'JSON_SCHEMA') {
60
- // setting default values
61
- setValue(`${name}.node.exclusiveMinimum`, false)
62
- setValue(`${name}.node.exclusiveMaximum`, false)
63
- }
64
- }, [propertyType, selectedType, setValue, name]);
65
-
66
- return (
67
- <StepperView
68
- data={[{
69
- label: 'Validator',
70
- content: (
71
- <>
72
- <Box>
73
- <ControlSelect
74
- control={control}
75
- name={`${name}.type`}
76
- label="Type"
77
- options={validatorTypes}
78
- onChange={e => {
79
- setValue(name, {});
80
- setValue(`${name}.type`, e.target.value)
81
- }}
82
- />
83
- </Box>
84
- <Box mt={2}>{renderValidator}</Box>
85
- </>
86
- )
87
- }]}
88
- />
89
- )
90
- }
91
-
92
- export default NodeValidator;
@@ -1,26 +0,0 @@
1
- import { useMemo } from 'react';
2
- import ValidationNodeSelector from './ValidationNodeSelector';
3
- import Box from '@mui/material/Box';
4
- import Button from '@mui/material/Button';
5
- import { useFieldArray, useFormContext } from 'react-hook-form';
6
-
7
- type Props = {
8
- name: string;
9
- }
10
-
11
- const NodesList = ({ name }: Props) => {
12
- const listItem = useMemo(() => ({
13
- type: ''
14
- }), []);
15
- const { control } = useFormContext();
16
- const { fields, append, remove } = useFieldArray({ control, name });
17
-
18
- return (
19
- <Box mt={2}>
20
- <Button variant="outlined" size="small" onClick={() => append(listItem)}>Add node</Button>
21
- {fields.map(({ id }, idx) => <ValidationNodeSelector removeHandle={() => remove(idx)} key={id} name={`${name}.${idx}`} />)}
22
- </Box>
23
- )
24
- }
25
-
26
- export default NodesList;
@@ -1,59 +0,0 @@
1
- import React from 'react'
2
- import { ControlInput, ControlCheckbox } from '../../Forms';
3
- import Box from '@mui/material/Box';
4
- import Typography from '@mui/material/Typography';
5
- import { Control } from 'react-hook-form';
6
-
7
- type Props = {
8
- name: string;
9
- control: Control<any>;
10
- }
11
-
12
- export const NumericTypeValidator = ({ name, control }: Props) => {
13
- return (
14
- <>
15
- <Typography variant="body2" gutterBottom>Node</Typography>
16
- <Box>
17
- <ControlInput
18
- control={control}
19
- name={`${name}.multipleOf`}
20
- label="Multiple Of"
21
- type="number"
22
- />
23
- </Box>
24
- <Box mt={2}>
25
- <ControlInput
26
- control={control}
27
- name={`${name}.minimum`}
28
- label="Minimum"
29
- type="number"
30
- />
31
- </Box>
32
- <Box mt={2}>
33
- <ControlInput
34
- control={control}
35
- name={`${name}.maximum`}
36
- label="Maximum"
37
- type="number"
38
- />
39
- </Box>
40
- <Box mt={2}>
41
- <ControlCheckbox
42
- control={control}
43
- name={`${name}.exclusiveMinimum`}
44
- label="Exclusive Minimum"
45
- defaultValue={'false'}
46
- />
47
- <ControlCheckbox
48
- control={control}
49
- name={`${name}.exclusiveMaximum`}
50
- label="Exclusive Maximum"
51
- defaultValue={'false'}
52
- />
53
- </Box>
54
-
55
- </>
56
- )
57
- }
58
-
59
- export default NumericTypeValidator;
@@ -1,42 +0,0 @@
1
- import { useState, useCallback, useEffect } from 'react';
2
- import Typography from '@mui/material/Typography';
3
- import Box from '@mui/material/Box';
4
- import FormControlLabel from '@mui/material/FormControlLabel';
5
- import Checkbox from '@mui/material/Checkbox';
6
- import ValidationNodeSelector from './ValidationNodeSelector';
7
- import { useFormContext } from 'react-hook-form';
8
-
9
- type Props = {
10
- name: string;
11
- }
12
-
13
- export const PropertyValidator = ({ name }: Props) => {
14
- const [enable, setEnable] = useState(false);
15
- const { setValue, getValues } = useFormContext();
16
-
17
- const handleChangeEnable = useCallback(e => {
18
- setEnable(e.target.checked);
19
- if (!e.target.checked) {
20
- setValue(name, null);
21
- }
22
- }, [setValue, name]);
23
-
24
- useEffect(() => {
25
- const validator = getValues(name);
26
- if (validator) setEnable(true);
27
- }, [name, getValues]);
28
-
29
- return (
30
- <>
31
- <Box display="flex" justifyContent="space-between">
32
- <Typography variant="h6">Validator</Typography>
33
- <FormControlLabel label="Enable" control={<Checkbox color="primary" checked={enable} onChange={handleChangeEnable} /> } />
34
- </Box>
35
- {
36
- enable && <ValidationNodeSelector name={name} />
37
- }
38
- </>
39
- )
40
- }
41
-
42
- export default PropertyValidator;
@@ -1,4 +0,0 @@
1
- import { createContext } from 'react';
2
- import type { PropertyType } from '../../../interfaces';
3
-
4
- export const PropertyValidatorContext = createContext<PropertyType | ''>('');
@@ -1,36 +0,0 @@
1
- import React from 'react'
2
- import { ControlInput } from '../../Forms';
3
- import Box from '@mui/material/Box';
4
- import Typography from '@mui/material/Typography';
5
- import { Control } from 'react-hook-form';
6
-
7
- type Props = {
8
- name: string;
9
- control: Control;
10
- }
11
-
12
- export const StringTypeValidator = ({ name, control }: Props) => {
13
- return (
14
- <>
15
- <Typography variant="body2" gutterBottom>Node</Typography>
16
- <Box>
17
- <ControlInput
18
- control={control}
19
- name={`${name}.minimumLength`}
20
- label="Minimum Length"
21
- type="number"
22
- />
23
- </Box>
24
- <Box mt={2}>
25
- <ControlInput
26
- control={control}
27
- name={`${name}.maximumLength`}
28
- label="Maximum Length"
29
- type="number"
30
- />
31
- </Box>
32
- </>
33
- )
34
- }
35
-
36
- export default StringTypeValidator;
@@ -1,62 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { useFormContext, useWatch } from 'react-hook-form';
3
- import { ControlSelect } from '../../Forms';
4
- import IconButton from '@mui/material/IconButton';
5
- import DeleteIcon from '@mui/icons-material/Delete';
6
- import Box from '@mui/material/Box';
7
- import NodesList from './NodesList';
8
- import NodeValidator from './NodeValidator';
9
- import { StepperView } from '../../StepperView';
10
-
11
- type Props = {
12
- name: string;
13
- removeHandle?: () => void;
14
- }
15
-
16
- const nodeTypes = ['AND', 'OR', 'NOT', 'NODE'];
17
-
18
- const ValidationNodeSelector = ({ name, removeHandle }: Props) => {
19
- const { control } = useFormContext();
20
- const selectedType = useWatch({ control, name: `${name}.type` });
21
- const nodeComponent = useMemo(() => ({
22
- AND: <NodesList name={`${name}.nodes`} />,
23
- OR: <NodesList name={`${name}.nodes`} />,
24
- NODE: <NodeValidator name={`${name}.validator`} />,
25
- NOT: <ValidationNodeSelector name={`${name}.node`} />,
26
- }), [name]);
27
- return (
28
- <StepperView
29
- data={[{
30
- label: 'Node Type',
31
- content: (
32
- <>
33
- <Box display="flex" alignItems="center">
34
- <ControlSelect
35
- required
36
- control={control}
37
- name={`${name}.type`}
38
- label="Type"
39
- options={nodeTypes}
40
- />
41
- {
42
- removeHandle && (
43
- <Box ml={2}>
44
- <IconButton onClick={removeHandle} color="primary">
45
- <DeleteIcon />
46
- </IconButton>
47
- </Box>
48
-
49
- )
50
- }
51
- </Box>
52
- <Box>
53
- {nodeComponent[selectedType]}
54
- </Box>
55
- </>
56
- )
57
- }]}
58
- />
59
- )
60
- }
61
-
62
- export default ValidationNodeSelector;
@@ -1 +0,0 @@
1
- export * from './PropertyValidator';
@@ -1,49 +0,0 @@
1
- import Switch from '@mui/material/Switch';
2
- import Typography from '@mui/material/Typography';
3
- import FormControlLabel from '@mui/material/FormControlLabel';
4
- import { Controller, useFormContext, useWatch } from 'react-hook-form';
5
- import { useEffect } from 'react';
6
-
7
- type Props = {
8
- name: string;
9
- label?: string;
10
- };
11
-
12
- const BooleanValueField = ({ name, label = '' }: Props) => {
13
- const { control, setValue } = useFormContext();
14
- const value = useWatch({ name, control });
15
-
16
- useEffect(() => {
17
- if (value === null) {
18
- setValue(name, false);
19
- }
20
- }, [value, name]);
21
-
22
- return (
23
- <>
24
- <Typography>{label}</Typography>
25
- <Controller
26
- control={control}
27
- name={name}
28
- render={({ field }) => (
29
- <FormControlLabel
30
- label={(!!field.value + '').toUpperCase()}
31
- control={
32
- <Switch
33
- color="primary"
34
- size="small"
35
- onChange={(e) => {
36
- const { checked } = e.target;
37
- field.onChange(checked);
38
- }}
39
- checked={!!field.value + '' === 'true'}
40
- />
41
- }
42
- />
43
- )}
44
- />
45
- </>
46
- );
47
- };
48
-
49
- export default BooleanValueField;
@@ -1,58 +0,0 @@
1
- import TextField from '@mui/material/TextField';
2
- import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
3
-
4
- import { format as dateFnsFormat, isValid } from 'date-fns';
5
- import { Controller, useFormContext } from 'react-hook-form';
6
- import { DATE_TIME_DEFAULT_FORMAT } from '../../../interfaces';
7
-
8
- type Props = {
9
- name: string;
10
- label?: string;
11
- required?: boolean;
12
- format?: string;
13
- };
14
-
15
- const DateTimeValueField = ({ name, label, required = false, format = DATE_TIME_DEFAULT_FORMAT }: Props) => {
16
- const { control, setError, clearErrors } = useFormContext();
17
-
18
- const onError = (err) => {
19
- if (err) {
20
- setError(name, { type: 'custom', message: 'Incorrect date format' });
21
- } else {
22
- clearErrors(name);
23
- }
24
- };
25
-
26
- return (
27
- <Controller
28
- control={control}
29
- name={name}
30
- rules={{ required: required && 'Required field' }}
31
- render={({ field: { ref, value, onChange }, fieldState: { error } }) => (
32
- <DateTimePicker
33
- ampm={false}
34
- inputRef={ref}
35
- label={label}
36
- value={value || null}
37
- inputFormat={format}
38
- onError={onError}
39
- onChange={(date) => {
40
- onChange(isValid(date) ? dateFnsFormat(date, format) : date);
41
- }}
42
- renderInput={(props) => (
43
- <TextField
44
- {...props}
45
- fullWidth
46
- size="small"
47
- variant="outlined"
48
- error={!!error}
49
- helperText={error?.message}
50
- />
51
- )}
52
- />
53
- )}
54
- />
55
- );
56
- };
57
-
58
- export default DateTimeValueField;
@@ -1,58 +0,0 @@
1
- import TextField from '@mui/material/TextField';
2
- import { DatePicker } from '@mui/x-date-pickers/DatePicker';
3
-
4
- import { format as dateFnsFormat, isValid } from 'date-fns';
5
- import { Controller, useFormContext } from 'react-hook-form';
6
- import { DATE_DEFAULT_FORMAT } from '../../../interfaces';
7
-
8
- type Props = {
9
- name: string;
10
- format: string;
11
- label?: string;
12
- required?: boolean;
13
- };
14
-
15
- const DateValueField = ({ name, label = '', required = false, format = DATE_DEFAULT_FORMAT }: Props) => {
16
- const { control, setError, clearErrors } = useFormContext();
17
-
18
- const onError = (err) => {
19
- if (err) {
20
- setError(name, { type: 'custom', message: 'Incorrect date format' });
21
- } else {
22
- clearErrors(name);
23
- }
24
- };
25
-
26
- return (
27
- <Controller
28
- control={control}
29
- name={name}
30
- rules={{ required: required && 'Required field' }}
31
- render={({ field: { ref, value, onChange }, fieldState: { error } }) => (
32
- <DatePicker
33
- mask=""
34
- label={label}
35
- inputRef={ref}
36
- inputFormat={format}
37
- value={value || null}
38
- onError={onError}
39
- onChange={(date) => {
40
- onChange(isValid(date) ? dateFnsFormat(date, format) : date);
41
- }}
42
- renderInput={(props) => (
43
- <TextField
44
- {...props}
45
- fullWidth
46
- size="small"
47
- variant="outlined"
48
- error={!!error}
49
- helperText={error?.message}
50
- />
51
- )}
52
- />
53
- )}
54
- />
55
- );
56
- };
57
-
58
- export default DateValueField;
@@ -1,65 +0,0 @@
1
- import AceEditor from 'react-ace';
2
- import FormHelperText from '@mui/material/FormHelperText';
3
- import Typography from '@mui/material/Typography';
4
- import { Controller, useFormContext } from 'react-hook-form';
5
-
6
- import 'ace-builds/src-noconflict/ace';
7
- import 'ace-builds/src-noconflict/mode-json';
8
-
9
- type Props = {
10
- name: string;
11
- label?: string;
12
- required?: boolean;
13
- };
14
-
15
- const JsonValueField = ({ name, label, required = false }: Props) => {
16
- const { control, setError, clearErrors } = useFormContext();
17
-
18
- return (
19
- <>
20
- <Typography>{label}</Typography>
21
- <Controller
22
- control={control}
23
- name={name}
24
- rules={{
25
- required: required && 'Required field',
26
- }}
27
- render={({ field: { value, onChange }, fieldState: { error } }) => (
28
- <>
29
- <AceEditor
30
- value={value && typeof value !== 'string' ? JSON.stringify(value, null, 2) : value}
31
- onChange={(value) => {
32
- if (!value) {
33
- onChange('');
34
- return null;
35
- }
36
- try {
37
- clearErrors(name);
38
- const val = JSON.parse(value);
39
- onChange(Array.isArray(val) ? '' : val);
40
- } catch (e) {
41
- setError(name, { message: 'Invalid JSON' });
42
- onChange(value);
43
- }
44
- }}
45
- mode="json"
46
- width="100%"
47
- height="200px"
48
- fontSize="16"
49
- setOptions={{
50
- enableSnippets: false,
51
- copyWithEmptySelection: true,
52
- showLineNumbers: true,
53
- tabSize: 2,
54
- useWorker: false
55
- }}
56
- />
57
- {error && <FormHelperText error>{error.message}</FormHelperText>}
58
- </>
59
- )}
60
- />
61
- </>
62
- );
63
- };
64
-
65
- export default JsonValueField;
@@ -1,49 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { useFormContext, useWatch } from 'react-hook-form';
3
- import { MultiplePropertyFiller, PropertyFiller } from '../PropertyFiller';
4
- import { PropertyUnion } from '../../../interfaces';
5
-
6
- type Props = {
7
- propertyFieldName: string;
8
- name: string;
9
- label?: string;
10
- required?: boolean;
11
- };
12
-
13
- export const PropertyValueField = ({ propertyFieldName, name, label = '', required }: Props) => {
14
- const { control } = useFormContext();
15
-
16
- const propertyType = useWatch({ control, name: `${propertyFieldName}.propertyType` });
17
- const isMultiple = useWatch({ control, name: `${propertyFieldName}.isMultiple` });
18
- const format = useWatch({ control, name: `${propertyFieldName}.format` });
19
- const restrictedValues = useWatch({ control, name: `${propertyFieldName}.restrictedValues` });
20
- const properties = useWatch({ control, name: `${propertyFieldName}.properties` });
21
- const isRequired = useWatch({ control, name: `${propertyFieldName}.isRequired` });
22
-
23
- const fillerProperty: PropertyUnion = useMemo(() => {
24
- const typeValue = typeof propertyType === 'string' ? propertyType : propertyType.value;
25
- return {
26
- name: label,
27
- isRequired,
28
- isMultiple,
29
- format,
30
- restrictedValues,
31
- properties,
32
- propertyType: typeValue,
33
- defaultValue: null,
34
- defaultValues: [],
35
- sortOrder: 0,
36
- isEnabled: true,
37
- uiSettings: null,
38
- validationNode: null,
39
- };
40
- }, [propertyType, format, restrictedValues, isMultiple, label, isRequired, properties]);
41
-
42
- return isMultiple ? (
43
- <MultiplePropertyFiller name={name} property={fillerProperty} title={label} required={required} />
44
- ) : (
45
- <PropertyFiller name={name} property={fillerProperty} title={label} required={required} />
46
- );
47
- };
48
-
49
- export default PropertyValueField;
@@ -1,50 +0,0 @@
1
- import Select from '@mui/material/Select';
2
- import MenuItem from '@mui/material/MenuItem';
3
- import FormControl from '@mui/material/FormControl';
4
- import InputLabel from '@mui/material/InputLabel';
5
- import { ControlInput } from '../../Forms';
6
-
7
- import { useController, useFormContext, useWatch } from 'react-hook-form';
8
-
9
- type Props = {
10
- name: string;
11
- label?: string;
12
- required?: boolean;
13
- restrictedValues?: string[];
14
- };
15
-
16
- const StringValueField = ({ name, label, required, restrictedValues }: Props) => {
17
- const { control } = useFormContext();
18
- const {
19
- field: { onChange, ref },
20
- fieldState: { error },
21
- } = useController({
22
- control,
23
- name,
24
- rules: {
25
- required:
26
- required &&
27
- (Array.isArray(restrictedValues) && restrictedValues.length
28
- ? 'Please, select a value'
29
- : 'Please, fill this field'),
30
- },
31
- });
32
- const value = useWatch({ control, name });
33
-
34
- return Array.isArray(restrictedValues) && restrictedValues.length ? (
35
- <FormControl fullWidth size="small" variant="outlined" error={!!error}>
36
- <InputLabel htmlFor="type-select">{label}</InputLabel>
37
- <Select labelId="type-select" label={label} value={value || ''} onChange={onChange} ref={ref}>
38
- {restrictedValues.map((restrictedValue) => (
39
- <MenuItem key={restrictedValue} value={restrictedValue}>
40
- {restrictedValue}
41
- </MenuItem>
42
- ))}
43
- </Select>
44
- </FormControl>
45
- ) : (
46
- <ControlInput hideErrorMessage required={required} control={control} name={name} label={label} />
47
- );
48
- };
49
-
50
- export default StringValueField;