@leav/ui 1.8.0 → 1.9.0-caa4797b

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 (81) hide show
  1. package/dist/_gqlTypes/index.d.ts +165 -64
  2. package/dist/_gqlTypes/index.js +58 -3
  3. package/dist/_gqlTypes/index.js.map +1 -1
  4. package/dist/_queries/attributes/attributeDetailsFragment.js +3 -0
  5. package/dist/_queries/attributes/attributeDetailsFragment.js.map +1 -1
  6. package/dist/_queries/records/createRecordMutation.js +2 -2
  7. package/dist/_queries/records/createRecordMutation.js.map +1 -1
  8. package/dist/components/Explorer/ExplorerToolbar.js +2 -1
  9. package/dist/components/Explorer/ExplorerToolbar.js.map +1 -1
  10. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +3 -0
  11. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
  12. package/dist/components/Explorer/manage-view-settings/save-view/prepareViewForRequest.js +17 -8
  13. package/dist/components/Explorer/manage-view-settings/save-view/prepareViewForRequest.js.map +1 -1
  14. package/dist/components/Filters/_types.d.ts +12 -1
  15. package/dist/components/Filters/_types.js +2 -1
  16. package/dist/components/Filters/_types.js.map +1 -1
  17. package/dist/components/Filters/context/filtersReducer.js +3 -2
  18. package/dist/components/Filters/context/filtersReducer.js.map +1 -1
  19. package/dist/components/Filters/filter-items/CommonFilterItem.js +2 -2
  20. package/dist/components/Filters/filter-items/CommonFilterItem.js.map +1 -1
  21. package/dist/components/Filters/filter-items/filter-type/ColorAttributeDropDown.js +1 -1
  22. package/dist/components/Filters/filter-items/filter-type/ColorAttributeDropDown.js.map +1 -1
  23. package/dist/components/Filters/filter-items/filter-type/FilterDropdownContent.js +5 -1
  24. package/dist/components/Filters/filter-items/filter-type/FilterDropdownContent.js.map +1 -1
  25. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js +3 -3
  26. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js.map +1 -1
  27. package/dist/components/Filters/filter-items/filter-type/_types.d.ts +6 -1
  28. package/dist/components/Filters/filter-items/filter-type/_types.js.map +1 -1
  29. package/dist/components/Filters/filter-items/filter-type/smart-filter/SmartFilterAttributeDropdown.d.ts +2 -0
  30. package/dist/components/Filters/filter-items/filter-type/smart-filter/SmartFilterAttributeDropdown.js +106 -0
  31. package/dist/components/Filters/filter-items/filter-type/smart-filter/SmartFilterAttributeDropdown.js.map +1 -0
  32. package/dist/components/Filters/filter-items/filter-type/smart-filter/useGetSmartFilterData.d.ts +25 -0
  33. package/dist/components/Filters/filter-items/filter-type/smart-filter/useGetSmartFilterData.js +59 -0
  34. package/dist/components/Filters/filter-items/filter-type/smart-filter/useGetSmartFilterData.js.map +1 -0
  35. package/dist/components/Filters/filter-items/filter-type/smart-filter/useSmartFilerSearch.d.ts +5 -0
  36. package/dist/components/Filters/filter-items/filter-type/smart-filter/useSmartFilerSearch.js +25 -0
  37. package/dist/components/Filters/filter-items/filter-type/smart-filter/useSmartFilerSearch.js.map +1 -0
  38. package/dist/components/Filters/filter-items/filter-type/tree/TreeAttributeDropDown.js +5 -4
  39. package/dist/components/Filters/filter-items/filter-type/tree/TreeAttributeDropDown.js.map +1 -1
  40. package/dist/components/Filters/filter-items/{EmptyValueCheckbox.d.ts → shared/EmptyValueCheckbox.d.ts} +2 -1
  41. package/dist/components/Filters/filter-items/shared/EmptyValueCheckbox.js +20 -0
  42. package/dist/components/Filters/filter-items/shared/EmptyValueCheckbox.js.map +1 -0
  43. package/dist/components/Filters/filter-items/shared/FilterTreeNodeTitle.d.ts +5 -0
  44. package/dist/components/Filters/filter-items/shared/FilterTreeNodeTitle.js +18 -0
  45. package/dist/components/Filters/filter-items/shared/FilterTreeNodeTitle.js.map +1 -0
  46. package/dist/components/Filters/filter-items/{SelectAllCheckbox.js → shared/SelectAllCheckbox.js} +1 -1
  47. package/dist/components/Filters/filter-items/shared/SelectAllCheckbox.js.map +1 -0
  48. package/dist/components/Filters/prepareFiltersForRequest.js +10 -5
  49. package/dist/components/Filters/prepareFiltersForRequest.js.map +1 -1
  50. package/dist/components/Filters/useFilters.d.ts +542 -0
  51. package/dist/components/Filters/useTransformFilters.js +3 -0
  52. package/dist/components/Filters/useTransformFilters.js.map +1 -1
  53. package/dist/components/LibraryItemsList/hooks/useSearchReducer/_types.d.ts +2 -2
  54. package/dist/components/LibraryItemsList/hooks/useSearchReducer/_types.js.map +1 -1
  55. package/dist/components/LibraryItemsList/hooks/useSearchReducer/searchReducer.d.ts +2 -2
  56. package/dist/components/LibraryItemsList/hooks/useSearchReducer/searchReducer.js.map +1 -1
  57. package/dist/components/Notifications/hooks/useNotificationSubscription.d.ts +9 -3
  58. package/dist/components/RecordEdition/EditRecord/EditRecord.js +1 -1
  59. package/dist/components/RecordEdition/EditRecord/EditRecord.js.map +1 -1
  60. package/dist/components/RecordEdition/EditRecordContent/_types.d.ts +4 -0
  61. package/dist/components/RecordEdition/EditRecordContent/_types.js.map +1 -1
  62. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js +27 -16
  63. package/dist/components/RecordEdition/EditRecordModal/EditRecordModal.js.map +1 -1
  64. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js +28 -16
  65. package/dist/components/RecordEdition/EditRecordPage/EditRecordPage.js.map +1 -1
  66. package/dist/components/RecordEdition/EditRecordPage/ErrorComponent.d.ts +2 -0
  67. package/dist/components/RecordEdition/EditRecordPage/ErrorComponent.js +11 -0
  68. package/dist/components/RecordEdition/EditRecordPage/ErrorComponent.js.map +1 -0
  69. package/dist/components/RecordEdition/EditRecordPage/getInitialRecordValues.d.ts +2 -0
  70. package/dist/components/RecordEdition/EditRecordPage/getInitialRecordValues.js +35 -0
  71. package/dist/components/RecordEdition/EditRecordPage/getInitialRecordValues.js.map +1 -0
  72. package/dist/hooks/useGetLibraryDetailExtendedQuery/useGetLibraryDetailExtendedQuery.d.ts +1 -1
  73. package/dist/hooks/useGetRecordUpdatesSubscription/useGetRecordUpdatesSubscription.d.ts +9 -3
  74. package/dist/hooks/useGetRecordValuesQuery/useGetRecordValuesQuery.js.map +1 -1
  75. package/dist/hooks/useIFrameMessenger/types.d.ts +5 -0
  76. package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
  77. package/package.json +6 -6
  78. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js +0 -16
  79. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js.map +0 -1
  80. package/dist/components/Filters/filter-items/SelectAllCheckbox.js.map +0 -1
  81. /package/dist/components/Filters/filter-items/{SelectAllCheckbox.d.ts → shared/SelectAllCheckbox.d.ts} +0 -0
@@ -109,6 +109,7 @@ export const useTransformFilters = () => {
109
109
  attribute: {
110
110
  ...filterAttributeBase,
111
111
  linkedLibrary: attributeData.linked_library,
112
+ smartFilter: attributeData.smart_filter ?? undefined,
112
113
  },
113
114
  subCondition: filter.subCondition ?? null,
114
115
  subField: filter.subField,
@@ -127,6 +128,7 @@ export const useTransformFilters = () => {
127
128
  ...filterAttributeBase,
128
129
  linkedLibrary: attributeData.linked_library,
129
130
  valuesList: attributeData.valuesList,
131
+ smartFilter: attributeData.smart_filter ?? undefined,
130
132
  },
131
133
  withEmptyValues: filter.withEmptyValues ?? false,
132
134
  };
@@ -142,6 +144,7 @@ export const useTransformFilters = () => {
142
144
  attribute: {
143
145
  ...filterAttributeBase,
144
146
  linkedLibrary: attributeData.linked_library,
147
+ smartFilter: attributeData.smart_filter ?? undefined,
145
148
  },
146
149
  };
147
150
  acc.push(newFilter);
@@ -1 +1 @@
1
- {"version":3,"file":"useTransformFilters.js","sourceRoot":"","sources":["../../../src/components/Filters/useTransformFilters.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 {\n type AttributeDetailsLinkAttributeFragment,\n type AttributeDetailsTreeAttributeFragment,\n AttributeFormat,\n AttributeType,\n type ExplorerAttributesQuery,\n type ExplorerLinkAttributeQuery,\n type GetViewsListQuery,\n type LinkAttributeDetailsFragment,\n RecordFilterCondition,\n type StandardAttributeDetailsFragment,\n type ViewDetailsFilterFragment,\n} from '_ui/_gqlTypes';\nimport {\n type UIFilter,\n type IUIFilterBaseAttribute,\n type IUIFilterLink,\n type IUIFilterLinkValueList,\n type IUIFilterStandard,\n type IUIFilterStandardValueList,\n type IUIFilterThrough,\n type IUIFilterTree,\n type ValidFieldFilter,\n type ValidFieldFilterLinkValuesList,\n type ValidFieldFilterStandardValuesList,\n type ValidFieldFilterThrough,\n type ValidFilter,\n} from './_types';\nimport {ThroughConditionFilter} from '_ui/types';\nimport {isLinkAttribute, isStandardAttribute, isTreeAttribute} from '_ui/_utils/attributeType';\nimport {localizedTranslation} from '@leav/utils';\nimport {useLang} from '_ui/hooks';\nimport {valueListTextConditions} from './filter-items/filter-type/useConditionOptionsByType';\nimport dayjs from 'dayjs';\nimport {type TFunction} from 'i18next';\nimport {type ITreeFilters} from './context/useGetTreeFilters';\n\nconst _isValidFieldFilter = (filter: ViewDetailsFilterFragment | UIFilter): filter is ValidFieldFilter =>\n !!filter.field;\n\nconst _isValidFieldFilterThrough = (filter: ValidFilter): filter is ValidFieldFilterThrough =>\n filter.condition === ThroughConditionFilter.THROUGH && !!filter.subCondition && !!filter.subField;\n\nconst _isValidFieldFilterStandardValuesList = (\n filter: ValidFilter,\n attribute: NonNullable<ExplorerAttributesQuery['attributes']>['list'][number],\n): filter is ValidFieldFilterStandardValuesList & {attribute: StandardAttributeDetailsFragment} =>\n valueListTextConditions.includes(filter.condition) &&\n [AttributeType.simple, AttributeType.advanced].includes(attribute.type) &&\n 'valuesList' in attribute &&\n !!attribute.valuesList?.enable;\n\nconst _isValidFieldFilterLinkValuesList = (\n filter: ValidFilter,\n attribute: NonNullable<ExplorerAttributesQuery['attributes']>['list'][number],\n): filter is ValidFieldFilterLinkValuesList & {attribute: LinkAttributeDetailsFragment} =>\n valueListTextConditions.includes(filter.condition) &&\n [AttributeType.simple_link, AttributeType.advanced_link].includes(attribute.type) &&\n 'valuesList' in attribute &&\n !!attribute.valuesList?.enable;\n\ntype AttributeDetailsLinkAttributeWithPermissionsFragment = AttributeDetailsLinkAttributeFragment & {\n permissions: {\n access_attribute: boolean;\n };\n};\ntype AttributeDetailsTreeAttributeWithPermissionsFragment = AttributeDetailsTreeAttributeFragment & {\n permissions: {\n access_attribute: boolean;\n };\n};\n\nexport const isLinkAttributeDetails = (\n linkAttributeData: NonNullable<ExplorerLinkAttributeQuery['attributes']>['list'][number],\n): linkAttributeData is LinkAttributeDetailsFragment & {\n id: string;\n multiple_values: boolean;\n permissions: {\n access_attribute: boolean;\n edit_value: boolean;\n };\n} => 'linked_library' in linkAttributeData;\n\nexport type ValidFiltersArgument = GetViewsListQuery['views']['list'][number]['filters'] | UIFilter[];\n\nexport type AttributesById = Record<string, NonNullable<ExplorerAttributesQuery['attributes']>['list'][number]>;\n\nexport const useTransformFilters = () => {\n const {lang} = useLang();\n\n const toValidFilters = (filters: ValidFiltersArgument): ValidFilter[] =>\n (filters ?? []).reduce<ValidFilter[]>((acc, filter) => {\n if (!_isValidFieldFilter(filter)) {\n return acc;\n }\n const _isThroughFilter = filter.field.includes('.');\n\n if (_isThroughFilter) {\n const [field, subField] = filter.field.split('.');\n const throughFilter: ValidFieldFilterThrough = {\n field,\n subField,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n condition: ThroughConditionFilter.THROUGH,\n subCondition: filter.condition,\n };\n acc.push(throughFilter);\n } else {\n acc.push(filter);\n }\n\n return acc;\n }, []);\n\n const toUIFilters = ({\n filters,\n treeFilters,\n attributesDataById,\n t,\n }: {\n filters: ValidFilter[];\n treeFilters: ITreeFilters;\n attributesDataById: AttributesById;\n t: TFunction;\n }): UIFilter[] =>\n (filters ?? []).reduce<UIFilter[]>((acc, filter) => {\n if (!attributesDataById[filter.field]) {\n console.warn(`Attribute ${filter.field} from user view not found in database.`);\n return acc;\n }\n\n const filterAttributeBase: IUIFilterBaseAttribute = {\n id: attributesDataById[filter.field].id,\n label: localizedTranslation(attributesDataById[filter.field].label, lang),\n type: attributesDataById[filter.field].type,\n };\n\n // filter is standardFilter\n if (isStandardAttribute(filterAttributeBase.type)) {\n const attributeData = attributesDataById[filter.field];\n if (_isValidFieldFilterStandardValuesList(filter, attributeData)) {\n const newFilter: IUIFilterStandardValueList = {\n field: filter.field,\n // TODO : save filter values as string[] when filter and handle fields with libraries\n value: filter.value ? [filter.value] : [],\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: (filter.condition as RecordFilterCondition) ?? null,\n attribute: {\n ...filterAttributeBase,\n format: attributeData.format!,\n valuesList: (attributeData as StandardAttributeDetailsFragment).valuesList!,\n },\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n acc.push(newFilter);\n } else {\n let formattedValue: string;\n if (attributeData.format === AttributeFormat.boolean && filter.value) {\n formattedValue = filter.value === 'true' ? t('explorer.true') : t('explorer.false');\n }\n\n if (attributeData.format === AttributeFormat.date && filter.value) {\n formattedValue = dayjs(filter.value).format('YYYY-MM-DD');\n }\n\n const newFilter: IUIFilterStandard = {\n field: filter.field,\n value: filter.value ?? null,\n formattedValue,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: (filter.condition as RecordFilterCondition) ?? null,\n attribute: {\n ...filterAttributeBase,\n format: attributeData.format!,\n },\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n acc.push(newFilter);\n }\n }\n\n if (isLinkAttribute(filterAttributeBase.type)) {\n const attributeData = attributesDataById[\n filter.field\n ] as AttributeDetailsLinkAttributeWithPermissionsFragment;\n if (_isValidFieldFilterThrough(filter)) {\n const newFilter: IUIFilterThrough = {\n field: filter.field,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n },\n subCondition: filter.subCondition ?? null,\n subField: filter.subField,\n };\n acc.push(newFilter);\n } else if (_isValidFieldFilterLinkValuesList(filter, attributeData)) {\n const newFilter: IUIFilterLinkValueList = {\n field: filter.field,\n // TODO : save filter values as string[] when filter and handle fields with libraries\n value: filter.value ? [filter.value] : [],\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n valuesList: (attributeData as LinkAttributeDetailsFragment).valuesList!,\n },\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n\n acc.push(newFilter);\n } else {\n const newFilter: IUIFilterLink = {\n field: filter.field,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n },\n };\n\n acc.push(newFilter);\n }\n }\n\n if (isTreeAttribute(filterAttributeBase.type) && !_isValidFieldFilterThrough(filter)) {\n const attributeData = attributesDataById[\n filter.field\n ] as AttributeDetailsTreeAttributeWithPermissionsFragment;\n const newFilter: IUIFilterTree = {\n field: [filter.field],\n // TODO : save filter values as string[] when tree filter and handle fields with libraries\n value: filter.value\n ? [filter.value]\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => tree.value)\n : null,\n formattedValue: filter.value\n ? [filter.value]\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => tree.label)\n : undefined,\n nodes: filter.value\n ? undefined\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => ({libraryId: tree.libraryId, nodeId: tree.nodeId}))\n : undefined,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n attribute: {\n ...filterAttributeBase,\n linkedTree: attributeData.linked_tree!,\n },\n condition: filter.condition ?? RecordFilterCondition.EQUAL,\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n acc.push(newFilter);\n }\n\n return acc;\n }, []);\n\n return {\n toValidFilters,\n toUIFilters,\n };\n};\n"]}
1
+ {"version":3,"file":"useTransformFilters.js","sourceRoot":"","sources":["../../../src/components/Filters/useTransformFilters.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 {\n type AttributeDetailsLinkAttributeFragment,\n type AttributeDetailsTreeAttributeFragment,\n AttributeFormat,\n AttributeType,\n type ExplorerAttributesQuery,\n type ExplorerLinkAttributeQuery,\n type GetViewsListQuery,\n type LinkAttributeDetailsFragment,\n RecordFilterCondition,\n type StandardAttributeDetailsFragment,\n type ViewDetailsFilterFragment,\n} from '_ui/_gqlTypes';\nimport {\n type UIFilter,\n type IUIFilterBaseAttribute,\n type IUIFilterLink,\n type IUIFilterLinkValueList,\n type IUIFilterStandard,\n type IUIFilterStandardValueList,\n type IUIFilterThrough,\n type IUIFilterTree,\n type ValidFieldFilter,\n type ValidFieldFilterLinkValuesList,\n type ValidFieldFilterStandardValuesList,\n type ValidFieldFilterThrough,\n type ValidFilter,\n} from './_types';\nimport {ThroughConditionFilter} from '_ui/types';\nimport {isLinkAttribute, isStandardAttribute, isTreeAttribute} from '_ui/_utils/attributeType';\nimport {localizedTranslation} from '@leav/utils';\nimport {useLang} from '_ui/hooks';\nimport {valueListTextConditions} from './filter-items/filter-type/useConditionOptionsByType';\nimport dayjs from 'dayjs';\nimport {type TFunction} from 'i18next';\nimport {type ITreeFilters} from './context/useGetTreeFilters';\n\nconst _isValidFieldFilter = (filter: ViewDetailsFilterFragment | UIFilter): filter is ValidFieldFilter =>\n !!filter.field;\n\nconst _isValidFieldFilterThrough = (filter: ValidFilter): filter is ValidFieldFilterThrough =>\n filter.condition === ThroughConditionFilter.THROUGH && !!filter.subCondition && !!filter.subField;\n\nconst _isValidFieldFilterStandardValuesList = (\n filter: ValidFilter,\n attribute: NonNullable<ExplorerAttributesQuery['attributes']>['list'][number],\n): filter is ValidFieldFilterStandardValuesList & {attribute: StandardAttributeDetailsFragment} =>\n valueListTextConditions.includes(filter.condition) &&\n [AttributeType.simple, AttributeType.advanced].includes(attribute.type) &&\n 'valuesList' in attribute &&\n !!attribute.valuesList?.enable;\n\nconst _isValidFieldFilterLinkValuesList = (\n filter: ValidFilter,\n attribute: NonNullable<ExplorerAttributesQuery['attributes']>['list'][number],\n): filter is ValidFieldFilterLinkValuesList & {attribute: LinkAttributeDetailsFragment} =>\n valueListTextConditions.includes(filter.condition) &&\n [AttributeType.simple_link, AttributeType.advanced_link].includes(attribute.type) &&\n 'valuesList' in attribute &&\n !!attribute.valuesList?.enable;\n\ntype AttributeDetailsLinkAttributeWithPermissionsFragment = AttributeDetailsLinkAttributeFragment & {\n permissions: {\n access_attribute: boolean;\n };\n};\ntype AttributeDetailsTreeAttributeWithPermissionsFragment = AttributeDetailsTreeAttributeFragment & {\n permissions: {\n access_attribute: boolean;\n };\n};\n\nexport const isLinkAttributeDetails = (\n linkAttributeData: NonNullable<ExplorerLinkAttributeQuery['attributes']>['list'][number],\n): linkAttributeData is LinkAttributeDetailsFragment & {\n id: string;\n multiple_values: boolean;\n permissions: {\n access_attribute: boolean;\n edit_value: boolean;\n };\n} => 'linked_library' in linkAttributeData;\n\nexport type ValidFiltersArgument = GetViewsListQuery['views']['list'][number]['filters'] | UIFilter[];\n\nexport type AttributesById = Record<string, NonNullable<ExplorerAttributesQuery['attributes']>['list'][number]>;\n\nexport const useTransformFilters = () => {\n const {lang} = useLang();\n\n const toValidFilters = (filters: ValidFiltersArgument): ValidFilter[] =>\n (filters ?? []).reduce<ValidFilter[]>((acc, filter) => {\n if (!_isValidFieldFilter(filter)) {\n return acc;\n }\n const _isThroughFilter = filter.field.includes('.');\n\n if (_isThroughFilter) {\n const [field, subField] = filter.field.split('.');\n const throughFilter: ValidFieldFilterThrough = {\n field,\n subField,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n condition: ThroughConditionFilter.THROUGH,\n subCondition: filter.condition,\n };\n acc.push(throughFilter);\n } else {\n acc.push(filter);\n }\n\n return acc;\n }, []);\n\n const toUIFilters = ({\n filters,\n treeFilters,\n attributesDataById,\n t,\n }: {\n filters: ValidFilter[];\n treeFilters: ITreeFilters;\n attributesDataById: AttributesById;\n t: TFunction;\n }): UIFilter[] =>\n (filters ?? []).reduce<UIFilter[]>((acc, filter) => {\n if (!attributesDataById[filter.field]) {\n console.warn(`Attribute ${filter.field} from user view not found in database.`);\n return acc;\n }\n\n const filterAttributeBase: IUIFilterBaseAttribute = {\n id: attributesDataById[filter.field].id,\n label: localizedTranslation(attributesDataById[filter.field].label, lang),\n type: attributesDataById[filter.field].type,\n };\n\n // filter is standardFilter\n if (isStandardAttribute(filterAttributeBase.type)) {\n const attributeData = attributesDataById[filter.field];\n if (_isValidFieldFilterStandardValuesList(filter, attributeData)) {\n const newFilter: IUIFilterStandardValueList = {\n field: filter.field,\n // TODO : save filter values as string[] when filter and handle fields with libraries\n value: filter.value ? [filter.value] : [],\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: (filter.condition as RecordFilterCondition) ?? null,\n attribute: {\n ...filterAttributeBase,\n format: attributeData.format!,\n valuesList: (attributeData as StandardAttributeDetailsFragment).valuesList!,\n },\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n acc.push(newFilter);\n } else {\n let formattedValue: string;\n if (attributeData.format === AttributeFormat.boolean && filter.value) {\n formattedValue = filter.value === 'true' ? t('explorer.true') : t('explorer.false');\n }\n\n if (attributeData.format === AttributeFormat.date && filter.value) {\n formattedValue = dayjs(filter.value).format('YYYY-MM-DD');\n }\n\n const newFilter: IUIFilterStandard = {\n field: filter.field,\n value: filter.value ?? null,\n formattedValue,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: (filter.condition as RecordFilterCondition) ?? null,\n attribute: {\n ...filterAttributeBase,\n format: attributeData.format!,\n },\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n acc.push(newFilter);\n }\n }\n\n if (isLinkAttribute(filterAttributeBase.type)) {\n const attributeData = attributesDataById[\n filter.field\n ] as AttributeDetailsLinkAttributeWithPermissionsFragment;\n if (_isValidFieldFilterThrough(filter)) {\n const newFilter: IUIFilterThrough = {\n field: filter.field,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n smartFilter: attributeData.smart_filter ?? undefined,\n },\n subCondition: filter.subCondition ?? null,\n subField: filter.subField,\n };\n acc.push(newFilter);\n } else if (_isValidFieldFilterLinkValuesList(filter, attributeData)) {\n const newFilter: IUIFilterLinkValueList = {\n field: filter.field,\n // TODO : save filter values as string[] when filter and handle fields with libraries\n value: filter.value ? [filter.value] : [],\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n valuesList: (attributeData as LinkAttributeDetailsFragment).valuesList!,\n smartFilter: attributeData.smart_filter ?? undefined,\n },\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n\n acc.push(newFilter);\n } else {\n const newFilter: IUIFilterLink = {\n field: filter.field,\n value: filter.value ?? null,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n condition: filter.condition,\n attribute: {\n ...filterAttributeBase,\n linkedLibrary: attributeData.linked_library!,\n smartFilter: attributeData.smart_filter ?? undefined,\n },\n };\n\n acc.push(newFilter);\n }\n }\n\n if (isTreeAttribute(filterAttributeBase.type) && !_isValidFieldFilterThrough(filter)) {\n const attributeData = attributesDataById[\n filter.field\n ] as AttributeDetailsTreeAttributeWithPermissionsFragment;\n const newFilter: IUIFilterTree = {\n field: [filter.field],\n // TODO : save filter values as string[] when tree filter and handle fields with libraries\n value: filter.value\n ? [filter.value]\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => tree.value)\n : null,\n formattedValue: filter.value\n ? [filter.value]\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => tree.label)\n : undefined,\n nodes: filter.value\n ? undefined\n : treeFilters[filter.field]\n ? treeFilters[filter.field].map(tree => ({libraryId: tree.libraryId, nodeId: tree.nodeId}))\n : undefined,\n hidden: filter.hidden ?? false,\n id: window.crypto.randomUUID(),\n attribute: {\n ...filterAttributeBase,\n linkedTree: attributeData.linked_tree!,\n },\n condition: filter.condition ?? RecordFilterCondition.EQUAL,\n withEmptyValues: filter.withEmptyValues ?? false,\n };\n acc.push(newFilter);\n }\n\n return acc;\n }, []);\n\n return {\n toValidFilters,\n toUIFilters,\n };\n};\n"]}
@@ -5,7 +5,7 @@ import { type IAttribute, type IField, type IFilter, type ISearchSelection, type
5
5
  import { type IValueVersion } from '../../../../types/values';
6
6
  import { type IView, type IViewDisplay } from '../../../../types/views';
7
7
  import { type PermissionsActions, type SortOrder } from '../../../../_gqlTypes';
8
- import { type GraphQLError, type GraphQLErrorExtensions } from 'graphql';
8
+ import { type GraphQLFormattedError, type GraphQLErrorExtensions } from 'graphql';
9
9
  import { type ILibraryDetailExtended, type ILibraryDetailExtendedLinkedTree } from '../../../../_queries/libraries/getLibraryDetailExtendQuery';
10
10
  export type IRecordPreview = {
11
11
  small: string;
@@ -38,7 +38,7 @@ export interface ISidebarState {
38
38
  visible: boolean;
39
39
  type: SidebarContentType;
40
40
  }
41
- export type SearchStateError = Override<GraphQLError, {
41
+ export type SearchStateError = Override<GraphQLFormattedError, {
42
42
  extensions: GraphQLErrorExtensions & {
43
43
  record?: {
44
44
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/hooks/useSearchReducer/_types.ts"],"names":[],"mappings":"","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 Override} from '@leav/utils';\nimport {type ILang} from '_ui/types/misc';\nimport {type IRecordIdentityWhoAmI} from '_ui/types/records';\nimport {\n type IAttribute,\n type IField,\n type IFilter,\n type ISearchSelection,\n type SearchMode,\n type SidebarContentType,\n} from '_ui/types/search';\nimport {type IValueVersion} from '_ui/types/values';\nimport {type IView, type IViewDisplay} from '_ui/types/views';\nimport {type PermissionsActions, type SortOrder} from '_ui/_gqlTypes';\nimport {type GraphQLError, type GraphQLErrorExtensions} from 'graphql';\nimport {\n type ILibraryDetailExtended,\n type ILibraryDetailExtendedLinkedTree,\n} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\n\nexport type IRecordPreview = {\n small: string;\n medium: string;\n big: string;\n pages: string;\n} | null;\n\nexport interface IRecordWhoAmI {\n id: string;\n label?: string;\n preview?: IRecordPreview;\n color?: string;\n library?: {\n id: string;\n label: Record<string, string>;\n };\n}\n\nexport interface ISearchRecord {\n whoAmI: IRecordIdentityWhoAmI;\n index: number;\n fields: {[x: string]: any};\n}\n\nexport interface ISearchSort {\n field: string;\n order: SortOrder;\n}\n\nexport interface ISidebarState {\n visible: boolean;\n type: SidebarContentType;\n}\n\nexport type SearchStateError = Override<\n GraphQLError,\n {\n extensions: GraphQLErrorExtensions & {\n record?: {\n id: string;\n library: string;\n };\n fields?: {\n [key: string]: string;\n };\n action?: PermissionsActions;\n };\n }\n>;\n\nexport interface ISearchState {\n library: ILibraryDetailExtended;\n records: ISearchRecord[];\n totalCount: number;\n errors?: readonly SearchStateError[];\n loading: boolean;\n pagination: number;\n offset: number;\n sort?: ISearchSort[];\n attributes: IAttribute[];\n trees: ILibraryDetailExtendedLinkedTree[];\n fields: IField[];\n fullText: string;\n filters: IFilter[];\n display: IViewDisplay;\n view: IViewState;\n userViewsOrder: string[];\n sharedViewsOrder: string[];\n lang: ILang;\n valuesVersions: IValueVersion;\n sideBar: ISidebarState;\n selection: ISearchSelection;\n showTransparency: boolean;\n mode: SearchMode;\n}\n\nexport interface IViewState {\n current: IView | null;\n reload: boolean;\n sync: boolean;\n}\n"]}
1
+ {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/hooks/useSearchReducer/_types.ts"],"names":[],"mappings":"","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 Override} from '@leav/utils';\nimport {type ILang} from '_ui/types/misc';\nimport {type IRecordIdentityWhoAmI} from '_ui/types/records';\nimport {\n type IAttribute,\n type IField,\n type IFilter,\n type ISearchSelection,\n type SearchMode,\n type SidebarContentType,\n} from '_ui/types/search';\nimport {type IValueVersion} from '_ui/types/values';\nimport {type IView, type IViewDisplay} from '_ui/types/views';\nimport {type PermissionsActions, type SortOrder} from '_ui/_gqlTypes';\nimport {type GraphQLFormattedError, type GraphQLErrorExtensions} from 'graphql';\nimport {\n type ILibraryDetailExtended,\n type ILibraryDetailExtendedLinkedTree,\n} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\n\nexport type IRecordPreview = {\n small: string;\n medium: string;\n big: string;\n pages: string;\n} | null;\n\nexport interface IRecordWhoAmI {\n id: string;\n label?: string;\n preview?: IRecordPreview;\n color?: string;\n library?: {\n id: string;\n label: Record<string, string>;\n };\n}\n\nexport interface ISearchRecord {\n whoAmI: IRecordIdentityWhoAmI;\n index: number;\n fields: {[x: string]: any};\n}\n\nexport interface ISearchSort {\n field: string;\n order: SortOrder;\n}\n\nexport interface ISidebarState {\n visible: boolean;\n type: SidebarContentType;\n}\n\nexport type SearchStateError = Override<\n GraphQLFormattedError,\n {\n extensions: GraphQLErrorExtensions & {\n record?: {\n id: string;\n library: string;\n };\n fields?: {\n [key: string]: string;\n };\n action?: PermissionsActions;\n };\n }\n>;\n\nexport interface ISearchState {\n library: ILibraryDetailExtended;\n records: ISearchRecord[];\n totalCount: number;\n errors?: readonly SearchStateError[];\n loading: boolean;\n pagination: number;\n offset: number;\n sort?: ISearchSort[];\n attributes: IAttribute[];\n trees: ILibraryDetailExtendedLinkedTree[];\n fields: IField[];\n fullText: string;\n filters: IFilter[];\n display: IViewDisplay;\n view: IViewState;\n userViewsOrder: string[];\n sharedViewsOrder: string[];\n lang: ILang;\n valuesVersions: IValueVersion;\n sideBar: ISidebarState;\n selection: ISearchSelection;\n showTransparency: boolean;\n mode: SearchMode;\n}\n\nexport interface IViewState {\n current: IView | null;\n reload: boolean;\n sync: boolean;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { type GraphQLErrors } from '@apollo/client/errors';
1
+ import { type GraphQLFormattedError } from 'graphql';
2
2
  import { type IAttribute, type IField, type IFilter, type ISelectedRecord, SidebarContentType } from '../../../../types/search';
3
3
  import { type IValueVersion } from '../../../../types/values';
4
4
  import { type IView, type IViewDisplay } from '../../../../types/views';
@@ -37,7 +37,7 @@ export declare enum SearchActionTypes {
37
37
  interface ISearchResult {
38
38
  type: SearchActionTypes.UPDATE_RESULT;
39
39
  records: ISearchRecord[];
40
- errors?: GraphQLErrors;
40
+ errors?: readonly GraphQLFormattedError[];
41
41
  totalCount: number;
42
42
  }
43
43
  export type SearchAction = ({
@@ -1 +1 @@
1
- {"version":3,"file":"searchReducer.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/hooks/useSearchReducer/searchReducer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type GraphQLErrors} from '@apollo/client/errors';\nimport getFieldsFromView from '_ui/components/LibraryItemsList/helpers/getFieldsFromView';\nimport {\n type IAttribute,\n type IField,\n type IFilter,\n type ISelectedRecord,\n SearchMode,\n SidebarContentType,\n} from '_ui/types/search';\nimport {type IValueVersion} from '_ui/types/values';\nimport {type IView, type IViewDisplay} from '_ui/types/views';\nimport {ViewSizes, ViewTypes} from '_ui/_gqlTypes';\nimport {defaultView} from '../../constants';\nimport {type ISearchRecord, type ISearchSort, type ISearchState} from './_types';\n\nexport enum SearchActionTypes {\n UPDATE_RESULT = 'UPDATE_RESULT',\n SET_ERROR = 'SET_ERROR',\n SET_PAGINATION = 'SET_PAGINATION',\n SET_OFFSET = 'SET_OFFSET',\n SET_LOADING = 'SET_LOADING',\n SET_SORT = 'SET_SORT',\n CANCEL_SORT = 'CANCEL_SORT',\n SET_ATTRIBUTES = 'SET_ATTRIBUTES',\n SET_FIELDS = 'SET_FIELDS',\n SET_FULLTEXT = 'SET_FULLTEXT',\n SET_FILTERS = 'SET_FILTERS',\n SET_VIEW_RELOAD = 'SET_VIEW_RELOAD',\n SET_VIEW_SYNC = 'SET_VIEW_SYNC',\n CHANGE_VIEW = 'CHANGE_VIEW',\n SET_USER_VIEWS_ORDER = 'SET_USER_VIEWS_ORDER',\n SET_SHARED_VIEWS_ORDER = 'SET_SHARED_VIEWS_ORDER',\n SET_DISPLAY = 'SET_DISPLAY',\n RESET_FILTERS = 'RESET_FILTERS',\n DISABLE_FILTERS = 'DISABLE_FILTERS',\n ENABLE_FILTERS = 'ENABLE_FILTERS',\n APPLY_FILTERS = 'APPLY_FILTERS',\n SET_VALUES_VERSIONS = 'SET_VALUES_VERSIONS',\n TOGGLE_TRANSPARENCY = 'TOGGLE_TRANSPARENCY',\n TOGGLE_SIDEBAR = 'TOGGLE_SIDEBAR',\n SET_SIDEBAR = 'SET_SIDEBAR',\n SET_SELECTION = 'SET_SELECTION',\n TOGGLE_RECORD_SELECTION = 'TOGGLE_RECORD_SELECTION',\n SELECT_ALL = 'SELECT_ALL',\n CLEAR_SELECTION = 'CLEAR_SELECTION',\n}\n\ninterface ISearchResult {\n type: SearchActionTypes.UPDATE_RESULT;\n records: ISearchRecord[];\n errors?: GraphQLErrors;\n totalCount: number;\n}\n\nexport type SearchAction =\n | ({type: SearchActionTypes.UPDATE_RESULT} & ISearchResult)\n | {type: SearchActionTypes.SET_PAGINATION; page: number}\n | {type: SearchActionTypes.SET_OFFSET; offset: number}\n | {type: SearchActionTypes.SET_LOADING; loading: boolean}\n | {type: SearchActionTypes.SET_SORT; sort: ISearchSort[]}\n | {type: SearchActionTypes.CANCEL_SORT}\n | {type: SearchActionTypes.SET_ATTRIBUTES; attributes: IAttribute[]}\n | {type: SearchActionTypes.SET_FIELDS; fields: IField[]}\n | {type: SearchActionTypes.SET_FULLTEXT; fullText: string}\n | {type: SearchActionTypes.SET_FILTERS; filters: IFilter[]}\n | {type: SearchActionTypes.SET_VIEW_RELOAD; reload: boolean}\n | {type: SearchActionTypes.SET_VIEW_SYNC; sync: boolean}\n | {type: SearchActionTypes.CHANGE_VIEW; view: IView}\n | {type: SearchActionTypes.SET_DISPLAY; display: IViewDisplay}\n | {type: SearchActionTypes.SET_USER_VIEWS_ORDER; userViewsOrder: string[]}\n | {type: SearchActionTypes.SET_SHARED_VIEWS_ORDER; sharedViewsOrder: string[]}\n | {type: SearchActionTypes.RESET_FILTERS}\n | {type: SearchActionTypes.DISABLE_FILTERS}\n | {type: SearchActionTypes.ENABLE_FILTERS}\n | {type: SearchActionTypes.APPLY_FILTERS}\n | {type: SearchActionTypes.SET_VALUES_VERSIONS; valuesVersions: IValueVersion}\n | {type: SearchActionTypes.TOGGLE_TRANSPARENCY}\n | {type: SearchActionTypes.TOGGLE_SIDEBAR}\n | {type: SearchActionTypes.SET_SIDEBAR; sidebarType: SidebarContentType; visible: boolean}\n | {type: SearchActionTypes.SET_SELECTION; selected: ISelectedRecord[]}\n | {type: SearchActionTypes.TOGGLE_RECORD_SELECTION; record: ISelectedRecord}\n | {type: SearchActionTypes.SELECT_ALL}\n | {type: SearchActionTypes.CLEAR_SELECTION};\n\nexport const initialSearchState: ISearchState = {\n library: null,\n errors: [],\n records: [],\n totalCount: 0,\n loading: false,\n pagination: 20,\n offset: 0,\n attributes: [],\n trees: [],\n fields: [],\n fullText: '',\n filters: [],\n display: {type: ViewTypes.list, size: ViewSizes.MEDIUM},\n view: {current: defaultView, reload: false, sync: true},\n userViewsOrder: [],\n sharedViewsOrder: [],\n valuesVersions: {},\n lang: null,\n sideBar: {\n visible: false,\n type: SidebarContentType.FILTERS,\n },\n selection: {\n selected: [],\n allSelected: false,\n },\n showTransparency: false,\n mode: SearchMode.SEARCH,\n};\n\nconst checkSync = (\n state: ISearchState,\n toCheck: {sort: boolean; filters: boolean; display: boolean; fields: boolean; valuesVersions: boolean},\n): boolean => {\n let isSync = true;\n\n if (toCheck.sort) {\n isSync = JSON.stringify(state.sort) === JSON.stringify(state.view.current?.sort);\n }\n\n if (toCheck.filters) {\n isSync = isSync && JSON.stringify(state.view.current?.filters) === JSON.stringify(state.filters);\n }\n\n if (toCheck.display) {\n isSync =\n isSync &&\n state.display.type === state.view.current?.display?.type &&\n state.display.size === state.view.current?.display?.size;\n }\n\n if (toCheck.fields) {\n const viewFieldsKeys = state.view.current.attributes ?? [];\n\n isSync = isSync && state.fields.map(f => f.id).join('.') === viewFieldsKeys.join('.');\n }\n\n return isSync;\n};\n\nconst searchReducer = (state: ISearchState, action: SearchAction): ISearchState => {\n let isSync = checkSync(state, {\n sort: action.type !== SearchActionTypes.SET_SORT,\n filters: action.type !== SearchActionTypes.SET_FILTERS,\n display: action.type !== SearchActionTypes.SET_DISPLAY,\n fields: action.type !== SearchActionTypes.SET_FIELDS,\n valuesVersions: action.type !== SearchActionTypes.SET_VALUES_VERSIONS,\n });\n\n switch (action.type) {\n case SearchActionTypes.UPDATE_RESULT: {\n return {\n ...state,\n records: action.records ?? state.records,\n totalCount: action.totalCount ?? state.totalCount,\n errors: action.errors ?? [],\n loading: false,\n };\n }\n case SearchActionTypes.SET_PAGINATION:\n return {...state, pagination: action.page, loading: true};\n case SearchActionTypes.SET_OFFSET:\n return {...state, offset: action.offset, loading: true};\n case SearchActionTypes.SET_LOADING:\n return {...state, loading: action.loading};\n case SearchActionTypes.SET_SORT:\n isSync = isSync && JSON.stringify(state.view.current.sort) === JSON.stringify(action.sort);\n\n return {...state, sort: action.sort, view: {...state.view, sync: isSync}};\n case SearchActionTypes.CANCEL_SORT:\n const {sort, ...newState} = state;\n\n isSync = isSync && typeof state.view.current.sort === 'undefined';\n\n return {...newState, view: {...state.view, sync: isSync}, loading: true};\n case SearchActionTypes.SET_ATTRIBUTES:\n return {...state, attributes: action.attributes};\n case SearchActionTypes.SET_FIELDS:\n const viewFieldsKeys = state.view.current.attributes ?? [];\n\n isSync = isSync && action.fields.map(f => f.id).join('.') === viewFieldsKeys.join('.');\n\n return {...state, fields: action.fields, view: {...state.view, sync: isSync}, loading: true};\n case SearchActionTypes.SET_FULLTEXT:\n return {...state, fullText: action.fullText};\n case SearchActionTypes.SET_FILTERS:\n isSync = isSync && JSON.stringify(state.view.current.filters) === JSON.stringify(action.filters);\n return {...state, filters: action.filters, view: {...state.view, sync: isSync}};\n case SearchActionTypes.CHANGE_VIEW:\n return {\n ...state,\n view: {\n current: action.view,\n reload: true,\n sync: true,\n },\n fields: getFieldsFromView(action.view, state.library, state.lang),\n filters: action.view.filters,\n sort: action.view.sort,\n display: action.view.display,\n valuesVersions: action.view.valuesVersions,\n };\n case SearchActionTypes.SET_VIEW_RELOAD:\n return {...state, view: {...state.view, reload: action.reload}};\n case SearchActionTypes.SET_VIEW_SYNC:\n return {...state, view: {...state.view, sync: action.sync}};\n case SearchActionTypes.SET_DISPLAY:\n isSync =\n isSync &&\n action.display.type === state.view.current.display.type &&\n action.display.size === state.view.current.display.size;\n return {...state, display: action.display, view: {...state.view, sync: isSync}};\n case SearchActionTypes.SET_USER_VIEWS_ORDER:\n return {...state, userViewsOrder: action.userViewsOrder};\n case SearchActionTypes.SET_SHARED_VIEWS_ORDER:\n return {...state, sharedViewsOrder: action.sharedViewsOrder};\n case SearchActionTypes.RESET_FILTERS:\n return {...state, filters: [], loading: true};\n case SearchActionTypes.DISABLE_FILTERS:\n return {\n ...state,\n filters: state.filters.map(f => ({...f, active: false})),\n loading: true,\n };\n case SearchActionTypes.ENABLE_FILTERS:\n return {\n ...state,\n filters: state.filters.map(f => ({...f, active: true})),\n loading: true,\n };\n case SearchActionTypes.APPLY_FILTERS:\n // Reset pagination when applying filters as this may lead to unexpected behavior\n // if new filters return less results\n return {\n ...state,\n offset: 0,\n loading: true,\n };\n case SearchActionTypes.SET_VALUES_VERSIONS: {\n isSync =\n isSync && JSON.stringify(state.view.current.valuesVersions) === JSON.stringify(action.valuesVersions);\n return {\n ...state,\n view: {...state.view, sync: isSync},\n valuesVersions: {...state.valuesVersions, ...action.valuesVersions},\n };\n }\n case SearchActionTypes.TOGGLE_TRANSPARENCY:\n return {...state, showTransparency: !state.showTransparency};\n case SearchActionTypes.TOGGLE_SIDEBAR:\n return {...state, sideBar: {...state.sideBar, visible: !state.sideBar.visible}};\n case SearchActionTypes.SET_SIDEBAR:\n return {...state, sideBar: {...state.sideBar, type: action.sidebarType, visible: action.visible}};\n case SearchActionTypes.SET_SELECTION:\n return {...state, selection: {...state.selection, selected: action.selected, allSelected: false}};\n case SearchActionTypes.TOGGLE_RECORD_SELECTION:\n const currentlySelected = state.selection.selected.findIndex(s => s.id === action.record.id) > -1;\n\n return {\n ...state,\n selection: {\n ...state.selection,\n selected: currentlySelected\n ? state.selection.selected.filter(s => s.id !== action.record.id)\n : [...state.selection.selected, action.record],\n },\n };\n case SearchActionTypes.SELECT_ALL:\n return {\n ...state,\n selection: {\n selected: [],\n allSelected: true,\n },\n };\n case SearchActionTypes.CLEAR_SELECTION:\n return {\n ...state,\n selection: {\n selected: [],\n allSelected: false,\n },\n };\n default:\n return state;\n }\n};\n\nexport default searchReducer;\n"]}
1
+ {"version":3,"file":"searchReducer.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/hooks/useSearchReducer/searchReducer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type GraphQLFormattedError} from 'graphql';\nimport getFieldsFromView from '_ui/components/LibraryItemsList/helpers/getFieldsFromView';\nimport {\n type IAttribute,\n type IField,\n type IFilter,\n type ISelectedRecord,\n SearchMode,\n SidebarContentType,\n} from '_ui/types/search';\nimport {type IValueVersion} from '_ui/types/values';\nimport {type IView, type IViewDisplay} from '_ui/types/views';\nimport {ViewSizes, ViewTypes} from '_ui/_gqlTypes';\nimport {defaultView} from '../../constants';\nimport {type SearchStateError, type ISearchRecord, type ISearchSort, type ISearchState} from './_types';\n\nexport enum SearchActionTypes {\n UPDATE_RESULT = 'UPDATE_RESULT',\n SET_ERROR = 'SET_ERROR',\n SET_PAGINATION = 'SET_PAGINATION',\n SET_OFFSET = 'SET_OFFSET',\n SET_LOADING = 'SET_LOADING',\n SET_SORT = 'SET_SORT',\n CANCEL_SORT = 'CANCEL_SORT',\n SET_ATTRIBUTES = 'SET_ATTRIBUTES',\n SET_FIELDS = 'SET_FIELDS',\n SET_FULLTEXT = 'SET_FULLTEXT',\n SET_FILTERS = 'SET_FILTERS',\n SET_VIEW_RELOAD = 'SET_VIEW_RELOAD',\n SET_VIEW_SYNC = 'SET_VIEW_SYNC',\n CHANGE_VIEW = 'CHANGE_VIEW',\n SET_USER_VIEWS_ORDER = 'SET_USER_VIEWS_ORDER',\n SET_SHARED_VIEWS_ORDER = 'SET_SHARED_VIEWS_ORDER',\n SET_DISPLAY = 'SET_DISPLAY',\n RESET_FILTERS = 'RESET_FILTERS',\n DISABLE_FILTERS = 'DISABLE_FILTERS',\n ENABLE_FILTERS = 'ENABLE_FILTERS',\n APPLY_FILTERS = 'APPLY_FILTERS',\n SET_VALUES_VERSIONS = 'SET_VALUES_VERSIONS',\n TOGGLE_TRANSPARENCY = 'TOGGLE_TRANSPARENCY',\n TOGGLE_SIDEBAR = 'TOGGLE_SIDEBAR',\n SET_SIDEBAR = 'SET_SIDEBAR',\n SET_SELECTION = 'SET_SELECTION',\n TOGGLE_RECORD_SELECTION = 'TOGGLE_RECORD_SELECTION',\n SELECT_ALL = 'SELECT_ALL',\n CLEAR_SELECTION = 'CLEAR_SELECTION',\n}\n\ninterface ISearchResult {\n type: SearchActionTypes.UPDATE_RESULT;\n records: ISearchRecord[];\n errors?: readonly GraphQLFormattedError[];\n totalCount: number;\n}\n\nexport type SearchAction =\n | ({type: SearchActionTypes.UPDATE_RESULT} & ISearchResult)\n | {type: SearchActionTypes.SET_PAGINATION; page: number}\n | {type: SearchActionTypes.SET_OFFSET; offset: number}\n | {type: SearchActionTypes.SET_LOADING; loading: boolean}\n | {type: SearchActionTypes.SET_SORT; sort: ISearchSort[]}\n | {type: SearchActionTypes.CANCEL_SORT}\n | {type: SearchActionTypes.SET_ATTRIBUTES; attributes: IAttribute[]}\n | {type: SearchActionTypes.SET_FIELDS; fields: IField[]}\n | {type: SearchActionTypes.SET_FULLTEXT; fullText: string}\n | {type: SearchActionTypes.SET_FILTERS; filters: IFilter[]}\n | {type: SearchActionTypes.SET_VIEW_RELOAD; reload: boolean}\n | {type: SearchActionTypes.SET_VIEW_SYNC; sync: boolean}\n | {type: SearchActionTypes.CHANGE_VIEW; view: IView}\n | {type: SearchActionTypes.SET_DISPLAY; display: IViewDisplay}\n | {type: SearchActionTypes.SET_USER_VIEWS_ORDER; userViewsOrder: string[]}\n | {type: SearchActionTypes.SET_SHARED_VIEWS_ORDER; sharedViewsOrder: string[]}\n | {type: SearchActionTypes.RESET_FILTERS}\n | {type: SearchActionTypes.DISABLE_FILTERS}\n | {type: SearchActionTypes.ENABLE_FILTERS}\n | {type: SearchActionTypes.APPLY_FILTERS}\n | {type: SearchActionTypes.SET_VALUES_VERSIONS; valuesVersions: IValueVersion}\n | {type: SearchActionTypes.TOGGLE_TRANSPARENCY}\n | {type: SearchActionTypes.TOGGLE_SIDEBAR}\n | {type: SearchActionTypes.SET_SIDEBAR; sidebarType: SidebarContentType; visible: boolean}\n | {type: SearchActionTypes.SET_SELECTION; selected: ISelectedRecord[]}\n | {type: SearchActionTypes.TOGGLE_RECORD_SELECTION; record: ISelectedRecord}\n | {type: SearchActionTypes.SELECT_ALL}\n | {type: SearchActionTypes.CLEAR_SELECTION};\n\nexport const initialSearchState: ISearchState = {\n library: null,\n errors: [],\n records: [],\n totalCount: 0,\n loading: false,\n pagination: 20,\n offset: 0,\n attributes: [],\n trees: [],\n fields: [],\n fullText: '',\n filters: [],\n display: {type: ViewTypes.list, size: ViewSizes.MEDIUM},\n view: {current: defaultView, reload: false, sync: true},\n userViewsOrder: [],\n sharedViewsOrder: [],\n valuesVersions: {},\n lang: null,\n sideBar: {\n visible: false,\n type: SidebarContentType.FILTERS,\n },\n selection: {\n selected: [],\n allSelected: false,\n },\n showTransparency: false,\n mode: SearchMode.SEARCH,\n};\n\nconst checkSync = (\n state: ISearchState,\n toCheck: {sort: boolean; filters: boolean; display: boolean; fields: boolean; valuesVersions: boolean},\n): boolean => {\n let isSync = true;\n\n if (toCheck.sort) {\n isSync = JSON.stringify(state.sort) === JSON.stringify(state.view.current?.sort);\n }\n\n if (toCheck.filters) {\n isSync = isSync && JSON.stringify(state.view.current?.filters) === JSON.stringify(state.filters);\n }\n\n if (toCheck.display) {\n isSync =\n isSync &&\n state.display.type === state.view.current?.display?.type &&\n state.display.size === state.view.current?.display?.size;\n }\n\n if (toCheck.fields) {\n const viewFieldsKeys = state.view.current.attributes ?? [];\n\n isSync = isSync && state.fields.map(f => f.id).join('.') === viewFieldsKeys.join('.');\n }\n\n return isSync;\n};\n\nconst searchReducer = (state: ISearchState, action: SearchAction): ISearchState => {\n let isSync = checkSync(state, {\n sort: action.type !== SearchActionTypes.SET_SORT,\n filters: action.type !== SearchActionTypes.SET_FILTERS,\n display: action.type !== SearchActionTypes.SET_DISPLAY,\n fields: action.type !== SearchActionTypes.SET_FIELDS,\n valuesVersions: action.type !== SearchActionTypes.SET_VALUES_VERSIONS,\n });\n\n switch (action.type) {\n case SearchActionTypes.UPDATE_RESULT: {\n return {\n ...state,\n records: action.records ?? state.records,\n totalCount: action.totalCount ?? state.totalCount,\n errors: (action.errors as SearchStateError[]) ?? [],\n loading: false,\n };\n }\n case SearchActionTypes.SET_PAGINATION:\n return {...state, pagination: action.page, loading: true};\n case SearchActionTypes.SET_OFFSET:\n return {...state, offset: action.offset, loading: true};\n case SearchActionTypes.SET_LOADING:\n return {...state, loading: action.loading};\n case SearchActionTypes.SET_SORT:\n isSync = isSync && JSON.stringify(state.view.current.sort) === JSON.stringify(action.sort);\n\n return {...state, sort: action.sort, view: {...state.view, sync: isSync}};\n case SearchActionTypes.CANCEL_SORT:\n const {sort, ...newState} = state;\n\n isSync = isSync && typeof state.view.current.sort === 'undefined';\n\n return {...newState, view: {...state.view, sync: isSync}, loading: true};\n case SearchActionTypes.SET_ATTRIBUTES:\n return {...state, attributes: action.attributes};\n case SearchActionTypes.SET_FIELDS:\n const viewFieldsKeys = state.view.current.attributes ?? [];\n\n isSync = isSync && action.fields.map(f => f.id).join('.') === viewFieldsKeys.join('.');\n\n return {...state, fields: action.fields, view: {...state.view, sync: isSync}, loading: true};\n case SearchActionTypes.SET_FULLTEXT:\n return {...state, fullText: action.fullText};\n case SearchActionTypes.SET_FILTERS:\n isSync = isSync && JSON.stringify(state.view.current.filters) === JSON.stringify(action.filters);\n return {...state, filters: action.filters, view: {...state.view, sync: isSync}};\n case SearchActionTypes.CHANGE_VIEW:\n return {\n ...state,\n view: {\n current: action.view,\n reload: true,\n sync: true,\n },\n fields: getFieldsFromView(action.view, state.library, state.lang),\n filters: action.view.filters,\n sort: action.view.sort,\n display: action.view.display,\n valuesVersions: action.view.valuesVersions,\n };\n case SearchActionTypes.SET_VIEW_RELOAD:\n return {...state, view: {...state.view, reload: action.reload}};\n case SearchActionTypes.SET_VIEW_SYNC:\n return {...state, view: {...state.view, sync: action.sync}};\n case SearchActionTypes.SET_DISPLAY:\n isSync =\n isSync &&\n action.display.type === state.view.current.display.type &&\n action.display.size === state.view.current.display.size;\n return {...state, display: action.display, view: {...state.view, sync: isSync}};\n case SearchActionTypes.SET_USER_VIEWS_ORDER:\n return {...state, userViewsOrder: action.userViewsOrder};\n case SearchActionTypes.SET_SHARED_VIEWS_ORDER:\n return {...state, sharedViewsOrder: action.sharedViewsOrder};\n case SearchActionTypes.RESET_FILTERS:\n return {...state, filters: [], loading: true};\n case SearchActionTypes.DISABLE_FILTERS:\n return {\n ...state,\n filters: state.filters.map(f => ({...f, active: false})),\n loading: true,\n };\n case SearchActionTypes.ENABLE_FILTERS:\n return {\n ...state,\n filters: state.filters.map(f => ({...f, active: true})),\n loading: true,\n };\n case SearchActionTypes.APPLY_FILTERS:\n // Reset pagination when applying filters as this may lead to unexpected behavior\n // if new filters return less results\n return {\n ...state,\n offset: 0,\n loading: true,\n };\n case SearchActionTypes.SET_VALUES_VERSIONS: {\n isSync =\n isSync && JSON.stringify(state.view.current.valuesVersions) === JSON.stringify(action.valuesVersions);\n return {\n ...state,\n view: {...state.view, sync: isSync},\n valuesVersions: {...state.valuesVersions, ...action.valuesVersions},\n };\n }\n case SearchActionTypes.TOGGLE_TRANSPARENCY:\n return {...state, showTransparency: !state.showTransparency};\n case SearchActionTypes.TOGGLE_SIDEBAR:\n return {...state, sideBar: {...state.sideBar, visible: !state.sideBar.visible}};\n case SearchActionTypes.SET_SIDEBAR:\n return {...state, sideBar: {...state.sideBar, type: action.sidebarType, visible: action.visible}};\n case SearchActionTypes.SET_SELECTION:\n return {...state, selection: {...state.selection, selected: action.selected, allSelected: false}};\n case SearchActionTypes.TOGGLE_RECORD_SELECTION:\n const currentlySelected = state.selection.selected.findIndex(s => s.id === action.record.id) > -1;\n\n return {\n ...state,\n selection: {\n ...state.selection,\n selected: currentlySelected\n ? state.selection.selected.filter(s => s.id !== action.record.id)\n : [...state.selection.selected, action.record],\n },\n };\n case SearchActionTypes.SELECT_ALL:\n return {\n ...state,\n selection: {\n selected: [],\n allSelected: true,\n },\n };\n case SearchActionTypes.CLEAR_SELECTION:\n return {\n ...state,\n selection: {\n selected: [],\n allSelected: false,\n },\n };\n default:\n return state;\n }\n};\n\nexport default searchReducer;\n"]}
@@ -1,4 +1,10 @@
1
- export declare const useNotificationsSubscription: () => import("@apollo/client").SubscriptionResult<import("../../../_gqlTypes").NotificationSubscription, import("../../../_gqlTypes").Exact<{
2
- [key: string]: never;
3
- }>>;
1
+ export declare const useNotificationsSubscription: () => {
2
+ restart: () => void;
3
+ loading: boolean;
4
+ data?: import("../../../_gqlTypes").NotificationSubscription;
5
+ error?: import("@apollo/client").ApolloError;
6
+ variables?: import("../../../_gqlTypes").Exact<{
7
+ [key: string]: never;
8
+ }>;
9
+ };
4
10
  export default useNotificationsSubscription;
@@ -162,6 +162,6 @@ export const EditRecord = ({ antdForm, formId, isFormCreationMode, formElementId
162
162
  return saveValues(record, valuesToSave, version, true);
163
163
  };
164
164
  const shouldUseLayoutWithSidebar = state.enableSidebar && state.isOpenSidebar && sidebarContainer === undefined;
165
- return (_jsx(ErrorBoundary, { children: _jsx(EditRecordReducerContext.Provider, { value: { state, dispatch }, children: _jsxs(Container, { "$shouldUseLayoutWithSidebar": shouldUseLayoutWithSidebar, style: containerStyle, children: [_jsx(EditRecordButtons, {}), _jsx(Content, { "$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 })) }), _jsx(EditRecordSidebar, { onMetadataSubmit: _handleMetadataSubmit, sidebarContainer: sidebarContainer })] }) }) }));
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 })) }), _jsx(EditRecordSidebar, { onMetadataSubmit: _handleMetadataSubmit, sidebarContainer: sidebarContainer })] }) }) }));
166
166
  };
167
167
  //# 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;\n enableSidebar?: boolean;\n sidebarContainer?: HTMLElement;\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 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 = state.enableSidebar && state.isOpenSidebar && sidebarContainer === undefined;\n\n return (\n <ErrorBoundary>\n <EditRecordReducerContext.Provider value={{state, dispatch}}>\n <Container $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar} style={containerStyle}>\n <EditRecordButtons />\n <Content $shouldUseLayoutWithSidebar={shouldUseLayoutWithSidebar} $removePadding={removePadding}>\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 <EditRecordSidebar onMetadataSubmit={_handleMetadataSubmit} sidebarContainer={sidebarContainer} />\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 {\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;\n enableSidebar?: boolean;\n sidebarContainer?: HTMLElement;\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 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 = state.enableSidebar && state.isOpenSidebar && sidebarContainer === undefined;\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 <EditRecordSidebar onMetadataSubmit={_handleMetadataSubmit} sidebarContainer={sidebarContainer} />\n </Container>\n </EditRecordReducerContext.Provider>\n </ErrorBoundary>\n );\n};\n"]}
@@ -56,6 +56,10 @@ export type SubmittedValue = ISubmittedValueStandard | ISubmittedValueLink | ISu
56
56
  export type SubmitValueFunc = (values: SubmittedValue[], version: IValueVersion) => Promise<ISubmitMultipleResult>;
57
57
  export type DeleteValueFunc = (value: ValueInput | null, attribute: string) => Promise<IDeleteValueResult>;
58
58
  export type CreateEmptyRecordFunc = (library: string) => Promise<ICreateRecordResult>;
59
+ export type CreateRecordFunc = (library: string, skipActivate?: boolean, data?: {
60
+ values: Array<Omit<IValueToSubmit, 'idValue'>>;
61
+ version: IValueVersion;
62
+ }) => Promise<ICreateRecordResult>;
59
63
  export type DeleteMultipleValuesFunc = (attribute: string, values: RecordProperty[], version: IValueVersion) => Promise<ISubmitMultipleResult>;
60
64
  export type MetadataSubmitValueFunc = (value: RecordProperty, attribute: RecordFormAttributeFragment, metadata: IKeyValue<AnyPrimitive>) => Promise<ISubmitMultipleResult>;
61
65
  export interface ISubmittedValueBase {
@@ -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;AAoGD,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 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;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"]}
@@ -3,10 +3,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  // This file is released under LGPL V3
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { useEffect, useRef, useState } from 'react';
6
- import { KitButton, KitModal, KitSpace, KitTypography } from 'aristid-ds';
6
+ import { KitButton, KitLoader, KitModal, KitSpace, KitTypography } from 'aristid-ds';
7
7
  import styled from 'styled-components';
8
8
  import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
9
- import { usePurgeRecordMutation } from '../../../_gqlTypes';
9
+ import { useCreateRecordMutation, usePurgeRecordMutation } from '../../../_gqlTypes';
10
10
  import { EditRecord } from '../EditRecord';
11
11
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
12
12
  import { faXmark } from '@fortawesome/free-solid-svg-icons';
@@ -14,8 +14,8 @@ import { useGetSubmitButtons } from '../hooks/useGetSubmitButtons';
14
14
  import { useForm } from 'antd/lib/form/Form';
15
15
  import { useCreateCancelConfirm } from '../hooks/useCreateCancelConfirm';
16
16
  import { EDIT_RECORD_MODAL_HEADER_CONTAINER_BUTTONS } from '../constants';
17
- import useExecuteCreateEmptyRecordMutation from '../EditRecordContent/hooks/useCreateEmptyRecordMutation';
18
- import { APICallStatus } from '../EditRecordContent/_types';
17
+ import { useGetInitialRecordValues } from '../EditRecordPage/getInitialRecordValues';
18
+ import { ErrorComponent } from '../EditRecordPage/ErrorComponent';
19
19
  const MODAL_HEIGHT = '80vh';
20
20
  const MODAL_WIDTH = '90vw';
21
21
  const MODAL_MAX_WIDTH = '656px';
@@ -60,29 +60,40 @@ export const EditRecordModal = ({ className, open, record, creationFormId, editi
60
60
  const { t } = useSharedTranslation();
61
61
  const [antdForm] = useForm();
62
62
  const [currentRecord, setCurrentRecord] = useState(record);
63
- const [clickedSubmitButton, setClickedSubmitButton] = useState(null);
64
- const { createEmptyRecord } = useExecuteCreateEmptyRecordMutation();
63
+ const clickedSubmitButton = useRef(null);
64
+ const [createRecord] = useCreateRecordMutation();
65
65
  const [purgeRecordMutation] = usePurgeRecordMutation();
66
66
  const formElementId = useRef(window.crypto.randomUUID());
67
67
  const [isCreation, setIsCreation] = useState(!record);
68
+ const [isReady, setIsReady] = useState(!!record);
69
+ const [isError, setIsError] = useState(false);
68
70
  const [formId, setFormId] = useState(isCreation ? (creationFormId ?? 'creation') : (editionFormId ?? 'edition'));
71
+ const values = useGetInitialRecordValues();
69
72
  const closeButtonLabel = isCreation ? t('global.cancel') : t('global.close');
70
73
  const modalTitle = currentRecord?.label && currentRecord.label.trim() ? currentRecord.label : t('record_edition.new_record');
71
74
  useEffect(() => {
72
75
  const createEmptyRecordFunction = async () => {
73
- const res = await createEmptyRecord(library);
74
- if (res?.status === APICallStatus.ERROR) {
75
- // TODO : call KitNotification error
76
- return null;
76
+ const { data } = await createRecord({
77
+ variables: {
78
+ library,
79
+ skipActivate: true,
80
+ data: { values },
81
+ },
82
+ });
83
+ const recordId = data?.createRecord.record?.id;
84
+ setCurrentRecord(data?.createRecord.record.whoAmI ?? null);
85
+ if (!recordId) {
86
+ setIsError(true);
87
+ return;
77
88
  }
78
- setCurrentRecord(res?.record ?? null);
89
+ setIsReady(true);
79
90
  };
80
91
  if (open && isCreation && !currentRecord) {
81
92
  createEmptyRecordFunction();
82
93
  }
83
94
  }, [open, currentRecord]);
84
95
  const _handleClickSubmit = (button) => {
85
- setClickedSubmitButton(button);
96
+ clickedSubmitButton.current = button;
86
97
  };
87
98
  const _purgeRecordOnCreationCancel = () => purgeRecordMutation({
88
99
  errorPolicy: 'ignore',
@@ -101,13 +112,13 @@ export const EditRecordModal = ({ className, open, record, creationFormId, editi
101
112
  const displayedSubmitButtons = useGetSubmitButtons(submitButtons, formElementId.current, isCreation, _handleClickSubmit);
102
113
  const _handleCreate = (newRecord) => {
103
114
  setCurrentRecord(newRecord);
104
- if (onCreateAndEdit && clickedSubmitButton === 'createAndEdit') {
115
+ if (onCreateAndEdit && clickedSubmitButton.current === 'createAndEdit') {
105
116
  setFormId(editionFormId ?? 'edition');
106
117
  setIsCreation(false);
107
118
  onCreateAndEdit(newRecord);
108
119
  return;
109
120
  }
110
- if (onCreate && clickedSubmitButton === 'create') {
121
+ if (onCreate && clickedSubmitButton.current === 'create') {
111
122
  onCreate(newRecord);
112
123
  return;
113
124
  }
@@ -123,9 +134,9 @@ export const EditRecordModal = ({ className, open, record, creationFormId, editi
123
134
  }
124
135
  return onClose();
125
136
  };
126
- return (_jsx(KitModalStyled, { appElement: document.getElementById('root'), className: className, height: autoHeight ? 'auto' : MODAL_HEIGHT, maxHeight: autoHeight ? MODAL_HEIGHT : undefined, width: MODAL_WIDTH, isOpen: open, close: _handleClose, title: _jsxs(KitSpace, { children: [_jsx(KitTypography.Title, { level: "h2", style: { margin: 0 }, children: modalTitle }), _jsx("div", { id: EDIT_RECORD_MODAL_HEADER_CONTAINER_BUTTONS })] }), footer: _jsx(KitSpace, { children: [
137
+ return (_jsxs(KitModalStyled, { appElement: document.getElementById('root'), className: className, height: autoHeight ? 'auto' : MODAL_HEIGHT, maxHeight: autoHeight ? MODAL_HEIGHT : undefined, width: MODAL_WIDTH, isOpen: open, close: _handleClose, title: _jsxs(KitSpace, { children: [_jsx(KitTypography.Title, { level: "h2", style: { margin: 0 }, children: modalTitle }), _jsx("div", { id: EDIT_RECORD_MODAL_HEADER_CONTAINER_BUTTONS })] }), footer: _jsx(KitSpace, { children: [
127
138
  _jsx(KitButton, { "aria-label": closeButtonLabel, icon: _jsx(FontAwesomeIcon, { icon: faXmark }), onClick: _handleClose, children: closeButtonLabel }, "close"),
128
139
  ...displayedSubmitButtons,
129
- ] }), closeIcon: _jsx(FontAwesomeIcon, { icon: faXmark }), showCloseIcon: true, destroyOnClose: true, children: _jsx(EditRecord, { antdForm: antdForm, isFormCreationMode: isCreation, formId: formId, formElementId: formElementId.current, record: currentRecord, library: library, onCreate: _handleCreate, valuesVersion: valuesVersion, showSidebar: showSidebar, enableSidebar: enableSidebar, withInfoButton: withInfoButton }) }));
140
+ ] }), closeIcon: _jsx(FontAwesomeIcon, { icon: faXmark }), showCloseIcon: true, destroyOnClose: true, children: [isError && _jsx(ErrorComponent, {}), !isReady && _jsx(KitLoader, {}), isReady && (_jsx(EditRecord, { antdForm: antdForm, isFormCreationMode: isCreation, formId: formId, formElementId: formElementId.current, record: currentRecord, library: library, onCreate: _handleCreate, valuesVersion: valuesVersion, showSidebar: showSidebar, enableSidebar: enableSidebar, withInfoButton: withInfoButton }))] }));
130
141
  };
131
142
  //# sourceMappingURL=EditRecordModal.js.map