@leav/ui 1.5.1 → 1.5.2-861351df
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/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 +11 -13
- package/dist/components/Explorer/actions-mass/useExportMassAction.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/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/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
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,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValuesSummary.js","sourceRoot":"","sources":["../../../../../src/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.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} from 'react';\nimport {type RecordFormElementsValueStandardValue} from '_ui/hooks/useGetRecordForm';\nimport {KitBadge, KitTabs, KitTree} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {FaLayerGroup, FaSquareRootAlt} from 'react-icons/fa';\nimport styled from 'styled-components';\nimport {type IRecordIdentityWhoAmI} from '_ui/types';\nimport {RecordHistory} from '../../../RecordHistory/RecordHistory';\n\nconst InformationsWrapper = styled.div`\n margin-top: calc(var(--general-spacing-s) * 1px);\n`;\n\nconst StyledDivContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\ninterface IValuesSummaryProps {\n record: IRecordIdentityWhoAmI | null;\n attributeId: string;\n globalValues?: Array<RecordFormElementsValueStandardValue['payload']>;\n calculatedValue?: RecordFormElementsValueStandardValue['payload'];\n}\n\nconst calculatedValueKey = '0';\nconst globalValueKey = '1';\n\n// https://stackoverflow.com/questions/822452/strip-html-tags-from-text-using-plain-javascript\nconst stripHtml = (html: string): string => {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n return doc.body.textContent || '';\n};\n\nconst _isDateRangeValue = (value: any): value is {from: string; to: string} =>\n !!value && typeof value === 'object' && 'from' in value && 'to' in value;\n\nexport const ValuesSummary: FunctionComponent<IValuesSummaryProps> = ({\n record,\n attributeId,\n globalValues = [],\n calculatedValue,\n}) => {\n const {t} = useSharedTranslation();\n\n const stringifyValue = (value: RecordFormElementsValueStandardValue['payload']): string => {\n if (typeof value === 'string') {\n return stripHtml(value);\n }\n\n if (typeof value === 'boolean') {\n return value ? t('global.yes') : t('global.no');\n }\n\n if (_isDateRangeValue(value)) {\n return t('record_edition.date_range_value', {\n from: value.from,\n to: value.to,\n interpolation: {\n escapeValue: false,\n },\n });\n }\n\n return value;\n };\n\n const stripedGlobalValues = globalValues.map(stringifyValue);\n const stripedCalculatedValue = stringifyValue(calculatedValue);\n\n return (\n <StyledDivContentWrapper>\n <KitTabs\n items={[\n {\n key: 'version_values',\n label: t('record_summary.values_version'),\n tabContent: (\n <InformationsWrapper>\n <KitTree\n defaultExpandAll\n selectedKeys={\n calculatedValue && globalValues.length === 0\n ? [calculatedValueKey]\n : [globalValueKey]\n }\n treeData={[\n {\n key: calculatedValueKey,\n title: (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <span>\n <FaSquareRootAlt /> {t('record_summary.calculated_value')}\n </span>\n <KitBadge\n count={stripedCalculatedValue ? 1 : undefined}\n color=\"primary\"\n />\n </div>\n ),\n children: [\n {\n key: `${calculatedValueKey}-0`,\n title: stripedCalculatedValue ?? (\n <i>{t('record_summary.no_value')}</i>\n ),\n },\n ],\n },\n {\n key: globalValueKey,\n title: (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <span>\n <FaLayerGroup /> {t('record_summary.global')}\n </span>\n <KitBadge count={stripedGlobalValues.length} color=\"primary\" />\n </div>\n ),\n children:\n stripedGlobalValues.length > 0\n ? stripedGlobalValues.map((value, index) => ({\n key: `${globalValueKey}-${index}`,\n title: value,\n }))\n : [\n {\n key: `${globalValueKey}-${0}`,\n title: <i>{t('record_summary.no_value')}</i>,\n },\n ],\n },\n ]}\n />\n </InformationsWrapper>\n ),\n },\n {\n key: 'history',\n label: t('record_summary.history'),\n tabContent: <RecordHistory record={record} attributeId={attributeId} />,\n },\n ]}\n />\n </StyledDivContentWrapper>\n );\n};\n\nexport default ValuesSummary;\n"]}
|
|
1
|
+
{"version":3,"file":"ValuesSummary.js","sourceRoot":"","sources":["../../../../../src/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.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} from 'react';\nimport {type RecordFormElementsValueStandardValue} from '_ui/hooks/useGetRecordForm';\nimport {KitBadge, KitTabs, KitTree} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {FaLayerGroup, FaSquareRootAlt} from 'react-icons/fa';\nimport styled from 'styled-components';\nimport {type IRecordIdentityWhoAmI} from '_ui/types';\nimport {RecordHistory} from '../../../RecordHistory/RecordHistory';\n\nconst InformationsWrapper = styled.div`\n margin-top: calc(var(--general-spacing-s) * 1px);\n`;\n\nconst StyledDivContentWrapper = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\ninterface IValuesSummaryProps {\n record: IRecordIdentityWhoAmI | null;\n attributeId: string;\n globalValues?: Array<RecordFormElementsValueStandardValue['payload']>;\n calculatedValues?: Array<RecordFormElementsValueStandardValue['payload']>;\n}\n\nconst calculatedValueKey = '0';\nconst globalValueKey = '1';\n\n// https://stackoverflow.com/questions/822452/strip-html-tags-from-text-using-plain-javascript\nconst stripHtml = (html: string): string => {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n return doc.body.textContent || '';\n};\n\nconst _isDateRangeValue = (value: any): value is {from: string; to: string} =>\n !!value && typeof value === 'object' && 'from' in value && 'to' in value;\n\nexport const ValuesSummary: FunctionComponent<IValuesSummaryProps> = ({\n record,\n attributeId,\n globalValues = [],\n calculatedValues = [],\n}) => {\n const {t} = useSharedTranslation();\n\n const stringifyValue = (value: RecordFormElementsValueStandardValue['payload']): string => {\n if (typeof value === 'string') {\n return stripHtml(value);\n }\n\n if (typeof value === 'boolean') {\n return value ? t('global.yes') : t('global.no');\n }\n\n if (_isDateRangeValue(value)) {\n return t('record_edition.date_range_value', {\n from: value.from,\n to: value.to,\n interpolation: {\n escapeValue: false,\n },\n });\n }\n\n return value;\n };\n\n const stripedGlobalValues = globalValues.map(stringifyValue);\n const stripedCalculatedValues = calculatedValues.map(stringifyValue);\n\n return (\n <StyledDivContentWrapper>\n <KitTabs\n items={[\n {\n key: 'version_values',\n label: t('record_summary.values_version'),\n tabContent: (\n <InformationsWrapper>\n <KitTree\n defaultExpandAll\n selectedKeys={\n calculatedValues.length > 0 && globalValues.length === 0\n ? [calculatedValueKey]\n : [globalValueKey]\n }\n treeData={[\n {\n key: calculatedValueKey,\n title: (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <span>\n <FaSquareRootAlt /> {t('record_summary.calculated_value')}\n </span>\n <KitBadge count={stripedCalculatedValues.length} color=\"primary\" />\n </div>\n ),\n children:\n stripedCalculatedValues.length > 0\n ? stripedCalculatedValues.map((calculatedValue, index) => ({\n key: `${calculatedValueKey}-${index}`,\n title: calculatedValue,\n }))\n : [\n {\n key: `${calculatedValueKey}-${0}`,\n title: <i>{t('record_summary.no_value')}</i>,\n },\n ],\n },\n {\n key: globalValueKey,\n title: (\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n <span>\n <FaLayerGroup /> {t('record_summary.global')}\n </span>\n <KitBadge count={stripedGlobalValues.length} color=\"primary\" />\n </div>\n ),\n children:\n stripedGlobalValues.length > 0\n ? stripedGlobalValues.map((value, index) => ({\n key: `${globalValueKey}-${index}`,\n title: value,\n }))\n : [\n {\n key: `${globalValueKey}-${0}`,\n title: <i>{t('record_summary.no_value')}</i>,\n },\n ],\n },\n ]}\n />\n </InformationsWrapper>\n ),\n },\n {\n key: 'history',\n label: t('record_summary.history'),\n tabContent: <RecordHistory record={record} attributeId={attributeId} />,\n },\n ]}\n />\n </StyledDivContentWrapper>\n );\n};\n\nexport default ValuesSummary;\n"]}
|
|
@@ -4,7 +4,7 @@ import { type RecordFormElementsValueLinkValue, type RecordFormElementsValueStan
|
|
|
4
4
|
export interface IRecordPropertyWithAttribute {
|
|
5
5
|
attribute: RecordFormAttributeFragment;
|
|
6
6
|
globalValues?: Array<RecordFormElementsValueStandardValue['payload']>;
|
|
7
|
-
|
|
7
|
+
calculatedValues?: Array<RecordFormElementsValueStandardValue['payload']>;
|
|
8
8
|
}
|
|
9
9
|
export declare const EditRecordSidebarContentTypeMap: {
|
|
10
10
|
readonly SUMMARY: "summary";
|
|
@@ -82,8 +82,9 @@ const editRecordReducer = (state, action) => {
|
|
|
82
82
|
}
|
|
83
83
|
return value?.payload;
|
|
84
84
|
}),
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
calculatedValues: action.values
|
|
86
|
+
?.filter(value => value.isCalculated || value.isInherited)
|
|
87
|
+
.map(calculatedOrInheritedValue => {
|
|
87
88
|
if (TypeGuards.isRecordFormElementsValuesLinkValue(calculatedOrInheritedValue)) {
|
|
88
89
|
return (calculatedOrInheritedValue.linkValue.whoAmI.label ??
|
|
89
90
|
calculatedOrInheritedValue.linkValue.whoAmI.id);
|
|
@@ -93,7 +94,7 @@ const editRecordReducer = (state, action) => {
|
|
|
93
94
|
calculatedOrInheritedValue.treeValue.record.whoAmI.id);
|
|
94
95
|
}
|
|
95
96
|
return calculatedOrInheritedValue?.payload;
|
|
96
|
-
})
|
|
97
|
+
}) ?? [],
|
|
97
98
|
},
|
|
98
99
|
sidebarContent: newSidebarContent,
|
|
99
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editRecordReducer.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/editRecordReducer/editRecordReducer.ts"],"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 IRecordIdentityWhoAmI, type SystemTranslation, type IValueVersion} from '_ui/types';\nimport {\n type RecordFormAttributeFragment,\n type RecordUpdateSubscription,\n type ValueDetailsFragment,\n} from '_ui/_gqlTypes';\nimport {\n type RecordFormElementsValueLinkValue,\n type RecordFormElementsValueStandardValue,\n type RecordFormElementsValueTreeValue,\n} from '_ui/hooks/useGetRecordForm';\nimport {TypeGuards} from '_ui/components/LibraryItemsList/LibraryItemsListTable/Cell/typeGuards';\n\nexport interface IRecordPropertyWithAttribute {\n attribute: RecordFormAttributeFragment;\n globalValues?: Array<RecordFormElementsValueStandardValue['payload']>;\n calculatedValue?: RecordFormElementsValueStandardValue['payload'];\n}\n\nexport const EditRecordSidebarContentTypeMap = {\n SUMMARY: 'summary',\n VALUE_DETAILS: 'valueDetails',\n VALUES_VERSIONS: 'valuesVersions',\n NONE: 'none',\n} as const;\n\ntype EditRecordSidebarContentType =\n (typeof EditRecordSidebarContentTypeMap)[keyof typeof EditRecordSidebarContentTypeMap];\n\nexport interface IEditRecordReducerState {\n record: IRecordIdentityWhoAmI;\n libraryId: string;\n libraryLabel: SystemTranslation | null;\n activeAttribute: IRecordPropertyWithAttribute;\n sidebarContent: EditRecordSidebarContentType;\n enableSidebar: boolean;\n isOpenSidebar: boolean;\n sidebarDefaultHidden?: boolean;\n valuesVersion: IValueVersion;\n originValuesVersion: IValueVersion;\n refreshRequested: boolean;\n externalUpdate: {\n modifiers: IRecordIdentityWhoAmI[];\n updatedValues: {\n [attribute: string]: ValueDetailsFragment[];\n };\n };\n withInfoButton: boolean;\n}\n\nexport enum EditRecordReducerActionsTypes {\n SET_RECORD = 'SET_RECORD',\n SET_LIBRARY_LABEL = 'SET_LIBRARY_LABEL',\n SET_ACTIVE_VALUE = 'SET_ACTIVE_VALUE',\n INITIALIZE_SIDEBAR = 'INITIALIZE_SIDEBAR',\n SET_ENABLE_SIDEBAR = 'SET_ENABLE_SIDEBAR',\n SET_SIDEBAR_CONTENT = 'SET_SIDEBAR_CONTENT',\n SET_SIDEBAR_IS_OPEN = 'SET_SIDEBAR_IS_OPEN',\n SET_SIDEBAR_DEFAULT_HIDDEN = 'SET_SIDEBAR_DEFAULT_HIDDEN',\n SET_VALUES_VERSION = 'SET_VALUES_VERSION',\n REQUEST_REFRESH = 'REQUEST_REFRESH',\n REFRESH_DONE = 'REFRESH_DONE',\n ADD_EXTERNAL_UPDATE = 'ADD_EXTERNAL_UPDATE',\n CLEAR_EXTERNAL_UPDATE = 'CLEAR_EXTERNAL_UPDATE',\n}\n\nexport type IEditRecordReducerActions =\n | {\n type: EditRecordReducerActionsTypes.SET_RECORD;\n record: IEditRecordReducerState['record'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_LIBRARY_LABEL;\n label: SystemTranslation;\n }\n | {\n type: EditRecordReducerActionsTypes.SET_ACTIVE_VALUE;\n attribute?: IEditRecordReducerState['activeAttribute']['attribute'];\n values?:\n | RecordFormElementsValueStandardValue[]\n | RecordFormElementsValueLinkValue[]\n | RecordFormElementsValueTreeValue[];\n }\n | {\n type: EditRecordReducerActionsTypes.INITIALIZE_SIDEBAR;\n enabled: IEditRecordReducerState['enableSidebar'];\n isOpenByDefault: IEditRecordReducerState['sidebarDefaultHidden'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_ENABLE_SIDEBAR;\n enabled: IEditRecordReducerState['enableSidebar'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN;\n isOpen: IEditRecordReducerState['isOpenSidebar'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_CONTENT;\n content: IEditRecordReducerState['sidebarContent'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_DEFAULT_HIDDEN;\n value: IEditRecordReducerState['sidebarDefaultHidden'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_VALUES_VERSION;\n valuesVersion: IEditRecordReducerState['valuesVersion'];\n }\n | {\n type: EditRecordReducerActionsTypes.REQUEST_REFRESH;\n }\n | {\n type: EditRecordReducerActionsTypes.REFRESH_DONE;\n }\n | {\n type: EditRecordReducerActionsTypes.ADD_EXTERNAL_UPDATE;\n modifier: IRecordIdentityWhoAmI;\n updatedValues: RecordUpdateSubscription['recordUpdate']['updatedValues'];\n }\n | {\n type: EditRecordReducerActionsTypes.CLEAR_EXTERNAL_UPDATE;\n };\n\nexport const initialState: IEditRecordReducerState = {\n record: null,\n libraryId: null,\n libraryLabel: null,\n activeAttribute: null,\n enableSidebar: false,\n isOpenSidebar: false,\n sidebarContent: EditRecordSidebarContentTypeMap.NONE,\n sidebarDefaultHidden: false,\n valuesVersion: null,\n originValuesVersion: null,\n refreshRequested: false,\n externalUpdate: {\n modifiers: [],\n updatedValues: {},\n },\n withInfoButton: false,\n};\n\nconst editRecordReducer = (\n state: IEditRecordReducerState,\n action: IEditRecordReducerActions,\n): IEditRecordReducerState => {\n switch (action.type) {\n case EditRecordReducerActionsTypes.SET_RECORD:\n return {...state, record: action.record};\n case EditRecordReducerActionsTypes.SET_LIBRARY_LABEL:\n return {...state, libraryLabel: action.label};\n case EditRecordReducerActionsTypes.INITIALIZE_SIDEBAR: {\n const {enabled, isOpenByDefault} = action;\n // If the sidebar is not enabled, don't check for isOpenByDefault\n const isOpen = enabled && isOpenByDefault;\n return {\n ...state,\n enableSidebar: enabled,\n sidebarDefaultHidden: !isOpenByDefault,\n sidebarContent: isOpen ? EditRecordSidebarContentTypeMap.SUMMARY : EditRecordSidebarContentTypeMap.NONE,\n isOpenSidebar: isOpen,\n };\n }\n case EditRecordReducerActionsTypes.SET_ENABLE_SIDEBAR:\n return {...state, enableSidebar: action.enabled};\n case EditRecordReducerActionsTypes.SET_SIDEBAR_DEFAULT_HIDDEN:\n return {...state, sidebarDefaultHidden: action.value};\n case EditRecordReducerActionsTypes.SET_ACTIVE_VALUE:\n const newSidebarContent =\n action.attribute !== null\n ? EditRecordSidebarContentTypeMap.VALUE_DETAILS\n : state.sidebarDefaultHidden\n ? EditRecordSidebarContentTypeMap.NONE\n : EditRecordSidebarContentTypeMap.SUMMARY;\n return {\n ...state,\n activeAttribute: {\n attribute: action.attribute ?? state.activeAttribute?.attribute ?? null,\n globalValues: action.values\n ?.filter(value => !value.isCalculated && !value.isInherited)\n .map(value => {\n if (TypeGuards.isRecordFormElementsValuesLinkValue(value)) {\n return value.linkValue.whoAmI.label ?? value.linkValue.whoAmI.id;\n }\n\n if (TypeGuards.isRecordFormElementsValuesTreeValue(value)) {\n return value.treeValue.record.whoAmI.label ?? value.treeValue.record.whoAmI.id;\n }\n\n return value?.payload;\n }),\n calculatedValue: (() => {\n const calculatedOrInheritedValue = action.values?.filter(\n value => value.isCalculated || value.isInherited,\n )?.[0];\n\n if (TypeGuards.isRecordFormElementsValuesLinkValue(calculatedOrInheritedValue)) {\n return (\n calculatedOrInheritedValue.linkValue.whoAmI.label ??\n calculatedOrInheritedValue.linkValue.whoAmI.id\n );\n }\n\n if (TypeGuards.isRecordFormElementsValuesTreeValue(calculatedOrInheritedValue)) {\n return (\n calculatedOrInheritedValue.treeValue.record.whoAmI.label ??\n calculatedOrInheritedValue.treeValue.record.whoAmI.id\n );\n }\n\n return calculatedOrInheritedValue?.payload;\n })(),\n },\n sidebarContent: newSidebarContent,\n };\n case EditRecordReducerActionsTypes.SET_SIDEBAR_CONTENT:\n return {...state, sidebarContent: action.content};\n case EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN:\n return {\n ...state,\n sidebarContent: action.isOpen\n ? EditRecordSidebarContentTypeMap.SUMMARY\n : EditRecordSidebarContentTypeMap.NONE,\n isOpenSidebar: action.isOpen,\n };\n case EditRecordReducerActionsTypes.SET_VALUES_VERSION:\n return {...state, valuesVersion: action.valuesVersion};\n case EditRecordReducerActionsTypes.REQUEST_REFRESH:\n return {...state, refreshRequested: true};\n case EditRecordReducerActionsTypes.REFRESH_DONE:\n return {...state, refreshRequested: false};\n case EditRecordReducerActionsTypes.ADD_EXTERNAL_UPDATE:\n const newState = {...state};\n const newModifiers = state.externalUpdate?.modifiers.find(({id}) => id === action.modifier.id)\n ? (newState.externalUpdate?.modifiers ?? [])\n : [...(newState.externalUpdate?.modifiers ?? []), action.modifier];\n\n const newValues = action.updatedValues.reduce(\n (acc, updatedValue) => ({\n ...acc,\n [updatedValue.attribute]: [\n ...(newState.externalUpdate?.[updatedValue.attribute] ?? []),\n updatedValue.value,\n ],\n }),\n {},\n );\n\n newState.externalUpdate = {\n modifiers: newModifiers,\n updatedValues: {...(state.externalUpdate?.updatedValues ?? {}), ...newValues},\n };\n\n return newState;\n case EditRecordReducerActionsTypes.CLEAR_EXTERNAL_UPDATE:\n return {...state, externalUpdate: {...initialState.externalUpdate}};\n default:\n console.warn('Unknown action type in editRecordReducer:', action);\n return state;\n }\n};\n\nexport default editRecordReducer;\n"]}
|
|
1
|
+
{"version":3,"file":"editRecordReducer.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/editRecordReducer/editRecordReducer.ts"],"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 IRecordIdentityWhoAmI, type SystemTranslation, type IValueVersion} from '_ui/types';\nimport {\n type RecordFormAttributeFragment,\n type RecordUpdateSubscription,\n type ValueDetailsFragment,\n} from '_ui/_gqlTypes';\nimport {\n type RecordFormElementsValueLinkValue,\n type RecordFormElementsValueStandardValue,\n type RecordFormElementsValueTreeValue,\n} from '_ui/hooks/useGetRecordForm';\nimport {TypeGuards} from '_ui/components/LibraryItemsList/LibraryItemsListTable/Cell/typeGuards';\n\nexport interface IRecordPropertyWithAttribute {\n attribute: RecordFormAttributeFragment;\n globalValues?: Array<RecordFormElementsValueStandardValue['payload']>;\n calculatedValues?: Array<RecordFormElementsValueStandardValue['payload']>;\n}\n\nexport const EditRecordSidebarContentTypeMap = {\n SUMMARY: 'summary',\n VALUE_DETAILS: 'valueDetails',\n VALUES_VERSIONS: 'valuesVersions',\n NONE: 'none',\n} as const;\n\ntype EditRecordSidebarContentType =\n (typeof EditRecordSidebarContentTypeMap)[keyof typeof EditRecordSidebarContentTypeMap];\n\nexport interface IEditRecordReducerState {\n record: IRecordIdentityWhoAmI;\n libraryId: string;\n libraryLabel: SystemTranslation | null;\n activeAttribute: IRecordPropertyWithAttribute;\n sidebarContent: EditRecordSidebarContentType;\n enableSidebar: boolean;\n isOpenSidebar: boolean;\n sidebarDefaultHidden?: boolean;\n valuesVersion: IValueVersion;\n originValuesVersion: IValueVersion;\n refreshRequested: boolean;\n externalUpdate: {\n modifiers: IRecordIdentityWhoAmI[];\n updatedValues: {\n [attribute: string]: ValueDetailsFragment[];\n };\n };\n withInfoButton: boolean;\n}\n\nexport enum EditRecordReducerActionsTypes {\n SET_RECORD = 'SET_RECORD',\n SET_LIBRARY_LABEL = 'SET_LIBRARY_LABEL',\n SET_ACTIVE_VALUE = 'SET_ACTIVE_VALUE',\n INITIALIZE_SIDEBAR = 'INITIALIZE_SIDEBAR',\n SET_ENABLE_SIDEBAR = 'SET_ENABLE_SIDEBAR',\n SET_SIDEBAR_CONTENT = 'SET_SIDEBAR_CONTENT',\n SET_SIDEBAR_IS_OPEN = 'SET_SIDEBAR_IS_OPEN',\n SET_SIDEBAR_DEFAULT_HIDDEN = 'SET_SIDEBAR_DEFAULT_HIDDEN',\n SET_VALUES_VERSION = 'SET_VALUES_VERSION',\n REQUEST_REFRESH = 'REQUEST_REFRESH',\n REFRESH_DONE = 'REFRESH_DONE',\n ADD_EXTERNAL_UPDATE = 'ADD_EXTERNAL_UPDATE',\n CLEAR_EXTERNAL_UPDATE = 'CLEAR_EXTERNAL_UPDATE',\n}\n\nexport type IEditRecordReducerActions =\n | {\n type: EditRecordReducerActionsTypes.SET_RECORD;\n record: IEditRecordReducerState['record'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_LIBRARY_LABEL;\n label: SystemTranslation;\n }\n | {\n type: EditRecordReducerActionsTypes.SET_ACTIVE_VALUE;\n attribute?: IEditRecordReducerState['activeAttribute']['attribute'];\n values?:\n | RecordFormElementsValueStandardValue[]\n | RecordFormElementsValueLinkValue[]\n | RecordFormElementsValueTreeValue[];\n }\n | {\n type: EditRecordReducerActionsTypes.INITIALIZE_SIDEBAR;\n enabled: IEditRecordReducerState['enableSidebar'];\n isOpenByDefault: IEditRecordReducerState['sidebarDefaultHidden'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_ENABLE_SIDEBAR;\n enabled: IEditRecordReducerState['enableSidebar'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN;\n isOpen: IEditRecordReducerState['isOpenSidebar'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_CONTENT;\n content: IEditRecordReducerState['sidebarContent'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_DEFAULT_HIDDEN;\n value: IEditRecordReducerState['sidebarDefaultHidden'];\n }\n | {\n type: EditRecordReducerActionsTypes.SET_VALUES_VERSION;\n valuesVersion: IEditRecordReducerState['valuesVersion'];\n }\n | {\n type: EditRecordReducerActionsTypes.REQUEST_REFRESH;\n }\n | {\n type: EditRecordReducerActionsTypes.REFRESH_DONE;\n }\n | {\n type: EditRecordReducerActionsTypes.ADD_EXTERNAL_UPDATE;\n modifier: IRecordIdentityWhoAmI;\n updatedValues: RecordUpdateSubscription['recordUpdate']['updatedValues'];\n }\n | {\n type: EditRecordReducerActionsTypes.CLEAR_EXTERNAL_UPDATE;\n };\n\nexport const initialState: IEditRecordReducerState = {\n record: null,\n libraryId: null,\n libraryLabel: null,\n activeAttribute: null,\n enableSidebar: false,\n isOpenSidebar: false,\n sidebarContent: EditRecordSidebarContentTypeMap.NONE,\n sidebarDefaultHidden: false,\n valuesVersion: null,\n originValuesVersion: null,\n refreshRequested: false,\n externalUpdate: {\n modifiers: [],\n updatedValues: {},\n },\n withInfoButton: false,\n};\n\nconst editRecordReducer = (\n state: IEditRecordReducerState,\n action: IEditRecordReducerActions,\n): IEditRecordReducerState => {\n switch (action.type) {\n case EditRecordReducerActionsTypes.SET_RECORD:\n return {...state, record: action.record};\n case EditRecordReducerActionsTypes.SET_LIBRARY_LABEL:\n return {...state, libraryLabel: action.label};\n case EditRecordReducerActionsTypes.INITIALIZE_SIDEBAR: {\n const {enabled, isOpenByDefault} = action;\n // If the sidebar is not enabled, don't check for isOpenByDefault\n const isOpen = enabled && isOpenByDefault;\n return {\n ...state,\n enableSidebar: enabled,\n sidebarDefaultHidden: !isOpenByDefault,\n sidebarContent: isOpen ? EditRecordSidebarContentTypeMap.SUMMARY : EditRecordSidebarContentTypeMap.NONE,\n isOpenSidebar: isOpen,\n };\n }\n case EditRecordReducerActionsTypes.SET_ENABLE_SIDEBAR:\n return {...state, enableSidebar: action.enabled};\n case EditRecordReducerActionsTypes.SET_SIDEBAR_DEFAULT_HIDDEN:\n return {...state, sidebarDefaultHidden: action.value};\n case EditRecordReducerActionsTypes.SET_ACTIVE_VALUE:\n const newSidebarContent =\n action.attribute !== null\n ? EditRecordSidebarContentTypeMap.VALUE_DETAILS\n : state.sidebarDefaultHidden\n ? EditRecordSidebarContentTypeMap.NONE\n : EditRecordSidebarContentTypeMap.SUMMARY;\n return {\n ...state,\n activeAttribute: {\n attribute: action.attribute ?? state.activeAttribute?.attribute ?? null,\n globalValues: action.values\n ?.filter(value => !value.isCalculated && !value.isInherited)\n .map(value => {\n if (TypeGuards.isRecordFormElementsValuesLinkValue(value)) {\n return value.linkValue.whoAmI.label ?? value.linkValue.whoAmI.id;\n }\n\n if (TypeGuards.isRecordFormElementsValuesTreeValue(value)) {\n return value.treeValue.record.whoAmI.label ?? value.treeValue.record.whoAmI.id;\n }\n\n return value?.payload;\n }),\n calculatedValues:\n action.values\n ?.filter(value => value.isCalculated || value.isInherited)\n .map(calculatedOrInheritedValue => {\n if (TypeGuards.isRecordFormElementsValuesLinkValue(calculatedOrInheritedValue)) {\n return (\n calculatedOrInheritedValue.linkValue.whoAmI.label ??\n calculatedOrInheritedValue.linkValue.whoAmI.id\n );\n }\n\n if (TypeGuards.isRecordFormElementsValuesTreeValue(calculatedOrInheritedValue)) {\n return (\n calculatedOrInheritedValue.treeValue.record.whoAmI.label ??\n calculatedOrInheritedValue.treeValue.record.whoAmI.id\n );\n }\n\n return calculatedOrInheritedValue?.payload;\n }) ?? [],\n },\n sidebarContent: newSidebarContent,\n };\n case EditRecordReducerActionsTypes.SET_SIDEBAR_CONTENT:\n return {...state, sidebarContent: action.content};\n case EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN:\n return {\n ...state,\n sidebarContent: action.isOpen\n ? EditRecordSidebarContentTypeMap.SUMMARY\n : EditRecordSidebarContentTypeMap.NONE,\n isOpenSidebar: action.isOpen,\n };\n case EditRecordReducerActionsTypes.SET_VALUES_VERSION:\n return {...state, valuesVersion: action.valuesVersion};\n case EditRecordReducerActionsTypes.REQUEST_REFRESH:\n return {...state, refreshRequested: true};\n case EditRecordReducerActionsTypes.REFRESH_DONE:\n return {...state, refreshRequested: false};\n case EditRecordReducerActionsTypes.ADD_EXTERNAL_UPDATE:\n const newState = {...state};\n const newModifiers = state.externalUpdate?.modifiers.find(({id}) => id === action.modifier.id)\n ? (newState.externalUpdate?.modifiers ?? [])\n : [...(newState.externalUpdate?.modifiers ?? []), action.modifier];\n\n const newValues = action.updatedValues.reduce(\n (acc, updatedValue) => ({\n ...acc,\n [updatedValue.attribute]: [\n ...(newState.externalUpdate?.[updatedValue.attribute] ?? []),\n updatedValue.value,\n ],\n }),\n {},\n );\n\n newState.externalUpdate = {\n modifiers: newModifiers,\n updatedValues: {...(state.externalUpdate?.updatedValues ?? {}), ...newValues},\n };\n\n return newState;\n case EditRecordReducerActionsTypes.CLEAR_EXTERNAL_UPDATE:\n return {...state, externalUpdate: {...initialState.externalUpdate}};\n default:\n console.warn('Unknown action type in editRecordReducer:', action);\n return state;\n }\n};\n\nexport default editRecordReducer;\n"]}
|
|
@@ -157,6 +157,9 @@ export const SelectTreeNodeContent = ({ treeData: tree, childrenAsRecordValuePer
|
|
|
157
157
|
}
|
|
158
158
|
};
|
|
159
159
|
const _handleCheck = selection => {
|
|
160
|
+
if (!canSelectRoot && Array.isArray(selection) && selection.includes(tree.id)) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
160
163
|
const checkedKeys = _isObjectSelection(selection) ? selection.checked : selection;
|
|
161
164
|
const nodes = checkedKeys.map(key => treeMap[key]);
|
|
162
165
|
onCheck(nodes);
|