@leav/ui 1.5.1 → 1.5.2-3483df5d
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 +1 -0
- package/dist/__mocks__/common/attribute.js.map +1 -1
- package/dist/_gqlTypes/index.d.ts +117 -18
- package/dist/_gqlTypes/index.js +88 -0
- package/dist/_gqlTypes/index.js.map +1 -1
- package/dist/_queries/attributes/attributeDetailsFragment.js +1 -0
- package/dist/_queries/attributes/attributeDetailsFragment.js.map +1 -1
- package/dist/components/Explorer/DataView.d.ts +1 -0
- package/dist/components/Explorer/DataView.js +9 -3
- package/dist/components/Explorer/DataView.js.map +1 -1
- package/dist/components/Explorer/Explorer.d.ts +2 -1
- package/dist/components/Explorer/Explorer.js +19 -4
- package/dist/components/Explorer/Explorer.js.map +1 -1
- package/dist/components/Explorer/TableNameCell.js +1 -1
- package/dist/components/Explorer/TableNameCell.js.map +1 -1
- package/dist/components/Explorer/_queries/useExplorerData.js +13 -2
- package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
- package/dist/components/Explorer/actions-mass/edit-attribute/EditAttributeMassActionModal.d.ts +13 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/EditAttributeMassActionModal.js +20 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/EditAttributeMassActionModal.js.map +1 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValueLine.d.ts +10 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValueLine.js +38 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValueLine.js.map +1 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValuesMapping.d.ts +8 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValuesMapping.js +16 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/EditTreeAttributeValuesMapping.js.map +1 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/useCountValuesOccurrencesHook.d.ts +10 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/useCountValuesOccurrencesHook.js +28 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/useCountValuesOccurrencesHook.js.map +1 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/useListEditableAttributeHook.d.ts +5 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/useListEditableAttributeHook.js +12 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/useListEditableAttributeHook.js.map +1 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/useListTreeAttributeValuesHook.d.ts +5 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/useListTreeAttributeValuesHook.js +20 -0
- package/dist/components/Explorer/actions-mass/edit-attribute/useListTreeAttributeValuesHook.js.map +1 -0
- package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.d.ts +11 -0
- package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js +106 -0
- package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js.map +1 -0
- package/dist/components/Explorer/actions-mass/useExportMassAction.js +11 -13
- package/dist/components/Explorer/actions-mass/useExportMassAction.js.map +1 -1
- package/dist/components/Explorer/link-item/LinkModal.js +1 -1
- package/dist/components/Explorer/link-item/LinkModal.js.map +1 -1
- package/dist/components/Filters/context/filtersReducer.js +0 -1
- package/dist/components/Filters/context/filtersReducer.js.map +1 -1
- package/dist/components/Filters/filter-items/filter-type/TextAttributeDropDown.js +24 -7
- package/dist/components/Filters/filter-items/filter-type/TextAttributeDropDown.js.map +1 -1
- package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js +15 -17
- package/dist/components/Filters/filter-items/filter-type/TreeAttributeDropDown.js.map +1 -1
- package/dist/components/Filters/prepareFiltersForRequest.js +1 -1
- package/dist/components/Filters/prepareFiltersForRequest.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/antdUtils.js +12 -3
- package/dist/components/RecordEdition/EditRecordContent/antdUtils.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js +4 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +6 -3
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSBooleanWrapper.js +6 -5
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSBooleanWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js +9 -8
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSColorPickerWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js +8 -7
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSDatePickerWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js +6 -5
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputNumberWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js +6 -5
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js +12 -11
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js +16 -7
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js +6 -5
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/useGetPresentationValues.d.ts +3 -3
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/useGetPresentationValues.js +10 -4
- package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/useGetPresentationValues.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +4 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +4 -5
- package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js +2 -2
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.d.ts +24 -24
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.js +34 -35
- package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js +1 -1
- package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js.map +1 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.d.ts +1 -1
- package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js +15 -10
- package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js.map +1 -1
- package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.d.ts +1 -1
- package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js +4 -3
- package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js.map +1 -1
- package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +1 -0
- package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +40 -19
- package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
- package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +3 -0
- package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/schema.d.ts +43 -4
- package/dist/hooks/useIFrameMessenger/schema.js +11 -5
- package/dist/hooks/useIFrameMessenger/schema.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/types.d.ts +2 -1
- package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
- package/dist/locales/en/shared.json +20 -7
- package/dist/locales/fr/shared.json +20 -7
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DSRangePickerWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {KitDatePicker} from 'aristid-ds';\nimport {type FunctionComponent, useEffect, useRef, useState} from 'react';\nimport {Form} from 'antd';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport {type StandardValueTypes} from '../../../_types';\nimport {setDateToUTCNoon} from '_ui/_utils';\nimport {type IStandFieldValueContentProps} from './_types';\nimport {type IKitRangePicker} from 'aristid-ds/dist/Kit/DataEntry/DatePicker/types';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {EMPTY_INITIAL_VALUE_UNDEFINED} from '../../../antdUtils';\n\nconst KitDatePickerRangePickerStyled = styled(KitDatePicker.RangePicker)<{\n $shouldUsePresentationLayout: boolean;\n}>`\n ${({$shouldUsePresentationLayout}) =>\n $shouldUsePresentationLayout &&\n ` &.ant-picker.ant-picker-range {\n div:nth-child(n+3) {\n display: none;\n }\n }\n `}\n`;\n\nexport const DSRangePickerWrapper: FunctionComponent<IStandFieldValueContentProps<IKitRangePicker>> = ({\n value,\n presentationValue,\n isLastValueOfMultivalues,\n removeLastValueOfMultivalues,\n onChange,\n attribute,\n handleSubmit,\n readonly,\n calculatedFlags,\n inheritedFlags,\n}) => {\n if (!onChange) {\n throw Error('DSRangePickerWrapper should be used inside a antd Form.Item');\n }\n\n const isNewValueOfMultivalues = isLastValueOfMultivalues && value === EMPTY_INITIAL_VALUE_UNDEFINED;\n const focusedDefaultValue = attribute.multiple_values ? isNewValueOfMultivalues : false;\n\n const hasChangedRef = useRef(false);\n const [isFocused, setIsFocused] = useState(focusedDefaultValue);\n const {errors} = Form.Item.useStatus();\n const {t} = useSharedTranslation();\n\n const isErrors = errors.length > 0;\n\n // we slow down the css so that presentationValue does not flash before being hidden\n const [usePresentationLayout, setUsePresentationLayout] = useState(false);\n useEffect(() => setUsePresentationLayout(!isFocused && !isErrors), [isFocused, isErrors]);\n\n const _resetToInheritedOrCalculatedValue = async () => {\n hasChangedRef.current = false;\n\n if (inheritedFlags.isInheritedValue) {\n onChange(\n [\n dayjs.unix(Number(inheritedFlags.inheritedValue.raw_payload.from)),\n dayjs.unix(Number(inheritedFlags.inheritedValue.raw_payload.to)),\n ],\n inheritedFlags.inheritedValue.raw_payload,\n );\n } else if (calculatedFlags.isCalculatedValue) {\n onChange(\n [\n dayjs.unix(Number(calculatedFlags.calculatedValue.raw_payload.from)),\n dayjs.unix(Number(calculatedFlags.calculatedValue.raw_payload.to)),\n ],\n calculatedFlags.calculatedValue.raw_payload,\n );\n }\n await handleSubmit(null, attribute.id);\n };\n\n const _handleDateChange: (\n rangePickerDates: [from: dayjs.Dayjs, to: dayjs.Dayjs] | null,\n antOnChangeParams: [from: string, to: string] | null,\n ) => void = async (rangePickerDates, ...antOnChangeParams) => {\n hasChangedRef.current = true;\n\n if ((inheritedFlags.isInheritedValue || calculatedFlags.isCalculatedValue) && rangePickerDates === null) {\n _resetToInheritedOrCalculatedValue();\n return;\n }\n\n if (rangePickerDates) {\n rangePickerDates = [setDateToUTCNoon(rangePickerDates[0]), setDateToUTCNoon(rangePickerDates[1])];\n }\n\n onChange(rangePickerDates, ...antOnChangeParams);\n\n let datesToSave: StandardValueTypes = null;\n\n if (rangePickerDates !== null) {\n const [dateFrom, dateTo] = rangePickerDates;\n datesToSave = JSON.stringify({from: dateFrom.unix(), to: dateTo.unix()});\n }\n\n await handleSubmit(datesToSave, attribute.id);\n };\n\n const _handleOpenChange = (open: boolean) => {\n if (!open) {\n setIsFocused(false);\n\n if (!hasChangedRef.current && isNewValueOfMultivalues) {\n removeLastValueOfMultivalues();\n }\n }\n };\n\n const _handleOnFocus = () => {\n setIsFocused(true);\n };\n\n const placeholderToDisplay: IKitRangePicker['placeholder'] = isFocused\n ? [t('record_edition.placeholder.start_date'), t('record_edition.placeholder.end_date')]\n : [t('record_edition.placeholder.enter_a_period'), ''];\n\n return (\n <KitDatePickerRangePickerStyled\n id={attribute.id}\n autoFocus={isFocused}\n open={attribute.multiple_values ? isFocused : undefined}\n value={value}\n format={!isFocused && !isErrors && !!presentationValue ? () => presentationValue : undefined}\n readonly={readonly}\n allowClear={\n !!value &&\n !attribute.multiple_values &&\n !inheritedFlags.isInheritedNotOverrideValue &&\n !calculatedFlags.isCalculatedNotOverrideValue\n }\n helper={isErrors ? String(errors[0]) : undefined}\n status={isErrors ? 'error' : undefined}\n onFocus={_handleOnFocus}\n onChange={_handleDateChange}\n onOpenChange={_handleOpenChange}\n placeholder={placeholderToDisplay}\n $shouldUsePresentationLayout={usePresentationLayout}\n />\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"DSRangePickerWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRangePickerWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {KitDatePicker} from 'aristid-ds';\nimport {type FunctionComponent, useEffect, useRef, useState} from 'react';\nimport {Form} from 'antd';\nimport dayjs from 'dayjs';\nimport styled from 'styled-components';\nimport {type StandardValueTypes} from '../../../_types';\nimport {setDateToUTCNoon} from '_ui/_utils';\nimport {type IStandFieldValueContentProps} from './_types';\nimport {type IKitRangePicker} from 'aristid-ds/dist/Kit/DataEntry/DatePicker/types';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {EMPTY_INITIAL_VALUE_UNDEFINED} from '../../../antdUtils';\n\nconst KitDatePickerRangePickerStyled = styled(KitDatePicker.RangePicker)<{\n $shouldUsePresentationLayout: boolean;\n}>`\n ${({$shouldUsePresentationLayout}) =>\n $shouldUsePresentationLayout &&\n ` &.ant-picker.ant-picker-range {\n div:nth-child(n+3) {\n display: none;\n }\n }\n `}\n`;\n\nexport const DSRangePickerWrapper: FunctionComponent<IStandFieldValueContentProps<IKitRangePicker>> = ({\n value,\n presentationValue,\n isLastValueOfMultivalues,\n removeLastValueOfMultivalues,\n onChange,\n attribute,\n handleSubmit,\n readonly,\n calculatedFlags,\n inheritedFlags,\n}) => {\n if (!onChange) {\n throw Error('DSRangePickerWrapper should be used inside a antd Form.Item');\n }\n\n const isNewValueOfMultivalues = isLastValueOfMultivalues && value === EMPTY_INITIAL_VALUE_UNDEFINED;\n const focusedDefaultValue = attribute.multiple_values ? isNewValueOfMultivalues : false;\n\n const hasChangedRef = useRef(false);\n const [isFocused, setIsFocused] = useState(focusedDefaultValue);\n const {errors} = Form.Item.useStatus();\n const {t} = useSharedTranslation();\n\n const isErrors = errors.length > 0;\n\n // we slow down the css so that presentationValue does not flash before being hidden\n const [usePresentationLayout, setUsePresentationLayout] = useState(false);\n useEffect(() => setUsePresentationLayout(!isFocused && !isErrors), [isFocused, isErrors]);\n\n // TODO: Remove inheritedValues[0] and calculatedValues[0] when we will have a proper way to override multiple values. For now, those attributes are set in readonly mode.\n const _resetToInheritedOrCalculatedValue = async () => {\n hasChangedRef.current = false;\n\n if (inheritedFlags.isInheritedValues) {\n onChange(\n [\n dayjs.unix(Number(inheritedFlags.inheritedValues[0].raw_payload.from)),\n dayjs.unix(Number(inheritedFlags.inheritedValues[0].raw_payload.to)),\n ],\n inheritedFlags.inheritedValues[0].raw_payload,\n );\n } else if (calculatedFlags.isCalculatedValues) {\n onChange(\n [\n dayjs.unix(Number(calculatedFlags.calculatedValues[0].raw_payload.from)),\n dayjs.unix(Number(calculatedFlags.calculatedValues[0].raw_payload.to)),\n ],\n calculatedFlags.calculatedValues[0].raw_payload,\n );\n }\n await handleSubmit(null, attribute.id);\n };\n\n const _handleDateChange: (\n rangePickerDates: [from: dayjs.Dayjs, to: dayjs.Dayjs] | null,\n antOnChangeParams: [from: string, to: string] | null,\n ) => void = async (rangePickerDates, ...antOnChangeParams) => {\n hasChangedRef.current = true;\n\n if ((inheritedFlags.isInheritedValues || calculatedFlags.isCalculatedValues) && rangePickerDates === null) {\n _resetToInheritedOrCalculatedValue();\n return;\n }\n\n if (rangePickerDates) {\n rangePickerDates = [setDateToUTCNoon(rangePickerDates[0]), setDateToUTCNoon(rangePickerDates[1])];\n }\n\n onChange(rangePickerDates, ...antOnChangeParams);\n\n let datesToSave: StandardValueTypes = null;\n\n if (rangePickerDates !== null) {\n const [dateFrom, dateTo] = rangePickerDates;\n datesToSave = JSON.stringify({from: dateFrom.unix(), to: dateTo.unix()});\n }\n\n await handleSubmit(datesToSave, attribute.id);\n };\n\n const _handleOpenChange = (open: boolean) => {\n if (!open) {\n setIsFocused(false);\n\n if (!hasChangedRef.current && isNewValueOfMultivalues) {\n removeLastValueOfMultivalues();\n }\n }\n };\n\n const _handleOnFocus = () => {\n setIsFocused(true);\n };\n\n const placeholderToDisplay: IKitRangePicker['placeholder'] = isFocused\n ? [t('record_edition.placeholder.start_date'), t('record_edition.placeholder.end_date')]\n : [t('record_edition.placeholder.enter_a_period'), ''];\n\n return (\n <KitDatePickerRangePickerStyled\n id={attribute.id}\n autoFocus={isFocused}\n open={attribute.multiple_values ? isFocused : undefined}\n value={value}\n format={!isFocused && !isErrors && !!presentationValue ? () => presentationValue : undefined}\n readonly={readonly}\n allowClear={\n !!value &&\n !attribute.multiple_values &&\n !inheritedFlags.isInheritedNotOverrideValues &&\n !calculatedFlags.isCalculatedNotOverrideValues\n }\n helper={isErrors ? String(errors[0]) : undefined}\n status={isErrors ? 'error' : undefined}\n onFocus={_handleOnFocus}\n onChange={_handleDateChange}\n onOpenChange={_handleOpenChange}\n placeholder={placeholderToDisplay}\n $shouldUsePresentationLayout={usePresentationLayout}\n />\n );\n};\n"]}
|
|
@@ -7,7 +7,15 @@ import { Form } from 'antd';
|
|
|
7
7
|
import { KitRichText } from 'aristid-ds';
|
|
8
8
|
import { useSharedTranslation } from '../../../../../../hooks/useSharedTranslation';
|
|
9
9
|
import { EMPTY_INITIAL_VALUE_STRING } from '../../../antdUtils';
|
|
10
|
-
const
|
|
10
|
+
const LEADING_EMPTY_P_TAG = /^<p>(\s| )*<\/p>/;
|
|
11
|
+
const TRAILING_EMPTY_P_TAG = /(<p>(\s| )*<\/p>)+$/;
|
|
12
|
+
const cleanRichTextValue = (value) => {
|
|
13
|
+
if (!value) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const cleanedValue = value.replace(LEADING_EMPTY_P_TAG, '').replace(TRAILING_EMPTY_P_TAG, '').trim();
|
|
17
|
+
return cleanedValue === '' ? null : cleanedValue;
|
|
18
|
+
};
|
|
11
19
|
export const DSRichTextWrapper = ({ value, presentationValue, isLastValueOfMultivalues, removeLastValueOfMultivalues, onChange, attribute, readonly, handleSubmit, calculatedFlags, inheritedFlags, }) => {
|
|
12
20
|
if (!onChange) {
|
|
13
21
|
throw Error('DSRichTextWrapper should be used inside a antd Form.Item');
|
|
@@ -20,13 +28,14 @@ export const DSRichTextWrapper = ({ value, presentationValue, isLastValueOfMulti
|
|
|
20
28
|
const { t } = useSharedTranslation();
|
|
21
29
|
const isErrors = errors.length > 0;
|
|
22
30
|
const valueToDisplay = isFocused || isErrors || !presentationValue ? value : presentationValue;
|
|
31
|
+
// TODO: Remove inheritedValues[0] and calculatedValues[0] when we will have a proper way to override multiple values. For now, those attributes are set in readonly mode.
|
|
23
32
|
const _resetToInheritedOrCalculatedValue = async () => {
|
|
24
33
|
setHasChanged(false);
|
|
25
|
-
if (inheritedFlags.
|
|
26
|
-
onChange(inheritedFlags.
|
|
34
|
+
if (inheritedFlags.isInheritedValues) {
|
|
35
|
+
onChange(inheritedFlags.inheritedValues[0].raw_payload);
|
|
27
36
|
}
|
|
28
|
-
else if (calculatedFlags.
|
|
29
|
-
onChange(calculatedFlags.
|
|
37
|
+
else if (calculatedFlags.isCalculatedValues) {
|
|
38
|
+
onChange(calculatedFlags.calculatedValues[0].raw_payload);
|
|
30
39
|
}
|
|
31
40
|
await handleSubmit(null, attribute.id);
|
|
32
41
|
};
|
|
@@ -35,7 +44,7 @@ export const DSRichTextWrapper = ({ value, presentationValue, isLastValueOfMulti
|
|
|
35
44
|
};
|
|
36
45
|
const _handleOnBlur = async (inputValue) => {
|
|
37
46
|
setHasChanged(false);
|
|
38
|
-
const valueToSubmit =
|
|
47
|
+
const valueToSubmit = cleanRichTextValue(inputValue);
|
|
39
48
|
if (!hasChanged) {
|
|
40
49
|
onChange(valueToSubmit);
|
|
41
50
|
setIsFocused(false);
|
|
@@ -44,7 +53,7 @@ export const DSRichTextWrapper = ({ value, presentationValue, isLastValueOfMulti
|
|
|
44
53
|
}
|
|
45
54
|
return;
|
|
46
55
|
}
|
|
47
|
-
if (valueToSubmit === null && (inheritedFlags.
|
|
56
|
+
if (valueToSubmit === null && (inheritedFlags.isInheritedValues || calculatedFlags.isCalculatedValues)) {
|
|
48
57
|
_resetToInheritedOrCalculatedValue();
|
|
49
58
|
return;
|
|
50
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DSRichTextWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAyB,QAAQ,EAAC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAC,IAAI,EAAC,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,0BAA0B,EAAC,MAAM,oBAAoB,CAAC;AAE9D,MAAM,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"DSRichTextWrapper.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSRichTextWrapper.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent, useState} from 'react';\nimport {Form} from 'antd';\nimport {KitRichText} from 'aristid-ds';\nimport {type IStandFieldValueContentProps} from './_types';\nimport {type KitRichTextProps} from 'aristid-ds/dist/Kit/DataEntry/RichText/types';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {EMPTY_INITIAL_VALUE_STRING} from '../../../antdUtils';\n\nconst LEADING_EMPTY_P_TAG = /^<p>(\\s| )*<\\/p>/;\nconst TRAILING_EMPTY_P_TAG = /(<p>(\\s| )*<\\/p>)+$/;\n\nconst cleanRichTextValue = (value: string) => {\n if (!value) {\n return null;\n }\n const cleanedValue = value.replace(LEADING_EMPTY_P_TAG, '').replace(TRAILING_EMPTY_P_TAG, '').trim();\n\n return cleanedValue === '' ? null : cleanedValue;\n};\n\nexport const DSRichTextWrapper: FunctionComponent<IStandFieldValueContentProps<KitRichTextProps>> = ({\n value,\n presentationValue,\n isLastValueOfMultivalues,\n removeLastValueOfMultivalues,\n onChange,\n attribute,\n readonly,\n handleSubmit,\n calculatedFlags,\n inheritedFlags,\n}) => {\n if (!onChange) {\n throw Error('DSRichTextWrapper should be used inside a antd Form.Item');\n }\n\n const isNewValueOfMultivalues = isLastValueOfMultivalues && value === EMPTY_INITIAL_VALUE_STRING;\n const focusedDefaultValue = attribute.multiple_values ? isNewValueOfMultivalues : false;\n\n const [hasChanged, setHasChanged] = useState(false);\n const [isFocused, setIsFocused] = useState(focusedDefaultValue);\n const {errors} = Form.Item.useStatus();\n const {t} = useSharedTranslation();\n\n const isErrors = errors.length > 0;\n const valueToDisplay = isFocused || isErrors || !presentationValue ? value : presentationValue;\n\n // TODO: Remove inheritedValues[0] and calculatedValues[0] when we will have a proper way to override multiple values. For now, those attributes are set in readonly mode.\n const _resetToInheritedOrCalculatedValue = async () => {\n setHasChanged(false);\n if (inheritedFlags.isInheritedValues) {\n onChange(inheritedFlags.inheritedValues[0].raw_payload);\n } else if (calculatedFlags.isCalculatedValues) {\n onChange(calculatedFlags.calculatedValues[0].raw_payload);\n }\n await handleSubmit(null, attribute.id);\n };\n\n const _handleFocus = () => {\n setIsFocused(true);\n };\n\n const _handleOnBlur = async (inputValue: string) => {\n setHasChanged(false);\n const valueToSubmit = cleanRichTextValue(inputValue);\n if (!hasChanged) {\n onChange(valueToSubmit);\n setIsFocused(false);\n\n if (isNewValueOfMultivalues) {\n removeLastValueOfMultivalues();\n }\n return;\n }\n\n if (valueToSubmit === null && (inheritedFlags.isInheritedValues || calculatedFlags.isCalculatedValues)) {\n _resetToInheritedOrCalculatedValue();\n return;\n }\n\n onChange(valueToSubmit);\n await handleSubmit(valueToSubmit, attribute.id);\n setIsFocused(false);\n };\n\n const _handleOnChange = inputValue => {\n setHasChanged(true);\n onChange(inputValue);\n };\n\n return (\n <KitRichText\n id={attribute.id}\n autoFocus={isFocused}\n helper={isErrors ? String(errors[0]) : undefined}\n status={isErrors ? 'error' : undefined}\n value={valueToDisplay}\n readonly={readonly}\n onChange={_handleOnChange}\n onFocus={_handleFocus}\n onBlur={_handleOnBlur}\n placeholder={t('record_edition.placeholder.enter_a_text')}\n maxLength={attribute.character_limit ?? undefined}\n showCount\n />\n );\n};\n"]}
|
|
@@ -80,20 +80,21 @@ export const DSListSelect = ({ value, presentationValue, isLastValueOfMultivalue
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
const searchResultsCount = useMemo(() => options.filter(option => option.label.toLowerCase().includes(searchedString.toLowerCase())).length, [searchedString]);
|
|
83
|
+
// TODO: Remove inheritedValues[0] and calculatedValues[0] when we will have a proper way to override multiple values. For now, those attributes are set in readonly mode.
|
|
83
84
|
const _resetToInheritedOrCalculatedValue = async () => {
|
|
84
85
|
setHasChanged(false);
|
|
85
|
-
if (inheritedFlags.
|
|
86
|
-
setTimeout(() => onChange(inheritedFlags.
|
|
86
|
+
if (inheritedFlags.isInheritedValues) {
|
|
87
|
+
setTimeout(() => onChange(inheritedFlags.inheritedValues[0].raw_value, options), 0);
|
|
87
88
|
}
|
|
88
|
-
else if (calculatedFlags.
|
|
89
|
-
setTimeout(() => onChange(calculatedFlags.
|
|
89
|
+
else if (calculatedFlags.isCalculatedValues) {
|
|
90
|
+
setTimeout(() => onChange(calculatedFlags.calculatedValues[0].raw_value, options), 0);
|
|
90
91
|
}
|
|
91
92
|
await handleSubmit(null, attribute.id);
|
|
92
93
|
};
|
|
93
94
|
const _handleOnChange = async (selectedValue) => {
|
|
94
95
|
setHasChanged(true);
|
|
95
96
|
setSearchedString('');
|
|
96
|
-
if ((inheritedFlags.
|
|
97
|
+
if ((inheritedFlags.isInheritedValues || calculatedFlags.isCalculatedValues) && selectedValue === '') {
|
|
97
98
|
_resetToInheritedOrCalculatedValue();
|
|
98
99
|
return;
|
|
99
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DSListSelect.js","sourceRoot":"","sources":["../../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent, useMemo, useState} from 'react';\nimport {KitSelect, KitTypography} from 'aristid-ds';\nimport useSharedTranslation from '_ui/hooks/useSharedTranslation/useSharedTranslation';\nimport {AttributeFormat, useSaveAttributeMutation} from '_ui/_gqlTypes';\nimport {Form} from 'antd';\nimport {stringifyDateRangeValue} from '_ui/_utils';\nimport {type IDateRangeValuesListConf, type IStringValuesListConf} from './_types';\nimport {EditRecordReducerActionsTypes} from '_ui/components/RecordEdition/editRecordReducer/editRecordReducer';\nimport {useEditRecordReducer} from '_ui/components/RecordEdition/editRecordReducer/useEditRecordReducer';\nimport {type IStandFieldValueContentProps} from '../_types';\nimport {type IKitSelect} from 'aristid-ds/dist/Kit/DataEntry/Select/types';\nimport {EMPTY_INITIAL_VALUE_STRING} from '_ui/components/RecordEdition/EditRecordContent/antdUtils';\nimport dayjs from 'dayjs';\n\ninterface IOption {\n label: string;\n value: string;\n}\n\nconst isNewOption = (value: string, options: IOption[]): boolean =>\n value !== '' && !options.find(option => option.value === value);\n\nconst addOption = (options: IOption[], optionToAdd: IOption) => {\n const newOptions = options;\n if (optionToAdd.value && isNewOption(optionToAdd.value, options)) {\n newOptions.unshift({\n value: optionToAdd.value,\n label: optionToAdd.label,\n });\n }\n return newOptions;\n};\n\nexport const DSListSelect: FunctionComponent<IStandFieldValueContentProps<IKitSelect>> = ({\n value,\n presentationValue,\n isLastValueOfMultivalues,\n removeLastValueOfMultivalues,\n onChange,\n attribute,\n readonly,\n handleSubmit,\n inheritedFlags,\n calculatedFlags,\n}) => {\n if (!onChange) {\n throw Error('DSListSelect should be used inside a antd Form.Item');\n }\n\n if (!attribute.values_list || attribute.values_list.enable === false) {\n throw Error('DSListSelect should have a values list');\n }\n\n const isNewValueOfMultivalues = isLastValueOfMultivalues && value === EMPTY_INITIAL_VALUE_STRING;\n const focusedDefaultValue = attribute.multiple_values ? isNewValueOfMultivalues : false;\n\n const {t} = useSharedTranslation();\n const form = Form.useFormInstance();\n const {errors} = Form.Item.useStatus();\n const [hasChanged, setHasChanged] = useState(false);\n const [isFocused, setIsFocused] = useState(focusedDefaultValue);\n const [searchedString, setSearchedString] = useState('');\n const [saveAttribute] = useSaveAttributeMutation();\n const {dispatch: editRecordDispatch} = useEditRecordReducer();\n\n const allowFreeEntry = attribute.values_list.allowFreeEntry;\n const allowListUpdate = attribute.values_list.allowListUpdate;\n\n const _getFilteredValuesList = () => {\n let values = [];\n\n if (attribute.format === AttributeFormat.date_range) {\n const valuesList = (attribute.values_list as IDateRangeValuesListConf).dateRangeValues ?? [];\n\n values = valuesList.map(v => {\n const rangeValue = {\n from: dayjs.unix(Number(v.from)).format('DD-MM-YYYY'),\n to: dayjs.unix(Number(v.to)).format('DD-MM-YYYY'),\n };\n return {\n value: stringifyDateRangeValue(rangeValue, t),\n label: {from: v.from, to: v.to},\n };\n });\n } else {\n const valuesList = (attribute.values_list as IStringValuesListConf)?.values ?? [];\n\n values = valuesList.map(v => ({value: v, label: v}));\n }\n\n return values;\n };\n\n const initialOptions = _getFilteredValuesList();\n let options = [...initialOptions];\n if (attribute.multiple_values) {\n const currentValues = form.getFieldValue(attribute.id);\n options = options.filter(option => !currentValues.includes(option.value));\n }\n\n if (allowFreeEntry) {\n if (!attribute.multiple_values) {\n options = addOption(options, {value, label: value});\n }\n options = addOption(options, {\n value: searchedString,\n label:\n (allowListUpdate ? t('record_edition.create_and_select_option') : t('record_edition.select_option')) +\n searchedString,\n });\n }\n\n const searchResultsCount = useMemo(\n () => options.filter(option => option.label.toLowerCase().includes(searchedString.toLowerCase())).length,\n [searchedString],\n );\n\n const _resetToInheritedOrCalculatedValue = async () => {\n setHasChanged(false);\n if (inheritedFlags.isInheritedValue) {\n setTimeout(() => onChange(inheritedFlags.inheritedValue.raw_value, options), 0);\n } else if (calculatedFlags.isCalculatedValue) {\n setTimeout(() => onChange(calculatedFlags.calculatedValue.raw_value, options), 0);\n }\n await handleSubmit(null, attribute.id);\n };\n\n const _handleOnChange = async (selectedValue: string) => {\n setHasChanged(true);\n setSearchedString('');\n if ((inheritedFlags.isInheritedValue || calculatedFlags.isCalculatedValue) && selectedValue === '') {\n _resetToInheritedOrCalculatedValue();\n return;\n }\n\n if (allowListUpdate && isNewOption(selectedValue, initialOptions) && 'values' in attribute.values_list) {\n await saveAttribute({\n variables: {\n attribute: {\n id: attribute.id,\n values_list: {\n enable: true,\n allowFreeEntry: true,\n allowListUpdate: true,\n values: [...attribute.values_list.values, selectedValue],\n },\n },\n },\n });\n editRecordDispatch({type: EditRecordReducerActionsTypes.REQUEST_REFRESH});\n }\n\n await handleSubmit(selectedValue, attribute.id);\n onChange(selectedValue, options);\n };\n\n const _handleOnClear = async () => {\n await _handleOnChange('');\n };\n\n const _handleOnSearch = async (search: string) => {\n setSearchedString(search);\n if (search) {\n setIsFocused(true);\n }\n };\n\n const _handleDropdownVisibleChange = (visible: boolean) => {\n setIsFocused(visible);\n\n if (!hasChanged && isNewValueOfMultivalues) {\n removeLastValueOfMultivalues();\n }\n };\n\n const valueToDisplay = isFocused ? value : presentationValue;\n const isValueEmpty = value === '';\n\n return (\n <KitSelect\n id={attribute.id}\n data-testid={attribute.id}\n autoFocus={isFocused}\n open={isFocused}\n value={isValueEmpty ? undefined : valueToDisplay}\n allowClear={!!value && !attribute.multiple_values}\n disabled={readonly}\n options={options}\n status={errors.length > 0 && 'error'}\n showSearch\n onDropdownVisibleChange={_handleDropdownVisibleChange}\n onSelect={_handleOnChange}\n onChange={onChange}\n onClear={_handleOnClear}\n onSearch={_handleOnSearch}\n placeholder={t('record_edition.placeholder.select_an_option')}\n dropdownRender={menu => (\n <>\n {searchedString !== '' && searchResultsCount > 0 && (\n <div style={{paddingBottom: 'calc(var(--general-spacing-xs) * 1px)'}}>\n <KitTypography.Text size=\"fontSize7\">\n {t('record_edition.press_enter_to')}\n </KitTypography.Text>\n <KitTypography.Text size=\"fontSize7\" weight=\"medium\">\n {t('record_edition.select_this_value')}\n </KitTypography.Text>\n </div>\n )}\n {menu}\n </>\n )}\n notFoundContent={\n <div style={{textAlign: 'center'}}>\n <KitTypography.Text size=\"fontSize5\" weight=\"medium\">\n {t('record_edition.search_not_found')}\n </KitTypography.Text>\n </div>\n }\n />\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"DSListSelect.js","sourceRoot":"","sources":["../../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/ValuesList/DSListSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent, useMemo, useState} from 'react';\nimport {KitSelect, KitTypography} from 'aristid-ds';\nimport useSharedTranslation from '_ui/hooks/useSharedTranslation/useSharedTranslation';\nimport {AttributeFormat, useSaveAttributeMutation} from '_ui/_gqlTypes';\nimport {Form} from 'antd';\nimport {stringifyDateRangeValue} from '_ui/_utils';\nimport {type IDateRangeValuesListConf, type IStringValuesListConf} from './_types';\nimport {EditRecordReducerActionsTypes} from '_ui/components/RecordEdition/editRecordReducer/editRecordReducer';\nimport {useEditRecordReducer} from '_ui/components/RecordEdition/editRecordReducer/useEditRecordReducer';\nimport {type IStandFieldValueContentProps} from '../_types';\nimport {type IKitSelect} from 'aristid-ds/dist/Kit/DataEntry/Select/types';\nimport {EMPTY_INITIAL_VALUE_STRING} from '_ui/components/RecordEdition/EditRecordContent/antdUtils';\nimport dayjs from 'dayjs';\n\ninterface IOption {\n label: string;\n value: string;\n}\n\nconst isNewOption = (value: string, options: IOption[]): boolean =>\n value !== '' && !options.find(option => option.value === value);\n\nconst addOption = (options: IOption[], optionToAdd: IOption) => {\n const newOptions = options;\n if (optionToAdd.value && isNewOption(optionToAdd.value, options)) {\n newOptions.unshift({\n value: optionToAdd.value,\n label: optionToAdd.label,\n });\n }\n return newOptions;\n};\n\nexport const DSListSelect: FunctionComponent<IStandFieldValueContentProps<IKitSelect>> = ({\n value,\n presentationValue,\n isLastValueOfMultivalues,\n removeLastValueOfMultivalues,\n onChange,\n attribute,\n readonly,\n handleSubmit,\n inheritedFlags,\n calculatedFlags,\n}) => {\n if (!onChange) {\n throw Error('DSListSelect should be used inside a antd Form.Item');\n }\n\n if (!attribute.values_list || attribute.values_list.enable === false) {\n throw Error('DSListSelect should have a values list');\n }\n\n const isNewValueOfMultivalues = isLastValueOfMultivalues && value === EMPTY_INITIAL_VALUE_STRING;\n const focusedDefaultValue = attribute.multiple_values ? isNewValueOfMultivalues : false;\n\n const {t} = useSharedTranslation();\n const form = Form.useFormInstance();\n const {errors} = Form.Item.useStatus();\n const [hasChanged, setHasChanged] = useState(false);\n const [isFocused, setIsFocused] = useState(focusedDefaultValue);\n const [searchedString, setSearchedString] = useState('');\n const [saveAttribute] = useSaveAttributeMutation();\n const {dispatch: editRecordDispatch} = useEditRecordReducer();\n\n const allowFreeEntry = attribute.values_list.allowFreeEntry;\n const allowListUpdate = attribute.values_list.allowListUpdate;\n\n const _getFilteredValuesList = () => {\n let values = [];\n\n if (attribute.format === AttributeFormat.date_range) {\n const valuesList = (attribute.values_list as IDateRangeValuesListConf).dateRangeValues ?? [];\n\n values = valuesList.map(v => {\n const rangeValue = {\n from: dayjs.unix(Number(v.from)).format('DD-MM-YYYY'),\n to: dayjs.unix(Number(v.to)).format('DD-MM-YYYY'),\n };\n return {\n value: stringifyDateRangeValue(rangeValue, t),\n label: {from: v.from, to: v.to},\n };\n });\n } else {\n const valuesList = (attribute.values_list as IStringValuesListConf)?.values ?? [];\n\n values = valuesList.map(v => ({value: v, label: v}));\n }\n\n return values;\n };\n\n const initialOptions = _getFilteredValuesList();\n let options = [...initialOptions];\n if (attribute.multiple_values) {\n const currentValues = form.getFieldValue(attribute.id);\n options = options.filter(option => !currentValues.includes(option.value));\n }\n\n if (allowFreeEntry) {\n if (!attribute.multiple_values) {\n options = addOption(options, {value, label: value});\n }\n options = addOption(options, {\n value: searchedString,\n label:\n (allowListUpdate ? t('record_edition.create_and_select_option') : t('record_edition.select_option')) +\n searchedString,\n });\n }\n\n const searchResultsCount = useMemo(\n () => options.filter(option => option.label.toLowerCase().includes(searchedString.toLowerCase())).length,\n [searchedString],\n );\n\n // TODO: Remove inheritedValues[0] and calculatedValues[0] when we will have a proper way to override multiple values. For now, those attributes are set in readonly mode.\n const _resetToInheritedOrCalculatedValue = async () => {\n setHasChanged(false);\n if (inheritedFlags.isInheritedValues) {\n setTimeout(() => onChange(inheritedFlags.inheritedValues[0].raw_value, options), 0);\n } else if (calculatedFlags.isCalculatedValues) {\n setTimeout(() => onChange(calculatedFlags.calculatedValues[0].raw_value, options), 0);\n }\n await handleSubmit(null, attribute.id);\n };\n\n const _handleOnChange = async (selectedValue: string) => {\n setHasChanged(true);\n setSearchedString('');\n if ((inheritedFlags.isInheritedValues || calculatedFlags.isCalculatedValues) && selectedValue === '') {\n _resetToInheritedOrCalculatedValue();\n return;\n }\n\n if (allowListUpdate && isNewOption(selectedValue, initialOptions) && 'values' in attribute.values_list) {\n await saveAttribute({\n variables: {\n attribute: {\n id: attribute.id,\n values_list: {\n enable: true,\n allowFreeEntry: true,\n allowListUpdate: true,\n values: [...attribute.values_list.values, selectedValue],\n },\n },\n },\n });\n editRecordDispatch({type: EditRecordReducerActionsTypes.REQUEST_REFRESH});\n }\n\n await handleSubmit(selectedValue, attribute.id);\n onChange(selectedValue, options);\n };\n\n const _handleOnClear = async () => {\n await _handleOnChange('');\n };\n\n const _handleOnSearch = async (search: string) => {\n setSearchedString(search);\n if (search) {\n setIsFocused(true);\n }\n };\n\n const _handleDropdownVisibleChange = (visible: boolean) => {\n setIsFocused(visible);\n\n if (!hasChanged && isNewValueOfMultivalues) {\n removeLastValueOfMultivalues();\n }\n };\n\n const valueToDisplay = isFocused ? value : presentationValue;\n const isValueEmpty = value === '';\n\n return (\n <KitSelect\n id={attribute.id}\n data-testid={attribute.id}\n autoFocus={isFocused}\n open={isFocused}\n value={isValueEmpty ? undefined : valueToDisplay}\n allowClear={!!value && !attribute.multiple_values}\n disabled={readonly}\n options={options}\n status={errors.length > 0 && 'error'}\n showSearch\n onDropdownVisibleChange={_handleDropdownVisibleChange}\n onSelect={_handleOnChange}\n onChange={onChange}\n onClear={_handleOnClear}\n onSearch={_handleOnSearch}\n placeholder={t('record_edition.placeholder.select_an_option')}\n dropdownRender={menu => (\n <>\n {searchedString !== '' && searchResultsCount > 0 && (\n <div style={{paddingBottom: 'calc(var(--general-spacing-xs) * 1px)'}}>\n <KitTypography.Text size=\"fontSize7\">\n {t('record_edition.press_enter_to')}\n </KitTypography.Text>\n <KitTypography.Text size=\"fontSize7\" weight=\"medium\">\n {t('record_edition.select_this_value')}\n </KitTypography.Text>\n </div>\n )}\n {menu}\n </>\n )}\n notFoundContent={\n <div style={{textAlign: 'center'}}>\n <KitTypography.Text size=\"fontSize5\" weight=\"medium\">\n {t('record_edition.search_not_found')}\n </KitTypography.Text>\n </div>\n }\n />\n );\n};\n"]}
|
|
@@ -3,10 +3,10 @@ import { type RecordFormElementsValueStandardValue } from '../../../../../hooks/
|
|
|
3
3
|
interface IUseGetPresentationValues {
|
|
4
4
|
presentationValues: string[];
|
|
5
5
|
}
|
|
6
|
-
export declare const useGetPresentationValues: ({ values, format,
|
|
6
|
+
export declare const useGetPresentationValues: ({ values, format, calculatedValues, inheritedValues, }: {
|
|
7
7
|
values: ValueDetailsValueFragment[];
|
|
8
8
|
format: AttributeFormat;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
calculatedValues: RecordFormElementsValueStandardValue[];
|
|
10
|
+
inheritedValues: RecordFormElementsValueStandardValue[];
|
|
11
11
|
}) => IUseGetPresentationValues;
|
|
12
12
|
export {};
|
|
@@ -4,11 +4,17 @@
|
|
|
4
4
|
import { AttributeFormat } from '../../../../../_gqlTypes';
|
|
5
5
|
import { useSharedTranslation } from '../../../../../hooks/useSharedTranslation';
|
|
6
6
|
const _isDateRangeValue = (value) => !!value && typeof value === 'object' && 'from' in value && 'to' in value;
|
|
7
|
-
export const useGetPresentationValues = ({ values, format,
|
|
7
|
+
export const useGetPresentationValues = ({ values, format, calculatedValues, inheritedValues, }) => {
|
|
8
8
|
const { t } = useSharedTranslation();
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const effectiveValues = values?.length > 0
|
|
10
|
+
? values
|
|
11
|
+
: calculatedValues?.length > 0
|
|
12
|
+
? calculatedValues
|
|
13
|
+
: inheritedValues?.length > 0
|
|
14
|
+
? inheritedValues
|
|
15
|
+
: [];
|
|
16
|
+
const presentationValues = effectiveValues.map(value => {
|
|
17
|
+
let presentationValue = value.payload || '';
|
|
12
18
|
switch (format) {
|
|
13
19
|
case AttributeFormat.date_range:
|
|
14
20
|
if (_isDateRangeValue(presentationValue)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetPresentationValues.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/useGetPresentationValues.tsx"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,eAAe,EAAiC,MAAM,eAAe,CAAC;AAE9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAEpE,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAuC,EAAE,CAC1E,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC;AAM7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACrC,MAAM,EACN,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"useGetPresentationValues.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/StandardField/useGetPresentationValues.tsx"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,eAAe,EAAiC,MAAM,eAAe,CAAC;AAE9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAEpE,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAuC,EAAE,CAC1E,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC;AAM7E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACrC,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,eAAe,GAMlB,EAA6B,EAAE;IAC5B,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,eAAe,GACjB,MAAM,EAAE,MAAM,GAAG,CAAC;QACd,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,gBAAgB,EAAE,MAAM,GAAG,CAAC;YAC5B,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,eAAe,EAAE,MAAM,GAAG,CAAC;gBAC3B,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,EAAE,CAAC;IAEjB,MAAM,kBAAkB,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACnD,IAAI,iBAAiB,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QAE5C,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,eAAe,CAAC,UAAU;gBAC3B,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACvC,MAAM,EAAC,IAAI,EAAE,EAAE,EAAC,GAAG,iBAAiB,CAAC;oBACrC,iBAAiB,GAAG,CAAC,CAAC,iCAAiC,EAAE;wBACrD,IAAI;wBACJ,EAAE;wBACF,aAAa,EAAE;4BACX,WAAW,EAAE,KAAK;yBACrB;qBACJ,CAAC,CAAC;gBACP,CAAC;qBAAM,CAAC;oBACJ,iBAAiB,GAAG,EAAE,CAAC;gBAC3B,CAAC;gBACD,MAAM;QACd,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,EAAC,kBAAkB,EAAC,CAAC;AAChC,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {AttributeFormat, type ValueDetailsValueFragment} from '_ui/_gqlTypes';\nimport {type RecordFormElementsValueStandardValue} from '_ui/hooks/useGetRecordForm';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\n\nconst _isDateRangeValue = (value: any): value is {from: string; to: string} =>\n !!value && typeof value === 'object' && 'from' in value && 'to' in value;\n\ninterface IUseGetPresentationValues {\n presentationValues: string[];\n}\n\nexport const useGetPresentationValues = ({\n values,\n format,\n calculatedValues,\n inheritedValues,\n}: {\n values: ValueDetailsValueFragment[];\n format: AttributeFormat;\n calculatedValues: RecordFormElementsValueStandardValue[];\n inheritedValues: RecordFormElementsValueStandardValue[];\n}): IUseGetPresentationValues => {\n const {t} = useSharedTranslation();\n\n const effectiveValues =\n values?.length > 0\n ? values\n : calculatedValues?.length > 0\n ? calculatedValues\n : inheritedValues?.length > 0\n ? inheritedValues\n : [];\n\n const presentationValues = effectiveValues.map(value => {\n let presentationValue = value.payload || '';\n\n switch (format) {\n case AttributeFormat.date_range:\n if (_isDateRangeValue(presentationValue)) {\n const {from, to} = presentationValue;\n presentationValue = t('record_edition.date_range_value', {\n from,\n to,\n interpolation: {\n escapeValue: false,\n },\n });\n } else {\n presentationValue = '';\n }\n break;\n }\n\n return presentationValue;\n });\n\n return {presentationValues};\n};\n"]}
|
|
@@ -49,7 +49,10 @@ const TreeField = ({ element, readonly, isFormCreationMode, onDeleteMultipleValu
|
|
|
49
49
|
const label = localizedTranslation(settings.label, lang);
|
|
50
50
|
const form = AntForm.useFormInstance();
|
|
51
51
|
const fieldErrors = form.getFieldError(attribute.id);
|
|
52
|
-
const
|
|
52
|
+
// TODO: Temporary const that should be removed (and all it's usages) when we will have a proper way to override multiple values
|
|
53
|
+
const tmpCantOverrideValues = attribute.multiple_values &&
|
|
54
|
+
(calculatedFlags.calculatedValues?.length > 1 || inheritedFlags.inheritedValues?.length > 1);
|
|
55
|
+
const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly || tmpCantOverrideValues;
|
|
53
56
|
const isFieldInError = fieldErrors.length > 0;
|
|
54
57
|
useEffect(() => {
|
|
55
58
|
if (state.activeAttribute?.attribute.id === attribute.id) {
|
package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeField.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent, useEffect, useState} from 'react';\nimport styled, {css} from 'styled-components';\nimport {type ICommonFieldsSettings, localizedTranslation} from '@leav/utils';\nimport {AntForm, KitButton, KitInputWrapper} from 'aristid-ds';\nimport {FaList} from 'react-icons/fa';\nimport {useLang} from '_ui/hooks';\nimport {type IFormElementProps} from '../../_types';\nimport {\n type ChildrenAsRecordValuePermissionFilterInput,\n type RecordFormAttributeTreeAttributeFragment,\n RecordPermissionsActions,\n} from '_ui/_gqlTypes';\nimport {TREE_FIELD_ID_PREFIX} from '_ui/constants';\nimport {type RecordFormElementsValueTreeValue} from '_ui/hooks/useGetRecordForm';\nimport {TreeNodeList} from './display-tree-node/TreeNodeList';\nimport {useManageTreeNodeSelection} from './manage-tree-node-selection/useManageTreeNodeSelection';\nimport {useOutsideInteractionDetector} from '../shared/useOutsideInteractionDetector';\nimport {useEditRecordReducer} from '_ui/components/RecordEdition/editRecordReducer/useEditRecordReducer';\nimport {EditRecordReducerActionsTypes} from '_ui/components/RecordEdition/editRecordReducer/editRecordReducer';\nimport {computeCalculatedFlags, computeInheritedFlags} from '../shared/calculatedInheritedFlags';\nimport {ComputeIndicator} from '../shared/ComputeIndicator';\n\nconst StyledWrapperDiv = styled.div<{$metadataEdit: boolean}>`\n margin-bottom: ${props => (props.$metadataEdit ? 0 : '1.5em')};\n`;\n\nconst KitInputExtraAlignLeftDiv = styled.div`\n margin-right: auto;\n line-height: 12px;\n`;\n\nconst StyledFieldFooterKitButton = styled(KitButton)<{$hasNoValue: boolean}>`\n margin-top: ${props => (props.$hasNoValue ? 0 : 'calc((var(--general-spacing-xs)) * 1px)')};\n`;\n\nconst KitInputWrapperStyled = styled(KitInputWrapper)<{$readonlyBackground: boolean}>`\n .kit-input-wrapper-content {\n min-height: 48px;\n }\n\n ${props =>\n props.$readonlyBackground &&\n css`\n .kit-input-wrapper-content {\n background-color: var(--general-utilities-neutral-light);\n }\n `}\n`;\n\ntype TreeFieldProps = IFormElementProps<ICommonFieldsSettings>;\n\nconst TreeField: FunctionComponent<TreeFieldProps> = ({\n element,\n readonly,\n isFormCreationMode,\n onDeleteMultipleValues,\n onValueSubmit,\n onValueDelete,\n metadataEdit = false,\n}) => {\n const {state, dispatch} = useEditRecordReducer();\n const {lang} = useLang();\n const {\n settings,\n attribute,\n values,\n }: {\n settings: typeof element.settings;\n attribute?: RecordFormAttributeTreeAttributeFragment;\n values?: RecordFormElementsValueTreeValue[];\n } = element;\n\n const [backendValues, setBackendValues] = useState<RecordFormElementsValueTreeValue[]>(values);\n\n const calculatedFlags = computeCalculatedFlags(backendValues);\n const inheritedFlags = computeInheritedFlags(backendValues);\n const label = localizedTranslation(settings.label, lang);\n const form = AntForm.useFormInstance();\n const fieldErrors = form.getFieldError(attribute.id);\n\n const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly;\n const isFieldInError = fieldErrors.length > 0;\n\n useEffect(() => {\n if (state.activeAttribute?.attribute.id === attribute.id) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_ACTIVE_VALUE,\n values: backendValues,\n });\n }\n }, [backendValues]);\n\n useOutsideInteractionDetector({\n attribute,\n activeAttribute: state.activeAttribute,\n attributePrefix: TREE_FIELD_ID_PREFIX,\n dispatch,\n backendValues,\n allowedSelectors: ['.kit-modal-wrapper'],\n });\n\n const childrenAsRecordValuePermissionFilter: ChildrenAsRecordValuePermissionFilterInput = {\n libraryId: state.libraryId,\n attributeId: state.activeAttribute?.attribute?.id,\n action: RecordPermissionsActions.create_record,\n };\n\n const {openModal, removeTreeNode, actionButtonLabel, SelectTreeNodeModal, RemoveAllTreeNodes} =\n useManageTreeNodeSelection({\n modaleTitle: label,\n attribute,\n isFormCreationMode,\n backendValues,\n setBackendValues,\n onValueSubmit,\n onValueDelete,\n onDeleteMultipleValues,\n isReadOnly,\n isFieldInError,\n childrenAsRecordValuePermissionFilter,\n });\n\n return (\n <StyledWrapperDiv $metadataEdit={metadataEdit}>\n <AntForm.Item name={attribute.id} noStyle>\n <KitInputWrapperStyled\n id={TREE_FIELD_ID_PREFIX + attribute.id}\n data-testid=\"tree-field\"\n label={label}\n required={attribute.required}\n bordered\n status={isFieldInError ? 'error' : undefined}\n helper={isFieldInError ? String(fieldErrors[0]) : undefined}\n $readonlyBackground={isReadOnly}\n extra={\n <>\n <KitInputExtraAlignLeftDiv>\n <ComputeIndicator calculatedFlags={calculatedFlags} inheritedFlags={inheritedFlags} />\n </KitInputExtraAlignLeftDiv>\n {RemoveAllTreeNodes}\n </>\n }\n >\n <TreeNodeList\n attribute={attribute}\n backendValues={backendValues}\n removeTreeNode={removeTreeNode}\n isReadOnly={isReadOnly}\n />\n {!isReadOnly && (\n <StyledFieldFooterKitButton\n icon={<FaList />}\n onClick={openModal}\n size=\"m\"\n $hasNoValue={!backendValues?.length}\n >\n {actionButtonLabel}\n </StyledFieldFooterKitButton>\n )}\n {SelectTreeNodeModal}\n </KitInputWrapperStyled>\n </AntForm.Item>\n </StyledWrapperDiv>\n );\n};\n\nexport default TreeField;\n"]}
|
|
1
|
+
{"version":3,"file":"TreeField.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent, useEffect, useState} from 'react';\nimport styled, {css} from 'styled-components';\nimport {type ICommonFieldsSettings, localizedTranslation} from '@leav/utils';\nimport {AntForm, KitButton, KitInputWrapper} from 'aristid-ds';\nimport {FaList} from 'react-icons/fa';\nimport {useLang} from '_ui/hooks';\nimport {type IFormElementProps} from '../../_types';\nimport {\n type ChildrenAsRecordValuePermissionFilterInput,\n type RecordFormAttributeTreeAttributeFragment,\n RecordPermissionsActions,\n} from '_ui/_gqlTypes';\nimport {TREE_FIELD_ID_PREFIX} from '_ui/constants';\nimport {type RecordFormElementsValueTreeValue} from '_ui/hooks/useGetRecordForm';\nimport {TreeNodeList} from './display-tree-node/TreeNodeList';\nimport {useManageTreeNodeSelection} from './manage-tree-node-selection/useManageTreeNodeSelection';\nimport {useOutsideInteractionDetector} from '../shared/useOutsideInteractionDetector';\nimport {useEditRecordReducer} from '_ui/components/RecordEdition/editRecordReducer/useEditRecordReducer';\nimport {EditRecordReducerActionsTypes} from '_ui/components/RecordEdition/editRecordReducer/editRecordReducer';\nimport {computeCalculatedFlags, computeInheritedFlags} from '../shared/calculatedInheritedFlags';\nimport {ComputeIndicator} from '../shared/ComputeIndicator';\n\nconst StyledWrapperDiv = styled.div<{$metadataEdit: boolean}>`\n margin-bottom: ${props => (props.$metadataEdit ? 0 : '1.5em')};\n`;\n\nconst KitInputExtraAlignLeftDiv = styled.div`\n margin-right: auto;\n line-height: 12px;\n`;\n\nconst StyledFieldFooterKitButton = styled(KitButton)<{$hasNoValue: boolean}>`\n margin-top: ${props => (props.$hasNoValue ? 0 : 'calc((var(--general-spacing-xs)) * 1px)')};\n`;\n\nconst KitInputWrapperStyled = styled(KitInputWrapper)<{$readonlyBackground: boolean}>`\n .kit-input-wrapper-content {\n min-height: 48px;\n }\n\n ${props =>\n props.$readonlyBackground &&\n css`\n .kit-input-wrapper-content {\n background-color: var(--general-utilities-neutral-light);\n }\n `}\n`;\n\ntype TreeFieldProps = IFormElementProps<ICommonFieldsSettings>;\n\nconst TreeField: FunctionComponent<TreeFieldProps> = ({\n element,\n readonly,\n isFormCreationMode,\n onDeleteMultipleValues,\n onValueSubmit,\n onValueDelete,\n metadataEdit = false,\n}) => {\n const {state, dispatch} = useEditRecordReducer();\n const {lang} = useLang();\n const {\n settings,\n attribute,\n values,\n }: {\n settings: typeof element.settings;\n attribute?: RecordFormAttributeTreeAttributeFragment;\n values?: RecordFormElementsValueTreeValue[];\n } = element;\n\n const [backendValues, setBackendValues] = useState<RecordFormElementsValueTreeValue[]>(values);\n\n const calculatedFlags = computeCalculatedFlags(backendValues);\n const inheritedFlags = computeInheritedFlags(backendValues);\n const label = localizedTranslation(settings.label, lang);\n const form = AntForm.useFormInstance();\n const fieldErrors = form.getFieldError(attribute.id);\n\n // TODO: Temporary const that should be removed (and all it's usages) when we will have a proper way to override multiple values\n const tmpCantOverrideValues =\n attribute.multiple_values &&\n (calculatedFlags.calculatedValues?.length > 1 || inheritedFlags.inheritedValues?.length > 1);\n\n const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly || tmpCantOverrideValues;\n const isFieldInError = fieldErrors.length > 0;\n\n useEffect(() => {\n if (state.activeAttribute?.attribute.id === attribute.id) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_ACTIVE_VALUE,\n values: backendValues,\n });\n }\n }, [backendValues]);\n\n useOutsideInteractionDetector({\n attribute,\n activeAttribute: state.activeAttribute,\n attributePrefix: TREE_FIELD_ID_PREFIX,\n dispatch,\n backendValues,\n allowedSelectors: ['.kit-modal-wrapper'],\n });\n\n const childrenAsRecordValuePermissionFilter: ChildrenAsRecordValuePermissionFilterInput = {\n libraryId: state.libraryId,\n attributeId: state.activeAttribute?.attribute?.id,\n action: RecordPermissionsActions.create_record,\n };\n\n const {openModal, removeTreeNode, actionButtonLabel, SelectTreeNodeModal, RemoveAllTreeNodes} =\n useManageTreeNodeSelection({\n modaleTitle: label,\n attribute,\n isFormCreationMode,\n backendValues,\n setBackendValues,\n onValueSubmit,\n onValueDelete,\n onDeleteMultipleValues,\n isReadOnly,\n isFieldInError,\n childrenAsRecordValuePermissionFilter,\n });\n\n return (\n <StyledWrapperDiv $metadataEdit={metadataEdit}>\n <AntForm.Item name={attribute.id} noStyle>\n <KitInputWrapperStyled\n id={TREE_FIELD_ID_PREFIX + attribute.id}\n data-testid=\"tree-field\"\n label={label}\n required={attribute.required}\n bordered\n status={isFieldInError ? 'error' : undefined}\n helper={isFieldInError ? String(fieldErrors[0]) : undefined}\n $readonlyBackground={isReadOnly}\n extra={\n <>\n <KitInputExtraAlignLeftDiv>\n <ComputeIndicator calculatedFlags={calculatedFlags} inheritedFlags={inheritedFlags} />\n </KitInputExtraAlignLeftDiv>\n {RemoveAllTreeNodes}\n </>\n }\n >\n <TreeNodeList\n attribute={attribute}\n backendValues={backendValues}\n removeTreeNode={removeTreeNode}\n isReadOnly={isReadOnly}\n />\n {!isReadOnly && (\n <StyledFieldFooterKitButton\n icon={<FaList />}\n onClick={openModal}\n size=\"m\"\n $hasNoValue={!backendValues?.length}\n >\n {actionButtonLabel}\n </StyledFieldFooterKitButton>\n )}\n {SelectTreeNodeModal}\n </KitInputWrapperStyled>\n </AntForm.Item>\n </StyledWrapperDiv>\n );\n};\n\nexport default TreeField;\n"]}
|
|
@@ -14,11 +14,10 @@ const SELECT_TREE_NODE_MODAL_WIDTH = '656px';
|
|
|
14
14
|
export const SelectTreeNodeModal = ({ title, open, attribute, backendValues, onConfirm, onClose, childrenAsRecordValuePermissionFilter, className, }) => {
|
|
15
15
|
const { t } = useSharedTranslation();
|
|
16
16
|
const [selectedNodes, setSelectedNodes] = useState([]);
|
|
17
|
-
const [isMonoValueToReplace, setIsMonoValueToReplace] = useState(false);
|
|
18
17
|
const _handleOnSelect = (node, selected) => {
|
|
19
18
|
if (!attribute.multiple_values) {
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
onConfirm(selected ? [node] : []);
|
|
20
|
+
onClose();
|
|
22
21
|
return;
|
|
23
22
|
}
|
|
24
23
|
if (selected) {
|
|
@@ -34,10 +33,10 @@ export const SelectTreeNodeModal = ({ title, open, attribute, backendValues, onC
|
|
|
34
33
|
};
|
|
35
34
|
return (_jsx(KitModal, { appElement: document.getElementById('root'), className: className, showCloseIcon: true, width: SELECT_TREE_NODE_MODAL_WIDTH, height: SELECT_TREE_NODE_MODAL_HEIGHT, title: title, isOpen: open, close: onClose, footer: _jsxs(_Fragment, { children: [_jsx(KitButton, { icon:
|
|
36
35
|
// We can't used react-icons here because it's doesn't have the faXmark icon
|
|
37
|
-
_jsx(FontAwesomeIcon, { icon: faXmark }), onClick: onClose, children: t('global.close') }), _jsx(KitButton, { type: "primary", icon: _jsx(FaCheck, {}), onClick: _handleOnConfirm, children: t('global.confirm') })] }), children: _jsx(SelectTreeNode, { treeId: attribute.linked_tree.id, multiple // We want to be able to set as selected in the tree components, the nodes that are already selected and the disabled nodes
|
|
36
|
+
_jsx(FontAwesomeIcon, { icon: faXmark }), onClick: onClose, children: t('global.close') }), attribute.multiple_values && (_jsx(KitButton, { type: "primary", icon: _jsx(FaCheck, {}), onClick: _handleOnConfirm, children: t('global.confirm') }))] }), children: _jsx(SelectTreeNode, { treeId: attribute.linked_tree.id, multiple // We want to be able to set as selected in the tree components, the nodes that are already selected and the disabled nodes
|
|
38
37
|
: true, selectedNodes: [
|
|
39
38
|
...selectedNodes.map(node => node.id),
|
|
40
|
-
...
|
|
39
|
+
...backendValues.map(value => value.treeValue.id),
|
|
41
40
|
], childrenAsRecordValuePermissionFilter: childrenAsRecordValuePermissionFilter, disabledNodes: backendValues.map(value => value.treeValue.id).concat(attribute.linked_tree.id), onSelect: _handleOnSelect }) }));
|
|
42
41
|
};
|
|
43
42
|
//# sourceMappingURL=SelectTreeNodeModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectTreeNodeModal.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAA8C,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AAK/C,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAGpE,MAAM,6BAA6B,GAAG,OAAO,CAAC;AAC9C,MAAM,4BAA4B,GAAG,OAAO,CAAC;AA8B7C,MAAM,CAAC,MAAM,mBAAmB,GAAiD,CAAC,EAC9E,KAAK,EACL,IAAI,EACJ,SAAS,EACT,aAAa,EACb,SAAS,EACT,OAAO,EACP,qCAAqC,EACrC,SAAS,GACZ,EAAE,EAAE;IACD,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAwB,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectTreeNodeModal.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useState} from 'react';\nimport {FaCheck} from 'react-icons/fa';\nimport {faXmark} from '@fortawesome/free-solid-svg-icons';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {KitButton, KitModal} from 'aristid-ds';\nimport {\n type ChildrenAsRecordValuePermissionFilterInput,\n type RecordFormAttributeTreeAttributeFragment,\n} from '_ui/_gqlTypes';\nimport {SelectTreeNode} from '_ui/components/SelectTreeNode';\nimport {type RecordFormElementsValueTreeValue} from '_ui/hooks/useGetRecordForm';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type ITreeNodeWithRecord} from '_ui/types';\n\nconst SELECT_TREE_NODE_MODAL_HEIGHT = '563px';\nconst SELECT_TREE_NODE_MODAL_WIDTH = '656px';\n\ntype SelectTreeNodeModalBackendValue =\n | RecordFormElementsValueTreeValue\n | {\n treeValue: {\n id: string;\n };\n };\n\ntype SelectTreeNodeModalAttribute =\n | RecordFormAttributeTreeAttributeFragment\n | {\n multiple_values: boolean;\n linked_tree: {\n id: string;\n };\n };\n\ninterface ISelectTreeNodeModalProps {\n title: string;\n open: boolean;\n attribute: SelectTreeNodeModalAttribute;\n backendValues: SelectTreeNodeModalBackendValue[];\n onConfirm: (selectedNodes: ITreeNodeWithRecord[]) => void;\n onClose: () => void;\n childrenAsRecordValuePermissionFilter?: ChildrenAsRecordValuePermissionFilterInput;\n className?: string;\n}\n\nexport const SelectTreeNodeModal: FunctionComponent<ISelectTreeNodeModalProps> = ({\n title,\n open,\n attribute,\n backendValues,\n onConfirm,\n onClose,\n childrenAsRecordValuePermissionFilter,\n className,\n}) => {\n const {t} = useSharedTranslation();\n\n const [selectedNodes, setSelectedNodes] = useState<ITreeNodeWithRecord[]>([]);\n\n const _handleOnSelect: ComponentProps<typeof SelectTreeNode>['onSelect'] = (node, selected) => {\n if (!attribute.multiple_values) {\n onConfirm(selected ? [node] : []);\n onClose();\n return;\n }\n\n if (selected) {\n setSelectedNodes(prev => [...prev, node]);\n } else {\n setSelectedNodes(prev => prev.filter(selectedValue => selectedValue.id !== node.id));\n }\n };\n\n const _handleOnConfirm: ComponentProps<typeof KitButton>['onClick'] = () => {\n onConfirm(selectedNodes);\n onClose();\n };\n\n return (\n <KitModal\n appElement={document.getElementById('root')}\n className={className}\n showCloseIcon\n width={SELECT_TREE_NODE_MODAL_WIDTH}\n height={SELECT_TREE_NODE_MODAL_HEIGHT}\n title={title}\n isOpen={open}\n close={onClose}\n footer={\n <>\n <KitButton\n icon={\n // We can't used react-icons here because it's doesn't have the faXmark icon\n <FontAwesomeIcon icon={faXmark} />\n }\n onClick={onClose}\n >\n {t('global.close')}\n </KitButton>\n {attribute.multiple_values && (\n <KitButton type=\"primary\" icon={<FaCheck />} onClick={_handleOnConfirm}>\n {t('global.confirm')}\n </KitButton>\n )}\n </>\n }\n >\n <SelectTreeNode\n treeId={attribute.linked_tree.id}\n multiple // We want to be able to set as selected in the tree components, the nodes that are already selected and the disabled nodes\n selectedNodes={[\n ...selectedNodes.map(node => node.id),\n ...backendValues.map(value => value.treeValue.id),\n ]}\n childrenAsRecordValuePermissionFilter={childrenAsRecordValuePermissionFilter}\n disabledNodes={backendValues.map(value => value.treeValue.id).concat(attribute.linked_tree.id)}\n onSelect={_handleOnSelect}\n />\n </KitModal>\n );\n};\n"]}
|
package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js
CHANGED
|
@@ -9,8 +9,8 @@ const ComputeIndicatorWrapper = styled.div `
|
|
|
9
9
|
`;
|
|
10
10
|
export const ComputeIndicator = ({ calculatedFlags, inheritedFlags }) => {
|
|
11
11
|
const { t } = useSharedTranslation();
|
|
12
|
-
const shouldDisplayComputedIcon = calculatedFlags.
|
|
13
|
-
const shouldDisplayOverridedIcon = calculatedFlags.
|
|
12
|
+
const shouldDisplayComputedIcon = calculatedFlags.isCalculatedNotOverrideValues || inheritedFlags.isInheritedNotOverrideValues;
|
|
13
|
+
const shouldDisplayOverridedIcon = calculatedFlags.isCalculatedOverrideValues || inheritedFlags.isInheritedOverrideValues;
|
|
14
14
|
return (_jsxs(ComputeIndicatorWrapper, { children: [shouldDisplayComputedIcon && (_jsx(KitTooltip, { title: t('record_edition.calculated_value'), mouseEnterDelay: TOOLTIP_DEFAULT_DELAY_IN_SECONDS, children: _jsx(FaSquareRootAlt, {}) })), shouldDisplayOverridedIcon && (_jsx(KitTooltip, { title: t('record_edition.overrided_value'), mouseEnterDelay: TOOLTIP_DEFAULT_DELAY_IN_SECONDS, children: _jsx(FaLayerGroup, {}) }))] }));
|
|
15
15
|
};
|
|
16
16
|
//# sourceMappingURL=ComputeIndicator.js.map
|
package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComputeIndicator.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AACtC,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC7D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,gCAAgC,EAAC,MAAM,eAAe,CAAC;AAE/D,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;CAEzC,CAAC;AAOF,MAAM,CAAC,MAAM,gBAAgB,GAA8C,CAAC,EAAC,eAAe,EAAE,cAAc,EAAC,EAAE,EAAE;IAC7G,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,yBAAyB,GAC3B,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"ComputeIndicator.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AACtC,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC7D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,gCAAgC,EAAC,MAAM,eAAe,CAAC;AAE/D,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;CAEzC,CAAC;AAOF,MAAM,CAAC,MAAM,gBAAgB,GAA8C,CAAC,EAAC,eAAe,EAAE,cAAc,EAAC,EAAE,EAAE;IAC7G,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,yBAAyB,GAC3B,eAAe,CAAC,6BAA6B,IAAI,cAAc,CAAC,4BAA4B,CAAC;IACjG,MAAM,0BAA0B,GAC5B,eAAe,CAAC,0BAA0B,IAAI,cAAc,CAAC,yBAAyB,CAAC;IAE3F,OAAO,CACH,MAAC,uBAAuB,eACnB,yBAAyB,IAAI,CAC1B,KAAC,UAAU,IACP,KAAK,EAAE,CAAC,CAAC,iCAAiC,CAAC,EAC3C,eAAe,EAAE,gCAAgC,YAEjD,KAAC,eAAe,KAAG,GACV,CAChB,EACA,0BAA0B,IAAI,CAC3B,KAAC,UAAU,IACP,KAAK,EAAE,CAAC,CAAC,gCAAgC,CAAC,EAC1C,eAAe,EAAE,gCAAgC,YAEjD,KAAC,YAAY,KAAG,GACP,CAChB,IACqB,CAC7B,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent} from 'react';\nimport {type CalculatedFlags, type InheritedFlags} from './calculatedInheritedFlags';\nimport {KitTooltip} from 'aristid-ds';\nimport {FaLayerGroup, FaSquareRootAlt} from 'react-icons/fa';\nimport styled from 'styled-components';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {TOOLTIP_DEFAULT_DELAY_IN_SECONDS} from '_ui/constants';\n\nconst ComputeIndicatorWrapper = styled.div`\n font-size: calc(var(--general-typography-fontSize7) * 1px);\n`;\n\ninterface IComputeIndicatorProps {\n calculatedFlags: CalculatedFlags;\n inheritedFlags: InheritedFlags;\n}\n\nexport const ComputeIndicator: FunctionComponent<IComputeIndicatorProps> = ({calculatedFlags, inheritedFlags}) => {\n const {t} = useSharedTranslation();\n\n const shouldDisplayComputedIcon =\n calculatedFlags.isCalculatedNotOverrideValues || inheritedFlags.isInheritedNotOverrideValues;\n const shouldDisplayOverridedIcon =\n calculatedFlags.isCalculatedOverrideValues || inheritedFlags.isInheritedOverrideValues;\n\n return (\n <ComputeIndicatorWrapper>\n {shouldDisplayComputedIcon && (\n <KitTooltip\n title={t('record_edition.calculated_value')}\n mouseEnterDelay={TOOLTIP_DEFAULT_DELAY_IN_SECONDS}\n >\n <FaSquareRootAlt />\n </KitTooltip>\n )}\n {shouldDisplayOverridedIcon && (\n <KitTooltip\n title={t('record_edition.overrided_value')}\n mouseEnterDelay={TOOLTIP_DEFAULT_DELAY_IN_SECONDS}\n >\n <FaLayerGroup />\n </KitTooltip>\n )}\n </ComputeIndicatorWrapper>\n );\n};\n"]}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
import { type RecordFormElementsValueStandardValue } from '../../../../../hooks/useGetRecordForm';
|
|
2
2
|
interface IInheritedNotOverride {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
isInheritedValues: true;
|
|
4
|
+
isInheritedOverrideValues: false;
|
|
5
|
+
isInheritedNotOverrideValues: true;
|
|
6
|
+
inheritedValues: RecordFormElementsValueStandardValue[];
|
|
7
7
|
}
|
|
8
8
|
interface IInheritedOverride {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
isInheritedValues: true;
|
|
10
|
+
isInheritedOverrideValues: true;
|
|
11
|
+
isInheritedNotOverrideValues: false;
|
|
12
|
+
inheritedValues: RecordFormElementsValueStandardValue[];
|
|
13
13
|
}
|
|
14
14
|
interface INotInherited {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
isInheritedValues: false;
|
|
16
|
+
isInheritedOverrideValues: false;
|
|
17
|
+
isInheritedNotOverrideValues: false;
|
|
18
|
+
inheritedValues: null;
|
|
19
19
|
}
|
|
20
20
|
export type InheritedFlags = INotInherited | IInheritedOverride | IInheritedNotOverride;
|
|
21
21
|
export declare const computeInheritedFlags: (fieldValues: RecordFormElementsValueStandardValue[]) => InheritedFlags;
|
|
22
22
|
interface ICalculatedNotOverride {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
isCalculatedValues: true;
|
|
24
|
+
isCalculatedOverrideValues: false;
|
|
25
|
+
isCalculatedNotOverrideValues: true;
|
|
26
|
+
calculatedValues: RecordFormElementsValueStandardValue[];
|
|
27
27
|
}
|
|
28
28
|
interface ICalculatedOverride {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
isCalculatedValues: true;
|
|
30
|
+
isCalculatedOverrideValues: true;
|
|
31
|
+
isCalculatedNotOverrideValues: false;
|
|
32
|
+
calculatedValues: RecordFormElementsValueStandardValue[];
|
|
33
33
|
}
|
|
34
34
|
interface INotCalculated {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
isCalculatedValues: false;
|
|
36
|
+
isCalculatedOverrideValues: false;
|
|
37
|
+
isCalculatedNotOverrideValues: false;
|
|
38
|
+
calculatedValues: null;
|
|
39
39
|
}
|
|
40
40
|
export type CalculatedFlags = INotCalculated | ICalculatedOverride | ICalculatedNotOverride;
|
|
41
41
|
export declare const computeCalculatedFlags: (fieldValues: RecordFormElementsValueStandardValue[]) => CalculatedFlags;
|