@leav/ui 1.5.1-339c20fb → 1.5.1-36ba391b
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 +115 -1
- package/dist/_gqlTypes/index.js +86 -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/Explorer.d.ts +1 -1
- package/dist/components/Explorer/Explorer.js +15 -3
- package/dist/components/Explorer/Explorer.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 +4 -6
- package/dist/components/Explorer/actions-mass/useExportMassAction.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/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/hooks/useIFrameMessenger/schema.d.ts +15 -4
- package/dist/hooks/useIFrameMessenger/schema.js +7 -1
- package/dist/hooks/useIFrameMessenger/schema.js.map +1 -1
- package/dist/locales/en/shared.json +20 -7
- package/dist/locales/fr/shared.json +20 -7
- package/package.json +3 -3
|
@@ -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"]}
|
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;
|
|
@@ -1,56 +1,55 @@
|
|
|
1
1
|
export const computeInheritedFlags = (fieldValues) => {
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
if (
|
|
2
|
+
const inheritedValues = fieldValues.filter(fieldValue => fieldValue.isInherited);
|
|
3
|
+
const overrideValues = fieldValues.filter(fieldValue => !fieldValue.isInherited && !fieldValue.isCalculated && fieldValue.payload !== null);
|
|
4
|
+
if (inheritedValues.length === 0) {
|
|
5
5
|
return {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
inheritedValues: null,
|
|
7
|
+
isInheritedValues: false,
|
|
8
|
+
isInheritedOverrideValues: false,
|
|
9
|
+
isInheritedNotOverrideValues: false,
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
if (!overrideValue || overrideValue.payload === null) {
|
|
12
|
+
if (overrideValues.length === 0) {
|
|
14
13
|
return {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
inheritedValues,
|
|
15
|
+
isInheritedValues: true,
|
|
16
|
+
isInheritedNotOverrideValues: true,
|
|
17
|
+
isInheritedOverrideValues: false,
|
|
19
18
|
};
|
|
20
19
|
}
|
|
21
20
|
return {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
inheritedValues,
|
|
22
|
+
isInheritedValues: true,
|
|
23
|
+
isInheritedNotOverrideValues: false,
|
|
24
|
+
isInheritedOverrideValues: true,
|
|
26
25
|
};
|
|
27
26
|
};
|
|
28
27
|
export const computeCalculatedFlags = (fieldValues) => {
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
(fieldValue.isInherited === null || fieldValue.isInherited === undefined)
|
|
32
|
-
|
|
28
|
+
const calculatedValues = fieldValues.filter(fieldValue => fieldValue.isCalculated !== null && fieldValue.isCalculated !== undefined);
|
|
29
|
+
const overrideValues = fieldValues.filter(fieldValue => (fieldValue.isCalculated === null || fieldValue.isCalculated === undefined) &&
|
|
30
|
+
(fieldValue.isInherited === null || fieldValue.isInherited === undefined) &&
|
|
31
|
+
fieldValue.payload !== null);
|
|
32
|
+
if (calculatedValues.length === 0) {
|
|
33
33
|
return {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
calculatedValues: null,
|
|
35
|
+
isCalculatedValues: false,
|
|
36
|
+
isCalculatedOverrideValues: false,
|
|
37
|
+
isCalculatedNotOverrideValues: false,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
|
|
41
|
-
if (!overrideValue || overrideValue.payload === null) {
|
|
40
|
+
if (overrideValues.length === 0) {
|
|
42
41
|
return {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
calculatedValues,
|
|
43
|
+
isCalculatedValues: true,
|
|
44
|
+
isCalculatedNotOverrideValues: true,
|
|
45
|
+
isCalculatedOverrideValues: false,
|
|
47
46
|
};
|
|
48
47
|
}
|
|
49
48
|
return {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
calculatedValues,
|
|
50
|
+
isCalculatedValues: true,
|
|
51
|
+
isCalculatedNotOverrideValues: false,
|
|
52
|
+
isCalculatedOverrideValues: true,
|
|
54
53
|
};
|
|
55
54
|
};
|
|
56
55
|
//# sourceMappingURL=calculatedInheritedFlags.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculatedInheritedFlags.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,WAAmD,EAAkB,EAAE;IACzG,MAAM,
|
|
1
|
+
{"version":3,"file":"calculatedInheritedFlags.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,WAAmD,EAAkB,EAAE;IACzG,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACjF,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CACrC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,CACnG,CAAC;IAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACH,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,KAAK;YACxB,yBAAyB,EAAE,KAAK;YAChC,4BAA4B,EAAE,KAAK;SACtC,CAAC;IACN,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;YACH,eAAe;YACf,iBAAiB,EAAE,IAAI;YACvB,4BAA4B,EAAE,IAAI;YAClC,yBAAyB,EAAE,KAAK;SACnC,CAAC;IACN,CAAC;IAED,OAAO;QACH,eAAe;QACf,iBAAiB,EAAE,IAAI;QACvB,4BAA4B,EAAE,KAAK;QACnC,yBAAyB,EAAE,IAAI;KAClC,CAAC;AACN,CAAC,CAAC;AAyBF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,WAAmD,EAAmB,EAAE;IAC3G,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CACvC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,CAC1F,CAAC;IACF,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CACrC,UAAU,CAAC,EAAE,CACT,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,CAAC;QAC3E,CAAC,UAAU,CAAC,WAAW,KAAK,IAAI,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC;QACzE,UAAU,CAAC,OAAO,KAAK,IAAI,CAClC,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;YACH,gBAAgB,EAAE,IAAI;YACtB,kBAAkB,EAAE,KAAK;YACzB,0BAA0B,EAAE,KAAK;YACjC,6BAA6B,EAAE,KAAK;SACvC,CAAC;IACN,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;YACH,gBAAgB;YAChB,kBAAkB,EAAE,IAAI;YACxB,6BAA6B,EAAE,IAAI;YACnC,0BAA0B,EAAE,KAAK;SACpC,CAAC;IACN,CAAC;IAED,OAAO;QACH,gBAAgB;QAChB,kBAAkB,EAAE,IAAI;QACxB,6BAA6B,EAAE,KAAK;QACpC,0BAA0B,EAAE,IAAI;KACnC,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 RecordFormElementsValueStandardValue} from '_ui/hooks/useGetRecordForm';\n\ninterface IInheritedNotOverride {\n isInheritedValues: true;\n isInheritedOverrideValues: false;\n isInheritedNotOverrideValues: true;\n inheritedValues: RecordFormElementsValueStandardValue[];\n}\n\ninterface IInheritedOverride {\n isInheritedValues: true;\n isInheritedOverrideValues: true;\n isInheritedNotOverrideValues: false;\n inheritedValues: RecordFormElementsValueStandardValue[];\n}\n\ninterface INotInherited {\n isInheritedValues: false;\n isInheritedOverrideValues: false;\n isInheritedNotOverrideValues: false;\n inheritedValues: null;\n}\n\nexport type InheritedFlags = INotInherited | IInheritedOverride | IInheritedNotOverride;\n\nexport const computeInheritedFlags = (fieldValues: RecordFormElementsValueStandardValue[]): InheritedFlags => {\n const inheritedValues = fieldValues.filter(fieldValue => fieldValue.isInherited);\n const overrideValues = fieldValues.filter(\n fieldValue => !fieldValue.isInherited && !fieldValue.isCalculated && fieldValue.payload !== null,\n );\n\n if (inheritedValues.length === 0) {\n return {\n inheritedValues: null,\n isInheritedValues: false,\n isInheritedOverrideValues: false,\n isInheritedNotOverrideValues: false,\n };\n }\n\n if (overrideValues.length === 0) {\n return {\n inheritedValues,\n isInheritedValues: true,\n isInheritedNotOverrideValues: true,\n isInheritedOverrideValues: false,\n };\n }\n\n return {\n inheritedValues,\n isInheritedValues: true,\n isInheritedNotOverrideValues: false,\n isInheritedOverrideValues: true,\n };\n};\n\ninterface ICalculatedNotOverride {\n isCalculatedValues: true;\n isCalculatedOverrideValues: false;\n isCalculatedNotOverrideValues: true;\n calculatedValues: RecordFormElementsValueStandardValue[];\n}\n\ninterface ICalculatedOverride {\n isCalculatedValues: true;\n isCalculatedOverrideValues: true;\n isCalculatedNotOverrideValues: false;\n calculatedValues: RecordFormElementsValueStandardValue[];\n}\n\ninterface INotCalculated {\n isCalculatedValues: false;\n isCalculatedOverrideValues: false;\n isCalculatedNotOverrideValues: false;\n calculatedValues: null;\n}\n\nexport type CalculatedFlags = INotCalculated | ICalculatedOverride | ICalculatedNotOverride;\n\nexport const computeCalculatedFlags = (fieldValues: RecordFormElementsValueStandardValue[]): CalculatedFlags => {\n const calculatedValues = fieldValues.filter(\n fieldValue => fieldValue.isCalculated !== null && fieldValue.isCalculated !== undefined,\n );\n const overrideValues = fieldValues.filter(\n fieldValue =>\n (fieldValue.isCalculated === null || fieldValue.isCalculated === undefined) &&\n (fieldValue.isInherited === null || fieldValue.isInherited === undefined) &&\n fieldValue.payload !== null,\n );\n\n if (calculatedValues.length === 0) {\n return {\n calculatedValues: null,\n isCalculatedValues: false,\n isCalculatedOverrideValues: false,\n isCalculatedNotOverrideValues: false,\n };\n }\n\n if (overrideValues.length === 0) {\n return {\n calculatedValues,\n isCalculatedValues: true,\n isCalculatedNotOverrideValues: true,\n isCalculatedOverrideValues: false,\n };\n }\n\n return {\n calculatedValues,\n isCalculatedValues: true,\n isCalculatedNotOverrideValues: false,\n isCalculatedOverrideValues: true,\n };\n};\n"]}
|
|
@@ -29,7 +29,7 @@ const _getRecordSidebarContent = (state, onMetadataSubmit) => {
|
|
|
29
29
|
case 'none':
|
|
30
30
|
return null;
|
|
31
31
|
case 'valueDetails':
|
|
32
|
-
return (_jsxs(StyledDivContentWrapper, { children: [_jsx(AttributeSummary, { attribute: state.activeAttribute.attribute }), _jsx(ValuesSummary, { record: state.record, attributeId: state.activeAttribute.attribute.id, globalValues: state.activeAttribute.globalValues,
|
|
32
|
+
return (_jsxs(StyledDivContentWrapper, { children: [_jsx(AttributeSummary, { attribute: state.activeAttribute.attribute }), _jsx(ValuesSummary, { record: state.record, attributeId: state.activeAttribute.attribute.id, globalValues: state.activeAttribute.globalValues, calculatedValues: state.activeAttribute.calculatedValues })] }));
|
|
33
33
|
case 'valuesVersions':
|
|
34
34
|
return _jsx(ValuesVersions, {});
|
|
35
35
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditRecordSidebar.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAyB,SAAS,EAAW,MAAM,EAAC,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,+BAA+B,EAA+B,MAAM,wCAAwC,CAAC;AACrH,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAExC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,sBAAsB,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,oBAAoB,EAAC,MAAM,aAAa,CAAC;AAOjD,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKzC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,KAA8B,EAAE,gBAAyC,EAAE,EAAE;IAC3G,6DAA6D;IAC7D,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3B,KAAK,MAAM;YACP,OAAO,IAAI,CAAC;QAChB,KAAK,cAAc;YACf,OAAO,CACH,MAAC,uBAAuB,eACpB,KAAC,gBAAgB,IAAC,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,SAAS,GAAI,EAChE,KAAC,aAAa,IACV,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,EAC/C,YAAY,EAAE,KAAK,CAAC,eAAe,CAAC,YAAY,EAChD,
|
|
1
|
+
{"version":3,"file":"EditRecordSidebar.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.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, useMemo, useRef} from 'react';\nimport {type MetadataSubmitValueFunc} from '../EditRecordContent/_types';\nimport {useEditRecordReducer} from '../editRecordReducer/useEditRecordReducer';\nimport RecordSummary from './RecordSummary';\nimport ValuesVersions from './ValuesVersions';\nimport {createPortal} from 'react-dom';\nimport {EditRecordSidebarContentTypeMap, type IEditRecordReducerState} from '../editRecordReducer/editRecordReducer';\nimport {KitSidePanel} from 'aristid-ds';\nimport {type KitSidePanelRef} from 'aristid-ds/dist/Kit/Navigation/SidePanel/types';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {EDIT_RECORD_SIDEBAR_ID} from '_ui/constants';\nimport Breadcrumb from './Breacrumb';\nimport AttributeSummary from './AttributeSummary';\nimport ValuesSummary from './ValuesSummary';\nimport styled from 'styled-components';\nimport {useLang} from '_ui/hooks';\nimport {localizedTranslation} from '@leav/utils';\n\ninterface IEditRecordSidebarProps {\n onMetadataSubmit: MetadataSubmitValueFunc;\n sidebarContainer?: HTMLElement;\n}\n\nconst StyledDivContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: calc(var(--general-spacing-s) * 1px);\n height: 100%;\n`;\n\nconst _getRecordSidebarContent = (state: IEditRecordReducerState, onMetadataSubmit: MetadataSubmitValueFunc) => {\n // TODO: ValuesVersions should be removed or refactored later\n switch (state.sidebarContent) {\n case 'none':\n return null;\n case 'valueDetails':\n return (\n <StyledDivContentWrapper>\n <AttributeSummary attribute={state.activeAttribute.attribute} />\n <ValuesSummary\n record={state.record}\n attributeId={state.activeAttribute.attribute.id}\n globalValues={state.activeAttribute.globalValues}\n calculatedValues={state.activeAttribute.calculatedValues}\n />\n </StyledDivContentWrapper>\n );\n case 'valuesVersions':\n return <ValuesVersions />;\n default:\n return <RecordSummary record={state.record} />;\n }\n};\n\nconst StyledKitSidePanel = styled(KitSidePanel)<{$hideBoxShadow: boolean; $isOpen: boolean}>`\n ${({$hideBoxShadow}) =>\n $hideBoxShadow &&\n `&&& section {\n box-shadow: none;\n }`}\n grid-area: sidebar;\n display: ${({$isOpen}) => ($isOpen ? 'block' : 'none')};\n`;\n\nexport const EditRecordSidebar: FunctionComponent<IEditRecordSidebarProps> = ({onMetadataSubmit, sidebarContainer}) => {\n const {t} = useSharedTranslation();\n const {lang} = useLang();\n const {state} = useEditRecordReducer();\n const sidePanelRef = useRef<KitSidePanelRef | null>(null);\n const sidePanelTitle =\n state.sidebarContent === EditRecordSidebarContentTypeMap.VALUE_DETAILS\n ? localizedTranslation(state.activeAttribute?.attribute.label, lang)\n : (state.record?.label ?? state.record?.id ?? t('record_summary.new_record'));\n\n const editRecordSidebarContent = (\n <StyledKitSidePanel\n ref={sidePanelRef}\n initialOpen={state.isOpenSidebar && state.enableSidebar}\n idCardProps={{title: sidePanelTitle}}\n id={EDIT_RECORD_SIDEBAR_ID}\n headerExtra={<Breadcrumb />}\n $hideBoxShadow={!sidebarContainer}\n $isOpen={state.isOpenSidebar}\n >\n {_getRecordSidebarContent(state, onMetadataSubmit)}\n </StyledKitSidePanel>\n );\n\n useEffect(() => {\n if (sidePanelRef.current && state.enableSidebar) {\n if (state.isOpenSidebar) {\n sidePanelRef.current.open();\n } else {\n sidePanelRef.current.close();\n }\n }\n }, [state.enableSidebar, state.isOpenSidebar, sidePanelRef.current]);\n\n if (!state.enableSidebar) {\n return null;\n }\n\n return sidebarContainer === undefined\n ? editRecordSidebarContent\n : createPortal(editRecordSidebarContent, sidebarContainer);\n};\n\nexport default EditRecordSidebar;\n"]}
|
|
@@ -5,7 +5,7 @@ interface IValuesSummaryProps {
|
|
|
5
5
|
record: IRecordIdentityWhoAmI | null;
|
|
6
6
|
attributeId: string;
|
|
7
7
|
globalValues?: Array<RecordFormElementsValueStandardValue['payload']>;
|
|
8
|
-
|
|
8
|
+
calculatedValues?: Array<RecordFormElementsValueStandardValue['payload']>;
|
|
9
9
|
}
|
|
10
10
|
export declare const ValuesSummary: FunctionComponent<IValuesSummaryProps>;
|
|
11
11
|
export default ValuesSummary;
|
|
@@ -20,7 +20,7 @@ const stripHtml = (html) => {
|
|
|
20
20
|
return doc.body.textContent || '';
|
|
21
21
|
};
|
|
22
22
|
const _isDateRangeValue = (value) => !!value && typeof value === 'object' && 'from' in value && 'to' in value;
|
|
23
|
-
export const ValuesSummary = ({ record, attributeId, globalValues = [],
|
|
23
|
+
export const ValuesSummary = ({ record, attributeId, globalValues = [], calculatedValues = [], }) => {
|
|
24
24
|
const { t } = useSharedTranslation();
|
|
25
25
|
const stringifyValue = (value) => {
|
|
26
26
|
if (typeof value === 'string') {
|
|
@@ -41,12 +41,12 @@ export const ValuesSummary = ({ record, attributeId, globalValues = [], calculat
|
|
|
41
41
|
return value;
|
|
42
42
|
};
|
|
43
43
|
const stripedGlobalValues = globalValues.map(stringifyValue);
|
|
44
|
-
const
|
|
44
|
+
const stripedCalculatedValues = calculatedValues.map(stringifyValue);
|
|
45
45
|
return (_jsx(StyledDivContentWrapper, { children: _jsx(KitTabs, { items: [
|
|
46
46
|
{
|
|
47
47
|
key: 'version_values',
|
|
48
48
|
label: t('record_summary.values_version'),
|
|
49
|
-
tabContent: (_jsx(InformationsWrapper, { children: _jsx(KitTree, { defaultExpandAll: true, selectedKeys:
|
|
49
|
+
tabContent: (_jsx(InformationsWrapper, { children: _jsx(KitTree, { defaultExpandAll: true, selectedKeys: calculatedValues.length > 0 && globalValues.length === 0
|
|
50
50
|
? [calculatedValueKey]
|
|
51
51
|
: [globalValueKey], treeData: [
|
|
52
52
|
{
|
|
@@ -55,13 +55,18 @@ export const ValuesSummary = ({ record, attributeId, globalValues = [], calculat
|
|
|
55
55
|
display: 'flex',
|
|
56
56
|
alignItems: 'center',
|
|
57
57
|
justifyContent: 'space-between',
|
|
58
|
-
}, children: [_jsxs("span", { children: [_jsx(FaSquareRootAlt, {}), " ", t('record_summary.calculated_value')] }), _jsx(KitBadge, { count:
|
|
59
|
-
children:
|
|
60
|
-
{
|
|
61
|
-
key: `${calculatedValueKey}
|
|
62
|
-
title:
|
|
63
|
-
}
|
|
64
|
-
|
|
58
|
+
}, children: [_jsxs("span", { children: [_jsx(FaSquareRootAlt, {}), " ", t('record_summary.calculated_value')] }), _jsx(KitBadge, { count: stripedCalculatedValues.length, color: "primary" })] })),
|
|
59
|
+
children: stripedCalculatedValues.length > 0
|
|
60
|
+
? stripedCalculatedValues.map((calculatedValue, index) => ({
|
|
61
|
+
key: `${calculatedValueKey}-${index}`,
|
|
62
|
+
title: calculatedValue,
|
|
63
|
+
}))
|
|
64
|
+
: [
|
|
65
|
+
{
|
|
66
|
+
key: `${calculatedValueKey}-${0}`,
|
|
67
|
+
title: _jsx("i", { children: t('record_summary.no_value') }),
|
|
68
|
+
},
|
|
69
|
+
],
|
|
65
70
|
},
|
|
66
71
|
{
|
|
67
72
|
key: globalValueKey,
|