@dartech/arsenal-ui 0.0.1 → 0.0.3

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 (214) hide show
  1. package/{index.ts → index.d.ts} +3 -3
  2. package/index.esm.js +1 -0
  3. package/index.umd.js +1 -0
  4. package/package.json +5 -2
  5. package/src/interfaces/common.d.ts +10 -0
  6. package/src/interfaces/definition.d.ts +117 -0
  7. package/src/interfaces/{index.ts → index.d.ts} +3 -3
  8. package/src/interfaces/ui.d.ts +33 -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/Definition/CreateDefinition/CreateDefinition.d.ts +11 -0
  12. package/src/lib/Definition/CreateDefinition/{index.ts → index.d.ts} +1 -1
  13. package/src/lib/Definition/DefinitionFiller/DefinitionFiller.d.ts +8 -0
  14. package/src/lib/Definition/DefinitionFiller/WidgetDefinitionFiller.d.ts +9 -0
  15. package/src/lib/Definition/DefinitionFiller/{index.ts → index.d.ts} +2 -2
  16. package/src/lib/Definition/{index.ts → index.d.ts} +2 -2
  17. package/src/lib/DemPropertyField/DemPropertyField.d.ts +59 -0
  18. package/src/lib/DemPropertyField/DemPropertyView/DemPropertyView.d.ts +8 -0
  19. package/src/lib/DemPropertyField/DemPropertyView/{index.ts → index.d.ts} +1 -1
  20. package/src/lib/DemPropertyField/MultipleDemField/MultipleDemField.d.ts +9 -0
  21. package/src/lib/DemPropertyField/MultipleDemField/{index.tsx → index.d.ts} +1 -1
  22. package/src/lib/DemPropertyField/RestrictedValuesEditor.d.ts +6 -0
  23. package/src/lib/DemPropertyField/SingleDemField/SingleDemField.d.ts +9 -0
  24. package/src/lib/DemPropertyField/SingleDemField/{index.ts → index.d.ts} +1 -1
  25. package/src/lib/DemPropertyField/{index.ts → index.d.ts} +2 -2
  26. package/src/lib/DemPropertyField/styles.d.ts +2 -0
  27. package/src/lib/DemPropertyField/widgets/DemBooleanWidget.d.ts +7 -0
  28. package/src/lib/DemPropertyField/widgets/DemDateTimeWidget.d.ts +9 -0
  29. package/src/lib/DemPropertyField/widgets/DemDateWidget.d.ts +9 -0
  30. package/src/lib/DemPropertyField/widgets/DemFieldWidget.d.ts +11 -0
  31. package/src/lib/DemPropertyField/widgets/DemFloatWidget.d.ts +10 -0
  32. package/src/lib/DemPropertyField/widgets/DemIntegerWidget.d.ts +10 -0
  33. package/src/lib/DemPropertyField/widgets/DemJsonWidget.d.ts +9 -0
  34. package/src/lib/DemPropertyField/widgets/DemStringWidget.d.ts +10 -0
  35. package/src/lib/DemPropertyField/widgets/DemTimeWidget.d.ts +9 -0
  36. package/src/lib/DemPropertyField/widgets/{index.ts → index.d.ts} +1 -1
  37. package/src/lib/Forms/BackButton.d.ts +7 -0
  38. package/src/lib/Forms/ControlAceEditor.d.ts +20 -0
  39. package/src/lib/Forms/ControlAutocomplete.d.ts +49 -0
  40. package/src/lib/Forms/ControlCheckbox.d.ts +30 -0
  41. package/src/lib/Forms/ControlDebouncedInput.d.ts +4 -0
  42. package/src/lib/Forms/ControlInput.d.ts +54 -0
  43. package/src/lib/Forms/ControlNumberInput.d.ts +43 -0
  44. package/src/lib/Forms/ControlQueryAutocomplete.d.ts +7 -0
  45. package/src/lib/Forms/ControlRadioBtn.d.ts +26 -0
  46. package/src/lib/Forms/ControlSelect.d.ts +66 -0
  47. package/src/lib/Forms/CopyButton.d.ts +21 -0
  48. package/src/lib/Forms/{index.ts → index.d.ts} +11 -10
  49. package/src/lib/InfoItem/InfoItem.d.ts +10 -0
  50. package/src/lib/InfoItem/{index.ts → index.d.ts} +1 -1
  51. package/src/lib/InfoItem/styles.d.ts +2 -0
  52. package/src/lib/JsonPathPicker/JsonPathPicker.d.ts +10 -0
  53. package/src/lib/JsonPathPicker/PropertyStep.d.ts +11 -0
  54. package/src/lib/JsonPathPicker/{index.ts → index.d.ts} +1 -1
  55. package/src/lib/JsonView/JsonView.d.ts +9 -0
  56. package/src/lib/JsonView/{index.ts → index.d.ts} +1 -1
  57. package/src/lib/Loader/Loader.d.ts +21 -0
  58. package/src/lib/Loader/{index.ts → index.d.ts} +1 -1
  59. package/src/lib/Modals/JsonModalView.d.ts +10 -0
  60. package/src/lib/Modals/{index.ts → index.d.ts} +1 -1
  61. package/src/lib/Property/PropertyValueField/BooleanValueField.d.ts +7 -0
  62. package/src/lib/Property/PropertyValueField/DateTimeValueField.d.ts +9 -0
  63. package/src/lib/Property/PropertyValueField/DateValueField.d.ts +9 -0
  64. package/src/lib/Property/PropertyValueField/EntityValueField.d.ts +9 -0
  65. package/src/lib/Property/PropertyValueField/JsonValueField.d.ts +10 -0
  66. package/src/lib/Property/PropertyValueField/PropertyValue.d.ts +10 -0
  67. package/src/lib/Property/PropertyValueField/PropertyValueField.d.ts +9 -0
  68. package/src/lib/Property/PropertyValueField/StringValueField.d.ts +9 -0
  69. package/src/lib/Property/PropertyValueField/TimeValueField.d.ts +9 -0
  70. package/src/lib/Property/PropertyValueField/ValueComponent.d.ts +15 -0
  71. package/src/lib/Property/PropertyValueField/{index.ts → index.d.ts} +2 -1
  72. package/src/lib/Property/PropertyWidget/PropertyWidget.d.ts +9 -0
  73. package/src/lib/Property/PropertyWidget/{index.ts → index.d.ts} +1 -1
  74. package/src/lib/Property/UpsertProperty/CreatePropertiesList.d.ts +13 -0
  75. package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.d.ts +10 -0
  76. package/src/lib/Property/UpsertProperty/CustomPropertyField.d.ts +7 -0
  77. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.d.ts +6 -0
  78. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.d.ts +7 -0
  79. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.d.ts +8 -0
  80. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.d.ts +6 -0
  81. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.d.ts +10 -0
  82. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.d.ts +6 -0
  83. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/{index.ts → index.d.ts} +1 -1
  84. package/src/lib/Property/UpsertProperty/{index.ts → index.d.ts} +2 -2
  85. package/src/lib/Property/UpsertProperty/useCustomFields.d.ts +6 -0
  86. package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.d.ts +8 -0
  87. package/src/lib/Property/ViewPropertiesList/{index.ts → index.d.ts} +1 -1
  88. package/src/lib/Property/ViewProperty/EntityPropertiesShortView.d.ts +9 -0
  89. package/src/lib/Property/ViewProperty/EntityPropertiesView.d.ts +8 -0
  90. package/src/lib/Property/ViewProperty/PropertyDataTable.d.ts +7 -0
  91. package/src/lib/Property/ViewProperty/PropertyItem.d.ts +9 -0
  92. package/src/lib/Property/ViewProperty/ViewProperty.d.ts +9 -0
  93. package/src/lib/Property/ViewProperty/{index.ts → index.d.ts} +1 -1
  94. package/src/lib/Property/{index.ts → index.d.ts} +4 -4
  95. package/src/lib/Status/Status.d.ts +7 -0
  96. package/src/lib/Status/{index.ts → index.d.ts} +1 -1
  97. package/src/lib/Status/styles.d.ts +2 -0
  98. package/src/lib/StepperView/StepperView.d.ts +10 -0
  99. package/src/lib/StepperView/index.d.ts +1 -0
  100. package/src/lib/Table/Table.d.ts +49 -0
  101. package/src/lib/Table/TableColumnMenu.d.ts +3 -0
  102. package/src/lib/Table/TablePagination.d.ts +3 -0
  103. package/src/lib/Table/index.d.ts +1 -0
  104. package/src/lib/Table/styles.d.ts +2 -0
  105. package/src/lib/Table/usePagination.d.ts +5 -0
  106. package/src/lib/Table/useTableQueryPagination.d.ts +11 -0
  107. package/src/lib/Table/useTableQuerySorting.d.ts +6 -0
  108. package/src/lib/Tabs/RouteTabs.d.ts +11 -0
  109. package/src/lib/Tabs/TabPanel.d.ts +25 -0
  110. package/src/lib/Tabs/{index.ts → index.d.ts} +2 -2
  111. package/src/lib/TemplateContent/ExpressionDecorator.d.ts +5 -0
  112. package/src/lib/TemplateContent/TemplateContentEditor.d.ts +9 -0
  113. package/src/lib/TemplateContent/{index.ts → index.d.ts} +1 -1
  114. package/src/lib/{index.ts → index.d.ts} +15 -14
  115. package/src/utils/common.d.ts +7 -0
  116. package/src/utils/dem.d.ts +7 -0
  117. package/src/utils/hooks.d.ts +7 -0
  118. package/src/utils/{index.ts → index.d.ts} +5 -5
  119. package/src/utils/ui-utils.d.ts +7 -0
  120. package/src/utils/validators.d.ts +12 -0
  121. package/.babelrc +0 -12
  122. package/.eslintrc.json +0 -22
  123. package/jest.config.js +0 -9
  124. package/project.json +0 -69
  125. package/rollup.config.js +0 -135
  126. package/src/interfaces/common.ts +0 -12
  127. package/src/interfaces/definition.ts +0 -143
  128. package/src/interfaces/ui.ts +0 -35
  129. package/src/lib/Alert/Alert.tsx +0 -108
  130. package/src/lib/Alert/index.ts +0 -1
  131. package/src/lib/Definition/CreateDefinition/CreateDefinition.tsx +0 -74
  132. package/src/lib/Definition/DefinitionFiller/DefinitionFiller.tsx +0 -85
  133. package/src/lib/Definition/DefinitionFiller/WidgetDefinitionFiller.tsx +0 -96
  134. package/src/lib/DemPropertyField/DemPropertyField.tsx +0 -93
  135. package/src/lib/DemPropertyField/DemPropertyView/DemPropertyView.tsx +0 -44
  136. package/src/lib/DemPropertyField/MultipleDemField/MultipleDemField.tsx +0 -293
  137. package/src/lib/DemPropertyField/RestrictedValuesEditor.tsx +0 -63
  138. package/src/lib/DemPropertyField/SingleDemField/SingleDemField.tsx +0 -156
  139. package/src/lib/DemPropertyField/styles.ts +0 -50
  140. package/src/lib/DemPropertyField/widgets/DemBooleanWidget.tsx +0 -26
  141. package/src/lib/DemPropertyField/widgets/DemDateTimeWidget.tsx +0 -34
  142. package/src/lib/DemPropertyField/widgets/DemDateWidget.tsx +0 -33
  143. package/src/lib/DemPropertyField/widgets/DemFieldWidget.tsx +0 -67
  144. package/src/lib/DemPropertyField/widgets/DemFloatWidget.tsx +0 -49
  145. package/src/lib/DemPropertyField/widgets/DemIntegerWidget.tsx +0 -63
  146. package/src/lib/DemPropertyField/widgets/DemJsonWidget.tsx +0 -33
  147. package/src/lib/DemPropertyField/widgets/DemStringWidget.tsx +0 -35
  148. package/src/lib/DemPropertyField/widgets/DemTimeWidget.tsx +0 -46
  149. package/src/lib/Forms/BackButton.tsx +0 -45
  150. package/src/lib/Forms/ControlAceEditor.tsx +0 -103
  151. package/src/lib/Forms/ControlAutocomplete.tsx +0 -134
  152. package/src/lib/Forms/ControlCheckbox.tsx +0 -57
  153. package/src/lib/Forms/ControlDebouncedInput.tsx +0 -69
  154. package/src/lib/Forms/ControlInput.tsx +0 -102
  155. package/src/lib/Forms/ControlNumberInput.tsx +0 -144
  156. package/src/lib/Forms/ControlRadioBtn.tsx +0 -46
  157. package/src/lib/Forms/ControlSelect.tsx +0 -135
  158. package/src/lib/Forms/CopyButton.tsx +0 -49
  159. package/src/lib/InfoItem/InfoItem.tsx +0 -39
  160. package/src/lib/InfoItem/styles.ts +0 -17
  161. package/src/lib/JsonPathPicker/JsonPathPicker.tsx +0 -71
  162. package/src/lib/JsonPathPicker/PropertyStep.tsx +0 -74
  163. package/src/lib/JsonView/JsonView.tsx +0 -43
  164. package/src/lib/Loader/Loader.tsx +0 -41
  165. package/src/lib/Modals/JsonModalView.tsx +0 -52
  166. package/src/lib/Property/PropertyValueField/BooleanValueField.tsx +0 -41
  167. package/src/lib/Property/PropertyValueField/DateTimeValueField.tsx +0 -59
  168. package/src/lib/Property/PropertyValueField/DateValueField.tsx +0 -59
  169. package/src/lib/Property/PropertyValueField/EntityValueField.tsx +0 -33
  170. package/src/lib/Property/PropertyValueField/JsonValueField.tsx +0 -64
  171. package/src/lib/Property/PropertyValueField/PropertyValue.tsx +0 -97
  172. package/src/lib/Property/PropertyValueField/PropertyValueField.tsx +0 -86
  173. package/src/lib/Property/PropertyValueField/StringValueField.tsx +0 -21
  174. package/src/lib/Property/PropertyValueField/TimeValueField.tsx +0 -68
  175. package/src/lib/Property/PropertyValueField/ValueComponent.tsx +0 -63
  176. package/src/lib/Property/PropertyWidget/PropertyWidget.tsx +0 -167
  177. package/src/lib/Property/UpsertProperty/CreatePropertiesList.tsx +0 -131
  178. package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.tsx +0 -147
  179. package/src/lib/Property/UpsertProperty/CustomPropertyField.tsx +0 -40
  180. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.tsx +0 -41
  181. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.tsx +0 -27
  182. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.tsx +0 -133
  183. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.tsx +0 -46
  184. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.tsx +0 -52
  185. package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.tsx +0 -98
  186. package/src/lib/Property/UpsertProperty/useCustomFields.ts +0 -22
  187. package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.tsx +0 -50
  188. package/src/lib/Property/ViewProperty/EntityPropertiesShortView.tsx +0 -41
  189. package/src/lib/Property/ViewProperty/EntityPropertiesView.tsx +0 -48
  190. package/src/lib/Property/ViewProperty/PropertyDataTable.tsx +0 -139
  191. package/src/lib/Property/ViewProperty/PropertyItem.tsx +0 -46
  192. package/src/lib/Property/ViewProperty/ViewProperty.tsx +0 -52
  193. package/src/lib/Status/Status.tsx +0 -15
  194. package/src/lib/Status/styles.ts +0 -14
  195. package/src/lib/Table/Table.tsx +0 -116
  196. package/src/lib/Table/TableColumnMenu.tsx +0 -12
  197. package/src/lib/Table/TablePagination.tsx +0 -42
  198. package/src/lib/Table/index.ts +0 -1
  199. package/src/lib/Table/styles.ts +0 -59
  200. package/src/lib/Table/usePagination.ts +0 -15
  201. package/src/lib/Table/useTableQueryPagination.ts +0 -49
  202. package/src/lib/Table/useTableQuerySorting.ts +0 -52
  203. package/src/lib/Tabs/RouteTabs.tsx +0 -54
  204. package/src/lib/Tabs/TabPanel.tsx +0 -42
  205. package/src/lib/TemplateContent/ExpressionDecorator.tsx +0 -7
  206. package/src/lib/TemplateContent/TemplateContentEditor.tsx +0 -144
  207. package/src/utils/common.ts +0 -68
  208. package/src/utils/dem.ts +0 -78
  209. package/src/utils/hooks.ts +0 -41
  210. package/src/utils/ui-utils.tsx +0 -71
  211. package/src/utils/validators.ts +0 -130
  212. package/tsconfig.json +0 -24
  213. package/tsconfig.lib.json +0 -22
  214. package/tsconfig.spec.json +0 -19
@@ -1,67 +0,0 @@
1
- import DemBooleanWidget from './DemBooleanWidget';
2
- import DemJsonWidget from './DemJsonWidget';
3
- import DemStringWidget from './DemStringWidget';
4
- import DemDateWidget from './DemDateWidget';
5
- import DemDateTimeWidget from './DemDateTimeWidget';
6
- import DemTimeWidget from './DemTimeWidget';
7
- import DemFloatWidget from './DemFloatWidget';
8
-
9
- import {
10
- BigIntegerProperty,
11
- DateProperty,
12
- DateTimeProperty,
13
- FloatProperty,
14
- StringProperty,
15
- IntegerProperty,
16
- LongProperty,
17
- TimeProperty,
18
- PropertyUnion,
19
- PropertyType,
20
- } from '../../../interfaces';
21
- import DemIntegerWidget from './DemIntegerWidget';
22
-
23
- type Props = {
24
- property: PropertyUnion;
25
- label?: string;
26
- value: string;
27
- name: string;
28
- onChange: (value) => void;
29
- };
30
-
31
- export const DemFieldWidget = ({ property, value, name, label, onChange }: Props) => {
32
- switch (property?.propertyType) {
33
- case PropertyType.DATE:
34
- return <DemDateWidget property={property as DateProperty} value={value} onChange={onChange} />;
35
- case PropertyType.DATE_TIME:
36
- return <DemDateTimeWidget property={property as DateTimeProperty} value={value} onChange={onChange} />;
37
- case PropertyType.TIME: {
38
- return <DemTimeWidget property={property as TimeProperty} value={value} onChange={onChange} />;
39
- }
40
- case PropertyType.BIG_INTEGER:
41
- return (
42
- <DemIntegerWidget property={property as BigIntegerProperty} value={value} name={name} onChange={onChange} />
43
- );
44
- case PropertyType.LONG:
45
- return <DemIntegerWidget property={property as LongProperty} value={value} name={name} onChange={onChange} />;
46
- case PropertyType.INTEGER:
47
- return <DemIntegerWidget property={property as IntegerProperty} value={value} name={name} onChange={onChange} />;
48
- case PropertyType.BIG_DECIMAL:
49
- case PropertyType.DOUBLE:
50
- case PropertyType.FLOAT:
51
- return <DemFloatWidget property={property as FloatProperty} value={value} name={name} onChange={onChange} />;
52
- case PropertyType.STRING:
53
- return <DemStringWidget property={property as StringProperty} value={value} onChange={onChange} label={label} />;
54
- case PropertyType.BOOLEAN:
55
- return <DemBooleanWidget value={value} onChange={onChange} />;
56
- case PropertyType.JSON:
57
- return <DemJsonWidget value={value} onChange={onChange} />;
58
- case PropertyType.ENTITY:
59
- return null;
60
- case PropertyType.ENTITY_REFERENCE:
61
- return null;
62
- default:
63
- return <DemStringWidget property={property as StringProperty} value={value} onChange={onChange} label={label} />;
64
- }
65
- };
66
-
67
- export default DemFieldWidget;
@@ -1,49 +0,0 @@
1
- import Grid from '@material-ui/core/Grid';
2
- import TextField from '@material-ui/core/TextField';
3
-
4
- import { useController, useFormContext } from 'react-hook-form';
5
- import { validateFloat } from '../../../utils';
6
- import { FloatProperty } from '../../../interfaces';
7
-
8
- type Props = {
9
- property: FloatProperty;
10
- value: string;
11
- name: string;
12
- onChange: (value: string) => void;
13
- };
14
-
15
- const DemFloatWidget = ({ property, value, name, onChange }: Props) => {
16
- const { setError, clearErrors, control } = useFormContext();
17
- const fieldController = useController({
18
- name,
19
- control,
20
- rules: {
21
- validate: (value) => {
22
- return validateFloat(value + '').message;
23
- },
24
- },
25
- });
26
-
27
- const handleChange = (e) => {
28
- const { value: inputValue } = e.target;
29
- const { valid, continuable, message, displayOnChange } = validateFloat(inputValue);
30
-
31
- if (valid || continuable) {
32
- onChange(inputValue);
33
- }
34
-
35
- if (!valid && displayOnChange) {
36
- setError(name, { type: 'custom', message });
37
- } else {
38
- clearErrors(name);
39
- }
40
- };
41
-
42
- return (
43
- <Grid item sm={12}>
44
- <TextField fullWidth variant="outlined" size="small" value={value} onChange={handleChange} />
45
- </Grid>
46
- );
47
- };
48
-
49
- export default DemFloatWidget;
@@ -1,63 +0,0 @@
1
- import Grid from '@material-ui/core/Grid';
2
- import TextField from '@material-ui/core/TextField';
3
-
4
- import { useController, useFormContext } from 'react-hook-form';
5
- import { validateInteger } from '../../../utils';
6
- import { BigIntegerProperty, IntegerProperty, LongProperty } from '../../../interfaces';
7
-
8
- type Props = {
9
- property: IntegerProperty | BigIntegerProperty | LongProperty;
10
- value: string;
11
- name: string;
12
- onChange: (value: string) => void;
13
- };
14
-
15
- const DemIntegerWidget = ({ property, value, name, onChange }: Props) => {
16
- const { setError, clearErrors, control } = useFormContext();
17
- const { fieldState: error } = useController({
18
- name,
19
- control,
20
- rules: {
21
- validate: (value) => {
22
- return validateInteger(value + '', property.propertyType).message;
23
- },
24
- },
25
- });
26
-
27
- const handleChange = (e) => {
28
- let { value: inputValue } = e.target;
29
-
30
- if (inputValue.length >= 2 && inputValue.startsWith('0')) {
31
- inputValue = inputValue.slice(1);
32
- }
33
-
34
- if (inputValue.length >= 2 && inputValue.startsWith('-') && inputValue[1] === '0') {
35
- inputValue = inputValue.slice(0, 1) + inputValue.slice(2);
36
- }
37
-
38
- if (!inputValue || (inputValue.length < 2 && inputValue[0] === '-')) {
39
- onChange(inputValue);
40
- return;
41
- }
42
-
43
- const { valid, continuable, message } = validateInteger(inputValue, property.propertyType);
44
-
45
- if (valid || continuable) {
46
- onChange(inputValue);
47
- }
48
-
49
- if (!valid) {
50
- setError(name, { type: 'custom', message });
51
- } else {
52
- clearErrors(name);
53
- }
54
- };
55
-
56
- return (
57
- <Grid item sm={12}>
58
- <TextField fullWidth variant="outlined" size="small" value={value} onChange={handleChange} />
59
- </Grid>
60
- );
61
- };
62
-
63
- export default DemIntegerWidget;
@@ -1,33 +0,0 @@
1
- import Grid from '@material-ui/core/Grid';
2
- import AceEditor from 'react-ace';
3
-
4
- import 'ace-builds/src-noconflict/ace';
5
- import 'ace-builds/src-noconflict/mode-json';
6
-
7
- type Props = {
8
- value: string;
9
- onChange: (value: string) => void;
10
- };
11
-
12
- const DemJsonWidget = ({ value, onChange }: Props) => {
13
- return (
14
- <Grid item sm={12}>
15
- <AceEditor
16
- value={value}
17
- onChange={onChange}
18
- mode="json"
19
- width="100%"
20
- height="200px"
21
- fontSize="16"
22
- setOptions={{
23
- enableSnippets: false,
24
- copyWithEmptySelection: true,
25
- showLineNumbers: true,
26
- tabSize: 2,
27
- }}
28
- />
29
- </Grid>
30
- );
31
- };
32
-
33
- export default DemJsonWidget;
@@ -1,35 +0,0 @@
1
- import Grid from '@material-ui/core/Grid';
2
- import TextField from '@material-ui/core/TextField';
3
- import MenuItem from '@material-ui/core/MenuItem';
4
-
5
- import { StringProperty } from '../../../interfaces';
6
-
7
- type Props = {
8
- property: StringProperty;
9
- label?: string;
10
- value: string;
11
- onChange: (value: string) => void;
12
- };
13
-
14
- export const DemStringWidget = ({ property, label, value, onChange }: Props) => {
15
- const handleChange = (e) => {
16
- onChange(e.target.value);
17
- };
18
- return (
19
- <Grid item sm={12}>
20
- {property?.restrictedValues?.length ? (
21
- <TextField select fullWidth variant="outlined" size="small" value={value} onChange={handleChange}>
22
- {property.restrictedValues.map((restrictedValue) => (
23
- <MenuItem key={restrictedValue} value={restrictedValue}>
24
- {restrictedValue}
25
- </MenuItem>
26
- ))}
27
- </TextField>
28
- ) : (
29
- <TextField fullWidth variant="outlined" size="small" label={label} value={value} onChange={handleChange} />
30
- )}
31
- </Grid>
32
- );
33
- };
34
-
35
- export default DemStringWidget;
@@ -1,46 +0,0 @@
1
- import Grid from '@material-ui/core/Grid';
2
- import TextField from '@mui/material/TextField';
3
- import { TimePicker } from '@mui/x-date-pickers/TimePicker';
4
-
5
- import { useEffect, useState } from 'react';
6
- import { format, parse } from 'date-fns';
7
- import { getDemPropertyDateFormat } from '../../../utils';
8
- import { TimeProperty } from '../../../interfaces';
9
-
10
- type Props = {
11
- property: TimeProperty;
12
- value: string;
13
- onChange: (value: string) => void;
14
- };
15
-
16
- const timeFormat = 'HH:mm:ss.SSS';
17
-
18
- const DemTimeWidget = ({ property, value, onChange }: Props) => {
19
- const [localTime, setLocalTime] = useState<Date>(null);
20
-
21
- const handleChange = (date) => {
22
- setLocalTime(date);
23
- onChange(format(date, getDemPropertyDateFormat(timeFormat, property.format)));
24
- };
25
-
26
- useEffect(() => {
27
- if (value && !localTime) {
28
- setLocalTime(parse(value, timeFormat, new Date()));
29
- }
30
- }, [value, localTime]);
31
-
32
- return (
33
- <Grid item sm={12}>
34
- <TimePicker
35
- clearable
36
- ampm={false}
37
- value={localTime}
38
- onChange={handleChange}
39
- inputFormat={getDemPropertyDateFormat(timeFormat, property.format)}
40
- renderInput={(props) => <TextField {...props} fullWidth variant="outlined" size="small" />}
41
- />
42
- </Grid>
43
- );
44
- };
45
-
46
- export default DemTimeWidget;
@@ -1,45 +0,0 @@
1
- import { useCallback, useMemo } from 'react';
2
- import ArrowBackIcon from '@material-ui/icons/ArrowBack';
3
- import { Link } from 'react-router-dom';
4
- import { useHistory, useLocation } from 'react-router-dom';
5
- import IconButton from '@material-ui/core/IconButton';
6
- import Button from '@material-ui/core/Button';
7
- import Box from '@material-ui/core/Box';
8
-
9
- type Props = {
10
- text?: string;
11
- buttonProps?: any;
12
- };
13
- export const BackButton = ({ text, buttonProps = {} }: Props) => {
14
- const history = useHistory();
15
- const { state } = useLocation();
16
- const fromLocation = useMemo(() => state?.['from'], [state]);
17
-
18
- const handleClick = useCallback(() => {
19
- if (fromLocation) {
20
- history.push(fromLocation);
21
- } else history.goBack();
22
- }, [history, fromLocation]);
23
-
24
- return (
25
- <Box mr={2}>
26
- {text ? (
27
- <Button
28
- color="inherit"
29
- onClick={!fromLocation ? handleClick : null}
30
- component={Link}
31
- to={fromLocation ?? ''}
32
- {...buttonProps}
33
- >
34
- {text}
35
- </Button>
36
- ) : (
37
- <IconButton onClick={handleClick}>
38
- <ArrowBackIcon />
39
- </IconButton>
40
- )}
41
- </Box>
42
- );
43
- };
44
-
45
- export default BackButton;
@@ -1,103 +0,0 @@
1
- import { Controller, Control, useFormContext } from 'react-hook-form';
2
- import AceEditor from 'react-ace';
3
- import 'ace-builds/src-noconflict/mode-python';
4
- import 'ace-builds/src-noconflict/theme-monokai';
5
- import 'ace-builds/src-noconflict/ext-language_tools';
6
- import Typography from '@material-ui/core/Typography';
7
- import FormHelperText from '@material-ui/core/FormHelperText';
8
-
9
- export interface ControlAceEditorProps {
10
- name: string;
11
- control: Control<any>;
12
- mode?: string;
13
- label?: string;
14
- width?: string;
15
- height?: string;
16
- theme?: string;
17
- readOnly?: boolean;
18
- required?: boolean;
19
- validateJson?: boolean;
20
- fontSize?: number;
21
- }
22
-
23
- export const ControlAceEditor = ({
24
- control,
25
- name,
26
- mode = 'json',
27
- label,
28
- width = '100%',
29
- height = '200px',
30
- theme = 'monokai',
31
- readOnly,
32
- required = false,
33
- validateJson = false,
34
- fontSize = 16,
35
- }: ControlAceEditorProps) => {
36
- const { setError, clearErrors } = useFormContext();
37
-
38
- return (
39
- <>
40
- {label && (
41
- <Typography variant="subtitle1" display="inline" style={{ marginRight: 10 }}>
42
- {label}
43
- </Typography>
44
- )}
45
-
46
- <Controller
47
- control={control}
48
- name={name}
49
- render={({ field, fieldState }) => (
50
- <>
51
- <AceEditor
52
- {...field}
53
- value={mode === 'json' && typeof field.value !== 'string' ? JSON.stringify(field.value) : field.value}
54
- onChange={(value) => {
55
- if (!value) {
56
- if (required) {
57
- setError(name, { message: 'Required field' });
58
- } else {
59
- clearErrors(name);
60
- field.onChange('');
61
- }
62
- return;
63
- }
64
-
65
- field.onChange(value);
66
-
67
- if (validateJson) {
68
- try {
69
- JSON.parse(value);
70
- } catch (error) {
71
- setError(name, { message: 'Invalid JSON' });
72
- return;
73
- }
74
- }
75
- clearErrors(name);
76
- return;
77
- }}
78
- width={width}
79
- height={height}
80
- readOnly={readOnly}
81
- mode={mode}
82
- focus
83
- showPrintMargin={false}
84
- theme={theme}
85
- wrapEnabled
86
- fontSize={fontSize}
87
- setOptions={{
88
- enableLiveAutocompletion: true,
89
- enableBasicAutocompletion: true,
90
- showLineNumbers: true,
91
- tabSize: 2,
92
- }}
93
- style={{ lineHeight: 1.4, zIndex: 0, isolation: 'isolate' }}
94
- />
95
- {fieldState.error && <FormHelperText error>{fieldState.error.message}</FormHelperText>}
96
- </>
97
- )}
98
- />
99
- </>
100
- );
101
- };
102
-
103
- export default ControlAceEditor;
@@ -1,134 +0,0 @@
1
- import { Controller, Control } from 'react-hook-form';
2
- import TextField from '@material-ui/core/TextField';
3
- import Autocomplete from '@material-ui/lab/Autocomplete';
4
- import { useCallback } from 'react';
5
-
6
- /**
7
- * This interface is referencing the [[ControlAutocomplete]] component props.
8
- * @category Forms
9
- */
10
- export interface ControlAutocompleteProps {
11
- /**
12
- * React Hook Form control `name` propery
13
- */
14
- name: string;
15
- /**
16
- * React Hook Form `control`
17
- */
18
- control: Control<any>;
19
- /**
20
- * Autocomplete `options` prop
21
- */
22
- options?: any[];
23
- /**
24
- * Material-UI TextField `label` prop
25
- */
26
- label: string;
27
- /**
28
- * Material-UI TextField `placeholder` prop
29
- */
30
- placeholder?: string;
31
- /**
32
- * Autocomplete `multiple` prop
33
- */
34
- /**
35
- * onChange handle function
36
- */
37
- onChange?: (name: string, value: unknown) => void;
38
- multiple?: boolean;
39
- required?: boolean;
40
- disableCloseOnSelect?: boolean;
41
- filterSelectedOptions?: boolean;
42
- labelKey?: string;
43
- valueKey?: string;
44
- loading?: boolean;
45
- getOptionDisabled?: (option) => boolean;
46
- }
47
-
48
- /**
49
- * Material UI `Autocomplete` controlled component. Used with react-hook-form
50
- * @category Forms
51
- */
52
- export const ControlAutocomplete = ({
53
- control,
54
- name,
55
- options,
56
- label,
57
- placeholder,
58
- multiple,
59
- required,
60
- disableCloseOnSelect = false,
61
- labelKey,
62
- valueKey,
63
- loading,
64
- onChange,
65
- getOptionDisabled,
66
- }: ControlAutocompleteProps) => {
67
- const getOptionSelected = useCallback((option, value) => {
68
- if (option && value) {
69
- if (typeof option === 'string') {
70
- return option === value;
71
- } else if (valueKey) {
72
- return option[valueKey] === value[valueKey] || option[valueKey] === value;
73
- } else if (option.value) {
74
- return option.value === value.value || option.value === value;
75
- }
76
- }
77
- return false;
78
- }, []);
79
-
80
- const getOptionLabel = useCallback(
81
- (option) => {
82
- if (option) {
83
- if (typeof option === 'string') {
84
- return option;
85
- } else if (labelKey && option[labelKey]) {
86
- return option[labelKey];
87
- } else {
88
- return option.label || option.name || option.value || option.code || '';
89
- }
90
- }
91
- return '';
92
- },
93
- [options]
94
- );
95
-
96
- return (
97
- <Controller
98
- name={name}
99
- control={control}
100
- rules={{
101
- required: required && 'Required field',
102
- }}
103
- render={({ field, fieldState }) => (
104
- <Autocomplete
105
- {...field}
106
- multiple={multiple}
107
- size="small"
108
- disableCloseOnSelect={disableCloseOnSelect || multiple}
109
- filterSelectedOptions={multiple}
110
- disablePortal
111
- loading={loading}
112
- options={options}
113
- getOptionSelected={getOptionSelected}
114
- getOptionLabel={getOptionLabel}
115
- getOptionDisabled={getOptionDisabled ? getOptionDisabled : null}
116
- value={field.value || null}
117
- onChange={(e, val) => (onChange ? onChange(field.name, val) : field.onChange(val))}
118
- renderInput={(params) => (
119
- <TextField
120
- {...params}
121
- label={label}
122
- variant="outlined"
123
- helperText={fieldState.error?.message}
124
- placeholder={placeholder}
125
- error={!!fieldState.error}
126
- />
127
- )}
128
- />
129
- )}
130
- />
131
- );
132
- };
133
-
134
- export default ControlAutocomplete;
@@ -1,57 +0,0 @@
1
- import Checkbox from '@material-ui/core/Checkbox';
2
- import FormControlLabel from '@material-ui/core/FormControlLabel';
3
- import { Controller } from 'react-hook-form';
4
-
5
- /**
6
- * This interface is referencing the [[ControlCheckbox]] component props.
7
- * @category Forms
8
- */
9
- export interface ControlCheckboxProps {
10
- /**
11
- * React Hook Form `control`
12
- */
13
- control: any;
14
- /**
15
- * React Hook Form control `name` propery
16
- */
17
- name: string;
18
- /**
19
- * Material-UI FormControlLabel `label` prop
20
- */
21
- label?: string;
22
- /**
23
- * Is disabled input flag
24
- */
25
- disabled?: boolean;
26
- onChange?: (name: string, value: unknown) => void;
27
- }
28
-
29
- /**
30
- * Material UI `Checkbox` controlled component. Used with react-hook-form
31
- * @category Forms
32
- */
33
- export const ControlCheckbox = ({ name, control, label, disabled, onChange }: ControlCheckboxProps) => {
34
- return (
35
- <FormControlLabel
36
- label={label || name}
37
- control={
38
- <Controller
39
- control={control}
40
- name={name}
41
- render={({ field }) => (
42
- <Checkbox
43
- color="primary"
44
- size="small"
45
- {...field}
46
- onChange={(e, checked) => (onChange ? onChange(field.name, checked) : field.onChange(e))}
47
- checked={field.value}
48
- disabled={disabled}
49
- />
50
- )}
51
- />
52
- }
53
- />
54
- );
55
- };
56
-
57
- export default ControlCheckbox;