@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.
- package/{index.ts → index.d.ts} +3 -3
- package/index.esm.js +1 -0
- package/index.umd.js +1 -0
- package/package.json +5 -2
- package/src/interfaces/common.d.ts +10 -0
- package/src/interfaces/definition.d.ts +117 -0
- package/src/interfaces/{index.ts → index.d.ts} +3 -3
- package/src/interfaces/ui.d.ts +33 -0
- package/src/lib/Alert/Alert.d.ts +53 -0
- package/src/lib/Alert/index.d.ts +1 -0
- package/src/lib/Definition/CreateDefinition/CreateDefinition.d.ts +11 -0
- package/src/lib/Definition/CreateDefinition/{index.ts → index.d.ts} +1 -1
- package/src/lib/Definition/DefinitionFiller/DefinitionFiller.d.ts +8 -0
- package/src/lib/Definition/DefinitionFiller/WidgetDefinitionFiller.d.ts +9 -0
- package/src/lib/Definition/DefinitionFiller/{index.ts → index.d.ts} +2 -2
- package/src/lib/Definition/{index.ts → index.d.ts} +2 -2
- package/src/lib/DemPropertyField/DemPropertyField.d.ts +59 -0
- package/src/lib/DemPropertyField/DemPropertyView/DemPropertyView.d.ts +8 -0
- package/src/lib/DemPropertyField/DemPropertyView/{index.ts → index.d.ts} +1 -1
- package/src/lib/DemPropertyField/MultipleDemField/MultipleDemField.d.ts +9 -0
- package/src/lib/DemPropertyField/MultipleDemField/{index.tsx → index.d.ts} +1 -1
- package/src/lib/DemPropertyField/RestrictedValuesEditor.d.ts +6 -0
- package/src/lib/DemPropertyField/SingleDemField/SingleDemField.d.ts +9 -0
- package/src/lib/DemPropertyField/SingleDemField/{index.ts → index.d.ts} +1 -1
- package/src/lib/DemPropertyField/{index.ts → index.d.ts} +2 -2
- package/src/lib/DemPropertyField/styles.d.ts +2 -0
- package/src/lib/DemPropertyField/widgets/DemBooleanWidget.d.ts +7 -0
- package/src/lib/DemPropertyField/widgets/DemDateTimeWidget.d.ts +9 -0
- package/src/lib/DemPropertyField/widgets/DemDateWidget.d.ts +9 -0
- package/src/lib/DemPropertyField/widgets/DemFieldWidget.d.ts +11 -0
- package/src/lib/DemPropertyField/widgets/DemFloatWidget.d.ts +10 -0
- package/src/lib/DemPropertyField/widgets/DemIntegerWidget.d.ts +10 -0
- package/src/lib/DemPropertyField/widgets/DemJsonWidget.d.ts +9 -0
- package/src/lib/DemPropertyField/widgets/DemStringWidget.d.ts +10 -0
- package/src/lib/DemPropertyField/widgets/DemTimeWidget.d.ts +9 -0
- package/src/lib/DemPropertyField/widgets/{index.ts → index.d.ts} +1 -1
- package/src/lib/Forms/BackButton.d.ts +7 -0
- package/src/lib/Forms/ControlAceEditor.d.ts +20 -0
- package/src/lib/Forms/ControlAutocomplete.d.ts +49 -0
- package/src/lib/Forms/ControlCheckbox.d.ts +30 -0
- package/src/lib/Forms/ControlDebouncedInput.d.ts +4 -0
- package/src/lib/Forms/ControlInput.d.ts +54 -0
- package/src/lib/Forms/ControlNumberInput.d.ts +43 -0
- package/src/lib/Forms/ControlQueryAutocomplete.d.ts +7 -0
- package/src/lib/Forms/ControlRadioBtn.d.ts +26 -0
- package/src/lib/Forms/ControlSelect.d.ts +66 -0
- package/src/lib/Forms/CopyButton.d.ts +21 -0
- package/src/lib/Forms/{index.ts → index.d.ts} +11 -10
- package/src/lib/InfoItem/InfoItem.d.ts +10 -0
- package/src/lib/InfoItem/{index.ts → index.d.ts} +1 -1
- package/src/lib/InfoItem/styles.d.ts +2 -0
- package/src/lib/JsonPathPicker/JsonPathPicker.d.ts +10 -0
- package/src/lib/JsonPathPicker/PropertyStep.d.ts +11 -0
- package/src/lib/JsonPathPicker/{index.ts → index.d.ts} +1 -1
- package/src/lib/JsonView/JsonView.d.ts +9 -0
- package/src/lib/JsonView/{index.ts → index.d.ts} +1 -1
- package/src/lib/Loader/Loader.d.ts +21 -0
- package/src/lib/Loader/{index.ts → index.d.ts} +1 -1
- package/src/lib/Modals/JsonModalView.d.ts +10 -0
- package/src/lib/Modals/{index.ts → index.d.ts} +1 -1
- package/src/lib/Property/PropertyValueField/BooleanValueField.d.ts +7 -0
- package/src/lib/Property/PropertyValueField/DateTimeValueField.d.ts +9 -0
- package/src/lib/Property/PropertyValueField/DateValueField.d.ts +9 -0
- package/src/lib/Property/PropertyValueField/EntityValueField.d.ts +9 -0
- package/src/lib/Property/PropertyValueField/JsonValueField.d.ts +10 -0
- package/src/lib/Property/PropertyValueField/PropertyValue.d.ts +10 -0
- package/src/lib/Property/PropertyValueField/PropertyValueField.d.ts +9 -0
- package/src/lib/Property/PropertyValueField/StringValueField.d.ts +9 -0
- package/src/lib/Property/PropertyValueField/TimeValueField.d.ts +9 -0
- package/src/lib/Property/PropertyValueField/ValueComponent.d.ts +15 -0
- package/src/lib/Property/PropertyValueField/{index.ts → index.d.ts} +2 -1
- package/src/lib/Property/PropertyWidget/PropertyWidget.d.ts +9 -0
- package/src/lib/Property/PropertyWidget/{index.ts → index.d.ts} +1 -1
- package/src/lib/Property/UpsertProperty/CreatePropertiesList.d.ts +13 -0
- package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.d.ts +10 -0
- package/src/lib/Property/UpsertProperty/CustomPropertyField.d.ts +7 -0
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.d.ts +6 -0
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.d.ts +7 -0
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.d.ts +8 -0
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.d.ts +6 -0
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.d.ts +10 -0
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.d.ts +6 -0
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/{index.ts → index.d.ts} +1 -1
- package/src/lib/Property/UpsertProperty/{index.ts → index.d.ts} +2 -2
- package/src/lib/Property/UpsertProperty/useCustomFields.d.ts +6 -0
- package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.d.ts +8 -0
- package/src/lib/Property/ViewPropertiesList/{index.ts → index.d.ts} +1 -1
- package/src/lib/Property/ViewProperty/EntityPropertiesShortView.d.ts +9 -0
- package/src/lib/Property/ViewProperty/EntityPropertiesView.d.ts +8 -0
- package/src/lib/Property/ViewProperty/PropertyDataTable.d.ts +7 -0
- package/src/lib/Property/ViewProperty/PropertyItem.d.ts +9 -0
- package/src/lib/Property/ViewProperty/ViewProperty.d.ts +9 -0
- package/src/lib/Property/ViewProperty/{index.ts → index.d.ts} +1 -1
- package/src/lib/Property/{index.ts → index.d.ts} +4 -4
- package/src/lib/Status/Status.d.ts +7 -0
- package/src/lib/Status/{index.ts → index.d.ts} +1 -1
- package/src/lib/Status/styles.d.ts +2 -0
- package/src/lib/StepperView/StepperView.d.ts +10 -0
- package/src/lib/StepperView/index.d.ts +1 -0
- package/src/lib/Table/Table.d.ts +49 -0
- package/src/lib/Table/TableColumnMenu.d.ts +3 -0
- package/src/lib/Table/TablePagination.d.ts +3 -0
- package/src/lib/Table/index.d.ts +1 -0
- package/src/lib/Table/styles.d.ts +2 -0
- package/src/lib/Table/usePagination.d.ts +5 -0
- package/src/lib/Table/useTableQueryPagination.d.ts +11 -0
- package/src/lib/Table/useTableQuerySorting.d.ts +6 -0
- package/src/lib/Tabs/RouteTabs.d.ts +11 -0
- package/src/lib/Tabs/TabPanel.d.ts +25 -0
- package/src/lib/Tabs/{index.ts → index.d.ts} +2 -2
- package/src/lib/TemplateContent/ExpressionDecorator.d.ts +5 -0
- package/src/lib/TemplateContent/TemplateContentEditor.d.ts +9 -0
- package/src/lib/TemplateContent/{index.ts → index.d.ts} +1 -1
- package/src/lib/{index.ts → index.d.ts} +15 -14
- package/src/utils/common.d.ts +7 -0
- package/src/utils/dem.d.ts +7 -0
- package/src/utils/hooks.d.ts +7 -0
- package/src/utils/{index.ts → index.d.ts} +5 -5
- package/src/utils/ui-utils.d.ts +7 -0
- package/src/utils/validators.d.ts +12 -0
- package/.babelrc +0 -12
- package/.eslintrc.json +0 -22
- package/jest.config.js +0 -9
- package/project.json +0 -69
- package/rollup.config.js +0 -135
- package/src/interfaces/common.ts +0 -12
- package/src/interfaces/definition.ts +0 -143
- package/src/interfaces/ui.ts +0 -35
- package/src/lib/Alert/Alert.tsx +0 -108
- package/src/lib/Alert/index.ts +0 -1
- package/src/lib/Definition/CreateDefinition/CreateDefinition.tsx +0 -74
- package/src/lib/Definition/DefinitionFiller/DefinitionFiller.tsx +0 -85
- package/src/lib/Definition/DefinitionFiller/WidgetDefinitionFiller.tsx +0 -96
- package/src/lib/DemPropertyField/DemPropertyField.tsx +0 -93
- package/src/lib/DemPropertyField/DemPropertyView/DemPropertyView.tsx +0 -44
- package/src/lib/DemPropertyField/MultipleDemField/MultipleDemField.tsx +0 -293
- package/src/lib/DemPropertyField/RestrictedValuesEditor.tsx +0 -63
- package/src/lib/DemPropertyField/SingleDemField/SingleDemField.tsx +0 -156
- package/src/lib/DemPropertyField/styles.ts +0 -50
- package/src/lib/DemPropertyField/widgets/DemBooleanWidget.tsx +0 -26
- package/src/lib/DemPropertyField/widgets/DemDateTimeWidget.tsx +0 -34
- package/src/lib/DemPropertyField/widgets/DemDateWidget.tsx +0 -33
- package/src/lib/DemPropertyField/widgets/DemFieldWidget.tsx +0 -67
- package/src/lib/DemPropertyField/widgets/DemFloatWidget.tsx +0 -49
- package/src/lib/DemPropertyField/widgets/DemIntegerWidget.tsx +0 -63
- package/src/lib/DemPropertyField/widgets/DemJsonWidget.tsx +0 -33
- package/src/lib/DemPropertyField/widgets/DemStringWidget.tsx +0 -35
- package/src/lib/DemPropertyField/widgets/DemTimeWidget.tsx +0 -46
- package/src/lib/Forms/BackButton.tsx +0 -45
- package/src/lib/Forms/ControlAceEditor.tsx +0 -103
- package/src/lib/Forms/ControlAutocomplete.tsx +0 -134
- package/src/lib/Forms/ControlCheckbox.tsx +0 -57
- package/src/lib/Forms/ControlDebouncedInput.tsx +0 -69
- package/src/lib/Forms/ControlInput.tsx +0 -102
- package/src/lib/Forms/ControlNumberInput.tsx +0 -144
- package/src/lib/Forms/ControlRadioBtn.tsx +0 -46
- package/src/lib/Forms/ControlSelect.tsx +0 -135
- package/src/lib/Forms/CopyButton.tsx +0 -49
- package/src/lib/InfoItem/InfoItem.tsx +0 -39
- package/src/lib/InfoItem/styles.ts +0 -17
- package/src/lib/JsonPathPicker/JsonPathPicker.tsx +0 -71
- package/src/lib/JsonPathPicker/PropertyStep.tsx +0 -74
- package/src/lib/JsonView/JsonView.tsx +0 -43
- package/src/lib/Loader/Loader.tsx +0 -41
- package/src/lib/Modals/JsonModalView.tsx +0 -52
- package/src/lib/Property/PropertyValueField/BooleanValueField.tsx +0 -41
- package/src/lib/Property/PropertyValueField/DateTimeValueField.tsx +0 -59
- package/src/lib/Property/PropertyValueField/DateValueField.tsx +0 -59
- package/src/lib/Property/PropertyValueField/EntityValueField.tsx +0 -33
- package/src/lib/Property/PropertyValueField/JsonValueField.tsx +0 -64
- package/src/lib/Property/PropertyValueField/PropertyValue.tsx +0 -97
- package/src/lib/Property/PropertyValueField/PropertyValueField.tsx +0 -86
- package/src/lib/Property/PropertyValueField/StringValueField.tsx +0 -21
- package/src/lib/Property/PropertyValueField/TimeValueField.tsx +0 -68
- package/src/lib/Property/PropertyValueField/ValueComponent.tsx +0 -63
- package/src/lib/Property/PropertyWidget/PropertyWidget.tsx +0 -167
- package/src/lib/Property/UpsertProperty/CreatePropertiesList.tsx +0 -131
- package/src/lib/Property/UpsertProperty/CreatePropertyFormFields.tsx +0 -147
- package/src/lib/Property/UpsertProperty/CustomPropertyField.tsx +0 -40
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/BigDecimalPropertyFields.tsx +0 -41
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/DateAdditionalFields.tsx +0 -27
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityAdditionalFields.tsx +0 -133
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/EntityReferencePropertyFields.tsx +0 -46
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/PropertyAdditionalFields.tsx +0 -52
- package/src/lib/Property/UpsertProperty/PropertyAdditionalFields/StringPropertyFields.tsx +0 -98
- package/src/lib/Property/UpsertProperty/useCustomFields.ts +0 -22
- package/src/lib/Property/ViewPropertiesList/ViewPropertiesList.tsx +0 -50
- package/src/lib/Property/ViewProperty/EntityPropertiesShortView.tsx +0 -41
- package/src/lib/Property/ViewProperty/EntityPropertiesView.tsx +0 -48
- package/src/lib/Property/ViewProperty/PropertyDataTable.tsx +0 -139
- package/src/lib/Property/ViewProperty/PropertyItem.tsx +0 -46
- package/src/lib/Property/ViewProperty/ViewProperty.tsx +0 -52
- package/src/lib/Status/Status.tsx +0 -15
- package/src/lib/Status/styles.ts +0 -14
- package/src/lib/Table/Table.tsx +0 -116
- package/src/lib/Table/TableColumnMenu.tsx +0 -12
- package/src/lib/Table/TablePagination.tsx +0 -42
- package/src/lib/Table/index.ts +0 -1
- package/src/lib/Table/styles.ts +0 -59
- package/src/lib/Table/usePagination.ts +0 -15
- package/src/lib/Table/useTableQueryPagination.ts +0 -49
- package/src/lib/Table/useTableQuerySorting.ts +0 -52
- package/src/lib/Tabs/RouteTabs.tsx +0 -54
- package/src/lib/Tabs/TabPanel.tsx +0 -42
- package/src/lib/TemplateContent/ExpressionDecorator.tsx +0 -7
- package/src/lib/TemplateContent/TemplateContentEditor.tsx +0 -144
- package/src/utils/common.ts +0 -68
- package/src/utils/dem.ts +0 -78
- package/src/utils/hooks.ts +0 -41
- package/src/utils/ui-utils.tsx +0 -71
- package/src/utils/validators.ts +0 -130
- package/tsconfig.json +0 -24
- package/tsconfig.lib.json +0 -22
- 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;
|