@leav/ui 0.3.6-23e93ac → 0.3.6-24f63f4
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/dist/__mocks__/common/attribute.js +0 -1
- package/dist/__mocks__/common/attribute.js.map +1 -1
- package/dist/__mocks__/common/form.js +2 -0
- package/dist/__mocks__/common/form.js.map +1 -1
- package/dist/__mocks__/common/value.js +2 -2
- package/dist/__mocks__/common/value.js.map +1 -1
- package/dist/_gqlTypes/index.d.ts +150 -81
- package/dist/_gqlTypes/index.js +50 -5
- package/dist/_gqlTypes/index.js.map +1 -1
- package/dist/_queries/attributes/attributeDetailsFragment.js +0 -1
- package/dist/_queries/attributes/attributeDetailsFragment.js.map +1 -1
- package/dist/_queries/records/getRecordPropertiesQuery.d.ts +23 -13
- package/dist/_queries/records/getRecordPropertiesQuery.js +10 -4
- package/dist/_queries/records/getRecordPropertiesQuery.js.map +1 -1
- package/dist/_queries/records/getRecordsFromLibraryQuery.js +1 -0
- package/dist/_queries/records/getRecordsFromLibraryQuery.js.map +1 -1
- package/dist/_queries/values/valueDetailsFragment.js +8 -5
- package/dist/_queries/values/valueDetailsFragment.js.map +1 -1
- package/dist/_utils/typeguards.d.ts +2 -0
- package/dist/_utils/typeguards.js +2 -0
- package/dist/_utils/typeguards.js.map +1 -0
- package/dist/components/Explorer/DataView.d.ts +6 -0
- package/dist/components/Explorer/DataView.js +16 -0
- package/dist/components/Explorer/DataView.js.map +1 -0
- package/dist/components/Explorer/Explorer.d.ts +4 -0
- package/dist/components/Explorer/Explorer.js +8 -0
- package/dist/components/Explorer/Explorer.js.map +1 -0
- package/dist/components/Explorer/index.d.ts +1 -0
- package/dist/components/Explorer/index.js +5 -0
- package/dist/components/Explorer/index.js.map +1 -0
- package/dist/components/Explorer/tsconfig.json +6 -0
- package/dist/components/Explorer/types.d.ts +6 -0
- package/dist/components/Explorer/types.js +2 -0
- package/dist/components/Explorer/types.js.map +1 -0
- package/dist/components/Explorer/useExplorerData.d.ts +5 -0
- package/dist/components/Explorer/useExplorerData.js +21 -0
- package/dist/components/Explorer/useExplorerData.js.map +1 -0
- package/dist/components/RecordEdition/EditRecord/EditRecord.js +2 -2
- package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/_types.d.ts +5 -5
- package/dist/components/RecordEdition/EditRecordContent/_types.js +5 -5
- package/dist/components/RecordEdition/EditRecordContent/_types.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/antdUtils.js +14 -11
- package/dist/components/RecordEdition/EditRecordContent/antdUtils.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/reducers/linkFieldReducer/linkFieldReducer.d.ts +2 -2
- package/dist/components/RecordEdition/EditRecordContent/reducers/linkFieldReducer/linkFieldReducer.js +8 -8
- package/dist/components/RecordEdition/EditRecordContent/reducers/linkFieldReducer/linkFieldReducer.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/reducers/standardFieldReducer/standardFieldReducer.d.ts +22 -3
- package/dist/components/RecordEdition/EditRecordContent/reducers/standardFieldReducer/standardFieldReducer.js +70 -17
- package/dist/components/RecordEdition/EditRecordContent/reducers/standardFieldReducer/standardFieldReducer.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/reducers/standardFieldReducer/standardFieldReducerContext.d.ts +7 -0
- package/dist/components/RecordEdition/EditRecordContent/reducers/standardFieldReducer/standardFieldReducerContext.js +9 -0
- package/dist/components/RecordEdition/EditRecordContent/reducers/standardFieldReducer/standardFieldReducerContext.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/reducers/standardFieldReducer/useStandardFieldReducer.d.ts +1 -0
- package/dist/components/RecordEdition/EditRecordContent/reducers/standardFieldReducer/useStandardFieldReducer.js +7 -0
- package/dist/components/RecordEdition/EditRecordContent/reducers/standardFieldReducer/useStandardFieldReducer.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/shared/AddValueBtn/AddValueBtn.d.ts +2 -2
- package/dist/components/RecordEdition/EditRecordContent/shared/AddValueBtn/AddValueBtn.js +2 -2
- package/dist/components/RecordEdition/EditRecordContent/shared/AddValueBtn/AddValueBtn.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/ValueDetailsBtn.js +1 -1
- package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/ValueDetailsBtn.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/useValueDetailsButton.js +1 -1
- package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/useValueDetailsButton.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.d.ts +4 -4
- package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js +8 -8
- package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator/ValuesVersionIndicator.d.ts +2 -2
- package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator/ValuesVersionIndicator.js +2 -2
- package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator/ValuesVersionIndicator.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +11 -8
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSBooleanWrapper.js +21 -7
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSBooleanWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.d.ts +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js +37 -10
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.d.ts +15 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js +91 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputEncryptedWrapper.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.d.ts +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js +36 -12
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.d.ts +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js +41 -14
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.d.ts +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js +48 -9
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/{DSInputPasswordWrapper.d.ts → DSRichTextWrapper.d.ts} +3 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js +82 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/Inputs/CheckboxInput.js +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/Inputs/CheckboxInput.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.d.ts +3 -3
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js +20 -22
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValueDisplayHandler/StandardFieldValueDisplayHandler.d.ts +13 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValueDisplayHandler/StandardFieldValueDisplayHandler.js +79 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValueDisplayHandler/StandardFieldValueDisplayHandler.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValueDisplayHandler/StandardFieldValueRead/StandardFieldValueRead.d.ts +9 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValueDisplayHandler/StandardFieldValueRead/StandardFieldValueRead.js +107 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValueDisplayHandler/StandardFieldValueRead/StandardFieldValueRead.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValueDisplayHandler/index.d.ts +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValueDisplayHandler/index.js +5 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValueDisplayHandler/index.js.map +1 -0
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +4 -4
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
- package/dist/components/SimpleErrorBoundary/SimpleErrorBoundary.d.ts +6 -6
- package/dist/components/SimpleErrorBoundary/SimpleErrorBoundary.js +2 -2
- package/dist/components/SimpleErrorBoundary/SimpleErrorBoundary.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/useLang/useLang.d.ts +1 -1
- package/dist/hooks/useLang/useLang.js +2 -2
- package/dist/hooks/useLang/useLang.js.map +1 -1
- package/dist/hooks/useRefreshFieldValues/useRefreshFieldValues.js +7 -2
- package/dist/hooks/useRefreshFieldValues/useRefreshFieldValues.js.map +1 -1
- package/dist/locales/en/shared.json +1 -0
- package/dist/locales/fr/shared.json +1 -0
- package/package.json +2 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputPasswordWrapper.js +0 -63
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputPasswordWrapper.js.map +0 -1
|
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
// This file is released under LGPL V3
|
|
4
4
|
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
5
5
|
import { KitInputNumber } from 'aristid-ds';
|
|
6
|
-
import { useState } from 'react';
|
|
6
|
+
import { useEffect, useRef, useState } from 'react';
|
|
7
7
|
import { Form } from 'antd';
|
|
8
8
|
import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
|
|
9
9
|
import styled from 'styled-components';
|
|
@@ -15,7 +15,7 @@ const KitInputNumberStyled = styled(KitInputNumber) `
|
|
|
15
15
|
color: ${({ $shouldHighlightColor }) => $shouldHighlightColor ? 'var(--general-colors-primary-400)' : 'initial'};
|
|
16
16
|
}
|
|
17
17
|
`;
|
|
18
|
-
export const DSInputNumberWrapper = ({ value, onChange, state, attribute, fieldValue, handleSubmit, shouldShowValueDetailsButton = false }) => {
|
|
18
|
+
export const DSInputNumberWrapper = ({ value, onChange, state, attribute, fieldValue, handleSubmit, handleBlur, shouldShowValueDetailsButton = false }) => {
|
|
19
19
|
if (!onChange) {
|
|
20
20
|
throw Error('DSInputNumberWrapper should be used inside a antd Form.Item');
|
|
21
21
|
}
|
|
@@ -27,18 +27,33 @@ export const DSInputNumberWrapper = ({ value, onChange, state, attribute, fieldV
|
|
|
27
27
|
attribute
|
|
28
28
|
});
|
|
29
29
|
const [hasChanged, setHasChanged] = useState(false);
|
|
30
|
-
const
|
|
30
|
+
const inputRef = useRef(null);
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (fieldValue.isEditing && inputRef.current) {
|
|
33
|
+
inputRef.current.focus(); // To automatically open the date picker
|
|
34
|
+
}
|
|
35
|
+
}, [fieldValue.isEditing]);
|
|
36
|
+
const _resetToInheritedOrCalculatedValue = () => {
|
|
31
37
|
setHasChanged(false);
|
|
32
|
-
|
|
38
|
+
if (state.isInheritedValue) {
|
|
39
|
+
onChange(state.inheritedValue.raw_value);
|
|
40
|
+
}
|
|
41
|
+
else if (state.isCalculatedValue) {
|
|
42
|
+
onChange(state.calculatedValue.raw_value);
|
|
43
|
+
}
|
|
33
44
|
handleSubmit('', state.attribute.id);
|
|
34
45
|
};
|
|
35
46
|
const _handleOnBlur = (event) => {
|
|
47
|
+
if (!hasChanged) {
|
|
48
|
+
handleBlur();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
36
51
|
const valueToSubmit = event.target.value;
|
|
37
|
-
if (valueToSubmit === '' && state.isInheritedValue) {
|
|
38
|
-
|
|
52
|
+
if (valueToSubmit === '' && (state.isInheritedValue || state.isCalculatedValue)) {
|
|
53
|
+
_resetToInheritedOrCalculatedValue();
|
|
39
54
|
return;
|
|
40
55
|
}
|
|
41
|
-
if (hasChanged || !state.isInheritedValue) {
|
|
56
|
+
if (hasChanged || (!state.isInheritedValue && !state.isCalculatedValue)) {
|
|
42
57
|
handleSubmit(valueToSubmit, state.attribute.id);
|
|
43
58
|
}
|
|
44
59
|
onChange(valueToSubmit);
|
|
@@ -47,11 +62,20 @@ export const DSInputNumberWrapper = ({ value, onChange, state, attribute, fieldV
|
|
|
47
62
|
setHasChanged(true);
|
|
48
63
|
onChange(inputValue);
|
|
49
64
|
};
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
65
|
+
const _getHelper = () => {
|
|
66
|
+
if (state.isInheritedOverrideValue) {
|
|
67
|
+
return t('record_edition.inherited_input_helper', {
|
|
53
68
|
inheritedValue: state.inheritedValue.raw_value
|
|
54
|
-
})
|
|
55
|
-
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
else if (state.isCalculatedOverrideValue) {
|
|
72
|
+
return t('record_edition.calculated_input_helper', {
|
|
73
|
+
calculatedValue: state.calculatedValue.raw_value
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return;
|
|
77
|
+
};
|
|
78
|
+
const label = localizedTranslation(state.formElement.settings.label, lang);
|
|
79
|
+
return (_jsx(KitInputNumberStyled, { ref: inputRef, required: state.formElement.settings.required, label: label, onInfoClick: shouldShowValueDetailsButton ? onValueDetailsButtonClick : null, status: errors.length > 0 ? 'error' : undefined, helper: _getHelper(), value: value, onChange: _handleOnChange, disabled: state.isReadOnly, onBlur: _handleOnBlur, "$shouldHighlightColor": !hasChanged && (state.isInheritedNotOverrideValue || state.isCalculatedNotOverrideValue) }));
|
|
56
80
|
};
|
|
57
81
|
//# sourceMappingURL=DSInputNumberWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DSInputNumberWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAuD,QAAQ,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DSInputNumberWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ interface IDSInputWrapperProps extends IProvidedByAntFormItem<InputProps> {
|
|
|
8
8
|
attribute: RecordFormAttributeFragment;
|
|
9
9
|
fieldValue: IStandardFieldValue;
|
|
10
10
|
handleSubmit: (value: string, id?: string) => void;
|
|
11
|
+
handleBlur: () => void;
|
|
11
12
|
shouldShowValueDetailsButton?: boolean;
|
|
12
13
|
}
|
|
13
14
|
export declare const DSInputWrapper: FunctionComponent<IDSInputWrapperProps>;
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
// This file is released under LGPL V3
|
|
4
4
|
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
5
5
|
import { KitInput } from 'aristid-ds';
|
|
6
|
-
import { useState } from 'react';
|
|
6
|
+
import { useEffect, useRef, useState } from 'react';
|
|
7
7
|
import { Form } from 'antd';
|
|
8
8
|
import styled from 'styled-components';
|
|
9
9
|
import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
|
|
@@ -13,7 +13,7 @@ import { localizedTranslation } from '@leav/utils';
|
|
|
13
13
|
const KitInputStyled = styled(KitInput) `
|
|
14
14
|
color: ${({ $shouldHighlightColor }) => ($shouldHighlightColor ? 'var(--general-colors-primary-400)' : 'initial')};
|
|
15
15
|
`;
|
|
16
|
-
export const DSInputWrapper = ({ value, onChange, state, attribute, fieldValue, handleSubmit, shouldShowValueDetailsButton = false }) => {
|
|
16
|
+
export const DSInputWrapper = ({ value, onChange, state, attribute, fieldValue, handleSubmit, handleBlur, shouldShowValueDetailsButton = false }) => {
|
|
17
17
|
const { t } = useSharedTranslation();
|
|
18
18
|
const { errors } = Form.Item.useStatus();
|
|
19
19
|
const { onValueDetailsButtonClick } = useValueDetailsButton({
|
|
@@ -22,18 +22,33 @@ export const DSInputWrapper = ({ value, onChange, state, attribute, fieldValue,
|
|
|
22
22
|
});
|
|
23
23
|
const [hasChanged, setHasChanged] = useState(false);
|
|
24
24
|
const { lang: availableLang } = useLang();
|
|
25
|
-
const
|
|
25
|
+
const inputRef = useRef(null);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (fieldValue.isEditing && inputRef.current) {
|
|
28
|
+
inputRef.current.focus();
|
|
29
|
+
}
|
|
30
|
+
}, [fieldValue.isEditing]);
|
|
31
|
+
const _resetToInheritedOrCalculatedValue = () => {
|
|
26
32
|
setHasChanged(false);
|
|
27
|
-
|
|
33
|
+
if (state.isInheritedValue) {
|
|
34
|
+
onChange(state.inheritedValue.raw_value);
|
|
35
|
+
}
|
|
36
|
+
else if (state.isCalculatedValue) {
|
|
37
|
+
onChange(state.calculatedValue.raw_value);
|
|
38
|
+
}
|
|
28
39
|
handleSubmit('', state.attribute.id);
|
|
29
40
|
};
|
|
30
41
|
const _handleOnBlur = (event) => {
|
|
42
|
+
if (!hasChanged) {
|
|
43
|
+
handleBlur();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
31
46
|
const valueToSubmit = event.target.value;
|
|
32
|
-
if (valueToSubmit === '' && state.isInheritedValue) {
|
|
33
|
-
|
|
47
|
+
if (valueToSubmit === '' && (state.isInheritedValue || state.isCalculatedValue)) {
|
|
48
|
+
_resetToInheritedOrCalculatedValue();
|
|
34
49
|
return;
|
|
35
50
|
}
|
|
36
|
-
if (hasChanged || !state.isInheritedValue) {
|
|
51
|
+
if (hasChanged || (!state.isInheritedValue && !state.isCalculatedValue)) {
|
|
37
52
|
handleSubmit(valueToSubmit, state.attribute.id);
|
|
38
53
|
}
|
|
39
54
|
onChange(event);
|
|
@@ -41,17 +56,29 @@ export const DSInputWrapper = ({ value, onChange, state, attribute, fieldValue,
|
|
|
41
56
|
const _handleOnChange = (event) => {
|
|
42
57
|
setHasChanged(true);
|
|
43
58
|
const inputValue = event.target.value;
|
|
44
|
-
if (state.isInheritedValue && inputValue === '' && event.type === 'click') {
|
|
45
|
-
|
|
59
|
+
if ((state.isInheritedValue || state.isCalculatedValue) && inputValue === '' && event.type === 'click') {
|
|
60
|
+
_resetToInheritedOrCalculatedValue();
|
|
46
61
|
return;
|
|
47
62
|
}
|
|
63
|
+
if (inputValue === '' && event.type === 'click') {
|
|
64
|
+
handleSubmit(inputValue, state.attribute.id);
|
|
65
|
+
}
|
|
48
66
|
onChange(event);
|
|
49
67
|
};
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
68
|
+
const _getHelper = () => {
|
|
69
|
+
if (state.isInheritedOverrideValue) {
|
|
70
|
+
return t('record_edition.inherited_input_helper', {
|
|
53
71
|
inheritedValue: state.inheritedValue.raw_value
|
|
54
|
-
})
|
|
55
|
-
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
else if (state.isCalculatedOverrideValue) {
|
|
75
|
+
return t('record_edition.calculated_input_helper', {
|
|
76
|
+
calculatedValue: state.calculatedValue.raw_value
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return;
|
|
80
|
+
};
|
|
81
|
+
const label = localizedTranslation(state.formElement.settings.label, availableLang);
|
|
82
|
+
return (_jsx(KitInputStyled, { ref: inputRef, required: state.formElement.settings.required, label: label, onInfoClick: shouldShowValueDetailsButton ? onValueDetailsButtonClick : null, status: errors.length > 0 ? 'error' : undefined, helper: _getHelper(), value: value, disabled: state.isReadOnly, allowClear: !state.isInheritedNotOverrideValue && !state.isCalculatedNotOverrideValue, onBlur: _handleOnBlur, onChange: _handleOnChange, "$shouldHighlightColor": !hasChanged && (state.isInheritedNotOverrideValue || state.isCalculatedNotOverrideValue) }));
|
|
56
83
|
};
|
|
57
84
|
//# sourceMappingURL=DSInputWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DSInputWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"DSInputWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ interface IDSRangePickerWrapperProps extends IProvidedByAntFormItem<RangePickerP
|
|
|
8
8
|
attribute: RecordFormAttributeFragment;
|
|
9
9
|
fieldValue: IStandardFieldValue;
|
|
10
10
|
handleSubmit: (value: StandardValueTypes, id?: string) => void;
|
|
11
|
+
handleBlur: () => void;
|
|
11
12
|
shouldShowValueDetailsButton?: boolean;
|
|
12
13
|
}
|
|
13
14
|
export declare const DSRangePickerWrapper: FunctionComponent<IDSRangePickerWrapperProps>;
|
|
@@ -3,6 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
// This file is released under LGPL V3
|
|
4
4
|
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
5
5
|
import { KitDatePicker } from 'aristid-ds';
|
|
6
|
+
import { useEffect, useRef } from 'react';
|
|
6
7
|
import { Form } from 'antd';
|
|
7
8
|
import dayjs from 'dayjs';
|
|
8
9
|
import styled from 'styled-components';
|
|
@@ -13,7 +14,7 @@ import { localizedTranslation } from '@leav/utils';
|
|
|
13
14
|
const KitDatePickerRangePickerStyled = styled(KitDatePicker.RangePicker) `
|
|
14
15
|
color: ${({ $shouldHighlightColor }) => ($shouldHighlightColor ? 'var(--general-colors-primary-400)' : 'initial')};
|
|
15
16
|
`;
|
|
16
|
-
export const DSRangePickerWrapper = ({ value, onChange, state, attribute, fieldValue, handleSubmit, shouldShowValueDetailsButton = false }) => {
|
|
17
|
+
export const DSRangePickerWrapper = ({ value, onChange, state, attribute, fieldValue, handleSubmit, handleBlur, shouldShowValueDetailsButton = false }) => {
|
|
17
18
|
const { t } = useSharedTranslation();
|
|
18
19
|
const { lang: availableLangs } = useLang();
|
|
19
20
|
const { errors } = Form.Item.useStatus();
|
|
@@ -21,13 +22,30 @@ export const DSRangePickerWrapper = ({ value, onChange, state, attribute, fieldV
|
|
|
21
22
|
value: fieldValue?.value,
|
|
22
23
|
attribute
|
|
23
24
|
});
|
|
24
|
-
const
|
|
25
|
-
|
|
25
|
+
const inputRef = useRef();
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (fieldValue.isEditing && inputRef.current) {
|
|
28
|
+
inputRef.current.nativeElement.click(); // To automatically open the date picker
|
|
29
|
+
}
|
|
30
|
+
}, [fieldValue.isEditing]);
|
|
31
|
+
const _resetToInheritedOrCalculatedValue = () => {
|
|
32
|
+
if (state.isInheritedValue) {
|
|
26
33
|
onChange([
|
|
27
34
|
dayjs.unix(Number(state.inheritedValue.raw_value.from)),
|
|
28
35
|
dayjs.unix(Number(state.inheritedValue.raw_value.to))
|
|
29
36
|
], state.inheritedValue.raw_value);
|
|
30
|
-
|
|
37
|
+
}
|
|
38
|
+
else if (state.isCalculatedValue) {
|
|
39
|
+
onChange([
|
|
40
|
+
dayjs.unix(Number(state.calculatedValue.raw_value.from)),
|
|
41
|
+
dayjs.unix(Number(state.calculatedValue.raw_value.to))
|
|
42
|
+
], state.calculatedValue.raw_value);
|
|
43
|
+
}
|
|
44
|
+
handleSubmit('', state.attribute.id);
|
|
45
|
+
};
|
|
46
|
+
const _handleDateChange = (rangePickerDates, ...antOnChangeParams) => {
|
|
47
|
+
if ((state.isInheritedValue || state.isCalculatedValue) && rangePickerDates === null) {
|
|
48
|
+
_resetToInheritedOrCalculatedValue();
|
|
31
49
|
return;
|
|
32
50
|
}
|
|
33
51
|
onChange(rangePickerDates, ...antOnChangeParams);
|
|
@@ -43,14 +61,35 @@ export const DSRangePickerWrapper = ({ value, onChange, state, attribute, fieldV
|
|
|
43
61
|
}
|
|
44
62
|
handleSubmit(datesToSave, state.attribute.id);
|
|
45
63
|
};
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
64
|
+
const _handleOpenChange = (open) => {
|
|
65
|
+
if (!open) {
|
|
66
|
+
handleBlur();
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const _getHelper = () => {
|
|
70
|
+
if (state.isInheritedOverrideValue) {
|
|
71
|
+
return t('record_edition.inherited_input_helper', {
|
|
49
72
|
inheritedValue: t('record_edition.date_range_from_to', {
|
|
50
73
|
from: state.inheritedValue.value.from,
|
|
51
74
|
to: state.inheritedValue.value.to
|
|
52
75
|
})
|
|
53
|
-
})
|
|
54
|
-
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else if (state.isCalculatedOverrideValue) {
|
|
79
|
+
return t('record_edition.calculated_input_helper', {
|
|
80
|
+
calculatedValue: t('record_edition.date_range_from_to', {
|
|
81
|
+
from: state.calculatedValue.value.from,
|
|
82
|
+
to: state.calculatedValue.value.to
|
|
83
|
+
})
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
};
|
|
88
|
+
const label = localizedTranslation(state.formElement.settings.label, availableLangs);
|
|
89
|
+
return (_jsx(KitDatePickerRangePickerStyled
|
|
90
|
+
// @ts-expect-error - ref is not a valid prop for RangePicker but works at runtime
|
|
91
|
+
, {
|
|
92
|
+
// @ts-expect-error - ref is not a valid prop for RangePicker but works at runtime
|
|
93
|
+
ref: inputRef, value: value, onChange: _handleDateChange, label: label, required: state.formElement.settings.required, disabled: state.isReadOnly, allowClear: !state.isInheritedNotOverrideValue && !state.isCalculatedNotOverrideValue, status: errors.length > 0 ? 'error' : undefined, onInfoClick: shouldShowValueDetailsButton ? onValueDetailsButtonClick : null, onOpenChange: _handleOpenChange, helper: _getHelper(), "$shouldHighlightColor": state.isInheritedNotOverrideValue || state.isCalculatedNotOverrideValue }));
|
|
55
94
|
};
|
|
56
95
|
//# sourceMappingURL=DSRangePickerWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DSRangePickerWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"DSRangePickerWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,13 @@ import { IStandardFieldReducerState, IStandardFieldValue } from '../../../reduce
|
|
|
3
3
|
import { InputProps } from 'antd';
|
|
4
4
|
import { IProvidedByAntFormItem } from '../../../../../../components/RecordEdition/EditRecordContent/_types';
|
|
5
5
|
import { RecordFormAttributeFragment } from '../../../../../../_gqlTypes';
|
|
6
|
-
interface
|
|
6
|
+
interface IDSRichTextWrapperProps extends IProvidedByAntFormItem<InputProps> {
|
|
7
7
|
state: IStandardFieldReducerState;
|
|
8
8
|
attribute: RecordFormAttributeFragment;
|
|
9
9
|
fieldValue: IStandardFieldValue;
|
|
10
10
|
handleSubmit: (value: string, id?: string) => void;
|
|
11
|
+
handleBlur: () => void;
|
|
11
12
|
shouldShowValueDetailsButton?: boolean;
|
|
12
13
|
}
|
|
13
|
-
export declare const
|
|
14
|
+
export declare const DSRichTextWrapper: FunctionComponent<IDSRichTextWrapperProps>;
|
|
14
15
|
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// Copyright LEAV Solutions 2017
|
|
3
|
+
// This file is released under LGPL V3
|
|
4
|
+
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
5
|
+
import { useEffect, useRef, useState } from 'react';
|
|
6
|
+
import { Form } from 'antd';
|
|
7
|
+
import styled from 'styled-components';
|
|
8
|
+
import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
|
|
9
|
+
import { useValueDetailsButton } from '../../../../../../components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/useValueDetailsButton';
|
|
10
|
+
import { useLang } from '../../../../../../hooks';
|
|
11
|
+
import { localizedTranslation } from '@leav/utils';
|
|
12
|
+
import { KitRichText } from 'aristid-ds';
|
|
13
|
+
const KitRichTextStyled = styled(KitRichText) `
|
|
14
|
+
color: ${({ $shouldHighlightColor }) => ($shouldHighlightColor ? 'var(--general-colors-primary-400)' : 'initial')};
|
|
15
|
+
`;
|
|
16
|
+
const isEmptyValue = value => !value || value === '<p></p>';
|
|
17
|
+
export const DSRichTextWrapper = ({ value, onChange, state, attribute, fieldValue, handleSubmit, handleBlur, shouldShowValueDetailsButton = false }) => {
|
|
18
|
+
const { t } = useSharedTranslation();
|
|
19
|
+
const { errors } = Form.Item.useStatus();
|
|
20
|
+
const { onValueDetailsButtonClick } = useValueDetailsButton({
|
|
21
|
+
value: fieldValue?.value,
|
|
22
|
+
attribute
|
|
23
|
+
});
|
|
24
|
+
const [hasChanged, setHasChanged] = useState(false);
|
|
25
|
+
const { lang: availableLang } = useLang();
|
|
26
|
+
const inputRef = useRef(null);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (fieldValue.isEditing && inputRef.current) {
|
|
29
|
+
inputRef.current.children[0].focus();
|
|
30
|
+
}
|
|
31
|
+
}, [fieldValue.isEditing]);
|
|
32
|
+
const _resetToInheritedOrCalculatedValue = () => {
|
|
33
|
+
setHasChanged(false);
|
|
34
|
+
if (state.isInheritedValue) {
|
|
35
|
+
onChange(state.inheritedValue.raw_value);
|
|
36
|
+
}
|
|
37
|
+
else if (state.isCalculatedValue) {
|
|
38
|
+
onChange(state.calculatedValue.raw_value);
|
|
39
|
+
}
|
|
40
|
+
handleSubmit('', state.attribute.id);
|
|
41
|
+
};
|
|
42
|
+
const _handleOnBlur = inputValue => {
|
|
43
|
+
if (!hasChanged) {
|
|
44
|
+
handleBlur();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const valueToSubmit = isEmptyValue(inputValue) ? '' : inputValue;
|
|
48
|
+
if (valueToSubmit === '' && (state.isInheritedValue || state.isCalculatedValue)) {
|
|
49
|
+
_resetToInheritedOrCalculatedValue();
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (hasChanged || (!state.isInheritedValue && !state.isCalculatedValue)) {
|
|
53
|
+
handleSubmit(valueToSubmit, state.attribute.id);
|
|
54
|
+
}
|
|
55
|
+
onChange(valueToSubmit);
|
|
56
|
+
return;
|
|
57
|
+
};
|
|
58
|
+
const _handleOnChange = inputValue => {
|
|
59
|
+
setHasChanged(true);
|
|
60
|
+
if (state.isInheritedValue && isEmptyValue(inputValue)) {
|
|
61
|
+
_resetToInheritedOrCalculatedValue();
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
onChange(inputValue);
|
|
65
|
+
};
|
|
66
|
+
const _getHelper = () => {
|
|
67
|
+
if (state.isInheritedOverrideValue) {
|
|
68
|
+
return t('record_edition.inherited_input_helper', {
|
|
69
|
+
inheritedValue: state.inheritedValue.raw_value
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else if (state.isCalculatedOverrideValue) {
|
|
73
|
+
return t('record_edition.calculated_input_helper', {
|
|
74
|
+
calculatedValue: state.calculatedValue.raw_value
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
};
|
|
79
|
+
const label = localizedTranslation(state.formElement.settings.label, availableLang);
|
|
80
|
+
return (_jsx(KitRichTextStyled, { ref: inputRef, required: state.formElement.settings.required, label: label, onInfoClick: shouldShowValueDetailsButton ? onValueDetailsButtonClick : null, status: errors.length > 0 ? 'error' : undefined, helper: _getHelper(), value: value, disabled: state.isReadOnly, onChange: _handleOnChange, onBlur: _handleOnBlur, "$shouldHighlightColor": (!hasChanged && state.isInheritedNotOverrideValue) || state.isCalculatedNotOverrideValue }));
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=DSRichTextWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DSRichTextWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ function CheckboxInput({ state, fieldValue, onSubmit }) {
|
|
|
8
8
|
onSubmit(String(e.target.checked));
|
|
9
9
|
};
|
|
10
10
|
const { value } = fieldValue;
|
|
11
|
-
return (_jsx(Checkbox, { className: "nested-input", disabled: state.isReadOnly, checked: !!value?.
|
|
11
|
+
return (_jsx(Checkbox, { className: "nested-input", disabled: state.isReadOnly, checked: !!value?.payload, indeterminate: typeof value?.payload !== 'boolean', onChange: _handleCheckboxChange }));
|
|
12
12
|
}
|
|
13
13
|
export default CheckboxInput;
|
|
14
14
|
//# sourceMappingURL=CheckboxInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxInput.js","sourceRoot":"","sources":["../../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/Inputs/CheckboxInput.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,QAAQ,EAAC,MAAM,MAAM,CAAC;AAI9B,SAAS,aAAa,CAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAsB;IACrE,MAAM,qBAAqB,GAAG,CAAC,CAAsB,EAAE,EAAE;QACrD,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,EAAC,KAAK,EAAC,GAAG,UAAU,CAAC;IAE3B,OAAO,CACH,KAAC,QAAQ,IACL,SAAS,EAAC,cAAc,EACxB,QAAQ,EAAE,KAAK,CAAC,UAAU,EAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"CheckboxInput.js","sourceRoot":"","sources":["../../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/Inputs/CheckboxInput.tsx"],"names":[],"mappings":";AAAA,gCAAgC;AAChC,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,QAAQ,EAAC,MAAM,MAAM,CAAC;AAI9B,SAAS,aAAa,CAAC,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAsB;IACrE,MAAM,qBAAqB,GAAG,CAAC,CAAsB,EAAE,EAAE;QACrD,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,EAAC,KAAK,EAAC,GAAG,UAAU,CAAC;IAE3B,OAAO,CACH,KAAC,QAAQ,IACL,SAAS,EAAC,cAAc,EACxB,QAAQ,EAAE,KAAK,CAAC,UAAU,EAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EACzB,aAAa,EAAE,OAAO,KAAK,EAAE,OAAO,KAAK,SAAS,EAClD,QAAQ,EAAE,qBAAqB,GACjC,CACL,CAAC;AACN,CAAC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { AnyPrimitive } from '@leav/utils';
|
|
2
|
-
import {
|
|
2
|
+
import { VersionFieldScope } from '../../../../../../components/RecordEdition/EditRecordContent/_types';
|
|
3
3
|
import { IdValue, IStandardFieldReducerState, IStandardFieldValue, StandardFieldDispatchFunc } from '../../../reducers/standardFieldReducer/standardFieldReducer';
|
|
4
4
|
interface IStandardFieldValueProps {
|
|
5
5
|
value: IStandardFieldValue;
|
|
6
6
|
state: IStandardFieldReducerState;
|
|
7
7
|
dispatch: StandardFieldDispatchFunc;
|
|
8
|
-
onSubmit: (idValue: IdValue, value: AnyPrimitive) => void
|
|
8
|
+
onSubmit: (idValue: IdValue, value: AnyPrimitive) => Promise<void>;
|
|
9
9
|
onDelete: (idValue: IdValue) => void;
|
|
10
|
-
onScopeChange: (scope:
|
|
10
|
+
onScopeChange: (scope: VersionFieldScope) => void;
|
|
11
11
|
}
|
|
12
12
|
declare function StandardFieldValue({ value: fieldValue, onSubmit, onDelete, onScopeChange, state, dispatch }: IStandardFieldValueProps): JSX.Element;
|
|
13
13
|
export default StandardFieldValue;
|
|
@@ -4,12 +4,10 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
4
4
|
// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
5
5
|
import { CloseOutlined, ExclamationCircleOutlined } from '@ant-design/icons';
|
|
6
6
|
import { localizedTranslation } from '@leav/utils';
|
|
7
|
-
import { Button,
|
|
7
|
+
import { Button, Input, Popover, Space, theme } from 'antd';
|
|
8
8
|
import moment from 'moment';
|
|
9
9
|
import React, { useEffect, useRef } from 'react';
|
|
10
10
|
import styled from 'styled-components';
|
|
11
|
-
import { DSInputWrapper } from './DSInputWrapper';
|
|
12
|
-
import { DSRangePickerWrapper } from './DSRangePickerWrapper';
|
|
13
11
|
import { themeVars } from '../../../../../../antdTheme';
|
|
14
12
|
import { FloatingMenu } from '../../../../../../components';
|
|
15
13
|
import Dimmer from '../../../../../../components/Dimmer';
|
|
@@ -19,7 +17,7 @@ import UpdatedFieldIcon from '../../../../../../components/RecordEdition/EditRec
|
|
|
19
17
|
import ValueDetailsBtn from '../../../../../../components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn';
|
|
20
18
|
import ValuesVersionBtn from '../../../../../../components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn';
|
|
21
19
|
import ValuesVersionIndicator from '../../../../../../components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator';
|
|
22
|
-
import {
|
|
20
|
+
import { VersionFieldScope } from '../../../../../../components/RecordEdition/EditRecordContent/_types';
|
|
23
21
|
import { EditRecordReducerActionsTypes } from '../../../../../../components/RecordEdition/editRecordReducer/editRecordReducer';
|
|
24
22
|
import { useEditRecordReducer } from '../../../../../../components/RecordEdition/editRecordReducer/useEditRecordReducer';
|
|
25
23
|
import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
|
|
@@ -30,10 +28,7 @@ import ColorInput from './Inputs/ColorInput';
|
|
|
30
28
|
import TextInput from './Inputs/TextInput';
|
|
31
29
|
import ValuesList from './ValuesList';
|
|
32
30
|
import { useLang } from '../../../../../../hooks';
|
|
33
|
-
import {
|
|
34
|
-
import { DSBooleanWrapper } from './DSBooleanWrapper';
|
|
35
|
-
import { DSInputPasswordWrapper } from './DSInputPasswordWrapper';
|
|
36
|
-
import { DSInputNumberWrapper } from './DSInputNumberWrapper';
|
|
31
|
+
import { StandardFieldValueDisplayHandler } from './StandardFieldValueDisplayHandler';
|
|
37
32
|
const ErrorMessage = styled.div `
|
|
38
33
|
color: ${themeVars.errorColor};
|
|
39
34
|
font-weight: bold;
|
|
@@ -195,12 +190,18 @@ function StandardFieldValue({ value: fieldValue, onSubmit, onDelete, onScopeChan
|
|
|
195
190
|
});
|
|
196
191
|
}
|
|
197
192
|
}, [fieldValue.isEditing, fieldValue.editingValue]);
|
|
193
|
+
const _uneditField = () => {
|
|
194
|
+
dispatch({
|
|
195
|
+
type: StandardFieldReducerActionsTypes.CANCEL_EDITING,
|
|
196
|
+
idValue: fieldValue.idValue
|
|
197
|
+
});
|
|
198
|
+
};
|
|
198
199
|
const _handleSubmit = async (valueToSave, id) => {
|
|
199
200
|
if (valueToSave === '') {
|
|
200
201
|
return _handleDelete();
|
|
201
202
|
}
|
|
202
203
|
const convertedValue = typeof valueToSave === 'object' ? JSON.stringify(valueToSave) : valueToSave;
|
|
203
|
-
onSubmit(fieldValue.idValue, convertedValue);
|
|
204
|
+
await onSubmit(fieldValue.idValue, convertedValue);
|
|
204
205
|
};
|
|
205
206
|
const _handlePressEnter = async () => {
|
|
206
207
|
if (!isValuesListEnabled) {
|
|
@@ -216,7 +217,8 @@ function StandardFieldValue({ value: fieldValue, onSubmit, onDelete, onScopeChan
|
|
|
216
217
|
if (fieldValue.idValue === newValueId) {
|
|
217
218
|
return _handleCancel();
|
|
218
219
|
}
|
|
219
|
-
onDelete(fieldValue.idValue);
|
|
220
|
+
await onDelete(fieldValue.idValue);
|
|
221
|
+
_uneditField();
|
|
220
222
|
};
|
|
221
223
|
const _handleFocus = () => {
|
|
222
224
|
if (state.isReadOnly || fieldValue.isEditing || attribute.format === AttributeFormat.boolean) {
|
|
@@ -272,7 +274,7 @@ function StandardFieldValue({ value: fieldValue, onSubmit, onDelete, onScopeChan
|
|
|
272
274
|
let displayedValue = String(fieldValue.displayValue);
|
|
273
275
|
let prefixValue;
|
|
274
276
|
if (attribute.format === AttributeFormat.color &&
|
|
275
|
-
(fieldValue.value === null || fieldValue.value.
|
|
277
|
+
(fieldValue.value === null || fieldValue.value.payload === null)) {
|
|
276
278
|
fieldValue.value = null;
|
|
277
279
|
}
|
|
278
280
|
const hasValue = fieldValue.value !== null;
|
|
@@ -369,7 +371,7 @@ function StandardFieldValue({ value: fieldValue, onSubmit, onDelete, onScopeChan
|
|
|
369
371
|
const isErrorVisible = fieldValue.isErrorDisplayed;
|
|
370
372
|
const wrapperClasses = `
|
|
371
373
|
${attribute.format ? `format-${attribute.format}` : ''}
|
|
372
|
-
${fieldValue?.value?.
|
|
374
|
+
${fieldValue?.value?.payload ? 'has-value' : ''}
|
|
373
375
|
${fieldValue.isEditing ? 'editing' : ''}
|
|
374
376
|
`;
|
|
375
377
|
const canDeleteValue = !state.isReadOnly && fieldValue.idValue !== newValueId && attribute.format !== AttributeFormat.boolean;
|
|
@@ -383,8 +385,8 @@ function StandardFieldValue({ value: fieldValue, onSubmit, onDelete, onScopeChan
|
|
|
383
385
|
const hasMultipleValuesDisplay = attribute.multiple_values && !!Object.keys(state.values[state.activeScope].values).length;
|
|
384
386
|
if (attribute?.versions_conf?.versionable) {
|
|
385
387
|
const versions = {
|
|
386
|
-
[
|
|
387
|
-
[
|
|
388
|
+
[VersionFieldScope.CURRENT]: state.values[VersionFieldScope.CURRENT]?.version ?? null,
|
|
389
|
+
[VersionFieldScope.INHERITED]: state.values[VersionFieldScope.INHERITED]?.version ?? null
|
|
388
390
|
};
|
|
389
391
|
if (!hasMultipleValuesDisplay) {
|
|
390
392
|
valueActions.push({
|
|
@@ -411,15 +413,11 @@ function StandardFieldValue({ value: fieldValue, onSubmit, onDelete, onScopeChan
|
|
|
411
413
|
AttributeFormat.numeric,
|
|
412
414
|
AttributeFormat.encrypted,
|
|
413
415
|
AttributeFormat.date,
|
|
414
|
-
AttributeFormat.boolean
|
|
416
|
+
AttributeFormat.boolean,
|
|
417
|
+
AttributeFormat.rich_text
|
|
415
418
|
];
|
|
416
|
-
const attributeFormatsWithoutDS = [AttributeFormat.color, AttributeFormat.extended
|
|
417
|
-
return (_jsxs(_Fragment, { children: [attributeFormatsWithDS.includes(attribute.format) && (_jsxs(
|
|
418
|
-
{
|
|
419
|
-
required: state.formElement.settings.required,
|
|
420
|
-
message: t('errors.standard_field_required')
|
|
421
|
-
}
|
|
422
|
-
], children: [attribute.format === AttributeFormat.text && (_jsx(DSInputWrapper, { state: state, handleSubmit: _handleSubmit, attribute: attribute, fieldValue: fieldValue, shouldShowValueDetailsButton: editRecordState.withInfoButton })), attribute.format === AttributeFormat.date && (_jsx(DSDatePickerWrapper, { state: state, handleSubmit: _handleSubmit, attribute: attribute, fieldValue: fieldValue, shouldShowValueDetailsButton: editRecordState.withInfoButton })), attribute.format === AttributeFormat.date_range && (_jsx(DSRangePickerWrapper, { state: state, handleSubmit: _handleSubmit, attribute: attribute, fieldValue: fieldValue, shouldShowValueDetailsButton: editRecordState.withInfoButton })), attribute.format === AttributeFormat.numeric && (_jsx(DSInputNumberWrapper, { state: state, handleSubmit: _handleSubmit, attribute: attribute, fieldValue: fieldValue, shouldShowValueDetailsButton: editRecordState.withInfoButton })), attribute.format === AttributeFormat.encrypted && (_jsx(DSInputPasswordWrapper, { state: state, handleSubmit: _handleSubmit, attribute: attribute, fieldValue: fieldValue, shouldShowValueDetailsButton: editRecordState.withInfoButton })), attribute.format === AttributeFormat.boolean && (_jsx(DSBooleanWrapper, { state: state, handleSubmit: _handleSubmit }))] })), attributeFormatsWithoutDS.includes(attribute.format) && (_jsxs(_Fragment, { children: [fieldValue.isEditing && _jsx(Dimmer, { onClick: _handleCancel }), _jsxs(FormWrapper, { "$isEditing": fieldValue.isEditing, className: fieldValue.index === 0 ? 'first-value' : '', children: [_jsx(Popover, { placement: "topLeft", open: isErrorVisible, content: errorContent, children: _jsxs(InputWrapper, { "$isEditing": fieldValue.isEditing, className: wrapperClasses, "data-testid": "input-wrapper", children: [_jsx(ValuesVersionIndicator, { activeScope: state.activeScope, style: valuesVersionIndicatorStyle }), !fieldValue.index && (_jsxs("label", { className: "attribute-label", onClick: _handleFocus, children: [localizedTranslation(state.formElement.settings.label, availableLangs), editRecordState.externalUpdate.updatedValues[attribute?.id] && (_jsx(UpdatedFieldIcon, {})), state.activeScope === FieldScope.INHERITED && (_jsx(InheritedFieldLabel, { version: state.values[FieldScope.INHERITED].version }))] })), _getInput(), !state.metadataEdit && _jsx(FloatingMenu, { actions: valueActions })] }) }), _jsxs(ActionsWrapper, { ref: actionsWrapperRef, children: [fieldValue.isEditing && attribute?.values_list?.enable && (_jsx(ValuesList, { attribute: attribute, valuesList: valuesList, onValueSelect: _handleSubmit, onValueCopy: _handleValueCopy })), fieldValue.isEditing && (_jsxs(ButtonsWrapper, { children: [_jsx(Button, { size: "small", onClick: _handleCancel, style: { background: '#FFF' }, children: t('global.cancel') }), (!isValuesListEnabled || isValuesListOpen) && (_jsx(Button, { type: "primary", size: "small", onClick: _handleClickSubmit, children: t('global.submit') }))] }))] })] })] }))] }));
|
|
419
|
+
const attributeFormatsWithoutDS = [AttributeFormat.color, AttributeFormat.extended];
|
|
420
|
+
return (_jsxs(_Fragment, { children: [attributeFormatsWithDS.includes(attribute.format) && (_jsx(StandardFieldValueDisplayHandler, { state: state, attribute: attribute, fieldValue: fieldValue, handleSubmit: _handleSubmit })), attributeFormatsWithoutDS.includes(attribute.format) && (_jsxs(_Fragment, { children: [fieldValue.isEditing && _jsx(Dimmer, { onClick: _handleCancel }), _jsxs(FormWrapper, { "$isEditing": fieldValue.isEditing, className: fieldValue.index === 0 ? 'first-value' : '', children: [_jsx(Popover, { placement: "topLeft", open: isErrorVisible, content: errorContent, children: _jsxs(InputWrapper, { "$isEditing": fieldValue.isEditing, className: wrapperClasses, "data-testid": "input-wrapper", children: [_jsx(ValuesVersionIndicator, { activeScope: state.activeScope, style: valuesVersionIndicatorStyle }), !fieldValue.index && (_jsxs("label", { className: "attribute-label", onClick: _handleFocus, children: [localizedTranslation(state.formElement.settings.label, availableLangs), editRecordState.externalUpdate.updatedValues[attribute?.id] && (_jsx(UpdatedFieldIcon, {})), state.activeScope === VersionFieldScope.INHERITED && (_jsx(InheritedFieldLabel, { version: state.values[VersionFieldScope.INHERITED].version }))] })), _getInput(), !state.metadataEdit && _jsx(FloatingMenu, { actions: valueActions })] }) }), _jsxs(ActionsWrapper, { ref: actionsWrapperRef, children: [fieldValue.isEditing && attribute?.values_list?.enable && (_jsx(ValuesList, { attribute: attribute, valuesList: valuesList, onValueSelect: _handleSubmit, onValueCopy: _handleValueCopy })), fieldValue.isEditing && (_jsxs(ButtonsWrapper, { children: [_jsx(Button, { size: "small", onClick: _handleCancel, style: { background: '#FFF' }, children: t('global.cancel') }), (!isValuesListEnabled || isValuesListOpen) && (_jsx(Button, { type: "primary", size: "small", onClick: _handleClickSubmit, children: t('global.submit') }))] }))] })] })] }))] }));
|
|
423
421
|
}
|
|
424
422
|
export default StandardFieldValue;
|
|
425
423
|
//# sourceMappingURL=StandardFieldValue.js.map
|