@dartech/arsenal-ui 1.3.0 → 1.3.2

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 (269) hide show
  1. package/{index.ts → index.d.ts} +5 -5
  2. package/index.js +1 -0
  3. package/package.json +10 -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/JsonPathPicker/JsonPathPicker.d.ts +10 -0
  44. package/src/lib/JsonPathPicker/PropertyStep.d.ts +11 -0
  45. package/src/lib/JsonPathPicker/{index.ts → index.d.ts} +1 -1
  46. package/src/lib/JsonView/JsonView.d.ts +7 -0
  47. package/src/lib/JsonView/{index.ts → index.d.ts} +1 -1
  48. package/src/lib/Loader/Loader.d.ts +21 -0
  49. package/src/lib/Loader/{index.ts → index.d.ts} +1 -1
  50. package/src/lib/Modals/JsonModalView.d.ts +10 -0
  51. package/src/lib/Modals/{index.ts → index.d.ts} +1 -1
  52. package/src/lib/Property/PropertyFiller/JsonEditor.d.ts +10 -0
  53. package/src/lib/Property/PropertyFiller/MultiplePropertyFiller.d.ts +12 -0
  54. package/src/lib/Property/PropertyFiller/MultiplePropertyWidget.d.ts +11 -0
  55. package/src/lib/Property/PropertyFiller/PropertyFiller.d.ts +12 -0
  56. package/src/lib/Property/PropertyFiller/{index.ts → index.d.ts} +2 -2
  57. package/src/lib/Property/PropertyFiller/styled.d.ts +18 -0
  58. package/src/lib/Property/PropertyFiller/usePropertyFiller.d.ts +24 -0
  59. package/src/lib/Property/PropertyValidator/NodeValidator.d.ts +6 -0
  60. package/src/lib/Property/PropertyValidator/NodesList.d.ts +6 -0
  61. package/src/lib/Property/PropertyValidator/NumericTypeValidator.d.ts +8 -0
  62. package/src/lib/Property/PropertyValidator/PropertyValidator.d.ts +6 -0
  63. package/src/lib/Property/PropertyValidator/PropertyValidatorContext.d.ts +3 -0
  64. package/src/lib/Property/PropertyValidator/StringTypeValidator.d.ts +8 -0
  65. package/src/lib/Property/PropertyValidator/ValidationNodeSelector.d.ts +7 -0
  66. package/src/lib/Property/PropertyValidator/index.d.ts +1 -0
  67. package/src/lib/Property/PropertyValueField/BooleanValueField.d.ts +7 -0
  68. package/src/lib/Property/PropertyValueField/DateTimeValueField.d.ts +9 -0
  69. package/src/lib/Property/PropertyValueField/DateValueField.d.ts +9 -0
  70. package/src/lib/Property/PropertyValueField/JsonValueField.d.ts +10 -0
  71. package/src/lib/Property/PropertyValueField/PropertyValueField.d.ts +9 -0
  72. package/src/lib/Property/PropertyValueField/StringValueField.d.ts +9 -0
  73. package/src/lib/Property/PropertyValueField/TimeValueField.d.ts +9 -0
  74. package/src/lib/Property/PropertyValueField/{index.ts → index.d.ts} +1 -1
  75. package/src/lib/Property/PropertyWidget/PropertyWidget.d.ts +13 -0
  76. package/src/lib/Property/PropertyWidget/{index.ts → index.d.ts} +1 -1
  77. package/src/lib/Property/UpsertProperty/CreatePropertiesList.d.ts +13 -0
  78. package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.d.ts +10 -0
  79. package/src/lib/Property/UpsertProperty/CustomPropertyField.d.ts +7 -0
  80. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.d.ts +6 -0
  81. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.d.ts +7 -0
  82. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.d.ts +8 -0
  83. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.d.ts +6 -0
  84. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.d.ts +10 -0
  85. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.d.ts +6 -0
  86. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/{index.ts → index.d.ts} +1 -1
  87. package/src/lib/Property/UpsertProperty/{index.ts → index.d.ts} +2 -2
  88. package/src/lib/Property/UpsertProperty/useCustomFields.d.ts +6 -0
  89. package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.d.ts +8 -0
  90. package/src/lib/Property/ViewPropertiesList/{index.ts → index.d.ts} +1 -1
  91. package/src/lib/Property/ViewProperty/EntityPropertiesShortView.d.ts +7 -0
  92. package/src/lib/Property/ViewProperty/EntityPropertiesView.d.ts +8 -0
  93. package/src/lib/Property/ViewProperty/PropertyDataTable.d.ts +7 -0
  94. package/src/lib/Property/ViewProperty/PropertyItem.d.ts +9 -0
  95. package/src/lib/Property/ViewProperty/ViewProperty.d.ts +9 -0
  96. package/src/lib/Property/ViewProperty/{index.ts → index.d.ts} +1 -1
  97. package/src/lib/Property/{index.ts → index.d.ts} +5 -5
  98. package/src/lib/Sidebar/Sidebar.d.ts +10 -0
  99. package/src/lib/Sidebar/Sidebar.styled.d.ts +117 -0
  100. package/src/lib/Sidebar/SidebarContext.d.ts +11 -0
  101. package/src/lib/Sidebar/SidebarDrawer.d.ts +9 -0
  102. package/src/lib/Sidebar/SidebarLink/MenuIcon.d.ts +7 -0
  103. package/src/lib/Sidebar/SidebarLink/SidebarLink.d.ts +7 -0
  104. package/src/lib/Sidebar/SidebarLink/SidebarLinkItem.d.ts +8 -0
  105. package/src/lib/Sidebar/SidebarLink/SidebarNestedItem.d.ts +10 -0
  106. package/src/lib/Sidebar/SidebarLink/{index.ts → index.d.ts} +2 -2
  107. package/src/lib/Sidebar/index.d.ts +2 -0
  108. package/src/lib/Status/Status.d.ts +8 -0
  109. package/src/lib/Status/{index.ts → index.d.ts} +1 -1
  110. package/src/lib/StepperView/StepperView.d.ts +11 -0
  111. package/src/lib/StepperView/{index.ts → index.d.ts} +1 -1
  112. package/src/lib/Table/DataGrid/JsonTypeCell.d.ts +7 -0
  113. package/src/lib/Table/DataGrid/Table.d.ts +49 -0
  114. package/src/lib/Table/DataGrid/TableAction.d.ts +13 -0
  115. package/src/lib/Table/DataGrid/TableColumnMenu.d.ts +3 -0
  116. package/src/lib/Table/DataGrid/TablePagination.d.ts +3 -0
  117. package/src/lib/Table/DataGrid/index.d.ts +2 -0
  118. package/src/lib/Table/DataGrid/styles.d.ts +44 -0
  119. package/src/lib/Table/DataGrid/usePagination.d.ts +5 -0
  120. package/src/lib/Table/DataGrid/useTableQueryPagination.d.ts +11 -0
  121. package/src/lib/Table/DataGrid/useTableQuerySorting.d.ts +6 -0
  122. package/src/lib/Table/SimpleTable/SimpleTable.d.ts +17 -0
  123. package/src/lib/Table/SimpleTable/TableActionCell.d.ts +10 -0
  124. package/src/lib/Table/SimpleTable/index.d.ts +2 -0
  125. package/src/lib/Table/SimpleTable/useTablePagination.d.ts +7 -0
  126. package/src/lib/Table/SimpleTable/useTableSorting.d.ts +6 -0
  127. package/src/lib/Table/index.d.ts +2 -0
  128. package/src/lib/Tabs/RouteTabs.d.ts +11 -0
  129. package/src/lib/Tabs/TabPanel.d.ts +25 -0
  130. package/src/lib/Tabs/{index.ts → index.d.ts} +2 -2
  131. package/src/lib/{index.ts → index.d.ts} +16 -16
  132. package/src/theme/baseTheme.d.ts +2 -0
  133. package/src/theme/index.d.ts +1 -0
  134. package/src/theme/inputThemeOptions.d.ts +117 -0
  135. package/src/theme/stepperThemeOptions.d.ts +16 -0
  136. package/src/theme/tableThemeOptions.d.ts +47 -0
  137. package/src/theme/typographyThemeOptions.d.ts +29 -0
  138. package/src/utils/common.d.ts +7 -0
  139. package/src/utils/dem.d.ts +27 -0
  140. package/src/utils/hooks.d.ts +7 -0
  141. package/src/utils/{index.ts → index.d.ts} +5 -5
  142. package/src/utils/ui-utils.d.ts +16 -0
  143. package/src/utils/validators.d.ts +5 -0
  144. package/.babelrc +0 -13
  145. package/.eslintrc.json +0 -22
  146. package/jest.config.ts +0 -11
  147. package/project.json +0 -89
  148. package/rollup.config.js +0 -146
  149. package/src/assets/chevron_left_gray.svg +0 -3
  150. package/src/consts/index.ts +0 -13
  151. package/src/interfaces/common.ts +0 -18
  152. package/src/interfaces/definition.ts +0 -143
  153. package/src/interfaces/ui.ts +0 -80
  154. package/src/lib/Alert/Alert.tsx +0 -108
  155. package/src/lib/Alert/index.ts +0 -1
  156. package/src/lib/Breadcrumbs/Breadcrumbs.styled.tsx +0 -16
  157. package/src/lib/Breadcrumbs/Breadcrumbs.tsx +0 -40
  158. package/src/lib/ContentLayout/ContentLayout.tsx +0 -31
  159. package/src/lib/ContentLayout/index.ts +0 -1
  160. package/src/lib/Definition/CreateDefinition/CreateDefinition.tsx +0 -78
  161. package/src/lib/Definition/DefinitionFiller/DefinitionFiller.tsx +0 -71
  162. package/src/lib/Definition/DefinitionValueView/DefinitionValueView.tsx +0 -54
  163. package/src/lib/Definition/DefinitionValueView/PropertyDataView.tsx +0 -67
  164. package/src/lib/Forms/BackButton.tsx +0 -46
  165. package/src/lib/Forms/ControlAceEditor.tsx +0 -125
  166. package/src/lib/Forms/ControlAutocomplete.tsx +0 -145
  167. package/src/lib/Forms/ControlCheckbox.tsx +0 -113
  168. package/src/lib/Forms/ControlDate.tsx +0 -75
  169. package/src/lib/Forms/ControlDateTime.tsx +0 -77
  170. package/src/lib/Forms/ControlDebouncedInput.tsx +0 -80
  171. package/src/lib/Forms/ControlInput.tsx +0 -111
  172. package/src/lib/Forms/ControlNumberInput.tsx +0 -121
  173. package/src/lib/Forms/ControlQueryAutocomplete.tsx +0 -197
  174. package/src/lib/Forms/ControlRadio.tsx +0 -136
  175. package/src/lib/Forms/ControlSelect.tsx +0 -164
  176. package/src/lib/Forms/ControlSwitch.tsx +0 -71
  177. package/src/lib/Forms/ControlTime.tsx +0 -93
  178. package/src/lib/Forms/CopyButton.tsx +0 -46
  179. package/src/lib/Forms/useAutocomplete.tsx +0 -47
  180. package/src/lib/InfoItem/InfoItem.tsx +0 -40
  181. package/src/lib/InfoItem/styles.ts +0 -17
  182. package/src/lib/JsonPathPicker/JsonPathPicker.tsx +0 -73
  183. package/src/lib/JsonPathPicker/PropertyStep.tsx +0 -70
  184. package/src/lib/JsonView/JsonView.tsx +0 -41
  185. package/src/lib/Loader/Loader.tsx +0 -41
  186. package/src/lib/Modals/JsonModalView.tsx +0 -53
  187. package/src/lib/Property/PropertyFiller/JsonEditor.tsx +0 -58
  188. package/src/lib/Property/PropertyFiller/MultiplePropertyFiller.tsx +0 -129
  189. package/src/lib/Property/PropertyFiller/MultiplePropertyWidget.tsx +0 -85
  190. package/src/lib/Property/PropertyFiller/PropertyFiller.tsx +0 -199
  191. package/src/lib/Property/PropertyFiller/usePropertyFiller.ts +0 -72
  192. package/src/lib/Property/PropertyFiller/useStyles.ts +0 -12
  193. package/src/lib/Property/PropertyValidator/NodeValidator.tsx +0 -92
  194. package/src/lib/Property/PropertyValidator/NodesList.tsx +0 -26
  195. package/src/lib/Property/PropertyValidator/NumericTypeValidator.tsx +0 -59
  196. package/src/lib/Property/PropertyValidator/PropertyValidator.tsx +0 -42
  197. package/src/lib/Property/PropertyValidator/PropertyValidatorContext.tsx +0 -4
  198. package/src/lib/Property/PropertyValidator/StringTypeValidator.tsx +0 -36
  199. package/src/lib/Property/PropertyValidator/ValidationNodeSelector.tsx +0 -62
  200. package/src/lib/Property/PropertyValidator/index.ts +0 -1
  201. package/src/lib/Property/PropertyValueField/BooleanValueField.tsx +0 -49
  202. package/src/lib/Property/PropertyValueField/DateTimeValueField.tsx +0 -58
  203. package/src/lib/Property/PropertyValueField/DateValueField.tsx +0 -58
  204. package/src/lib/Property/PropertyValueField/JsonValueField.tsx +0 -65
  205. package/src/lib/Property/PropertyValueField/PropertyValueField.tsx +0 -49
  206. package/src/lib/Property/PropertyValueField/StringValueField.tsx +0 -50
  207. package/src/lib/Property/PropertyValueField/TimeValueField.tsx +0 -67
  208. package/src/lib/Property/PropertyWidget/PropertyWidget.tsx +0 -115
  209. package/src/lib/Property/UpsertProperty/CreatePropertiesList.tsx +0 -148
  210. package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.tsx +0 -158
  211. package/src/lib/Property/UpsertProperty/CustomPropertyField.tsx +0 -40
  212. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.tsx +0 -41
  213. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.tsx +0 -27
  214. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.tsx +0 -133
  215. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.tsx +0 -46
  216. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.tsx +0 -52
  217. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.tsx +0 -103
  218. package/src/lib/Property/UpsertProperty/useCustomFields.ts +0 -22
  219. package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.tsx +0 -37
  220. package/src/lib/Property/ViewProperty/EntityPropertiesShortView.tsx +0 -40
  221. package/src/lib/Property/ViewProperty/EntityPropertiesView.tsx +0 -48
  222. package/src/lib/Property/ViewProperty/PropertyDataTable.tsx +0 -148
  223. package/src/lib/Property/ViewProperty/PropertyItem.tsx +0 -43
  224. package/src/lib/Property/ViewProperty/ViewProperty.tsx +0 -52
  225. package/src/lib/Sidebar/Sidebar.styled.tsx +0 -157
  226. package/src/lib/Sidebar/Sidebar.tsx +0 -27
  227. package/src/lib/Sidebar/SidebarContext.tsx +0 -37
  228. package/src/lib/Sidebar/SidebarDrawer.tsx +0 -50
  229. package/src/lib/Sidebar/SidebarLink/MenuIcon.tsx +0 -16
  230. package/src/lib/Sidebar/SidebarLink/SidebarLink.tsx +0 -54
  231. package/src/lib/Sidebar/SidebarLink/SidebarLinkItem.tsx +0 -54
  232. package/src/lib/Sidebar/SidebarLink/SidebarNestedItem.tsx +0 -62
  233. package/src/lib/Sidebar/index.ts +0 -2
  234. package/src/lib/Status/Status.tsx +0 -16
  235. package/src/lib/Status/styles.ts +0 -21
  236. package/src/lib/StepperView/StepperView.tsx +0 -73
  237. package/src/lib/Table/DataGrid/JsonTypeCell.tsx +0 -51
  238. package/src/lib/Table/DataGrid/Table.tsx +0 -117
  239. package/src/lib/Table/DataGrid/TableAction.tsx +0 -43
  240. package/src/lib/Table/DataGrid/TableColumnMenu.tsx +0 -12
  241. package/src/lib/Table/DataGrid/TablePagination.tsx +0 -42
  242. package/src/lib/Table/DataGrid/index.ts +0 -2
  243. package/src/lib/Table/DataGrid/styles.ts +0 -59
  244. package/src/lib/Table/DataGrid/usePagination.ts +0 -15
  245. package/src/lib/Table/DataGrid/useTableQueryPagination.ts +0 -47
  246. package/src/lib/Table/DataGrid/useTableQuerySorting.ts +0 -47
  247. package/src/lib/Table/SimpleTable/SimpleTable.tsx +0 -138
  248. package/src/lib/Table/SimpleTable/TableActionCell.tsx +0 -67
  249. package/src/lib/Table/SimpleTable/index.ts +0 -2
  250. package/src/lib/Table/SimpleTable/useTablePagination.ts +0 -54
  251. package/src/lib/Table/SimpleTable/useTableSorting.ts +0 -50
  252. package/src/lib/Table/index.ts +0 -2
  253. package/src/lib/Tabs/RouteTabs.tsx +0 -54
  254. package/src/lib/Tabs/TabPanel.tsx +0 -42
  255. package/src/theme/baseTheme.ts +0 -41
  256. package/src/theme/fonts.d.ts +0 -2
  257. package/src/theme/index.ts +0 -126
  258. package/src/theme/inputThemeOptions.ts +0 -126
  259. package/src/theme/stepperThemeOptions.ts +0 -20
  260. package/src/theme/tableThemeOptions.ts +0 -50
  261. package/src/theme/typographyThemeOptions.ts +0 -32
  262. package/src/utils/common.ts +0 -73
  263. package/src/utils/dem.ts +0 -431
  264. package/src/utils/hooks.ts +0 -41
  265. package/src/utils/ui-utils.tsx +0 -134
  266. package/src/utils/validators.ts +0 -14
  267. package/tsconfig.json +0 -25
  268. package/tsconfig.lib.json +0 -23
  269. package/tsconfig.spec.json +0 -20
@@ -1,158 +0,0 @@
1
- import Grid from '@mui/material/Unstable_Grid2';
2
- import {
3
- ControlCheckbox,
4
- ControlAutocomplete,
5
- ControlNumberInput,
6
- ControlAceEditor,
7
- ControlDebouncedInput,
8
- } from '../../Forms';
9
- import { PropertyAdditionalFields } from './PropertyAdditionalFields';
10
- import { PropertyValueField } from '../PropertyValueField';
11
- import { PropertyValidator } from '../PropertyValidator';
12
- import CustomPropertyField from './CustomPropertyField';
13
- import { PropertyValidatorContext } from '../PropertyValidator/PropertyValidatorContext';
14
- import { useMemo, useEffect } from 'react';
15
- import { useFormContext, useWatch } from 'react-hook-form';
16
- import useCustomFields from './useCustomFields';
17
-
18
- import { CustomPropertyFieldProps, PropertyType } from '../../../interfaces';
19
-
20
- type Props = {
21
- propertyFieldName: string;
22
- entityDefinition?: boolean;
23
- globalParameter?: boolean;
24
- customPropertyFields?: CustomPropertyFieldProps[];
25
- };
26
-
27
- const propertyTypes = Object.values(PropertyType)
28
- .sort((a, b) => a.localeCompare(b))
29
- .map((propType) => ({
30
- value: propType,
31
- label: propType
32
- .replace('_', ' ')
33
- .toLowerCase()
34
- .replace(/(^\w)|([-\s]\w)/g, (c) => c.toUpperCase()),
35
- }));
36
-
37
- export const CreatePropertyFormFields = ({
38
- propertyFieldName,
39
- entityDefinition = false,
40
- globalParameter = false,
41
- customPropertyFields = [],
42
- }: Props) => {
43
- const { control, setValue } = useFormContext();
44
- const propertyType = useWatch({ control, name: `${propertyFieldName}.propertyType` });
45
- const isMultiple = useWatch({ control, name: `${propertyFieldName}.isMultiple` });
46
- const isRequired = useWatch({ control, name: `${propertyFieldName}.isRequired` });
47
-
48
- const { customCheckboxes, customFields } = useCustomFields(customPropertyFields);
49
-
50
- const valueLabel = useMemo(() => {
51
- let label = globalParameter ? 'Value' : 'Default Value';
52
- if (isMultiple) {
53
- label += 's';
54
- }
55
- return label;
56
- }, [globalParameter, isMultiple]);
57
-
58
- const handlePropertyTypeChange = (_, value) => {
59
- const fieldName = `${propertyFieldName}.propertyType`;
60
- const valueFieldName = `${propertyFieldName}.${globalParameter ? 'value' : 'defaultValue'}`;
61
- if (isMultiple) {
62
- setValue(valueFieldName, []);
63
- } else {
64
- setValue(valueFieldName, null);
65
- }
66
- setValue(fieldName, value);
67
- };
68
-
69
- useEffect(() => {
70
- if (propertyType && typeof propertyType === 'string') {
71
- setValue(`${propertyFieldName}.propertyType`, propertyTypes.find(el => el.value === propertyType));
72
- }
73
- }, [propertyType, setValue, propertyFieldName])
74
-
75
- return (
76
- <Grid container direction="column" spacing={2}>
77
- <Grid>
78
- <ControlDebouncedInput required control={control} name={`${propertyFieldName}.key`} label="Key" />
79
- </Grid>
80
- <Grid>
81
- <ControlDebouncedInput required control={control} name={`${propertyFieldName}.name`} label="Name" />
82
- </Grid>
83
- <Grid>
84
- <ControlAutocomplete
85
- required
86
- control={control}
87
- name={`${propertyFieldName}.propertyType`}
88
- label="Type"
89
- options={propertyTypes}
90
- onChange={handlePropertyTypeChange}
91
- />
92
- </Grid>
93
- <Grid>
94
- <ControlNumberInput required control={control} name={`${propertyFieldName}.sortOrder`} label="Sort Order" />
95
- </Grid>
96
-
97
- <Grid>
98
- <ControlAceEditor control={control} name={`${propertyFieldName}.uiSettings`} label="UI Settings" validateJson />
99
- </Grid>
100
- <Grid>
101
- <ControlCheckbox control={control} name={`${propertyFieldName}.isMultiple`} label="Multiple" />
102
- <ControlCheckbox control={control} name={`${propertyFieldName}.isEnabled`} label="Enabled" />
103
- <ControlCheckbox control={control} name={`${propertyFieldName}.isRequired`} label="Required" />
104
- {entityDefinition && (
105
- <ControlCheckbox
106
- control={control}
107
- name={`${propertyFieldName}.isViewableInList`}
108
- label="Is viewable in list"
109
- />
110
- )}
111
- {customCheckboxes.length ? (
112
- <>
113
- {customCheckboxes.map((field, index) => (
114
- <ControlCheckbox
115
- key={index}
116
- control={control}
117
- name={`${propertyFieldName}.${field.name}`}
118
- label={field.label}
119
- />
120
- ))}
121
- </>
122
- ) : null}
123
- </Grid>
124
- {propertyType && (
125
- <>
126
- <Grid>
127
- <PropertyValidatorContext.Provider value={propertyType.value ?? propertyType}>
128
- <PropertyValidator name={`${propertyFieldName}.validationNode`} />
129
- </PropertyValidatorContext.Provider>
130
- </Grid>
131
- <PropertyAdditionalFields
132
- propertyType={typeof propertyType === 'string' ? propertyType : propertyType.value}
133
- propertyFieldName={propertyFieldName}
134
- globalParameter={globalParameter}
135
- entityDefinition={entityDefinition}
136
- />
137
- <PropertyValueField
138
- propertyFieldName={propertyFieldName}
139
- name={`${propertyFieldName}.${globalParameter ? 'value' : 'defaultValue'}`}
140
- label={valueLabel}
141
- required={globalParameter ? isRequired : false}
142
- />
143
- </>
144
- )}
145
- {customFields.length ? (
146
- <>
147
- {customFields.map((field, index) => (
148
- <Grid key={index}>
149
- <CustomPropertyField {...field} propertyFieldName={propertyFieldName} />
150
- </Grid>
151
- ))}
152
- </>
153
- ) : null}
154
- </Grid>
155
- );
156
- };
157
-
158
- export default CreatePropertyFormFields;
@@ -1,40 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { useFormContext } from 'react-hook-form';
3
- import { CustomPropertyFieldProps } from '../../../interfaces';
4
- import { ControlAceEditor, ControlAutocomplete, ControlInput, ControlNumberInput, ControlSelect } from '../../Forms';
5
-
6
- type Props = CustomPropertyFieldProps & { propertyFieldName: string };
7
-
8
- export const CustomPropertyField = ({
9
- name,
10
- label = '',
11
- propertyFieldName,
12
- type,
13
- decimal = false,
14
- options = [],
15
- required = false,
16
- }: Props) => {
17
- const { control } = useFormContext();
18
- const fieldName = useMemo(() => `${propertyFieldName}.${name}`, [name, propertyFieldName]);
19
-
20
- switch (type) {
21
- case 'text':
22
- return <ControlInput control={control} name={fieldName} label={label} required={required} />;
23
- case 'number':
24
- return (
25
- <ControlNumberInput control={control} name={fieldName} label={label} decimal={decimal} required={required} />
26
- );
27
- case 'select':
28
- return <ControlSelect control={control} name={fieldName} label={label} options={options} required={required} />;
29
- case 'autocomplete':
30
- return (
31
- <ControlAutocomplete control={control} name={fieldName} label={label} options={options} required={required} />
32
- );
33
- case 'json':
34
- return <ControlAceEditor control={control} name={fieldName} label={label} mode="json" required={required} />;
35
- default:
36
- return null;
37
- }
38
- };
39
-
40
- export default CustomPropertyField;
@@ -1,41 +0,0 @@
1
- import Grid from '@mui/material/Unstable_Grid2';
2
- import { ControlNumberInput, ControlSelect } from '../../../Forms';
3
- import { RoundingMode } from '../../../../interfaces';
4
-
5
- import { useFormContext } from 'react-hook-form';
6
-
7
- type Props = {
8
- propertyFieldName: string;
9
- };
10
-
11
- const roundingModes = Object.values(RoundingMode).sort((a, b) => a.localeCompare(b));
12
-
13
- const BigDecimalPropertyFields = ({ propertyFieldName }: Props) => {
14
- const { control } = useFormContext();
15
-
16
- return (
17
- <>
18
- <Grid>
19
- <ControlNumberInput
20
- required
21
- control={control}
22
- defaultValue={2}
23
- name={`${propertyFieldName}.precisionScale`}
24
- label="Precision Scale"
25
- />
26
- </Grid>
27
- <Grid>
28
- <ControlSelect
29
- required
30
- control={control}
31
- name={`${propertyFieldName}.roundingMode`}
32
- label="Rounding Mode"
33
- defaultValue={RoundingMode.HALF_UP}
34
- options={roundingModes}
35
- />
36
- </Grid>
37
- </>
38
- );
39
- };
40
-
41
- export default BigDecimalPropertyFields;
@@ -1,27 +0,0 @@
1
- import Grid from '@mui/material/Unstable_Grid2';
2
- import { ControlInput } from '../../../Forms';
3
-
4
- import { useFormContext } from 'react-hook-form';
5
-
6
- type Props = {
7
- propertyFieldName: string;
8
- defaultValue?: string;
9
- };
10
-
11
- const DateAdditionalFields = ({ propertyFieldName, defaultValue = '' }: Props) => {
12
- const { control } = useFormContext();
13
-
14
- return (
15
- <Grid>
16
- <ControlInput
17
- required
18
- control={control}
19
- defaultValue={defaultValue}
20
- name={`${propertyFieldName}.format`}
21
- label="Format"
22
- />
23
- </Grid>
24
- );
25
- };
26
-
27
- export default DateAdditionalFields;
@@ -1,133 +0,0 @@
1
- import Grid from '@mui/material/Unstable_Grid2';
2
- import Button from '@mui/material/Button';
3
- import Typography from '@mui/material/Typography';
4
- import Dialog from '@mui/material/Dialog';
5
- import DialogTitle from '@mui/material/DialogTitle';
6
- import DialogContent from '@mui/material/DialogContent';
7
- import DialogActions from '@mui/material/DialogActions';
8
- import Stepper from '@mui/material/Stepper';
9
- import Step from '@mui/material/Step';
10
- import StepLabel from '@mui/material/StepLabel';
11
- import StepContent from '@mui/material/StepContent';
12
- import CreatePropertiesList from '../CreatePropertiesList';
13
- import EntityPropertiesShortView from '../../ViewProperty/EntityPropertiesShortView';
14
-
15
- import { useCallback, useState } from 'react';
16
- import { useFormContext, useWatch } from 'react-hook-form';
17
- import { useToggle } from '../../../../utils/hooks';
18
-
19
- type Props = {
20
- parentPropertyFieldName: string;
21
- entityDefinition?: boolean;
22
- globalParameter?: boolean;
23
- };
24
-
25
- const defaultPropertyValues = {
26
- key: '',
27
- propertyType: '',
28
- name: '',
29
- defaultValue: '',
30
- isRequired: true,
31
- isMultiple: false,
32
- sortOrder: 0,
33
- isEnabled: true,
34
- };
35
-
36
- const EntityAdditionalFields = ({
37
- parentPropertyFieldName,
38
- entityDefinition = false,
39
- globalParameter = false,
40
- }: Props) => {
41
- const { control, setValue, getValues, trigger } = useFormContext();
42
- const properties = useWatch({
43
- control,
44
- name: `${parentPropertyFieldName}.properties`,
45
- defaultValue: getValues(`${parentPropertyFieldName}.properties`) || [],
46
- });
47
- const parentPropertyName = useWatch({ control, name: `${parentPropertyFieldName}.name` });
48
-
49
- const parametersModal = useToggle();
50
-
51
- const [focusedProperty, setFocusedProperty] = useState(0);
52
-
53
- const handleAddParameter = useCallback(() => {
54
- if (properties) {
55
- const propertyIndex = properties.length;
56
- setValue(`${parentPropertyFieldName}.properties.${propertyIndex}`, defaultPropertyValues);
57
- setFocusedProperty(propertyIndex);
58
- } else {
59
- setValue(`${parentPropertyFieldName}.properties`, [defaultPropertyValues]);
60
- }
61
- }, [properties, parentPropertyFieldName, setValue]);
62
-
63
- const handleStepperClick = (index) => setFocusedProperty(index);
64
-
65
- const handleSubmitClick = async () => {
66
- const isValid = await trigger(`${parentPropertyFieldName}.properties`);
67
- if (isValid) {
68
- parametersModal.onClose();
69
- }
70
- };
71
-
72
- return (
73
- <>
74
- <Grid>
75
- <Typography variant="h6">Properties</Typography>
76
- </Grid>
77
- <Grid>
78
- <EntityPropertiesShortView properties={properties} />
79
- </Grid>
80
- <Grid>
81
- <Button variant="contained" color="primary" onClick={parametersModal.onOpen}>
82
- Edit properties
83
- </Button>
84
- </Grid>
85
-
86
- <Dialog disableEscapeKeyDown open={parametersModal.open} onClose={handleSubmitClick} fullWidth maxWidth="md">
87
- <DialogTitle>{parentPropertyName || 'Entity'} Properties</DialogTitle>
88
- <DialogContent style={{ height: '500px', overflow: 'hidden' }}>
89
- <Grid container direction="row" spacing={2} style={{ height: '100%' }}>
90
- <Grid xs={3} style={{ backgroundColor: '#f9f9f9' }}>
91
- <Stepper nonLinear activeStep={focusedProperty} orientation="vertical" style={{ paddingLeft: '4px' }}>
92
- {properties.map((property, index) => (
93
- <Step key={index} onClick={() => handleStepperClick(index)} style={{ cursor: 'pointer' }}>
94
- <StepLabel StepIconProps={{ icon: '' }} style={{ wordBreak: 'break-word' }}>
95
- {property.name || '(no name)'}
96
- </StepLabel>
97
- <StepContent></StepContent>
98
- </Step>
99
- ))}
100
- </Stepper>
101
- <Button variant="contained" size="small" color="primary" onClick={handleAddParameter}>
102
- Add property
103
- </Button>
104
- </Grid>
105
- <Grid
106
- container
107
- wrap="nowrap"
108
- direction="column"
109
- xs={9}
110
- spacing={2}
111
- style={{ height: '100%', overflowY: 'auto' }}
112
- >
113
- <CreatePropertiesList
114
- hideAddButton
115
- parentFieldName={parentPropertyFieldName}
116
- focusOnIndex={focusedProperty}
117
- entityDefinition={entityDefinition}
118
- globalParameter={globalParameter}
119
- />
120
- </Grid>
121
- </Grid>
122
- </DialogContent>
123
- <DialogActions>
124
- <Button variant="contained" color="primary" onClick={handleSubmitClick}>
125
- Ok
126
- </Button>
127
- </DialogActions>
128
- </Dialog>
129
- </>
130
- );
131
- };
132
-
133
- export default EntityAdditionalFields;
@@ -1,46 +0,0 @@
1
- import Grid from '@mui/material/Unstable_Grid2';
2
- import { ControlInput } from '../../../Forms';
3
-
4
- import { useFormContext } from 'react-hook-form';
5
-
6
- type Props = {
7
- propertyFieldName: string;
8
- };
9
-
10
- const EntityReferencePropertyFields = ({ propertyFieldName }: Props) => {
11
- const { control } = useFormContext();
12
-
13
- return (
14
- <>
15
- <Grid>
16
- <ControlInput required control={control} name={`${propertyFieldName}.definitionCode`} label="Definition Code" />
17
- </Grid>
18
- <Grid>
19
- <ControlInput
20
- required
21
- control={control}
22
- name={`${propertyFieldName}.definitionVersion`}
23
- label="Definition Version"
24
- />
25
- </Grid>
26
- <Grid>
27
- <ControlInput
28
- required
29
- control={control}
30
- name={`${propertyFieldName}.labelPropertyCode`}
31
- label="Label Property Code"
32
- />
33
- </Grid>
34
- <Grid>
35
- <ControlInput
36
- required
37
- control={control}
38
- name={`${propertyFieldName}.valuePropertyCode`}
39
- label="Value Property Code"
40
- />
41
- </Grid>
42
- </>
43
- );
44
- };
45
-
46
- export default EntityReferencePropertyFields;
@@ -1,52 +0,0 @@
1
- import {
2
- PropertyType,
3
- DATE_DEFAULT_FORMAT,
4
- DATE_TIME_DEFAULT_FORMAT,
5
- TIME_DEFAULT_FORMAT,
6
- } from '../../../../interfaces';
7
- import BigDecimalPropertyFields from './BigDecimalPropertyFields';
8
- import DateAdditionalFields from './DateAdditionalFields';
9
- import EntityAdditionalFields from './EntityAdditionalFields';
10
- import EntityReferencePropertyFields from './EntityReferencePropertyFields';
11
- import StringPropertyFields from './StringPropertyFields';
12
-
13
- type Props = {
14
- propertyType: PropertyType;
15
- propertyFieldName: string;
16
- entityDefinition?: boolean;
17
- globalParameter?: boolean;
18
- };
19
-
20
- export const PropertyAdditionalFields = ({
21
- propertyType,
22
- propertyFieldName,
23
- entityDefinition = false,
24
- globalParameter = false,
25
- }: Props) => {
26
- switch (propertyType) {
27
- case PropertyType.STRING:
28
- return <StringPropertyFields propertyFieldName={propertyFieldName} />;
29
- case PropertyType.BIG_DECIMAL:
30
- return <BigDecimalPropertyFields propertyFieldName={propertyFieldName} />;
31
- case PropertyType.DATE:
32
- return <DateAdditionalFields propertyFieldName={propertyFieldName} defaultValue={DATE_DEFAULT_FORMAT} />;
33
- case PropertyType.TIME:
34
- return <DateAdditionalFields propertyFieldName={propertyFieldName} defaultValue={TIME_DEFAULT_FORMAT} />;
35
- case PropertyType.DATE_TIME:
36
- return <DateAdditionalFields propertyFieldName={propertyFieldName} defaultValue={DATE_TIME_DEFAULT_FORMAT} />;
37
- case PropertyType.ENTITY_REFERENCE:
38
- return <EntityReferencePropertyFields propertyFieldName={propertyFieldName} />;
39
- case PropertyType.ENTITY:
40
- return (
41
- <EntityAdditionalFields
42
- parentPropertyFieldName={propertyFieldName}
43
- globalParameter={globalParameter}
44
- entityDefinition={entityDefinition}
45
- />
46
- );
47
- default:
48
- return null;
49
- }
50
- };
51
-
52
- export default PropertyAdditionalFields;
@@ -1,103 +0,0 @@
1
- import Grid from '@mui/material/Unstable_Grid2';
2
- import Chip from '@mui/material/Chip';
3
- import Box from '@mui/material/Box';
4
- import Typography from '@mui/material/Typography';
5
- import TextField from '@mui/material/TextField';
6
- import IconButton from '@mui/material/IconButton';
7
- import AddIcon from '@mui/icons-material/Add';
8
-
9
- import { useFormContext, useWatch } from 'react-hook-form';
10
- import { removeArrayItem } from '../../../../utils';
11
- import { useCallback, useMemo, useState } from 'react';
12
-
13
- type Props = {
14
- propertyFieldName: string;
15
- };
16
-
17
- const StringPropertyFields = ({ propertyFieldName }: Props) => {
18
- const fieldName = useMemo(() => `${propertyFieldName}.restrictedValues`, [propertyFieldName]);
19
-
20
- const { control, setValue, getValues } = useFormContext();
21
- const restrictedValues = useWatch({
22
- control,
23
- name: fieldName,
24
- defaultValue: getValues(`${propertyFieldName}.restrictedValues`) || [],
25
- });
26
-
27
- const [inputValue, setInputValue] = useState('');
28
- const [error, setError] = useState('');
29
-
30
- const handleDelete = useCallback(
31
- (index) => {
32
- setValue(fieldName, removeArrayItem(restrictedValues, index));
33
- },
34
- [restrictedValues, fieldName, setValue]
35
- );
36
-
37
- const handleAddValue = () => {
38
- if (inputValue) {
39
- setValue(fieldName, [...restrictedValues, inputValue]);
40
- setInputValue('');
41
- }
42
- };
43
-
44
- const handleInputChange = (e) => {
45
- const { value } = e.target;
46
- setInputValue(value);
47
-
48
- if (restrictedValues.includes(value)) {
49
- setError('This value already exists');
50
- } else {
51
- setError('');
52
- }
53
- };
54
-
55
- const handleKeyDown = (e) => {
56
- if (e.key === 'Enter') {
57
- handleAddValue();
58
- }
59
- };
60
-
61
- return (
62
- <>
63
- <Grid>
64
- <Typography variant="h6">Restricted Values</Typography>
65
- </Grid>
66
- {
67
- !!restrictedValues?.length && (
68
- <Grid>
69
- <Box display="flex" flexWrap="wrap">
70
- {restrictedValues.map((value, index) => (
71
- <Chip sx={{ mr: 1 }} key={index} variant="outlined" label={value} onDelete={() => handleDelete(index)} />
72
- ))}
73
- </Box>
74
- </Grid>
75
- )
76
- }
77
-
78
- <Grid>
79
- <TextField
80
- fullWidth
81
- variant="outlined"
82
- size="small"
83
- label="Add restricted value"
84
- value={inputValue}
85
- onChange={handleInputChange}
86
- error={!!error}
87
- helperText={error}
88
- name="restrictedValues"
89
- inputProps={{ onKeyDown: handleKeyDown }}
90
- InputProps={{
91
- endAdornment: (
92
- <IconButton size="small" onClick={handleAddValue} disabled={!!error}>
93
- <AddIcon />
94
- </IconButton>
95
- ),
96
- }}
97
- />
98
- </Grid>
99
- </>
100
- );
101
- };
102
-
103
- export default StringPropertyFields;
@@ -1,22 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { CustomPropertyFieldProps } from '../../../interfaces';
3
-
4
- const useCustomFields = (customPropertyFields: CustomPropertyFieldProps[]) => {
5
- const customCheckboxes = useMemo(() => {
6
- if (customPropertyFields.length) {
7
- return customPropertyFields.filter((field) => field.type === 'checkbox');
8
- }
9
- return [];
10
- }, [customPropertyFields]);
11
-
12
- const customFields = useMemo(() => {
13
- if (customPropertyFields.length) {
14
- return customPropertyFields.filter((field) => field.type !== 'checkbox');
15
- }
16
- return [];
17
- }, [customPropertyFields]);
18
-
19
- return { customCheckboxes, customFields };
20
- };
21
-
22
- export default useCustomFields;
@@ -1,37 +0,0 @@
1
- import Box from '@mui/material/Box';
2
- import Typography from '@mui/material/Typography';
3
- import { ViewProperty } from '../ViewProperty';
4
-
5
- import { useMemo } from 'react';
6
- import { propertiesObjectToArray } from '../../../utils';
7
- import { PropertiesArrayType, PropertiesObjectType } from '../../../interfaces';
8
-
9
- type Props = {
10
- properties: PropertiesObjectType<unknown> | PropertiesArrayType<unknown>;
11
- expandAll?: boolean;
12
- };
13
-
14
- export const ViewPropertiesList = ({ properties, expandAll = true }: Props) => {
15
- const propertiesList = useMemo(() => {
16
- if (Array.isArray(properties)) {
17
- return properties;
18
- } else if (properties) {
19
- return propertiesObjectToArray(properties);
20
- }
21
- return [];
22
- }, [properties]);
23
-
24
- return (
25
- <Box display="flex" flexDirection="column">
26
- {propertiesList.length ? (
27
- propertiesList.map((property) => (
28
- <ViewProperty key={property.key} property={property} defaultExpanded={expandAll} />
29
- ))
30
- ) : (
31
- <Typography>No properties</Typography>
32
- )}
33
- </Box>
34
- );
35
- };
36
-
37
- export default ViewPropertiesList;