@leav/ui 1.10.0-8a6786e5 → 1.10.0-dec3db65

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.
Files changed (105) hide show
  1. package/dist/_utils/index.d.ts +0 -1
  2. package/dist/_utils/index.js +0 -3
  3. package/dist/_utils/index.js.map +1 -1
  4. package/dist/components/RecordEdition/EditRecord/EditRecord.js +1 -25
  5. package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
  6. package/dist/components/RecordEdition/EditRecordButtons/SidebarButton.js +2 -2
  7. package/dist/components/RecordEdition/EditRecordButtons/SidebarButton.js.map +1 -1
  8. package/dist/components/RecordEdition/EditRecordContent/_types.d.ts +1 -19
  9. package/dist/components/RecordEdition/EditRecordContent/_types.js +0 -5
  10. package/dist/components/RecordEdition/EditRecordContent/_types.js.map +1 -1
  11. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.d.ts +0 -3
  12. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.js.map +1 -1
  13. package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.d.ts +0 -2
  14. package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js +6 -8
  15. package/dist/components/RecordEdition/EditRecordSidebar/EditRecordSidebar.js.map +1 -1
  16. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js +2 -33
  17. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js.map +1 -1
  18. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/useRecordInformations.js +11 -0
  19. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/useRecordInformations.js.map +1 -1
  20. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordSummary.js +2 -19
  21. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordSummary.js.map +1 -1
  22. package/dist/locales/en/shared.json +3 -31
  23. package/dist/locales/fr/shared.json +3 -31
  24. package/package.json +4 -4
  25. package/dist/components/RecordEdition/EditRecordContent/helpers/getActiveFieldValues/getActiveFieldValues.d.ts +0 -3
  26. package/dist/components/RecordEdition/EditRecordContent/helpers/getActiveFieldValues/getActiveFieldValues.js +0 -2
  27. package/dist/components/RecordEdition/EditRecordContent/helpers/getActiveFieldValues/getActiveFieldValues.js.map +0 -1
  28. package/dist/components/RecordEdition/EditRecordContent/helpers/getActiveFieldValues/index.d.ts +0 -1
  29. package/dist/components/RecordEdition/EditRecordContent/helpers/getActiveFieldValues/index.js +0 -5
  30. package/dist/components/RecordEdition/EditRecordContent/helpers/getActiveFieldValues/index.js.map +0 -1
  31. package/dist/components/RecordEdition/EditRecordContent/helpers/isCurrentVersion/index.d.ts +0 -1
  32. package/dist/components/RecordEdition/EditRecordContent/helpers/isCurrentVersion/index.js +0 -5
  33. package/dist/components/RecordEdition/EditRecordContent/helpers/isCurrentVersion/index.js.map +0 -1
  34. package/dist/components/RecordEdition/EditRecordContent/helpers/isCurrentVersion/isCurrentVersion.d.ts +0 -7
  35. package/dist/components/RecordEdition/EditRecordContent/helpers/isCurrentVersion/isCurrentVersion.js +0 -20
  36. package/dist/components/RecordEdition/EditRecordContent/helpers/isCurrentVersion/isCurrentVersion.js.map +0 -1
  37. package/dist/components/RecordEdition/EditRecordContent/hooks/useTabManagement.d.ts +0 -11
  38. package/dist/components/RecordEdition/EditRecordContent/hooks/useTabManagement.js +0 -35
  39. package/dist/components/RecordEdition/EditRecordContent/hooks/useTabManagement.js.map +0 -1
  40. package/dist/components/RecordEdition/EditRecordContent/reducers/linkFieldReducer/index.d.ts +0 -2
  41. package/dist/components/RecordEdition/EditRecordContent/reducers/linkFieldReducer/index.js +0 -6
  42. package/dist/components/RecordEdition/EditRecordContent/reducers/linkFieldReducer/index.js.map +0 -1
  43. package/dist/components/RecordEdition/EditRecordContent/reducers/linkFieldReducer/linkFieldReducer.d.ts +0 -52
  44. package/dist/components/RecordEdition/EditRecordContent/reducers/linkFieldReducer/linkFieldReducer.js +0 -144
  45. package/dist/components/RecordEdition/EditRecordContent/reducers/linkFieldReducer/linkFieldReducer.js.map +0 -1
  46. package/dist/components/RecordEdition/EditRecordContent/shared/AddValueBtn/AddValueBtn.d.ts +0 -9
  47. package/dist/components/RecordEdition/EditRecordContent/shared/AddValueBtn/AddValueBtn.js +0 -19
  48. package/dist/components/RecordEdition/EditRecordContent/shared/AddValueBtn/AddValueBtn.js.map +0 -1
  49. package/dist/components/RecordEdition/EditRecordContent/shared/AddValueBtn/index.d.ts +0 -2
  50. package/dist/components/RecordEdition/EditRecordContent/shared/AddValueBtn/index.js +0 -6
  51. package/dist/components/RecordEdition/EditRecordContent/shared/AddValueBtn/index.js.map +0 -1
  52. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteAllValuesBtn/DeleteAllValuesBtn.d.ts +0 -5
  53. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteAllValuesBtn/DeleteAllValuesBtn.js +0 -21
  54. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteAllValuesBtn/DeleteAllValuesBtn.js.map +0 -1
  55. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteAllValuesBtn/index.d.ts +0 -2
  56. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteAllValuesBtn/index.js +0 -6
  57. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteAllValuesBtn/index.js.map +0 -1
  58. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteValueBtn/DeleteValueBtn.d.ts +0 -6
  59. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteValueBtn/DeleteValueBtn.js +0 -14
  60. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteValueBtn/DeleteValueBtn.js.map +0 -1
  61. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteValueBtn/index.d.ts +0 -2
  62. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteValueBtn/index.js +0 -6
  63. package/dist/components/RecordEdition/EditRecordContent/shared/DeleteValueBtn/index.js.map +0 -1
  64. package/dist/components/RecordEdition/EditRecordContent/shared/FieldFooter/FieldFooter.d.ts +0 -9
  65. package/dist/components/RecordEdition/EditRecordContent/shared/FieldFooter/FieldFooter.js +0 -28
  66. package/dist/components/RecordEdition/EditRecordContent/shared/FieldFooter/FieldFooter.js.map +0 -1
  67. package/dist/components/RecordEdition/EditRecordContent/shared/FieldFooter/index.d.ts +0 -2
  68. package/dist/components/RecordEdition/EditRecordContent/shared/FieldFooter/index.js +0 -6
  69. package/dist/components/RecordEdition/EditRecordContent/shared/FieldFooter/index.js.map +0 -1
  70. package/dist/components/RecordEdition/EditRecordContent/shared/InheritedFieldLabel/InheritedFieldLabel.d.ts +0 -6
  71. package/dist/components/RecordEdition/EditRecordContent/shared/InheritedFieldLabel/InheritedFieldLabel.js +0 -25
  72. package/dist/components/RecordEdition/EditRecordContent/shared/InheritedFieldLabel/InheritedFieldLabel.js.map +0 -1
  73. package/dist/components/RecordEdition/EditRecordContent/shared/InheritedFieldLabel/index.d.ts +0 -2
  74. package/dist/components/RecordEdition/EditRecordContent/shared/InheritedFieldLabel/index.js +0 -6
  75. package/dist/components/RecordEdition/EditRecordContent/shared/InheritedFieldLabel/index.js.map +0 -1
  76. package/dist/components/RecordEdition/EditRecordContent/shared/NoValue/NoValue.d.ts +0 -7
  77. package/dist/components/RecordEdition/EditRecordContent/shared/NoValue/NoValue.js +0 -33
  78. package/dist/components/RecordEdition/EditRecordContent/shared/NoValue/NoValue.js.map +0 -1
  79. package/dist/components/RecordEdition/EditRecordContent/shared/NoValue/index.d.ts +0 -2
  80. package/dist/components/RecordEdition/EditRecordContent/shared/NoValue/index.js +0 -6
  81. package/dist/components/RecordEdition/EditRecordContent/shared/NoValue/index.js.map +0 -1
  82. package/dist/components/RecordEdition/EditRecordContent/shared/UpdatedFieldIcon/UpdatedFieldIcon.d.ts +0 -2
  83. package/dist/components/RecordEdition/EditRecordContent/shared/UpdatedFieldIcon/UpdatedFieldIcon.js +0 -13
  84. package/dist/components/RecordEdition/EditRecordContent/shared/UpdatedFieldIcon/UpdatedFieldIcon.js.map +0 -1
  85. package/dist/components/RecordEdition/EditRecordContent/shared/UpdatedFieldIcon/index.d.ts +0 -2
  86. package/dist/components/RecordEdition/EditRecordContent/shared/UpdatedFieldIcon/index.js +0 -6
  87. package/dist/components/RecordEdition/EditRecordContent/shared/UpdatedFieldIcon/index.js.map +0 -1
  88. package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/ValueDetailsBtn.d.ts +0 -10
  89. package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/ValueDetailsBtn.js +0 -24
  90. package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/ValueDetailsBtn.js.map +0 -1
  91. package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/index.d.ts +0 -2
  92. package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/index.js +0 -6
  93. package/dist/components/RecordEdition/EditRecordContent/shared/ValueDetailsBtn/index.js.map +0 -1
  94. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.d.ts +0 -13
  95. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js +0 -41
  96. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js.map +0 -1
  97. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/index.d.ts +0 -2
  98. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/index.js +0 -6
  99. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/index.js.map +0 -1
  100. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator/ValuesVersionIndicator.d.ts +0 -8
  101. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator/ValuesVersionIndicator.js +0 -34
  102. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator/ValuesVersionIndicator.js.map +0 -1
  103. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator/index.d.ts +0 -2
  104. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator/index.js +0 -6
  105. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionIndicator/index.js.map +0 -1
@@ -14,7 +14,6 @@ export declare const extractPermissionFromQuery: (queryResult: ReturnType<typeof
14
14
  export declare const getPreviewSize: (size?: PreviewSize, simplistic?: boolean) => "1.2rem" | "3.5rem" | "6rem" | "2.5rem" | "1.7rem" | "2rem";
15
15
  export declare const setDateToUTCNoon: (date: dayjs.Dayjs) => dayjs.Dayjs;
16
16
  export declare const getTreeRecordKey: (record: RecordIdentityFragment) => string;
17
- export declare const getValueVersionLabel: (version: IValueVersion) => string;
18
17
  export declare const stringifyDateRangeValue: (value: IDateRangeValue, t: TFunction) => string;
19
18
  /**
20
19
  * Cloning gql template tag because some apollo tools like query validation and codegen won't be happy if we use
@@ -44,9 +44,6 @@ export const getPreviewSize = (size, simplistic = false) => {
44
44
  };
45
45
  export const setDateToUTCNoon = (date) => date.set('hour', 12).set('minute', 0).set('second', 0).set('millisecond', 0);
46
46
  export const getTreeRecordKey = (record) => `${record.whoAmI.library.id}/${record.id}`;
47
- export const getValueVersionLabel = (version) => Object.values(version ?? {})
48
- .map(v => v.label)
49
- .join(' / ');
50
47
  export const stringifyDateRangeValue = (value, t) => t('record_edition.date_range_value', {
51
48
  ...value,
52
49
  interpolation: { escapeValue: false },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/_utils/index.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 {gql} from '@apollo/client';\nimport {type IDateRangeValue, isTypeLink, objectToNameValueArray, omit, type WithTypename} from '@leav/utils';\nimport {type TFunction} from 'i18next';\nimport {type SyntheticEvent} from 'react';\nimport {PreviewSize} from '_ui/constants';\nimport {type IAttribute} from '_ui/types/search';\nimport {type IValueVersion} from '_ui/types/values';\nimport {type IView} from '_ui/types/views';\nimport {\n AttributeFormat,\n AttributeType,\n type PermissionsActions,\n type RecordFilterInput,\n type RecordIdentityFragment,\n type useIsAllowedQuery,\n type ValueDetailsFragment,\n type ValueVersionInput,\n type ViewDetailsFragment,\n} from '_ui/_gqlTypes';\nimport {getFiltersFromRequest} from './getFiltersFromRequest';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\n\ndayjs.extend(utc);\n\nexport const arrayValueVersionToObject = (version: ValueDetailsFragment['version']): IValueVersion =>\n version?.reduce((acc: IValueVersion, value) => {\n acc[value.treeId] = {\n id: value.treeNode.id,\n label: value.treeNode.record.whoAmI.label,\n };\n\n return acc;\n }, {});\n\nexport const objectValueVersionToArray = (version: IValueVersion): ValueVersionInput[] =>\n version\n ? objectToNameValueArray(version).map(v => ({\n treeId: v.name,\n treeNodeId: v?.value?.id ?? null,\n }))\n : null;\n\nexport const extractPermissionFromQuery = (\n queryResult: ReturnType<typeof useIsAllowedQuery>,\n action: PermissionsActions,\n fallbackPermission = false,\n): boolean =>\n !queryResult.loading && !queryResult.error\n ? (queryResult.data?.isAllowed?.find(permission => permission.name === action)?.allowed ?? fallbackPermission)\n : fallbackPermission;\n\nexport const getPreviewSize = (size?: PreviewSize, simplistic = false) => {\n if (simplistic) {\n return '1.2rem';\n }\n\n switch (size) {\n case PreviewSize.MEDIUM:\n return '3.5rem';\n case PreviewSize.BIG:\n return '6rem';\n case PreviewSize.SMALL:\n return '2.5rem';\n case PreviewSize.TINY:\n return '1.7rem';\n default:\n return '2rem';\n }\n};\n\nexport const setDateToUTCNoon = (date: dayjs.Dayjs): dayjs.Dayjs =>\n date.set('hour', 12).set('minute', 0).set('second', 0).set('millisecond', 0);\n\nexport const getTreeRecordKey = (record: RecordIdentityFragment): string => `${record.whoAmI.library.id}/${record.id}`;\n\nexport const getValueVersionLabel = (version: IValueVersion) =>\n Object.values(version ?? {})\n .map(v => v.label)\n .join(' / ');\n\nexport const stringifyDateRangeValue = (value: IDateRangeValue, t: TFunction): string =>\n t('record_edition.date_range_value', {\n ...value,\n interpolation: {escapeValue: false},\n });\n\n/**\n * Cloning gql template tag because some apollo tools like query validation and codegen won't be happy if we use\n * interpolation in template strings. With a different tag name, the query won't be parsed by these tools\n * thus they won't complain about it.\n * It works exactly the same at runtime.\n */\nexport const gqlUnchecked = gql;\n\nexport const getPropertyCacheFieldName = (attributeId: string): string => `property({\"attribute\":\"${attributeId}\"})`;\n\n/**\n * Prepare view coming from the server to be used in the app\n */\nexport const prepareView = (\n view: WithTypename<ViewDetailsFragment>,\n attributes: IAttribute[],\n libraryId: string,\n userId: string,\n): IView => {\n const viewFilters: RecordFilterInput[] = (view?.filters ?? []).map(filter => ({\n ...filter,\n treeId: filter.tree?.id,\n }));\n\n const viewValuesVersions = (view?.valuesVersions ?? []).map(version => ({\n ...version,\n treeNode: {\n ...version.treeNode,\n title: version.treeNode.record.whoAmI.label,\n },\n }));\n\n return {\n ...omit(view, 'created_by', '__typename'),\n owner: view.created_by.id === userId,\n filters: getFiltersFromRequest(viewFilters, libraryId, attributes),\n sort: (view.sort ?? []).map(s => ({\n field: s.field,\n order: s.order,\n })),\n display: omit(view.display, '__typename') as ViewDetailsFragment['display'],\n valuesVersions: viewValuesVersions.reduce((versions: IValueVersion, version): IValueVersion => {\n versions[version.treeId] = {\n id: version.treeNode.id,\n label: version.treeNode.record.whoAmI.label,\n };\n\n return versions;\n }, {}),\n attributes: (view.attributes ?? []).map(attr => attr.id),\n };\n};\nexport const getAttributeFromKey = (key: string, library: string, attributes: IAttribute[]): IAttribute | undefined => {\n const splitKey = key.split('.');\n\n // Get root attribute by first key part\n const rootAttribute = attributes.find(attr => attr.library === library && attr.id === splitKey[0]);\n\n if (!rootAttribute) {\n return;\n }\n\n if (rootAttribute.type === AttributeType.simple || rootAttribute.type === AttributeType.advanced) {\n return rootAttribute;\n }\n\n if (isTypeLink(rootAttribute.type)) {\n if (splitKey[1]) {\n const linkedAttribute = attributes.find(\n attr => attr.library === rootAttribute?.linkedLibrary?.id && attr.id === splitKey[1],\n );\n\n return {...linkedAttribute, parentAttribute: {...rootAttribute, format: AttributeFormat.text}};\n }\n\n return rootAttribute;\n }\n\n if (rootAttribute.type === AttributeType.tree) {\n const [, libraryId, linkedTreeAttribute] = splitKey;\n\n if (!libraryId && !linkedTreeAttribute) {\n // Only root attribute => search on tree\n return {...rootAttribute, format: AttributeFormat.text};\n } else if (libraryId && !linkedTreeAttribute) {\n return rootAttribute;\n }\n\n const linkedAttribute = attributes.find(attr => attr.library === splitKey[1] && attr.id === splitKey[2]);\n\n return linkedAttribute;\n }\n};\n\nexport const stopEvent = (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n};\n\nexport const reorder = (list: any[], startIndex: number, endIndex: number) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result.filter(element => !!element);\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/_utils/index.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 {gql} from '@apollo/client';\nimport {type IDateRangeValue, isTypeLink, objectToNameValueArray, omit, type WithTypename} from '@leav/utils';\nimport {type TFunction} from 'i18next';\nimport {type SyntheticEvent} from 'react';\nimport {PreviewSize} from '_ui/constants';\nimport {type IAttribute} from '_ui/types/search';\nimport {type IValueVersion} from '_ui/types/values';\nimport {type IView} from '_ui/types/views';\nimport {\n AttributeFormat,\n AttributeType,\n type PermissionsActions,\n type RecordFilterInput,\n type RecordIdentityFragment,\n type useIsAllowedQuery,\n type ValueDetailsFragment,\n type ValueVersionInput,\n type ViewDetailsFragment,\n} from '_ui/_gqlTypes';\nimport {getFiltersFromRequest} from './getFiltersFromRequest';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\n\ndayjs.extend(utc);\n\nexport const arrayValueVersionToObject = (version: ValueDetailsFragment['version']): IValueVersion =>\n version?.reduce((acc: IValueVersion, value) => {\n acc[value.treeId] = {\n id: value.treeNode.id,\n label: value.treeNode.record.whoAmI.label,\n };\n\n return acc;\n }, {});\n\nexport const objectValueVersionToArray = (version: IValueVersion): ValueVersionInput[] =>\n version\n ? objectToNameValueArray(version).map(v => ({\n treeId: v.name,\n treeNodeId: v?.value?.id ?? null,\n }))\n : null;\n\nexport const extractPermissionFromQuery = (\n queryResult: ReturnType<typeof useIsAllowedQuery>,\n action: PermissionsActions,\n fallbackPermission = false,\n): boolean =>\n !queryResult.loading && !queryResult.error\n ? (queryResult.data?.isAllowed?.find(permission => permission.name === action)?.allowed ?? fallbackPermission)\n : fallbackPermission;\n\nexport const getPreviewSize = (size?: PreviewSize, simplistic = false) => {\n if (simplistic) {\n return '1.2rem';\n }\n\n switch (size) {\n case PreviewSize.MEDIUM:\n return '3.5rem';\n case PreviewSize.BIG:\n return '6rem';\n case PreviewSize.SMALL:\n return '2.5rem';\n case PreviewSize.TINY:\n return '1.7rem';\n default:\n return '2rem';\n }\n};\n\nexport const setDateToUTCNoon = (date: dayjs.Dayjs): dayjs.Dayjs =>\n date.set('hour', 12).set('minute', 0).set('second', 0).set('millisecond', 0);\n\nexport const getTreeRecordKey = (record: RecordIdentityFragment): string => `${record.whoAmI.library.id}/${record.id}`;\n\nexport const stringifyDateRangeValue = (value: IDateRangeValue, t: TFunction): string =>\n t('record_edition.date_range_value', {\n ...value,\n interpolation: {escapeValue: false},\n });\n\n/**\n * Cloning gql template tag because some apollo tools like query validation and codegen won't be happy if we use\n * interpolation in template strings. With a different tag name, the query won't be parsed by these tools\n * thus they won't complain about it.\n * It works exactly the same at runtime.\n */\nexport const gqlUnchecked = gql;\n\nexport const getPropertyCacheFieldName = (attributeId: string): string => `property({\"attribute\":\"${attributeId}\"})`;\n\n/**\n * Prepare view coming from the server to be used in the app\n */\nexport const prepareView = (\n view: WithTypename<ViewDetailsFragment>,\n attributes: IAttribute[],\n libraryId: string,\n userId: string,\n): IView => {\n const viewFilters: RecordFilterInput[] = (view?.filters ?? []).map(filter => ({\n ...filter,\n treeId: filter.tree?.id,\n }));\n\n const viewValuesVersions = (view?.valuesVersions ?? []).map(version => ({\n ...version,\n treeNode: {\n ...version.treeNode,\n title: version.treeNode.record.whoAmI.label,\n },\n }));\n\n return {\n ...omit(view, 'created_by', '__typename'),\n owner: view.created_by.id === userId,\n filters: getFiltersFromRequest(viewFilters, libraryId, attributes),\n sort: (view.sort ?? []).map(s => ({\n field: s.field,\n order: s.order,\n })),\n display: omit(view.display, '__typename') as ViewDetailsFragment['display'],\n valuesVersions: viewValuesVersions.reduce((versions: IValueVersion, version): IValueVersion => {\n versions[version.treeId] = {\n id: version.treeNode.id,\n label: version.treeNode.record.whoAmI.label,\n };\n\n return versions;\n }, {}),\n attributes: (view.attributes ?? []).map(attr => attr.id),\n };\n};\nexport const getAttributeFromKey = (key: string, library: string, attributes: IAttribute[]): IAttribute | undefined => {\n const splitKey = key.split('.');\n\n // Get root attribute by first key part\n const rootAttribute = attributes.find(attr => attr.library === library && attr.id === splitKey[0]);\n\n if (!rootAttribute) {\n return;\n }\n\n if (rootAttribute.type === AttributeType.simple || rootAttribute.type === AttributeType.advanced) {\n return rootAttribute;\n }\n\n if (isTypeLink(rootAttribute.type)) {\n if (splitKey[1]) {\n const linkedAttribute = attributes.find(\n attr => attr.library === rootAttribute?.linkedLibrary?.id && attr.id === splitKey[1],\n );\n\n return {...linkedAttribute, parentAttribute: {...rootAttribute, format: AttributeFormat.text}};\n }\n\n return rootAttribute;\n }\n\n if (rootAttribute.type === AttributeType.tree) {\n const [, libraryId, linkedTreeAttribute] = splitKey;\n\n if (!libraryId && !linkedTreeAttribute) {\n // Only root attribute => search on tree\n return {...rootAttribute, format: AttributeFormat.text};\n } else if (libraryId && !linkedTreeAttribute) {\n return rootAttribute;\n }\n\n const linkedAttribute = attributes.find(attr => attr.library === splitKey[1] && attr.id === splitKey[2]);\n\n return linkedAttribute;\n }\n};\n\nexport const stopEvent = (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n};\n\nexport const reorder = (list: any[], startIndex: number, endIndex: number) => {\n const result = Array.from(list);\n const [removed] = result.splice(startIndex, 1);\n result.splice(endIndex, 0, removed);\n\n return result.filter(element => !!element);\n};\n"]}
@@ -98,30 +98,6 @@ export const EditRecord = ({ antdForm, formId, isFormCreationMode, formElementId
98
98
  }
99
99
  return savableValue;
100
100
  }), version, true);
101
- const _handleMetadataSubmit = (value, attribute, metadata) => {
102
- let valueContent;
103
- switch (attribute.type) {
104
- case AttributeType.simple:
105
- case AttributeType.advanced:
106
- valueContent = value.raw_payload;
107
- break;
108
- case AttributeType.advanced_link:
109
- case AttributeType.simple_link:
110
- valueContent = value.linkValue;
111
- break;
112
- case AttributeType.tree:
113
- valueContent = value.treeValue;
114
- break;
115
- }
116
- return _handleValueSubmit([
117
- {
118
- idValue: value.id_value,
119
- attribute,
120
- value: valueContent,
121
- metadata,
122
- },
123
- ], null);
124
- };
125
101
  /**
126
102
  * Submit the whole record: create record and batch save all stored values
127
103
  */
@@ -162,6 +138,6 @@ export const EditRecord = ({ antdForm, formId, isFormCreationMode, formElementId
162
138
  return saveValues(record, valuesToSave, version, true);
163
139
  };
164
140
  const shouldUseLayoutWithSidebar = state.enableSidebar && state.isOpenSidebar && sidebarContainer === undefined && !forceDisableSidebarInAppStudio;
165
- return (_jsx(ErrorBoundary, { children: _jsx(EditRecordReducerContext.Provider, { value: { state, dispatch }, children: _jsxs(Container, { "$shouldUseLayoutWithSidebar": shouldUseLayoutWithSidebar, style: containerStyle, children: [_jsx(EditRecordButtons, {}), _jsx(Content, { className: "edit-record-content-container", "$shouldUseLayoutWithSidebar": shouldUseLayoutWithSidebar, "$removePadding": removePadding, children: permissionsLoading ? (_jsx(EditRecordSkeleton, { rows: 5 })) : canEdit ? (_jsx(EditRecordContent, { antdForm: antdForm, formId: formId, isFormCreationMode: isFormCreationMode, formElementId: formElementId, record: record, library: libraryId, onRecordSubmit: _handleRecordSubmit, onValueSubmit: _handleValueSubmit, onValueDelete: deleteValue, onDeleteMultipleValues: _handleDeleteAllValues, readonly: isReadOnly })) : (_jsx(ErrorDisplay, { type: ErrorDisplayTypes.PERMISSION_ERROR, showActionButton: false })) }), !forceDisableSidebarInAppStudio && (_jsx(EditRecordSidebar, { onMetadataSubmit: _handleMetadataSubmit, sidebarContainer: sidebarContainer }))] }) }) }));
141
+ return (_jsx(ErrorBoundary, { children: _jsx(EditRecordReducerContext.Provider, { value: { state, dispatch }, children: _jsxs(Container, { "$shouldUseLayoutWithSidebar": shouldUseLayoutWithSidebar, style: containerStyle, children: [_jsx(EditRecordButtons, {}), _jsx(Content, { className: "edit-record-content-container", "$shouldUseLayoutWithSidebar": shouldUseLayoutWithSidebar, "$removePadding": removePadding, children: permissionsLoading ? (_jsx(EditRecordSkeleton, { rows: 5 })) : canEdit ? (_jsx(EditRecordContent, { antdForm: antdForm, formId: formId, isFormCreationMode: isFormCreationMode, formElementId: formElementId, record: record, library: libraryId, onRecordSubmit: _handleRecordSubmit, onValueSubmit: _handleValueSubmit, onValueDelete: deleteValue, onDeleteMultipleValues: _handleDeleteAllValues, readonly: isReadOnly })) : (_jsx(ErrorDisplay, { type: ErrorDisplayTypes.PERMISSION_ERROR, showActionButton: false })) }), !forceDisableSidebarInAppStudio && _jsx(EditRecordSidebar, { sidebarContainer: sidebarContainer })] }) }) }));
166
142
  };
167
143
  //# sourceMappingURL=EditRecord.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditRecord.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecord/EditRecord.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 isEqual from 'lodash/isEqual';\nimport {type FunctionComponent, useEffect, useReducer} from 'react';\nimport styled, {type CSSObject} from 'styled-components';\nimport {ErrorDisplayTypes} from '../../../constants';\nimport {useCanEditRecord} from '../../../hooks/useCanEditRecord';\nimport {type IValueVersion} from '../../../types/values';\nimport {\n AttributeType,\n type RecordFormAttributeStandardAttributeFragment,\n type RecordIdentityFragment,\n useActivateNewRecordMutation,\n} from '../../../_gqlTypes';\nimport {\n type IRecordPropertyLink,\n type IRecordPropertyStandard,\n type IRecordPropertyTree,\n} from '../../../_queries/records/getRecordPropertiesQuery';\nimport {ErrorBoundary} from '../../ErrorBoundary';\nimport {ErrorDisplay} from '../../ErrorDisplay';\nimport EditRecordContent from '../EditRecordContent';\nimport useExecuteDeleteValueMutation from '../EditRecordContent/hooks/useExecuteDeleteValueMutation';\nimport useSaveValueBatchMutation from '../EditRecordContent/hooks/useExecuteSaveValueBatchMutation';\nimport {\n type DeleteMultipleValuesFunc,\n type ISubmittedValueLink,\n type ISubmittedValueStandard,\n type ISubmittedValueTree,\n type IValueToSubmit,\n type MetadataSubmitValueFunc,\n type SubmitValueFunc,\n} from '../EditRecordContent/_types';\nimport editRecordReducer, {EditRecordReducerActionsTypes, initialState} from '../editRecordReducer/editRecordReducer';\nimport {EditRecordReducerContext} from '../editRecordReducer/editRecordReducerContext';\nimport {type FormInstance} from 'antd/lib/form/Form';\nimport EditRecordSidebar from '../EditRecordSidebar';\nimport EditRecordSkeleton from '../EditRecordSkeleton';\nimport {useQuery} from '@apollo/client';\nimport {getLibraryByIdQuery} from '_ui/_queries/libraries/getLibraryByIdQuery';\nimport EditRecordButtons from '../EditRecordButtons';\n\ninterface IEditRecordProps {\n antdForm: FormInstance;\n formId: string;\n isFormCreationMode: boolean;\n formElementId?: string;\n record: RecordIdentityFragment['whoAmI'] | null;\n library: string;\n onCreate?: (newRecord: RecordIdentityFragment['whoAmI']) => void;\n valuesVersion?: IValueVersion;\n showSidebar?: boolean; // TODO: Should be removed when sidebar is fully removed from EditRecord\n enableSidebar?: boolean; // TODO: Should be removed when sidebar is fully removed from EditRecord\n sidebarContainer?: HTMLElement; // TODO: Should be removed when sidebar is fully removed from EditRecord\n forceDisableSidebarInAppStudio?: boolean; // TODO: Should be removed when sidebar is fully removed from EditRecord\n containerStyle?: CSSObject;\n withInfoButton: boolean;\n removePadding?: boolean; // TODO: This prop should be remove when EditRecord will be moved to app-studio or data-studio deleted\n}\n\nconst sidebarWidth = '352px';\n\nconst Container = styled.div<{$shouldUseLayoutWithSidebar: boolean; style: CSSObject}>`\n display: grid;\n grid-template-columns: ${props => (props.$shouldUseLayoutWithSidebar ? `minmax(0, auto) ${sidebarWidth}` : '1fr')};\n grid-template-areas: ${props => (props.$shouldUseLayoutWithSidebar ? '\"content sidebar\"' : '\"content\"')};\n overflow: hidden;\n`;\n\nconst Content = styled.div<{$shouldUseLayoutWithSidebar: boolean; $removePadding: boolean}>`\n grid-area: content;\n padding: ${props => (props.$removePadding ? 'unset' : '24px')};\n overflow-x: hidden;\n overflow-y: scroll;\n border-right: ${props =>\n props.$shouldUseLayoutWithSidebar ? '1px solid var(--general-utilities-border)' : 'none'};\n`;\n\nexport const EditRecord: FunctionComponent<IEditRecordProps> = ({\n antdForm,\n formId,\n isFormCreationMode,\n formElementId,\n record,\n library: libraryId,\n onCreate,\n valuesVersion,\n enableSidebar = false,\n showSidebar = false,\n sidebarContainer,\n forceDisableSidebarInAppStudio = false,\n containerStyle,\n withInfoButton,\n removePadding = false,\n}) => {\n const [state, dispatch] = useReducer(editRecordReducer, {\n ...initialState,\n record,\n libraryId,\n libraryLabel: null,\n valuesVersion,\n originValuesVersion: valuesVersion,\n withInfoButton,\n });\n\n const {\n loading: permissionsLoading,\n canEdit,\n isReadOnly,\n } = useCanEditRecord({...record?.library, id: libraryId}, record?.id);\n\n const {data: libraryData} = useQuery(getLibraryByIdQuery, {\n variables: {id: [libraryId]},\n });\n\n const {saveValues} = useSaveValueBatchMutation();\n const {deleteValue} = useExecuteDeleteValueMutation(record);\n const [activateNewRecordMutation] = useActivateNewRecordMutation();\n\n // Update record in reducer when it changes. Might happen on record identity change (after value save)\n useEffect(() => {\n if (libraryData) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_LIBRARY_LABEL,\n label: libraryData.libraries.list[0].label,\n });\n }\n }, [libraryData]);\n\n useEffect(() => {\n if (record && !isEqual(record, state.record)) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_RECORD,\n record,\n });\n }\n }, [record]);\n\n useEffect(() => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_ENABLE_SIDEBAR,\n enabled: enableSidebar,\n });\n }, [enableSidebar]);\n\n useEffect(() => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN,\n isOpen: showSidebar,\n });\n }, [showSidebar]);\n\n const _handleValueSubmit: SubmitValueFunc = async (values, version) =>\n saveValues(\n record,\n values.map(val => {\n const savableValue = {...val, attribute: val.attribute.id, metadata: val.metadata};\n\n if (val.value) {\n switch (val.attribute.type) {\n case AttributeType.advanced_link:\n case AttributeType.simple_link:\n savableValue.value = (val as ISubmittedValueLink).value.id;\n break;\n case AttributeType.tree:\n savableValue.value = (val as ISubmittedValueTree).value.id;\n break;\n default:\n savableValue.value = (val as ISubmittedValueStandard).value;\n break;\n }\n }\n\n return savableValue as IValueToSubmit;\n }),\n version,\n true, // deleteEmpty\n );\n\n const _handleMetadataSubmit: MetadataSubmitValueFunc = (value, attribute, metadata) => {\n let valueContent;\n switch (attribute.type) {\n case AttributeType.simple:\n case AttributeType.advanced:\n valueContent = (value as IRecordPropertyStandard).raw_payload;\n break;\n case AttributeType.advanced_link:\n case AttributeType.simple_link:\n valueContent = (value as IRecordPropertyLink).linkValue;\n break;\n case AttributeType.tree:\n valueContent = (value as IRecordPropertyTree).treeValue;\n break;\n }\n\n return _handleValueSubmit(\n [\n {\n idValue: value.id_value,\n attribute,\n value: valueContent,\n metadata,\n },\n ],\n null,\n );\n };\n\n /**\n * Submit the whole record: create record and batch save all stored values\n */\n const _handleRecordSubmit = async (attributes: RecordFormAttributeStandardAttributeFragment[]) => {\n const activateNewRecordResult = await activateNewRecordMutation({\n fetchPolicy: 'network-only',\n variables: {\n libraryId,\n recordId: record.id,\n formId,\n },\n });\n const errors = activateNewRecordResult?.data?.activateNewRecord.valuesErrors;\n if (errors == null || errors?.length === 0) {\n if (onCreate) {\n onCreate(activateNewRecordResult?.data?.activateNewRecord?.record?.whoAmI);\n }\n return;\n }\n antdForm.setFields(\n errors.map(error => {\n const attributeInError = attributes.find(attribute => attribute.id === error.attribute);\n\n const doesAttributeHaveMultipleFields =\n attributeInError?.multiple_values &&\n ![AttributeType.simple_link, AttributeType.advanced_link].includes(attributeInError.type);\n\n return {\n name:\n doesAttributeHaveMultipleFields && error.type === 'REQUIRED_ATTRIBUTE'\n ? [error.attribute, 0]\n : error.attribute,\n errors: [error.message],\n };\n }),\n );\n };\n\n const _handleDeleteAllValues: DeleteMultipleValuesFunc = async (attribute, values, version) => {\n const valuesToSave = values.map(value => ({\n idValue: value.id_value,\n attribute,\n value: null,\n }));\n\n return saveValues(record, valuesToSave, version, true);\n };\n\n const shouldUseLayoutWithSidebar =\n state.enableSidebar && state.isOpenSidebar && sidebarContainer === undefined && !forceDisableSidebarInAppStudio;\n\n return (\n <ErrorBoundary>\n <EditRecordReducerContext.Provider value={{state, dispatch}}>\n <Container $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar} style={containerStyle}>\n <EditRecordButtons />\n <Content\n className=\"edit-record-content-container\"\n $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar}\n $removePadding={removePadding}\n >\n {permissionsLoading ? (\n <EditRecordSkeleton rows={5} />\n ) : canEdit ? (\n <EditRecordContent\n antdForm={antdForm}\n formId={formId}\n isFormCreationMode={isFormCreationMode}\n formElementId={formElementId}\n record={record}\n library={libraryId}\n onRecordSubmit={_handleRecordSubmit}\n onValueSubmit={_handleValueSubmit}\n onValueDelete={deleteValue}\n onDeleteMultipleValues={_handleDeleteAllValues}\n readonly={isReadOnly}\n />\n ) : (\n <ErrorDisplay type={ErrorDisplayTypes.PERMISSION_ERROR} showActionButton={false} />\n )}\n </Content>\n {!forceDisableSidebarInAppStudio && (\n <EditRecordSidebar\n onMetadataSubmit={_handleMetadataSubmit}\n sidebarContainer={sidebarContainer}\n />\n )}\n </Container>\n </EditRecordReducerContext.Provider>\n </ErrorBoundary>\n );\n};\n"]}
1
+ {"version":3,"file":"EditRecord.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecord/EditRecord.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 isEqual from 'lodash/isEqual';\nimport {type FunctionComponent, useEffect, useReducer} from 'react';\nimport styled, {type CSSObject} from 'styled-components';\nimport {ErrorDisplayTypes} from '../../../constants';\nimport {useCanEditRecord} from '../../../hooks/useCanEditRecord';\nimport {type IValueVersion} from '../../../types/values';\nimport {\n AttributeType,\n type RecordFormAttributeStandardAttributeFragment,\n type RecordIdentityFragment,\n useActivateNewRecordMutation,\n} from '../../../_gqlTypes';\nimport {ErrorBoundary} from '../../ErrorBoundary';\nimport {ErrorDisplay} from '../../ErrorDisplay';\nimport EditRecordContent from '../EditRecordContent';\nimport useExecuteDeleteValueMutation from '../EditRecordContent/hooks/useExecuteDeleteValueMutation';\nimport useSaveValueBatchMutation from '../EditRecordContent/hooks/useExecuteSaveValueBatchMutation';\nimport {\n type DeleteMultipleValuesFunc,\n type ISubmittedValueLink,\n type ISubmittedValueStandard,\n type ISubmittedValueTree,\n type IValueToSubmit,\n type SubmitValueFunc,\n} from '../EditRecordContent/_types';\nimport editRecordReducer, {EditRecordReducerActionsTypes, initialState} from '../editRecordReducer/editRecordReducer';\nimport {EditRecordReducerContext} from '../editRecordReducer/editRecordReducerContext';\nimport {type FormInstance} from 'antd/lib/form/Form';\nimport EditRecordSidebar from '../EditRecordSidebar';\nimport EditRecordSkeleton from '../EditRecordSkeleton';\nimport {useQuery} from '@apollo/client';\nimport {getLibraryByIdQuery} from '_ui/_queries/libraries/getLibraryByIdQuery';\nimport EditRecordButtons from '../EditRecordButtons';\n\ninterface IEditRecordProps {\n antdForm: FormInstance;\n formId: string;\n isFormCreationMode: boolean;\n formElementId?: string;\n record: RecordIdentityFragment['whoAmI'] | null;\n library: string;\n onCreate?: (newRecord: RecordIdentityFragment['whoAmI']) => void;\n valuesVersion?: IValueVersion;\n showSidebar?: boolean; // TODO: Should be removed when sidebar is fully removed from EditRecord\n enableSidebar?: boolean; // TODO: Should be removed when sidebar is fully removed from EditRecord\n sidebarContainer?: HTMLElement; // TODO: Should be removed when sidebar is fully removed from EditRecord\n forceDisableSidebarInAppStudio?: boolean; // TODO: Should be removed when sidebar is fully removed from EditRecord\n containerStyle?: CSSObject;\n withInfoButton: boolean;\n removePadding?: boolean; // TODO: This prop should be remove when EditRecord will be moved to app-studio or data-studio deleted\n}\n\nconst sidebarWidth = '352px';\n\nconst Container = styled.div<{$shouldUseLayoutWithSidebar: boolean; style: CSSObject}>`\n display: grid;\n grid-template-columns: ${props => (props.$shouldUseLayoutWithSidebar ? `minmax(0, auto) ${sidebarWidth}` : '1fr')};\n grid-template-areas: ${props => (props.$shouldUseLayoutWithSidebar ? '\"content sidebar\"' : '\"content\"')};\n overflow: hidden;\n`;\n\nconst Content = styled.div<{$shouldUseLayoutWithSidebar: boolean; $removePadding: boolean}>`\n grid-area: content;\n padding: ${props => (props.$removePadding ? 'unset' : '24px')};\n overflow-x: hidden;\n overflow-y: scroll;\n border-right: ${props =>\n props.$shouldUseLayoutWithSidebar ? '1px solid var(--general-utilities-border)' : 'none'};\n`;\n\nexport const EditRecord: FunctionComponent<IEditRecordProps> = ({\n antdForm,\n formId,\n isFormCreationMode,\n formElementId,\n record,\n library: libraryId,\n onCreate,\n valuesVersion,\n enableSidebar = false,\n showSidebar = false,\n sidebarContainer,\n forceDisableSidebarInAppStudio = false,\n containerStyle,\n withInfoButton,\n removePadding = false,\n}) => {\n const [state, dispatch] = useReducer(editRecordReducer, {\n ...initialState,\n record,\n libraryId,\n libraryLabel: null,\n valuesVersion,\n originValuesVersion: valuesVersion,\n withInfoButton,\n });\n\n const {\n loading: permissionsLoading,\n canEdit,\n isReadOnly,\n } = useCanEditRecord({...record?.library, id: libraryId}, record?.id);\n\n const {data: libraryData} = useQuery(getLibraryByIdQuery, {\n variables: {id: [libraryId]},\n });\n\n const {saveValues} = useSaveValueBatchMutation();\n const {deleteValue} = useExecuteDeleteValueMutation(record);\n const [activateNewRecordMutation] = useActivateNewRecordMutation();\n\n // Update record in reducer when it changes. Might happen on record identity change (after value save)\n useEffect(() => {\n if (libraryData) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_LIBRARY_LABEL,\n label: libraryData.libraries.list[0].label,\n });\n }\n }, [libraryData]);\n\n useEffect(() => {\n if (record && !isEqual(record, state.record)) {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_RECORD,\n record,\n });\n }\n }, [record]);\n\n useEffect(() => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_ENABLE_SIDEBAR,\n enabled: enableSidebar,\n });\n }, [enableSidebar]);\n\n useEffect(() => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN,\n isOpen: showSidebar,\n });\n }, [showSidebar]);\n\n const _handleValueSubmit: SubmitValueFunc = async (values, version) =>\n saveValues(\n record,\n values.map(val => {\n const savableValue = {...val, attribute: val.attribute.id, metadata: val.metadata};\n\n if (val.value) {\n switch (val.attribute.type) {\n case AttributeType.advanced_link:\n case AttributeType.simple_link:\n savableValue.value = (val as ISubmittedValueLink).value.id;\n break;\n case AttributeType.tree:\n savableValue.value = (val as ISubmittedValueTree).value.id;\n break;\n default:\n savableValue.value = (val as ISubmittedValueStandard).value;\n break;\n }\n }\n\n return savableValue as IValueToSubmit;\n }),\n version,\n true, // deleteEmpty\n );\n\n /**\n * Submit the whole record: create record and batch save all stored values\n */\n const _handleRecordSubmit = async (attributes: RecordFormAttributeStandardAttributeFragment[]) => {\n const activateNewRecordResult = await activateNewRecordMutation({\n fetchPolicy: 'network-only',\n variables: {\n libraryId,\n recordId: record.id,\n formId,\n },\n });\n const errors = activateNewRecordResult?.data?.activateNewRecord.valuesErrors;\n if (errors == null || errors?.length === 0) {\n if (onCreate) {\n onCreate(activateNewRecordResult?.data?.activateNewRecord?.record?.whoAmI);\n }\n return;\n }\n antdForm.setFields(\n errors.map(error => {\n const attributeInError = attributes.find(attribute => attribute.id === error.attribute);\n\n const doesAttributeHaveMultipleFields =\n attributeInError?.multiple_values &&\n ![AttributeType.simple_link, AttributeType.advanced_link].includes(attributeInError.type);\n\n return {\n name:\n doesAttributeHaveMultipleFields && error.type === 'REQUIRED_ATTRIBUTE'\n ? [error.attribute, 0]\n : error.attribute,\n errors: [error.message],\n };\n }),\n );\n };\n\n const _handleDeleteAllValues: DeleteMultipleValuesFunc = async (attribute, values, version) => {\n const valuesToSave = values.map(value => ({\n idValue: value.id_value,\n attribute,\n value: null,\n }));\n\n return saveValues(record, valuesToSave, version, true);\n };\n\n const shouldUseLayoutWithSidebar =\n state.enableSidebar && state.isOpenSidebar && sidebarContainer === undefined && !forceDisableSidebarInAppStudio;\n\n return (\n <ErrorBoundary>\n <EditRecordReducerContext.Provider value={{state, dispatch}}>\n <Container $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar} style={containerStyle}>\n <EditRecordButtons />\n <Content\n className=\"edit-record-content-container\"\n $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar}\n $removePadding={removePadding}\n >\n {permissionsLoading ? (\n <EditRecordSkeleton rows={5} />\n ) : canEdit ? (\n <EditRecordContent\n antdForm={antdForm}\n formId={formId}\n isFormCreationMode={isFormCreationMode}\n formElementId={formElementId}\n record={record}\n library={libraryId}\n onRecordSubmit={_handleRecordSubmit}\n onValueSubmit={_handleValueSubmit}\n onValueDelete={deleteValue}\n onDeleteMultipleValues={_handleDeleteAllValues}\n readonly={isReadOnly}\n />\n ) : (\n <ErrorDisplay type={ErrorDisplayTypes.PERMISSION_ERROR} showActionButton={false} />\n )}\n </Content>\n {!forceDisableSidebarInAppStudio && <EditRecordSidebar sidebarContainer={sidebarContainer} />}\n </Container>\n </EditRecordReducerContext.Provider>\n </ErrorBoundary>\n );\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { KitButton, KitTooltip } from 'aristid-ds';
3
3
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
- import { faAngleLeft, faAngleRight } from '@fortawesome/free-solid-svg-icons';
4
+ import { faInfo } from '@fortawesome/free-solid-svg-icons';
5
5
  import { useEditRecordReducer } from '../editRecordReducer/useEditRecordReducer';
6
6
  import { EditRecordReducerActionsTypes } from '../editRecordReducer/editRecordReducer';
7
7
  import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
@@ -20,6 +20,6 @@ export const ToggleSidebarButton = () => {
20
20
  if (!state.enableSidebar) {
21
21
  return null;
22
22
  }
23
- return (_jsx(KitTooltip, { title: buttonLabel, mouseEnterDelay: 1, children: _jsx(KitButton, { id: EDIT_RECORD_SIDEBAR_TOGGLE_BUTON_ID, type: "tertiary", icon: _jsx(FontAwesomeIcon, { icon: isOpen ? faAngleRight : faAngleLeft }), onClick: toggleSidebar, "aria-label": buttonLabel }) }));
23
+ return (_jsx(KitTooltip, { title: buttonLabel, mouseEnterDelay: 1, children: _jsx(KitButton, { id: EDIT_RECORD_SIDEBAR_TOGGLE_BUTON_ID, type: "secondary", size: "m", active: isOpen, icon: _jsx(FontAwesomeIcon, { icon: faInfo }), onClick: toggleSidebar, "aria-label": buttonLabel }) }));
24
24
  };
25
25
  //# sourceMappingURL=SidebarButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarButton.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordButtons/SidebarButton.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,SAAS,EAAE,UAAU,EAAC,MAAM,YAAY,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAC,6BAA6B,EAAC,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,mCAAmC,EAAC,MAAM,cAAc,CAAC;AAEjE,MAAM,CAAC,MAAM,mBAAmB,GAAsB,GAAG,EAAE;IACvD,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC;IAE5C,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,QAAQ,CAAC;YACL,IAAI,EAAE,6BAA6B,CAAC,mBAAmB;YACvD,MAAM,EAAE,CAAC,MAAM;SAClB,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAElG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,KAAC,UAAU,IAAC,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,YAC9C,KAAC,SAAS,IACN,EAAE,EAAE,mCAAmC,EACvC,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,GAAI,EACpE,OAAO,EAAE,aAAa,gBACV,WAAW,GACzB,GACO,CAChB,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 {RefObject, useState, type FunctionComponent} from 'react';\nimport {KitButton, KitTooltip} from 'aristid-ds';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faAngleLeft, faAngleRight} from '@fortawesome/free-solid-svg-icons';\nimport {useEditRecordReducer} from '../editRecordReducer/useEditRecordReducer';\nimport {EditRecordReducerActionsTypes} from '../editRecordReducer/editRecordReducer';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {EDIT_RECORD_SIDEBAR_TOGGLE_BUTON_ID} from '../constants';\n\nexport const ToggleSidebarButton: FunctionComponent = () => {\n const {t} = useSharedTranslation();\n const {state, dispatch} = useEditRecordReducer();\n const isOpen = state.isOpenSidebar ?? false;\n\n const toggleSidebar = () => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN,\n isOpen: !isOpen,\n });\n };\n\n const buttonLabel = isOpen ? t('record_edition.close_sidebar') : t('record_edition.open_sidebar');\n\n if (!state.enableSidebar) {\n return null;\n }\n\n return (\n <KitTooltip title={buttonLabel} mouseEnterDelay={1}>\n <KitButton\n id={EDIT_RECORD_SIDEBAR_TOGGLE_BUTON_ID}\n type=\"tertiary\"\n icon={<FontAwesomeIcon icon={isOpen ? faAngleRight : faAngleLeft} />}\n onClick={toggleSidebar}\n aria-label={buttonLabel}\n />\n </KitTooltip>\n );\n};\n"]}
1
+ {"version":3,"file":"SidebarButton.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordButtons/SidebarButton.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,SAAS,EAAE,UAAU,EAAC,MAAM,YAAY,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAC,6BAA6B,EAAC,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,mCAAmC,EAAC,MAAM,cAAc,CAAC;AAEjE,MAAM,CAAC,MAAM,mBAAmB,GAAsB,GAAG,EAAE;IACvD,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC;IAE5C,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,QAAQ,CAAC;YACL,IAAI,EAAE,6BAA6B,CAAC,mBAAmB;YACvD,MAAM,EAAE,CAAC,MAAM;SAClB,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAElG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CACH,KAAC,UAAU,IAAC,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,YAC9C,KAAC,SAAS,IACN,EAAE,EAAE,mCAAmC,EACvC,IAAI,EAAC,WAAW,EAChB,IAAI,EAAC,GAAG,EACR,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,MAAM,GAAI,EACvC,OAAO,EAAE,aAAa,gBACV,WAAW,GACzB,GACO,CAChB,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 {KitButton, KitTooltip} from 'aristid-ds';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faInfo} from '@fortawesome/free-solid-svg-icons';\nimport {useEditRecordReducer} from '../editRecordReducer/useEditRecordReducer';\nimport {EditRecordReducerActionsTypes} from '../editRecordReducer/editRecordReducer';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {EDIT_RECORD_SIDEBAR_TOGGLE_BUTON_ID} from '../constants';\n\nexport const ToggleSidebarButton: FunctionComponent = () => {\n const {t} = useSharedTranslation();\n const {state, dispatch} = useEditRecordReducer();\n const isOpen = state.isOpenSidebar ?? false;\n\n const toggleSidebar = () => {\n dispatch({\n type: EditRecordReducerActionsTypes.SET_SIDEBAR_IS_OPEN,\n isOpen: !isOpen,\n });\n };\n\n const buttonLabel = isOpen ? t('record_edition.close_sidebar') : t('record_edition.open_sidebar');\n\n if (!state.enableSidebar) {\n return null;\n }\n\n return (\n <KitTooltip title={buttonLabel} mouseEnterDelay={1}>\n <KitButton\n id={EDIT_RECORD_SIDEBAR_TOGGLE_BUTON_ID}\n type=\"secondary\"\n size=\"m\"\n active={isOpen}\n icon={<FontAwesomeIcon icon={faInfo} />}\n onClick={toggleSidebar}\n aria-label={buttonLabel}\n />\n </KitTooltip>\n );\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type FunctionComponent } from 'react';
2
- import { type AnyPrimitive, type FormFieldTypes, type FormUIElementTypes, type IRequiredFieldsSettings, type IKeyValue, type Override } from '@leav/utils';
2
+ import { type AnyPrimitive, type FormFieldTypes, type FormUIElementTypes, type IKeyValue, type Override } from '@leav/utils';
3
3
  import { type RecordFormElementsValue } from '../../../hooks/useGetRecordForm';
4
4
  import { type IRecordIdentity, type IRecordIdentityWhoAmI } from '../../../types/records';
5
5
  import { type ITreeNodeWithRecord } from '../../../types/trees';
@@ -61,7 +61,6 @@ export type CreateRecordFunc = (library: string, skipActivate?: boolean, data?:
61
61
  version: IValueVersion;
62
62
  }) => Promise<ICreateRecordResult>;
63
63
  export type DeleteMultipleValuesFunc = (attribute: string, values: RecordProperty[], version: IValueVersion) => Promise<ISubmitMultipleResult>;
64
- export type MetadataSubmitValueFunc = (value: RecordProperty, attribute: RecordFormAttributeFragment, metadata: IKeyValue<AnyPrimitive>) => Promise<ISubmitMultipleResult>;
65
64
  export interface ISubmittedValueBase {
66
65
  attribute: RecordFormAttributeFragment;
67
66
  idValue: string;
@@ -87,23 +86,6 @@ export type FormElement<SettingsType, RecordFormElements = RecordFormElementsVal
87
86
  }>;
88
87
  };
89
88
  export type StandardValueTypes = AnyPrimitive;
90
- export declare enum VersionFieldScope {
91
- INHERITED = "INHERITED",// inherited values
92
- CURRENT = "CURRENT"
93
- }
94
- export interface ICommonFieldsReducerState<ValuesType, RecordFormAttributeFragmentType = RecordFormAttributeFragment> {
95
- record: IRecordIdentityWhoAmI;
96
- formElement: FormElement<IRequiredFieldsSettings>;
97
- attribute: RecordFormAttributeFragmentType;
98
- isReadOnly: boolean;
99
- activeScope: VersionFieldScope;
100
- values: {
101
- [scope in VersionFieldScope]: {
102
- version: IValueVersion;
103
- values: ValuesType;
104
- } | null;
105
- };
106
- }
107
89
  export interface IProvidedByAntFormItem<InputFieldProps extends {
108
90
  value?: unknown;
109
91
  onChange?: unknown;
@@ -4,9 +4,4 @@ export var APICallStatus;
4
4
  APICallStatus["ERROR"] = "ERROR";
5
5
  APICallStatus["PARTIAL"] = "PARTIAL";
6
6
  })(APICallStatus || (APICallStatus = {}));
7
- export var VersionFieldScope;
8
- (function (VersionFieldScope) {
9
- VersionFieldScope["INHERITED"] = "INHERITED";
10
- VersionFieldScope["CURRENT"] = "CURRENT";
11
- })(VersionFieldScope || (VersionFieldScope = {}));
12
7
  //# sourceMappingURL=_types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordContent/_types.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;AACvB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AA4GD,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;AACvB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B","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 {\n type AnyPrimitive,\n type FormFieldTypes,\n type FormUIElementTypes,\n type IRequiredFieldsSettings,\n type IKeyValue,\n type Override,\n} from '@leav/utils';\nimport {type RecordFormElementsValue} from '_ui/hooks/useGetRecordForm';\nimport {type IRecordIdentity, type IRecordIdentityWhoAmI} from '_ui/types/records';\nimport {type ITreeNodeWithRecord} from '_ui/types/trees';\nimport {type IValueVersion} from '_ui/types/values';\nimport {\n type RecordFormAttributeFragment,\n type SaveValueBatchMutation,\n type CreateRecordMutation,\n type RecordFormElementFragment,\n type RecordIdentityFragment,\n type ValueDetailsFragment,\n type ValueInput,\n} from '_ui/_gqlTypes';\nimport {type RecordProperty} from '_ui/_queries/records/getRecordPropertiesQuery';\nimport {type FormInstance} from 'antd/lib/form/Form';\nimport {type GetRecordColumnsValuesRecord} from '_ui/_queries/records/getRecordColumnsValues';\n\nexport interface IValueToSubmit {\n attribute: string;\n value: AnyPrimitive | null;\n idValue: string | null;\n metadata?: IKeyValue<AnyPrimitive>;\n}\n\nexport enum APICallStatus {\n SUCCESS = 'SUCCESS',\n ERROR = 'ERROR',\n PARTIAL = 'PARTIAL',\n}\n\nexport type FieldSubmitMultipleFunc = (\n record: IRecordIdentityWhoAmI,\n values: IValueToSubmit[],\n version?: IValueVersion,\n deleteEmpty?: boolean,\n) => Promise<ISubmitMultipleResult>;\n\nexport interface ISubmitMultipleResult {\n status: APICallStatus;\n error?: string;\n values?: ValueDetailsFragment[];\n errors?: SaveValueBatchMutation['saveValueBatch']['errors'];\n}\n\nexport interface IDeleteValueResult {\n status: APICallStatus;\n error?: string;\n}\n\nexport interface ICreateRecordResult {\n status: APICallStatus;\n record?: RecordIdentityFragment['whoAmI'];\n errors?: CreateRecordMutation['createRecord']['valuesErrors'];\n}\n\nexport interface IRecordEditionContext {\n elements: IFormElementsByContainer;\n readOnly: boolean;\n record: IRecordIdentityWhoAmI;\n}\n\nexport interface IFormElementsByContainer {\n [containerId: string]: Array<FormElement<unknown>>;\n}\n\nexport interface ISubmittedValueStandard extends ISubmittedValueBase {\n value: AnyPrimitive;\n}\n\nexport interface ISubmittedValueLink extends ISubmittedValueBase {\n value: IRecordIdentity;\n}\n\nexport interface ISubmittedValueTree extends ISubmittedValueBase {\n value: ITreeNodeWithRecord;\n}\n\nexport type SubmittedValue = ISubmittedValueStandard | ISubmittedValueLink | ISubmittedValueTree;\n\nexport type SubmitValueFunc = (values: SubmittedValue[], version: IValueVersion) => Promise<ISubmitMultipleResult>;\nexport type DeleteValueFunc = (value: ValueInput | null, attribute: string) => Promise<IDeleteValueResult>;\nexport type CreateEmptyRecordFunc = (library: string) => Promise<ICreateRecordResult>;\nexport type CreateRecordFunc = (\n library: string,\n skipActivate?: boolean,\n data?: {\n values: Array<Omit<IValueToSubmit, 'idValue'>>;\n version: IValueVersion;\n },\n) => Promise<ICreateRecordResult>;\nexport type DeleteMultipleValuesFunc = (\n attribute: string,\n values: RecordProperty[],\n version: IValueVersion,\n) => Promise<ISubmitMultipleResult>;\n\nexport type MetadataSubmitValueFunc = (\n value: RecordProperty,\n attribute: RecordFormAttributeFragment,\n metadata: IKeyValue<AnyPrimitive>,\n) => Promise<ISubmitMultipleResult>;\n\nexport interface ISubmittedValueBase {\n attribute: RecordFormAttributeFragment;\n idValue: string;\n metadata?: IKeyValue<AnyPrimitive>;\n}\n\nexport interface IFormElementProps<SettingsType, RecordFormElements = RecordFormElementsValue> {\n element: FormElement<SettingsType, RecordFormElements>;\n readonly?: boolean;\n onValueSubmit?: SubmitValueFunc;\n onValueDelete?: DeleteValueFunc;\n onDeleteMultipleValues?: DeleteMultipleValuesFunc;\n metadataEdit?: boolean;\n isFormCreationMode?: boolean;\n}\n\nexport type FormElement<SettingsType, RecordFormElements = RecordFormElementsValue> = Override<\n RecordFormElementFragment,\n {\n settings: SettingsType;\n uiElementType: FormUIElementTypes | FormFieldTypes;\n values: RecordFormElements[];\n }\n> & {\n uiElement: FunctionComponent<\n IFormElementProps<unknown> & {\n antdForm?: FormInstance;\n computedValues?: GetRecordColumnsValuesRecord;\n }\n >;\n};\n\nexport type StandardValueTypes = AnyPrimitive;\n\nexport enum VersionFieldScope {\n INHERITED = 'INHERITED', // inherited values\n CURRENT = 'CURRENT', // values of \"current\" version, eg. the version selected in the form\n}\n\nexport interface ICommonFieldsReducerState<ValuesType, RecordFormAttributeFragmentType = RecordFormAttributeFragment> {\n record: IRecordIdentityWhoAmI;\n formElement: FormElement<IRequiredFieldsSettings>;\n attribute: RecordFormAttributeFragmentType;\n isReadOnly: boolean;\n activeScope: VersionFieldScope;\n values: {\n [scope in VersionFieldScope]: {\n version: IValueVersion;\n values: ValuesType;\n } | null;\n };\n}\n\nexport interface IProvidedByAntFormItem<\n InputFieldProps extends {value?: unknown; onChange?: unknown},\n AntNotifier extends {onChange?: unknown} = InputFieldProps,\n> {\n value?: InputFieldProps['value'];\n onChange?: AntNotifier['onChange'];\n}\n"]}
1
+ {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../../src/components/RecordEdition/EditRecordContent/_types.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;AACvB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB","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 {\n type AnyPrimitive,\n type FormFieldTypes,\n type FormUIElementTypes,\n type IRequiredFieldsSettings,\n type IKeyValue,\n type Override,\n} from '@leav/utils';\nimport {type RecordFormElementsValue} from '_ui/hooks/useGetRecordForm';\nimport {type IRecordIdentity, type IRecordIdentityWhoAmI} from '_ui/types/records';\nimport {type ITreeNodeWithRecord} from '_ui/types/trees';\nimport {type IValueVersion} from '_ui/types/values';\nimport {\n type RecordFormAttributeFragment,\n type SaveValueBatchMutation,\n type CreateRecordMutation,\n type RecordFormElementFragment,\n type RecordIdentityFragment,\n type ValueDetailsFragment,\n type ValueInput,\n} from '_ui/_gqlTypes';\nimport {type RecordProperty} from '_ui/_queries/records/getRecordPropertiesQuery';\nimport {type FormInstance} from 'antd/lib/form/Form';\nimport {type GetRecordColumnsValuesRecord} from '_ui/_queries/records/getRecordColumnsValues';\n\nexport interface IValueToSubmit {\n attribute: string;\n value: AnyPrimitive | null;\n idValue: string | null;\n metadata?: IKeyValue<AnyPrimitive>;\n}\n\nexport enum APICallStatus {\n SUCCESS = 'SUCCESS',\n ERROR = 'ERROR',\n PARTIAL = 'PARTIAL',\n}\n\nexport type FieldSubmitMultipleFunc = (\n record: IRecordIdentityWhoAmI,\n values: IValueToSubmit[],\n version?: IValueVersion,\n deleteEmpty?: boolean,\n) => Promise<ISubmitMultipleResult>;\n\nexport interface ISubmitMultipleResult {\n status: APICallStatus;\n error?: string;\n values?: ValueDetailsFragment[];\n errors?: SaveValueBatchMutation['saveValueBatch']['errors'];\n}\n\nexport interface IDeleteValueResult {\n status: APICallStatus;\n error?: string;\n}\n\nexport interface ICreateRecordResult {\n status: APICallStatus;\n record?: RecordIdentityFragment['whoAmI'];\n errors?: CreateRecordMutation['createRecord']['valuesErrors'];\n}\n\nexport interface IRecordEditionContext {\n elements: IFormElementsByContainer;\n readOnly: boolean;\n record: IRecordIdentityWhoAmI;\n}\n\nexport interface IFormElementsByContainer {\n [containerId: string]: Array<FormElement<unknown>>;\n}\n\nexport interface ISubmittedValueStandard extends ISubmittedValueBase {\n value: AnyPrimitive;\n}\n\nexport interface ISubmittedValueLink extends ISubmittedValueBase {\n value: IRecordIdentity;\n}\n\nexport interface ISubmittedValueTree extends ISubmittedValueBase {\n value: ITreeNodeWithRecord;\n}\n\nexport type SubmittedValue = ISubmittedValueStandard | ISubmittedValueLink | ISubmittedValueTree;\n\nexport type SubmitValueFunc = (values: SubmittedValue[], version: IValueVersion) => Promise<ISubmitMultipleResult>;\nexport type DeleteValueFunc = (value: ValueInput | null, attribute: string) => Promise<IDeleteValueResult>;\nexport type CreateEmptyRecordFunc = (library: string) => Promise<ICreateRecordResult>;\nexport type CreateRecordFunc = (\n library: string,\n skipActivate?: boolean,\n data?: {\n values: Array<Omit<IValueToSubmit, 'idValue'>>;\n version: IValueVersion;\n },\n) => Promise<ICreateRecordResult>;\nexport type DeleteMultipleValuesFunc = (\n attribute: string,\n values: RecordProperty[],\n version: IValueVersion,\n) => Promise<ISubmitMultipleResult>;\n\nexport interface ISubmittedValueBase {\n attribute: RecordFormAttributeFragment;\n idValue: string;\n metadata?: IKeyValue<AnyPrimitive>;\n}\n\nexport interface IFormElementProps<SettingsType, RecordFormElements = RecordFormElementsValue> {\n element: FormElement<SettingsType, RecordFormElements>;\n readonly?: boolean;\n onValueSubmit?: SubmitValueFunc;\n onValueDelete?: DeleteValueFunc;\n onDeleteMultipleValues?: DeleteMultipleValuesFunc;\n metadataEdit?: boolean;\n isFormCreationMode?: boolean;\n}\n\nexport type FormElement<SettingsType, RecordFormElements = RecordFormElementsValue> = Override<\n RecordFormElementFragment,\n {\n settings: SettingsType;\n uiElementType: FormUIElementTypes | FormFieldTypes;\n values: RecordFormElements[];\n }\n> & {\n uiElement: FunctionComponent<\n IFormElementProps<unknown> & {\n antdForm?: FormInstance;\n computedValues?: GetRecordColumnsValuesRecord;\n }\n >;\n};\n\nexport type StandardValueTypes = AnyPrimitive;\n\nexport interface IProvidedByAntFormItem<\n InputFieldProps extends {value?: unknown; onChange?: unknown},\n AntNotifier extends {onChange?: unknown} = InputFieldProps,\n> {\n value?: InputFieldProps['value'];\n onChange?: AntNotifier['onChange'];\n}\n"]}
@@ -1,6 +1,3 @@
1
1
  import { type FunctionComponent } from 'react';
2
- import { type RecordFormElementsValueLinkValue } from '../../../../../../hooks/useGetRecordForm/useGetRecordForm';
3
- import { type ILinkFieldState } from '../../../reducers/linkFieldReducer/linkFieldReducer';
4
2
  import { type LinkFieldProps } from '../_types';
5
- export type LinkFieldReducerState = ILinkFieldState<RecordFormElementsValueLinkValue>;
6
3
  export declare const LinkFieldExplorer: FunctionComponent<LinkFieldProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"LinkFieldExplorer.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.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 {localizedTranslation} from '@leav/utils';\nimport {type FunctionComponent, useState} from 'react';\nimport {useEditRecordReducer} from '_ui/components/RecordEdition/editRecordReducer/useEditRecordReducer';\nimport {type RecordFormElementsValueLinkValue} from '_ui/hooks/useGetRecordForm/useGetRecordForm';\nimport {type JoinLibraryContextFragment, type RecordFormAttributeLinkAttributeFragment} from '_ui/_gqlTypes';\nimport {type ILinkFieldState} from '../../../reducers/linkFieldReducer/linkFieldReducer';\nimport {AntForm} from 'aristid-ds';\nimport {useLang} from '_ui/hooks';\nimport {LINK_FIELD_ID_PREFIX} from '_ui/constants';\nimport {computeCalculatedFlags, computeInheritedFlags} from '../../shared/calculatedInheritedFlags';\nimport {ComputeIndicator} from '../../shared/ComputeIndicator';\nimport {useOutsideInteractionDetector} from '../../shared/useOutsideInteractionDetector';\nimport {useLinkRecords} from './link-record/useLinkRecords';\nimport {\n CREATE_RECORD_MODAL_CLASSNAME,\n EDIT_RECORD_MODAL_CLASSNAME,\n LINK_RECORDS_MODAL_CLASSNAME,\n} from '_ui/components/Explorer/_constants';\nimport {type LinkFieldProps} from '../_types';\nimport {useUnlinkAllRecords} from '../unlink-all-records/useUnlinkAllRecords';\nimport {Wrapper} from '../shared/Wrapper';\nimport {InputExtraAlignLeft} from '../shared/InputExtraAlignLeft';\nimport {InputWrapper} from '../shared/InputWrapper';\n\nexport type LinkFieldReducerState = ILinkFieldState<RecordFormElementsValueLinkValue>;\n\nexport const LinkFieldExplorer: FunctionComponent<LinkFieldProps> = ({\n element,\n readonly,\n isFormCreationMode,\n onDeleteMultipleValues,\n metadataEdit = false,\n}) => {\n const {state, dispatch} = useEditRecordReducer();\n const {lang} = useLang();\n const {\n settings,\n attribute,\n joinLibraryContext,\n }: {\n settings: typeof element.settings;\n attribute?: RecordFormAttributeLinkAttributeFragment;\n joinLibraryContext?: JoinLibraryContextFragment;\n } = element;\n\n const [backendValues, setBackendValues] = useState<RecordFormElementsValueLinkValue[]>(element.values);\n\n const calculatedFlags = computeCalculatedFlags(backendValues);\n const inheritedFlags = computeInheritedFlags(backendValues);\n const form = AntForm.useFormInstance();\n const label = localizedTranslation(settings.label, lang);\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 columnsToDisplay = settings.columns?.map(({id}) => id);\n const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly || tmpCantOverrideValues;\n const isFieldInError = fieldErrors.length > 0;\n\n useOutsideInteractionDetector({\n attribute,\n activeAttribute: state.activeAttribute,\n attributePrefix: LINK_FIELD_ID_PREFIX,\n dispatch,\n backendValues,\n allowedSelectors: [\n 'div[role=\"status\"]:has(.kit-snackbar-message)',\n '.kit-modal-wrapper',\n `.${CREATE_RECORD_MODAL_CLASSNAME}`,\n `.${LINK_RECORDS_MODAL_CLASSNAME}`,\n `.${EDIT_RECORD_MODAL_CLASSNAME}`,\n '.kit-select-dropdown-content',\n ],\n });\n\n const editionFormId = settings.editFormId ? settings.editFormId : 'edition';\n\n const {LinkRecordsExplorer} = useLinkRecords({\n libraryId: state.libraryId,\n recordId: state.record?.id,\n editionFormId,\n isFormCreationMode,\n attribute,\n joinLibraryContext,\n columnsToDisplay,\n backendValues,\n setBackendValues,\n isReadOnly,\n isFieldInError,\n hasNoValue: backendValues.length === 0,\n onDeleteMultipleValues,\n });\n\n const {UnlinkAllRecordsButton} = useUnlinkAllRecords({\n attribute,\n backendValues,\n setBackendValues,\n onDeleteMultipleValues,\n isReadOnly,\n isFieldInError,\n });\n\n return (\n <Wrapper $metadataEdit={metadataEdit}>\n <AntForm.Item name={attribute.id} noStyle>\n <InputWrapper\n id={LINK_FIELD_ID_PREFIX + attribute.id}\n label={label}\n required={attribute.required}\n bordered\n status={isFieldInError ? 'error' : undefined}\n helper={isFieldInError ? String(fieldErrors[0]) : undefined}\n extra={\n <>\n <InputExtraAlignLeft>\n <ComputeIndicator calculatedFlags={calculatedFlags} inheritedFlags={inheritedFlags} />\n </InputExtraAlignLeft>\n {UnlinkAllRecordsButton}\n </>\n }\n $readonlyBackground={isReadOnly}\n >\n {LinkRecordsExplorer}\n </InputWrapper>\n </AntForm.Item>\n </Wrapper>\n );\n};\n"]}
1
+ {"version":3,"file":"LinkFieldExplorer.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/LinkField/explorer/LinkFieldExplorer.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 {localizedTranslation} from '@leav/utils';\nimport {type FunctionComponent, useState} from 'react';\nimport {useEditRecordReducer} from '_ui/components/RecordEdition/editRecordReducer/useEditRecordReducer';\nimport {type RecordFormElementsValueLinkValue} from '_ui/hooks/useGetRecordForm/useGetRecordForm';\nimport {type JoinLibraryContextFragment, type RecordFormAttributeLinkAttributeFragment} from '_ui/_gqlTypes';\nimport {AntForm} from 'aristid-ds';\nimport {useLang} from '_ui/hooks';\nimport {LINK_FIELD_ID_PREFIX} from '_ui/constants';\nimport {computeCalculatedFlags, computeInheritedFlags} from '../../shared/calculatedInheritedFlags';\nimport {ComputeIndicator} from '../../shared/ComputeIndicator';\nimport {useOutsideInteractionDetector} from '../../shared/useOutsideInteractionDetector';\nimport {useLinkRecords} from './link-record/useLinkRecords';\nimport {\n CREATE_RECORD_MODAL_CLASSNAME,\n EDIT_RECORD_MODAL_CLASSNAME,\n LINK_RECORDS_MODAL_CLASSNAME,\n} from '_ui/components/Explorer/_constants';\nimport {type LinkFieldProps} from '../_types';\nimport {useUnlinkAllRecords} from '../unlink-all-records/useUnlinkAllRecords';\nimport {Wrapper} from '../shared/Wrapper';\nimport {InputExtraAlignLeft} from '../shared/InputExtraAlignLeft';\nimport {InputWrapper} from '../shared/InputWrapper';\n\nexport const LinkFieldExplorer: FunctionComponent<LinkFieldProps> = ({\n element,\n readonly,\n isFormCreationMode,\n onDeleteMultipleValues,\n metadataEdit = false,\n}) => {\n const {state, dispatch} = useEditRecordReducer();\n const {lang} = useLang();\n const {\n settings,\n attribute,\n joinLibraryContext,\n }: {\n settings: typeof element.settings;\n attribute?: RecordFormAttributeLinkAttributeFragment;\n joinLibraryContext?: JoinLibraryContextFragment;\n } = element;\n\n const [backendValues, setBackendValues] = useState<RecordFormElementsValueLinkValue[]>(element.values);\n\n const calculatedFlags = computeCalculatedFlags(backendValues);\n const inheritedFlags = computeInheritedFlags(backendValues);\n const form = AntForm.useFormInstance();\n const label = localizedTranslation(settings.label, lang);\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 columnsToDisplay = settings.columns?.map(({id}) => id);\n const isReadOnly = attribute.readonly || !attribute.permissions.edit_value || readonly || tmpCantOverrideValues;\n const isFieldInError = fieldErrors.length > 0;\n\n useOutsideInteractionDetector({\n attribute,\n activeAttribute: state.activeAttribute,\n attributePrefix: LINK_FIELD_ID_PREFIX,\n dispatch,\n backendValues,\n allowedSelectors: [\n 'div[role=\"status\"]:has(.kit-snackbar-message)',\n '.kit-modal-wrapper',\n `.${CREATE_RECORD_MODAL_CLASSNAME}`,\n `.${LINK_RECORDS_MODAL_CLASSNAME}`,\n `.${EDIT_RECORD_MODAL_CLASSNAME}`,\n '.kit-select-dropdown-content',\n ],\n });\n\n const editionFormId = settings.editFormId ? settings.editFormId : 'edition';\n\n const {LinkRecordsExplorer} = useLinkRecords({\n libraryId: state.libraryId,\n recordId: state.record?.id,\n editionFormId,\n isFormCreationMode,\n attribute,\n joinLibraryContext,\n columnsToDisplay,\n backendValues,\n setBackendValues,\n isReadOnly,\n isFieldInError,\n hasNoValue: backendValues.length === 0,\n onDeleteMultipleValues,\n });\n\n const {UnlinkAllRecordsButton} = useUnlinkAllRecords({\n attribute,\n backendValues,\n setBackendValues,\n onDeleteMultipleValues,\n isReadOnly,\n isFieldInError,\n });\n\n return (\n <Wrapper $metadataEdit={metadataEdit}>\n <AntForm.Item name={attribute.id} noStyle>\n <InputWrapper\n id={LINK_FIELD_ID_PREFIX + attribute.id}\n label={label}\n required={attribute.required}\n bordered\n status={isFieldInError ? 'error' : undefined}\n helper={isFieldInError ? String(fieldErrors[0]) : undefined}\n extra={\n <>\n <InputExtraAlignLeft>\n <ComputeIndicator calculatedFlags={calculatedFlags} inheritedFlags={inheritedFlags} />\n </InputExtraAlignLeft>\n {UnlinkAllRecordsButton}\n </>\n }\n $readonlyBackground={isReadOnly}\n >\n {LinkRecordsExplorer}\n </InputWrapper>\n </AntForm.Item>\n </Wrapper>\n );\n};\n"]}
@@ -1,7 +1,5 @@
1
1
  import { type FunctionComponent } from 'react';
2
- import { type MetadataSubmitValueFunc } from '../EditRecordContent/_types';
3
2
  interface IEditRecordSidebarProps {
4
- onMetadataSubmit: MetadataSubmitValueFunc;
5
3
  sidebarContainer?: HTMLElement;
6
4
  }
7
5
  export declare const EditRecordSidebar: FunctionComponent<IEditRecordSidebarProps>;
@@ -9,7 +9,6 @@ import ValuesVersions from './ValuesVersions';
9
9
  import { createPortal } from 'react-dom';
10
10
  import { EditRecordSidebarContentTypeMap } from '../editRecordReducer/editRecordReducer';
11
11
  import { KitSidePanel } from 'aristid-ds';
12
- import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
13
12
  import { EDIT_RECORD_SIDEBAR_ID } from '../../../constants';
14
13
  import Breadcrumb from './Breacrumb';
15
14
  import AttributeSummary from './AttributeSummary';
@@ -23,7 +22,7 @@ const StyledDivContentWrapper = styled.div `
23
22
  gap: calc(var(--general-spacing-s) * 1px);
24
23
  height: 100%;
25
24
  `;
26
- const _getRecordSidebarContent = (state, onMetadataSubmit) => {
25
+ const _getRecordSidebarContent = (state) => {
27
26
  // TODO: ValuesVersions should be removed or refactored later
28
27
  switch (state.sidebarContent) {
29
28
  case 'none':
@@ -44,15 +43,14 @@ const StyledKitSidePanel = styled(KitSidePanel) `
44
43
  grid-area: sidebar;
45
44
  display: ${({ $isOpen }) => ($isOpen ? 'block' : 'none')};
46
45
  `;
47
- export const EditRecordSidebar = ({ onMetadataSubmit, sidebarContainer }) => {
48
- const { t } = useSharedTranslation();
46
+ export const EditRecordSidebar = ({ sidebarContainer }) => {
49
47
  const { lang } = useLang();
50
48
  const { state } = useEditRecordReducer();
51
49
  const sidePanelRef = useRef(null);
52
- const sidePanelTitle = state.sidebarContent === EditRecordSidebarContentTypeMap.VALUE_DETAILS
53
- ? localizedTranslation(state.activeAttribute?.attribute.label, lang)
54
- : (state.record?.label ?? state.record?.id ?? t('record_summary.new_record'));
55
- const editRecordSidebarContent = (_jsx(StyledKitSidePanel, { ref: sidePanelRef, initialOpen: state.isOpenSidebar && state.enableSidebar, idCardProps: { title: sidePanelTitle }, id: EDIT_RECORD_SIDEBAR_ID, headerExtra: _jsx(Breadcrumb, {}), "$hideBoxShadow": !sidebarContainer, "$isOpen": state.isOpenSidebar, children: _getRecordSidebarContent(state, onMetadataSubmit) }));
50
+ const idCardProps = state.sidebarContent === EditRecordSidebarContentTypeMap.VALUE_DETAILS
51
+ ? { title: localizedTranslation(state.activeAttribute?.attribute.label, lang) }
52
+ : undefined;
53
+ const editRecordSidebarContent = (_jsx(StyledKitSidePanel, { ref: sidePanelRef, initialOpen: state.isOpenSidebar && state.enableSidebar, idCardProps: idCardProps, id: EDIT_RECORD_SIDEBAR_ID, headerExtra: _jsx(Breadcrumb, {}), "$hideBoxShadow": !sidebarContainer, "$isOpen": state.isOpenSidebar, children: _getRecordSidebarContent(state) }));
56
54
  useEffect(() => {
57
55
  if (sidePanelRef.current && state.enableSidebar) {
58
56
  if (state.isOpenSidebar) {
@@ -1 +1 @@
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"]}
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, useRef} from 'react';\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 {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 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) => {\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> = ({sidebarContainer}) => {\n const {lang} = useLang();\n const {state} = useEditRecordReducer();\n const sidePanelRef = useRef<KitSidePanelRef | null>(null);\n const idCardProps =\n state.sidebarContent === EditRecordSidebarContentTypeMap.VALUE_DETAILS\n ? {title: localizedTranslation(state.activeAttribute?.attribute.label, lang)}\n : undefined;\n\n const editRecordSidebarContent = (\n <StyledKitSidePanel\n ref={sidePanelRef}\n initialOpen={state.isOpenSidebar && state.enableSidebar}\n idCardProps={idCardProps}\n id={EDIT_RECORD_SIDEBAR_ID}\n headerExtra={<Breadcrumb />}\n $hideBoxShadow={!sidebarContainer}\n $isOpen={state.isOpenSidebar}\n >\n {_getRecordSidebarContent(state)}\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"]}
@@ -1,43 +1,12 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
3
- // This file is released under LGPL V3
4
- // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
- import { useState } from 'react';
1
+ import { jsx as _jsx } from "react/jsx-runtime";
6
2
  import styled from 'styled-components';
7
- import { KitButton, KitTooltip } from 'aristid-ds';
8
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
9
- import { faExpand } from '@fortawesome/free-solid-svg-icons';
10
3
  import PropertiesList from '../../PropertiesList';
11
- import { useSharedTranslation } from '../../../../../hooks/useSharedTranslation';
12
4
  import { useRecordInformations } from './useRecordInformations';
13
- import FileModal from '../../../../../components/RecordPreviewWithModal/FileModal';
14
- import { EntityPreview } from '../../../../../components/EntityPreview';
15
- import { TOOLTIP_DEFAULT_DELAY_IN_SECONDS } from '../../../../../constants';
16
5
  const InformationsWrapper = styled.div `
17
6
  margin-top: calc(var(--general-spacing-s) * 1px);
18
7
  `;
19
- const PreviewWrapper = styled.div `
20
- position: relative;
21
- width: 100%;
22
- height: 162px;
23
- background-color: var(--general-colors-primary-50);
24
- border-radius: calc(var(--general-border-radius-s) * 1px);
25
- padding: calc(var(--general-spacing-xs) * 1px);
26
- `;
27
- const ExpandImageButton = styled(KitButton) `
28
- position: absolute;
29
- right: 0;
30
- top: 0;
31
- `;
32
- const ContentWrapper = styled.div `
33
- margin-top: calc(var(--general-spacing-s) * 1px);
34
- `;
35
8
  export const RecordInformations = ({ record, recordData }) => {
36
- const { t } = useSharedTranslation();
37
9
  const recordInformations = useRecordInformations(record, recordData);
38
- const [isFilePreviewModalOpen, setFilePreviewModalOpen] = useState(false);
39
- const previewFile = record?.preview?.file;
40
- const preview = record?.preview?.medium ? String(record?.preview?.medium) : null;
41
- return (_jsxs(InformationsWrapper, { children: [_jsxs(PreviewWrapper, { children: [_jsx(EntityPreview, { label: record?.label ?? record?.id, color: record?.color, image: preview, imageStyle: { border: 'none' }, placeholderStyle: { height: '100%', width: 'fit-content', margin: 'auto', borderRadius: '0' }, style: { height: '100%', background: 'initial' }, tile: true }), previewFile !== undefined && (_jsx(KitTooltip, { title: t('record_summary.open_preview_modal'), mouseEnterDelay: TOOLTIP_DEFAULT_DELAY_IN_SECONDS, children: _jsx(ExpandImageButton, { "aria-label": t('record_summary.open_preview_modal'), type: "tertiary", icon: _jsx(FontAwesomeIcon, { icon: faExpand }), onClick: () => setFilePreviewModalOpen(true) }) }))] }), isFilePreviewModalOpen && (_jsx(FileModal, { open: isFilePreviewModalOpen, fileId: previewFile?.id, libraryId: previewFile?.library, onClose: () => setFilePreviewModalOpen(false) })), _jsx(ContentWrapper, { children: _jsx(PropertiesList, { items: recordInformations }) })] }));
10
+ return (_jsx(InformationsWrapper, { children: _jsx(PropertiesList, { items: recordInformations }) }));
42
11
  };
43
12
  //# sourceMappingURL=RecordInformations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RecordInformations.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent, useState} from 'react';\nimport {type IRecordIdentityWhoAmI} from '_ui/types';\nimport styled from 'styled-components';\nimport {KitButton, KitTooltip} from 'aristid-ds';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faExpand} from '@fortawesome/free-solid-svg-icons';\nimport PropertiesList from '../../PropertiesList';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type GetRecordColumnsValuesRecord} from '_ui/_queries/records/getRecordColumnsValues';\nimport {useRecordInformations} from './useRecordInformations';\nimport FileModal from '_ui/components/RecordPreviewWithModal/FileModal';\nimport {EntityPreview} from '_ui/components/EntityPreview';\nimport {TOOLTIP_DEFAULT_DELAY_IN_SECONDS} from '_ui/constants';\n\ninterface IInformationsProps {\n record: IRecordIdentityWhoAmI;\n recordData: GetRecordColumnsValuesRecord;\n}\n\nconst InformationsWrapper = styled.div`\n margin-top: calc(var(--general-spacing-s) * 1px);\n`;\n\nconst PreviewWrapper = styled.div`\n position: relative;\n width: 100%;\n height: 162px;\n background-color: var(--general-colors-primary-50);\n border-radius: calc(var(--general-border-radius-s) * 1px);\n padding: calc(var(--general-spacing-xs) * 1px);\n`;\n\nconst ExpandImageButton = styled(KitButton)`\n position: absolute;\n right: 0;\n top: 0;\n`;\n\nconst ContentWrapper = styled.div`\n margin-top: calc(var(--general-spacing-s) * 1px);\n`;\n\nexport const RecordInformations: FunctionComponent<IInformationsProps> = ({record, recordData}) => {\n const {t} = useSharedTranslation();\n const recordInformations = useRecordInformations(record, recordData);\n const [isFilePreviewModalOpen, setFilePreviewModalOpen] = useState(false);\n\n const previewFile = record?.preview?.file;\n const preview = record?.preview?.medium ? String(record?.preview?.medium) : null;\n\n return (\n <InformationsWrapper>\n <PreviewWrapper>\n <EntityPreview\n label={record?.label ?? record?.id}\n color={record?.color}\n image={preview}\n imageStyle={{border: 'none'}}\n placeholderStyle={{height: '100%', width: 'fit-content', margin: 'auto', borderRadius: '0'}}\n style={{height: '100%', background: 'initial'}}\n tile\n />\n {previewFile !== undefined && (\n <KitTooltip\n title={t('record_summary.open_preview_modal')}\n mouseEnterDelay={TOOLTIP_DEFAULT_DELAY_IN_SECONDS}\n >\n <ExpandImageButton\n aria-label={t('record_summary.open_preview_modal')}\n type=\"tertiary\"\n icon={<FontAwesomeIcon icon={faExpand} />}\n onClick={() => setFilePreviewModalOpen(true)}\n />\n </KitTooltip>\n )}\n </PreviewWrapper>\n {isFilePreviewModalOpen && (\n <FileModal\n open={isFilePreviewModalOpen}\n fileId={previewFile?.id}\n libraryId={previewFile?.library}\n onClose={() => setFilePreviewModalOpen(false)}\n />\n )}\n <ContentWrapper>\n <PropertiesList items={recordInformations} />\n </ContentWrapper>\n </InformationsWrapper>\n );\n};\n"]}
1
+ {"version":3,"file":"RecordInformations.js","sourceRoot":"","sources":["../../../../../../src/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.tsx"],"names":[],"mappings":";AAMA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAO9D,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAA;;CAErC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA0C,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC,EAAE,EAAE;IAC9F,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAErE,OAAO,CACH,KAAC,mBAAmB,cAChB,KAAC,cAAc,IAAC,KAAK,EAAE,kBAAkB,GAAI,GAC3B,CACzB,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 IRecordIdentityWhoAmI} from '_ui/types';\nimport {type GetRecordColumnsValuesRecord} from '_ui/_queries/records/getRecordColumnsValues';\nimport styled from 'styled-components';\nimport PropertiesList from '../../PropertiesList';\nimport {useRecordInformations} from './useRecordInformations';\n\ninterface IInformationsProps {\n record: IRecordIdentityWhoAmI;\n recordData: GetRecordColumnsValuesRecord;\n}\n\nconst InformationsWrapper = styled.div`\n margin-top: calc(var(--general-spacing-s) * 1px);\n`;\n\nexport const RecordInformations: FunctionComponent<IInformationsProps> = ({record, recordData}) => {\n const recordInformations = useRecordInformations(record, recordData);\n\n return (\n <InformationsWrapper>\n <PropertiesList items={recordInformations} />\n </InformationsWrapper>\n );\n};\n"]}
@@ -2,13 +2,24 @@
2
2
  // This file is released under LGPL V3
3
3
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
4
4
  import { useSharedTranslation } from '../../../../../hooks/useSharedTranslation';
5
+ import { localizedTranslation } from '@leav/utils';
6
+ import { useLang } from '../../../../../hooks';
7
+ import { useEditRecordReducer } from '../../../../../components/RecordEdition/editRecordReducer/useEditRecordReducer';
5
8
  export const useRecordInformations = (record, recordData) => {
6
9
  const { t } = useSharedTranslation();
10
+ const { lang } = useLang();
11
+ const { state } = useEditRecordReducer();
7
12
  const recordInformations = [
8
13
  {
9
14
  title: t('record_summary.id_entity'),
10
15
  value: record?.id ?? '-',
11
16
  },
17
+ {
18
+ title: t('record_summary.library'),
19
+ value: t('record_summary.entity', {
20
+ entity: localizedTranslation(state.libraryLabel, lang),
21
+ }),
22
+ },
12
23
  ];
13
24
  if (recordData?.created_at?.[0]) {
14
25
  recordInformations.push({