@leav/ui 1.5.3-ffa07ccb → 1.6.0-239ebf18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Explorer/_queries/useExplorerData.js +19 -7
- package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
- package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js +3 -2
- package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js.map +1 -1
- package/dist/components/Explorer/actions-mass/useExportMassAction.js +3 -2
- package/dist/components/Explorer/actions-mass/useExportMassAction.js.map +1 -1
- package/dist/components/Explorer/list-saved-views/SavedViews.js +5 -3
- package/dist/components/Explorer/list-saved-views/SavedViews.js.map +1 -1
- package/dist/components/Explorer/useSearchInput.js +6 -2
- package/dist/components/Explorer/useSearchInput.js.map +1 -1
- package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js +5 -3
- package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js.map +1 -1
- package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js +3 -2
- package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js.map +1 -1
- package/dist/components/Notifications/hooks/useNotificationSubscription.js +3 -1
- package/dist/components/Notifications/hooks/useNotificationSubscription.js.map +1 -1
- package/dist/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.js +5 -3
- package/dist/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.js.map +1 -1
- package/dist/constants.d.ts +4 -3
- package/dist/constants.js +4 -3
- package/dist/constants.js.map +1 -1
- package/package.json +16 -16
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
import { localizedTranslation } from '@leav/utils';
|
|
5
5
|
import { useEffect, useMemo } from 'react';
|
|
6
6
|
import { useGetRecordUpdatesSubscription, useLang } from '../../../hooks';
|
|
7
|
-
import { useExplorerLibraryDataQuery, useExplorerLinkAttributeQuery, useExplorerLinkDataQuery, } from '../../../_gqlTypes';
|
|
7
|
+
import { useExplorerLibraryDataLazyQuery, useExplorerLibraryDataQuery, useExplorerLinkAttributeQuery, useExplorerLinkDataQuery, } from '../../../_gqlTypes';
|
|
8
8
|
import { prepareFiltersForRequest } from '../../../components/Filters';
|
|
9
|
+
import { AttributeConditionFilter } from '../../../types';
|
|
9
10
|
export const dateValuesSeparator = '\n';
|
|
10
11
|
const _mappingLibrary = (data, libraryId, availableLangs) => {
|
|
11
12
|
const attributes = data.records.list.length
|
|
@@ -118,6 +119,7 @@ export const useExplorerData = ({ entrypoint, libraryId, attributeIds, fulltextS
|
|
|
118
119
|
filters: preparedFilters,
|
|
119
120
|
},
|
|
120
121
|
});
|
|
122
|
+
const [fetchLibraryRecord] = useExplorerLibraryDataLazyQuery();
|
|
121
123
|
const isMultivalue = !!attributeData?.attributes?.list?.[0]?.multiple_values;
|
|
122
124
|
const canEditLinkAttributeValues = !!attributeData?.attributes?.list?.[0]?.permissions?.edit_value;
|
|
123
125
|
const memoizedData = useMemo(() => {
|
|
@@ -133,15 +135,25 @@ export const useExplorerData = ({ entrypoint, libraryId, attributeIds, fulltextS
|
|
|
133
135
|
const { data: updatedData } = useGetRecordUpdatesSubscription({ libraries: [libraryId], records: ids }, !libraryId);
|
|
134
136
|
// TOTO: change to useMemo, and use updatedData to update memoizedData with new Data. Good luck !
|
|
135
137
|
useEffect(() => {
|
|
136
|
-
if (updatedData) {
|
|
138
|
+
if (updatedData && memoizedData) {
|
|
137
139
|
if (isLibrary) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
140
|
+
//fetching updated record will update cache data, and all will be updated automatically
|
|
141
|
+
fetchLibraryRecord({
|
|
142
|
+
variables: {
|
|
143
|
+
libraryId,
|
|
144
|
+
attributeIds,
|
|
145
|
+
filters: [
|
|
146
|
+
{
|
|
147
|
+
field: 'id',
|
|
148
|
+
condition: AttributeConditionFilter.EQUAL,
|
|
149
|
+
value: updatedData.recordUpdate.record.id,
|
|
150
|
+
},
|
|
151
|
+
],
|
|
152
|
+
},
|
|
153
|
+
});
|
|
142
154
|
}
|
|
143
155
|
}
|
|
144
|
-
}, [updatedData]);
|
|
156
|
+
}, [updatedData, memoizedData]);
|
|
145
157
|
return {
|
|
146
158
|
data: memoizedData,
|
|
147
159
|
isMultivalue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExplorerData.js","sourceRoot":"","sources":["../../../../src/components/Explorer/_queries/useExplorerData.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 {localizedTranslation} from '@leav/utils';\nimport {useEffect, useMemo} from 'react';\nimport {useGetRecordUpdatesSubscription, useLang} from '_ui/hooks';\nimport {\n type Entrypoint,\n type IEntrypointLink,\n type IExplorerData,\n type DefaultViewSettings,\n type IEntrypointLibrary,\n} from '../_types';\nimport {\n type ExplorerLibraryDataQuery,\n type ExplorerLinkDataQuery,\n type LinkPropertyLinkValueFragment,\n type SortOrder,\n useExplorerLibraryDataQuery,\n useExplorerLinkAttributeQuery,\n useExplorerLinkDataQuery,\n} from '_ui/_gqlTypes';\nimport {type UIFilter} from '_ui/components/Filters/_types';\nimport {prepareFiltersForRequest} from '_ui/components/Filters';\n\nexport const dateValuesSeparator = '\\n';\n\nconst _mappingLibrary = (\n data: ExplorerLibraryDataQuery,\n libraryId: string,\n availableLangs: string[],\n): IExplorerData => {\n const attributes = data.records.list.length\n ? data.records.list[0].properties.reduce((acc, property) => {\n acc[property.attributeId] = {\n ...property.attributeProperties,\n label: localizedTranslation(property.attributeProperties.label, availableLangs),\n };\n\n return acc;\n }, {})\n : {};\n\n const records = data.records.list.map(({whoAmI, active, permissions, properties}) => ({\n libraryId,\n key: whoAmI.id, // For <KitTable /> only\n itemId: whoAmI.id, // For <KitTable /> only\n active,\n canActivate: permissions.create_record,\n canDelete: permissions.delete_record,\n whoAmI: {\n label: null,\n subLabel: null,\n color: null,\n preview: null,\n ...whoAmI,\n },\n propertiesById: properties.reduce((acc, {attributeId, values}) => ({...acc, [attributeId]: values}), {}),\n }));\n\n return {\n totalCount: data.records.totalCount ?? 0,\n attributes,\n records,\n };\n};\n\nconst _mappingLink = (data: ExplorerLinkDataQuery, libraryId: string, availableLangs: string[]): IExplorerData => {\n const attributes = data.records.list.length\n ? ((data.records.list[0].property[0] as LinkPropertyLinkValueFragment)?.payload?.properties ?? []).reduce(\n (acc, property) => {\n acc[property.attributeId] = {\n ...property.attributeProperties,\n label: localizedTranslation(property.attributeProperties.label, availableLangs),\n };\n\n return acc;\n },\n {},\n )\n : {};\n\n const records =\n (data.records.list.length &&\n data.records.list[0].property\n .map((linkValue: LinkPropertyLinkValueFragment, index: number) => {\n if (!linkValue.payload) {\n return null;\n }\n\n return {\n libraryId,\n // same link id can be duplicated, so we add the index to the key\n key: linkValue.payload.whoAmI.id + index, // For <KitTable /> only\n itemId: linkValue.payload.whoAmI.id, // For <KitTable /> only\n canActivate: true,\n canDelete: true,\n active: true,\n whoAmI: {\n label: null,\n subLabel: null,\n color: null,\n preview: null,\n ...linkValue.payload.whoAmI,\n },\n propertiesById: linkValue.payload.properties.reduce(\n (acc, {attributeId, values}) => ({...acc, [attributeId]: values}),\n {},\n ),\n id_value: linkValue.id_value ?? undefined,\n };\n })\n .filter(Boolean)) ||\n [];\n\n return {\n totalCount: records.length,\n attributes,\n records,\n };\n};\n\nexport const useExplorerData = ({\n entrypoint,\n libraryId,\n attributeIds,\n fulltextSearch,\n sorts,\n pagination,\n filters,\n filtersOperator,\n skip,\n}: {\n entrypoint: Entrypoint;\n libraryId: string;\n attributeIds: string[];\n fulltextSearch: string;\n sorts: Array<{\n field: string;\n order: SortOrder;\n }>;\n pagination: null | {limit: number; offset: number};\n filters: UIFilter[];\n filtersOperator: DefaultViewSettings['filtersOperator'];\n skip: boolean;\n}) => {\n const {lang: availableLangs} = useLang();\n\n const isLibrary = entrypoint.type === 'library';\n const isLink = entrypoint.type === 'link';\n\n const {data: attributeData} = useExplorerLinkAttributeQuery({\n skip: isLibrary,\n variables: {\n id: (entrypoint as IEntrypointLink).linkAttributeId,\n },\n });\n\n const isLinkAttributeAllowed = attributeData?.attributes?.list?.[0]?.permissions?.access_attribute;\n const {\n data: linkData,\n loading: linkLoading,\n refetch: linkRefetch,\n } = useExplorerLinkDataQuery({\n fetchPolicy: 'network-only',\n skip: skip || !isLink || !isLinkAttributeAllowed,\n variables: {\n parentLibraryId: (entrypoint as IEntrypointLink).parentLibraryId,\n parentRecordId: (entrypoint as IEntrypointLink).parentRecordId,\n linkAttributeId: (entrypoint as IEntrypointLink).linkAttributeId,\n attributeIds,\n },\n });\n\n const allowFreeEntry = isLibrary ? (entrypoint as IEntrypointLibrary).allowFreeEntry : undefined;\n const valuesList =\n !isLibrary || (fulltextSearch && allowFreeEntry) ? undefined : (entrypoint as IEntrypointLibrary).valuesList; // Remove values list for free entry values list on search\n const preparedFilters = prepareFiltersForRequest(filters, filtersOperator, valuesList);\n\n const {\n data: libraryData,\n loading: libraryLoading,\n refetch: libraryRefetch,\n } = useExplorerLibraryDataQuery({\n fetchPolicy: 'network-only',\n skip: skip || !isLibrary,\n variables: {\n libraryId,\n attributeIds,\n pagination,\n searchQuery: fulltextSearch,\n multipleSort: sorts,\n filters: preparedFilters,\n },\n });\n\n const isMultivalue = !!attributeData?.attributes?.list?.[0]?.multiple_values;\n const canEditLinkAttributeValues = !!attributeData?.attributes?.list?.[0]?.permissions?.edit_value;\n\n const memoizedData = useMemo(() => {\n if (isLibrary) {\n return libraryData ? _mappingLibrary(libraryData, libraryId, availableLangs) : null;\n }\n\n if (isLink) {\n return linkData ? _mappingLink(linkData, libraryId, availableLangs) : null;\n }\n\n return null;\n }, [libraryData, linkData]);\n\n const ids = memoizedData?.records.map(record => record.itemId);\n const {data: updatedData} = useGetRecordUpdatesSubscription({libraries: [libraryId], records: ids}, !libraryId);\n\n // TOTO: change to useMemo, and use updatedData to update memoizedData with new Data. Good luck !\n useEffect(() => {\n if (updatedData) {\n if (isLibrary) {\n libraryRefetch();\n } else {\n linkRefetch();\n }\n }\n }, [updatedData]);\n\n return {\n data: memoizedData,\n isMultivalue,\n canEditLinkAttributeValues,\n loading: isLibrary ? libraryLoading : linkLoading,\n refetch: isLibrary ? libraryRefetch : linkRefetch,\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"useExplorerData.js","sourceRoot":"","sources":["../../../../src/components/Explorer/_queries/useExplorerData.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,aAAa,CAAC;AACjD,OAAO,EAAC,SAAS,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AACzC,OAAO,EAAC,+BAA+B,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AAQnE,OAAO,EAKH,+BAA+B,EAC/B,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,wBAAwB,EAAC,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAC,wBAAwB,EAAC,MAAM,WAAW,CAAC;AAEnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,eAAe,GAAG,CACpB,IAA8B,EAC9B,SAAiB,EACjB,cAAwB,EACX,EAAE;IACf,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;QACvC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACrD,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG;gBACxB,GAAG,QAAQ,CAAC,mBAAmB;gBAC/B,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC;aAClF,CAAC;YAEF,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC;QACR,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAC,EAAE,EAAE,CAAC,CAAC;QAClF,SAAS;QACT,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,wBAAwB;QACxC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,wBAAwB;QAC3C,MAAM;QACN,WAAW,EAAE,WAAW,CAAC,aAAa;QACtC,SAAS,EAAE,WAAW,CAAC,aAAa;QACpC,MAAM,EAAE;YACJ,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,GAAG,MAAM;SACZ;QACD,cAAc,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAC,WAAW,EAAE,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAC,CAAC,EAAE,EAAE,CAAC;KAC3G,CAAC,CAAC,CAAC;IAEJ,OAAO;QACH,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC;QACxC,UAAU;QACV,OAAO;KACV,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAA2B,EAAE,SAAiB,EAAE,cAAwB,EAAiB,EAAE;IAC7G,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;QACvC,CAAC,CAAC,CAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAmC,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CACnG,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACd,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG;gBACxB,GAAG,QAAQ,CAAC,mBAAmB;gBAC/B,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC;aAClF,CAAC;YAEF,OAAO,GAAG,CAAC;QACf,CAAC,EACD,EAAE,CACL;QACH,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,OAAO,GACT,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ;aACxB,GAAG,CAAC,CAAC,SAAwC,EAAE,KAAa,EAAE,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,OAAO;gBACH,SAAS;gBACT,iEAAiE;gBACjE,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,wBAAwB;gBAClE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,wBAAwB;gBAC7D,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE;oBACJ,KAAK,EAAE,IAAI;oBACX,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,IAAI;oBACb,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM;iBAC9B;gBACD,cAAc,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAC/C,CAAC,GAAG,EAAE,EAAC,WAAW,EAAE,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAC,CAAC,EACjE,EAAE,CACL;gBACD,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,SAAS;aAC5C,CAAC;QACN,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC,CAAC;QACzB,EAAE,CAAC;IAEP,OAAO;QACH,UAAU,EAAE,OAAO,CAAC,MAAM;QAC1B,UAAU;QACV,OAAO;KACV,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC5B,UAAU,EACV,SAAS,EACT,YAAY,EACZ,cAAc,EACd,KAAK,EACL,UAAU,EACV,OAAO,EACP,eAAe,EACf,IAAI,GAcP,EAAE,EAAE;IACD,MAAM,EAAC,IAAI,EAAE,cAAc,EAAC,GAAG,OAAO,EAAE,CAAC;IAEzC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC;IAE1C,MAAM,EAAC,IAAI,EAAE,aAAa,EAAC,GAAG,6BAA6B,CAAC;QACxD,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACP,EAAE,EAAG,UAA8B,CAAC,eAAe;SACtD;KACJ,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,gBAAgB,CAAC;IACnG,MAAM,EACF,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,GACvB,GAAG,wBAAwB,CAAC;QACzB,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,sBAAsB;QAChD,SAAS,EAAE;YACP,eAAe,EAAG,UAA8B,CAAC,eAAe;YAChE,cAAc,EAAG,UAA8B,CAAC,cAAc;YAC9D,eAAe,EAAG,UAA8B,CAAC,eAAe;YAChE,YAAY;SACf;KACJ,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAE,UAAiC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,MAAM,UAAU,GACZ,CAAC,SAAS,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,UAAiC,CAAC,UAAU,CAAC,CAAC,0DAA0D;IAC5K,MAAM,eAAe,GAAG,wBAAwB,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAEvF,MAAM,EACF,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,GAC1B,GAAG,2BAA2B,CAAC;QAC5B,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS;QACxB,SAAS,EAAE;YACP,SAAS;YACT,YAAY;YACZ,UAAU;YACV,WAAW,EAAE,cAAc;YAC3B,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,eAAe;SAC3B;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,kBAAkB,CAAC,GAAG,+BAA+B,EAAE,CAAC;IAE/D,MAAM,YAAY,GAAG,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC;IAC7E,MAAM,0BAA0B,GAAG,CAAC,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC;IAEnG,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE5B,MAAM,GAAG,GAAG,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,EAAC,IAAI,EAAE,WAAW,EAAC,GAAG,+BAA+B,CAAC,EAAC,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAEhH,iGAAiG;IACjG,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YAC9B,IAAI,SAAS,EAAE,CAAC;gBACZ,uFAAuF;gBACvF,kBAAkB,CAAC;oBACf,SAAS,EAAE;wBACP,SAAS;wBACT,YAAY;wBACZ,OAAO,EAAE;4BACL;gCACI,KAAK,EAAE,IAAI;gCACX,SAAS,EAAE,wBAAwB,CAAC,KAAK;gCACzC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;6BAC5C;yBACJ;qBACJ;iBACJ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhC,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,YAAY;QACZ,0BAA0B;QAC1B,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW;QACjD,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW;KACpD,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {localizedTranslation} from '@leav/utils';\nimport {useEffect, useMemo} from 'react';\nimport {useGetRecordUpdatesSubscription, useLang} from '_ui/hooks';\nimport {\n type Entrypoint,\n type IEntrypointLink,\n type IExplorerData,\n type DefaultViewSettings,\n type IEntrypointLibrary,\n} from '../_types';\nimport {\n type ExplorerLibraryDataQuery,\n type ExplorerLinkDataQuery,\n type LinkPropertyLinkValueFragment,\n type SortOrder,\n useExplorerLibraryDataLazyQuery,\n useExplorerLibraryDataQuery,\n useExplorerLinkAttributeQuery,\n useExplorerLinkDataQuery,\n} from '_ui/_gqlTypes';\nimport {type UIFilter} from '_ui/components/Filters/_types';\nimport {prepareFiltersForRequest} from '_ui/components/Filters';\nimport {AttributeConditionFilter} from '_ui/types';\n\nexport const dateValuesSeparator = '\\n';\n\nconst _mappingLibrary = (\n data: ExplorerLibraryDataQuery,\n libraryId: string,\n availableLangs: string[],\n): IExplorerData => {\n const attributes = data.records.list.length\n ? data.records.list[0].properties.reduce((acc, property) => {\n acc[property.attributeId] = {\n ...property.attributeProperties,\n label: localizedTranslation(property.attributeProperties.label, availableLangs),\n };\n\n return acc;\n }, {})\n : {};\n\n const records = data.records.list.map(({whoAmI, active, permissions, properties}) => ({\n libraryId,\n key: whoAmI.id, // For <KitTable /> only\n itemId: whoAmI.id, // For <KitTable /> only\n active,\n canActivate: permissions.create_record,\n canDelete: permissions.delete_record,\n whoAmI: {\n label: null,\n subLabel: null,\n color: null,\n preview: null,\n ...whoAmI,\n },\n propertiesById: properties.reduce((acc, {attributeId, values}) => ({...acc, [attributeId]: values}), {}),\n }));\n\n return {\n totalCount: data.records.totalCount ?? 0,\n attributes,\n records,\n };\n};\n\nconst _mappingLink = (data: ExplorerLinkDataQuery, libraryId: string, availableLangs: string[]): IExplorerData => {\n const attributes = data.records.list.length\n ? ((data.records.list[0].property[0] as LinkPropertyLinkValueFragment)?.payload?.properties ?? []).reduce(\n (acc, property) => {\n acc[property.attributeId] = {\n ...property.attributeProperties,\n label: localizedTranslation(property.attributeProperties.label, availableLangs),\n };\n\n return acc;\n },\n {},\n )\n : {};\n\n const records =\n (data.records.list.length &&\n data.records.list[0].property\n .map((linkValue: LinkPropertyLinkValueFragment, index: number) => {\n if (!linkValue.payload) {\n return null;\n }\n\n return {\n libraryId,\n // same link id can be duplicated, so we add the index to the key\n key: linkValue.payload.whoAmI.id + index, // For <KitTable /> only\n itemId: linkValue.payload.whoAmI.id, // For <KitTable /> only\n canActivate: true,\n canDelete: true,\n active: true,\n whoAmI: {\n label: null,\n subLabel: null,\n color: null,\n preview: null,\n ...linkValue.payload.whoAmI,\n },\n propertiesById: linkValue.payload.properties.reduce(\n (acc, {attributeId, values}) => ({...acc, [attributeId]: values}),\n {},\n ),\n id_value: linkValue.id_value ?? undefined,\n };\n })\n .filter(Boolean)) ||\n [];\n\n return {\n totalCount: records.length,\n attributes,\n records,\n };\n};\n\nexport const useExplorerData = ({\n entrypoint,\n libraryId,\n attributeIds,\n fulltextSearch,\n sorts,\n pagination,\n filters,\n filtersOperator,\n skip,\n}: {\n entrypoint: Entrypoint;\n libraryId: string;\n attributeIds: string[];\n fulltextSearch: string;\n sorts: Array<{\n field: string;\n order: SortOrder;\n }>;\n pagination: null | {limit: number; offset: number};\n filters: UIFilter[];\n filtersOperator: DefaultViewSettings['filtersOperator'];\n skip: boolean;\n}) => {\n const {lang: availableLangs} = useLang();\n\n const isLibrary = entrypoint.type === 'library';\n const isLink = entrypoint.type === 'link';\n\n const {data: attributeData} = useExplorerLinkAttributeQuery({\n skip: isLibrary,\n variables: {\n id: (entrypoint as IEntrypointLink).linkAttributeId,\n },\n });\n\n const isLinkAttributeAllowed = attributeData?.attributes?.list?.[0]?.permissions?.access_attribute;\n const {\n data: linkData,\n loading: linkLoading,\n refetch: linkRefetch,\n } = useExplorerLinkDataQuery({\n fetchPolicy: 'network-only',\n skip: skip || !isLink || !isLinkAttributeAllowed,\n variables: {\n parentLibraryId: (entrypoint as IEntrypointLink).parentLibraryId,\n parentRecordId: (entrypoint as IEntrypointLink).parentRecordId,\n linkAttributeId: (entrypoint as IEntrypointLink).linkAttributeId,\n attributeIds,\n },\n });\n\n const allowFreeEntry = isLibrary ? (entrypoint as IEntrypointLibrary).allowFreeEntry : undefined;\n const valuesList =\n !isLibrary || (fulltextSearch && allowFreeEntry) ? undefined : (entrypoint as IEntrypointLibrary).valuesList; // Remove values list for free entry values list on search\n const preparedFilters = prepareFiltersForRequest(filters, filtersOperator, valuesList);\n\n const {\n data: libraryData,\n loading: libraryLoading,\n refetch: libraryRefetch,\n } = useExplorerLibraryDataQuery({\n fetchPolicy: 'network-only',\n skip: skip || !isLibrary,\n variables: {\n libraryId,\n attributeIds,\n pagination,\n searchQuery: fulltextSearch,\n multipleSort: sorts,\n filters: preparedFilters,\n },\n });\n\n const [fetchLibraryRecord] = useExplorerLibraryDataLazyQuery();\n\n const isMultivalue = !!attributeData?.attributes?.list?.[0]?.multiple_values;\n const canEditLinkAttributeValues = !!attributeData?.attributes?.list?.[0]?.permissions?.edit_value;\n\n const memoizedData = useMemo(() => {\n if (isLibrary) {\n return libraryData ? _mappingLibrary(libraryData, libraryId, availableLangs) : null;\n }\n\n if (isLink) {\n return linkData ? _mappingLink(linkData, libraryId, availableLangs) : null;\n }\n\n return null;\n }, [libraryData, linkData]);\n\n const ids = memoizedData?.records.map(record => record.itemId);\n const {data: updatedData} = useGetRecordUpdatesSubscription({libraries: [libraryId], records: ids}, !libraryId);\n\n // TOTO: change to useMemo, and use updatedData to update memoizedData with new Data. Good luck !\n useEffect(() => {\n if (updatedData && memoizedData) {\n if (isLibrary) {\n //fetching updated record will update cache data, and all will be updated automatically\n fetchLibraryRecord({\n variables: {\n libraryId,\n attributeIds,\n filters: [\n {\n field: 'id',\n condition: AttributeConditionFilter.EQUAL,\n value: updatedData.recordUpdate.record.id,\n },\n ],\n },\n });\n }\n }\n }, [updatedData, memoizedData]);\n\n return {\n data: memoizedData,\n isMultivalue,\n canEditLinkAttributeValues,\n loading: isLibrary ? libraryLoading : linkLoading,\n refetch: isLibrary ? libraryRefetch : linkRefetch,\n };\n};\n"]}
|
|
@@ -12,7 +12,7 @@ import { EditAttributeMassActionModal } from './edit-attribute/EditAttributeMass
|
|
|
12
12
|
import { useListEditableAttributeHook } from './edit-attribute/useListEditableAttributeHook';
|
|
13
13
|
import { useCountValuesOccurrencesHook } from './edit-attribute/useCountValuesOccurrencesHook';
|
|
14
14
|
import { KitAlert, KitNotification } from 'aristid-ds';
|
|
15
|
-
import { ERROR_ALERT_DURATION,
|
|
15
|
+
import { ERROR_ALERT_DURATION, INFO_NOTIFICATION_DURATION } from '../../../constants';
|
|
16
16
|
import { Loading } from '../../../components/Loading';
|
|
17
17
|
export const useEditAttributeMassAction = ({ isEnabled, store: { view }, totalCount, }) => {
|
|
18
18
|
if (!isEnabled) {
|
|
@@ -76,7 +76,8 @@ export const useEditAttributeMassAction = ({ isEnabled, store: { view }, totalCo
|
|
|
76
76
|
description: t('explorer.massAction.editAttribute_submit_notification_description', {
|
|
77
77
|
counter: bulkCounter,
|
|
78
78
|
}),
|
|
79
|
-
duration:
|
|
79
|
+
duration: INFO_NOTIFICATION_DURATION,
|
|
80
|
+
closable: true,
|
|
80
81
|
});
|
|
81
82
|
}
|
|
82
83
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditAttributeMassAction.js","sourceRoot":"","sources":["../../../../src/components/Explorer/actions-mass/useEditAttributeMassAction.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 AttributeDetailsFragment,\n AttributeType,\n type RecordFilterInput,\n useSaveValueBulkMutation,\n} from '_ui/_gqlTypes';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {useEffect, useMemo, useState} from 'react';\nimport {FaEdit} from 'react-icons/fa';\nimport {MASS_SELECTION_ALL} from '../_constants';\nimport {type FeatureHook, type IMassActions} from '../_types';\nimport {type IViewSettingsState} from '../manage-view-settings';\nimport {EditTreeAttributeValuesMapping} from './edit-attribute/EditTreeAttributeValuesMapping';\nimport {EditAttributeMassActionModal} from './edit-attribute/EditAttributeMassActionModal';\nimport {useListEditableAttributeHook} from './edit-attribute/useListEditableAttributeHook';\nimport {useCountValuesOccurrencesHook} from './edit-attribute/useCountValuesOccurrencesHook';\nimport {KitAlert, KitNotification} from 'aristid-ds';\nimport {ERROR_ALERT_DURATION, INFO_NOTIFICATION_DURATION_SECONDS} from '_ui/constants';\nimport {Loading} from '_ui/components/Loading';\n\nexport const useEditAttributeMassAction = ({\n isEnabled,\n store: {view},\n totalCount,\n}: FeatureHook<{\n store: {\n view: IViewSettingsState;\n };\n totalCount: number;\n}>) => {\n if (!isEnabled) {\n return {\n editAttributeMassAction: null,\n editAttributeMassActionModal: null,\n };\n }\n\n const {t} = useSharedTranslation();\n\n const [selectedAttribute, setSelectedAttribute] = useState<AttributeDetailsFragment | undefined>(undefined);\n const [massSelectionFilter, setMassSelectionFilter] = useState<RecordFilterInput[]>([]);\n const [openModal, setOpenModal] = useState<boolean>(false);\n const [editionMapping, setEditionMapping] = useState<Array<{before: string | null; after: string | null}>>([]);\n\n const editableAttributes = useListEditableAttributeHook({libraryId: view.libraryId});\n const valuesOccurrences = useCountValuesOccurrencesHook({\n attributeId: selectedAttribute?.id,\n libraryId: view.libraryId,\n recordFilters: massSelectionFilter,\n });\n\n const [executeSaveValueBulk] = useSaveValueBulkMutation();\n\n useEffect(() => {\n setEditionMapping([]);\n }, [selectedAttribute]);\n\n const _editAttributeMassAction: IMassActions = useMemo(\n () => ({\n label: t('explorer.massAction.editAttribute'),\n icon: <FaEdit />,\n deselectAll: false,\n callback: _massSelectionFilter => {\n setMassSelectionFilter(_massSelectionFilter);\n setEditionMapping([]);\n setOpenModal(true);\n },\n }),\n [t, view.massSelection],\n );\n\n const closeModal = () => {\n setOpenModal(false);\n setMassSelectionFilter([]);\n setSelectedAttribute(undefined);\n setEditionMapping([]);\n };\n\n const isMappingCompleted = useMemo(\n () =>\n valuesOccurrences.noValueCount === 0\n ? editionMapping.length === valuesOccurrences.occurrences.length\n : editionMapping.length === valuesOccurrences.occurrences.length + 1, // for undefined values\n [editionMapping, valuesOccurrences],\n );\n\n const bulkCounter = useMemo(\n () => (view.massSelection === MASS_SELECTION_ALL ? totalCount : view.massSelection.length),\n [view.massSelection, totalCount],\n );\n\n const onOkButtonClick = async () => {\n if (!selectedAttribute || !isMappingCompleted) {\n return;\n }\n try {\n await executeSaveValueBulk({\n variables: {\n libraryId: view.libraryId,\n recordsFilters: massSelectionFilter,\n attributeId: selectedAttribute.id,\n mapValues: editionMapping,\n },\n });\n\n closeModal();\n KitNotification.info({\n message: t('explorer.massAction.editAttribute_submit_notification_title'),\n description: t('explorer.massAction.editAttribute_submit_notification_description', {\n counter: bulkCounter,\n }),\n duration: INFO_NOTIFICATION_DURATION_SECONDS,\n });\n } catch (error) {\n KitAlert.error({\n showIcon: true,\n duration: ERROR_ALERT_DURATION,\n message: t('error.error_occurred'),\n description: t('explorer.massAction.editAttribute_submit_error'),\n closable: true,\n });\n }\n };\n\n if (editableAttributes.length === 0) {\n return {\n editAttributeMassAction: null,\n editAttributeMassActionModal: null,\n };\n }\n\n return {\n editAttributeMassAction: _editAttributeMassAction,\n editAttributeMassActionModal: (\n <EditAttributeMassActionModal\n isOpen={openModal}\n attributes={editableAttributes}\n setSelectedAttribute={setSelectedAttribute}\n massSelectionFilter={massSelectionFilter}\n elementsCount={bulkCounter}\n disableOkButton={!isMappingCompleted}\n onOkButtonClick={onOkButtonClick}\n onCancelButtonClick={closeModal}\n >\n {selectedAttribute != null && valuesOccurrences.loading ? <Loading /> : null}\n {selectedAttribute?.type === AttributeType.tree && (\n <EditTreeAttributeValuesMapping\n selectedAttribute={selectedAttribute}\n valuesOccurrences={valuesOccurrences}\n setAttributeMapping={(before, after) => {\n setEditionMapping(\n editionMapping.filter(mapping => mapping.before !== before).concat([{before, after}]),\n );\n }}\n />\n )}\n </EditAttributeMassActionModal>\n ),\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"useEditAttributeMassAction.js","sourceRoot":"","sources":["../../../../src/components/Explorer/actions-mass/useEditAttributeMassAction.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAEH,aAAa,EAEb,wBAAwB,GAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAC,8BAA8B,EAAC,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAC,4BAA4B,EAAC,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAAC,4BAA4B,EAAC,MAAM,+CAA+C,CAAC;AAC3F,OAAO,EAAC,6BAA6B,EAAC,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAC,QAAQ,EAAE,eAAe,EAAC,MAAM,YAAY,CAAC;AACrD,OAAO,EAAC,oBAAoB,EAAE,0BAA0B,EAAC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAE/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACvC,SAAS,EACT,KAAK,EAAE,EAAC,IAAI,EAAC,EACb,UAAU,GAMZ,EAAE,EAAE;IACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO;YACH,uBAAuB,EAAE,IAAI;YAC7B,4BAA4B,EAAE,IAAI;SACrC,CAAC;IACN,CAAC;IAED,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAuC,SAAS,CAAC,CAAC;IAC5G,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAsB,EAAE,CAAC,CAAC;IACxF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAuD,EAAE,CAAC,CAAC;IAE/G,MAAM,kBAAkB,GAAG,4BAA4B,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC;IACrF,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;QACpD,WAAW,EAAE,iBAAiB,EAAE,EAAE;QAClC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,aAAa,EAAE,mBAAmB;KACrC,CAAC,CAAC;IAEH,MAAM,CAAC,oBAAoB,CAAC,GAAG,wBAAwB,EAAE,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACX,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExB,MAAM,wBAAwB,GAAiB,OAAO,CAClD,GAAG,EAAE,CAAC,CAAC;QACH,KAAK,EAAE,CAAC,CAAC,mCAAmC,CAAC;QAC7C,IAAI,EAAE,KAAC,MAAM,KAAG;QAChB,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,oBAAoB,CAAC,EAAE;YAC7B,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;YAC7C,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;KACJ,CAAC,EACF,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAC1B,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAC3B,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAChC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAC9B,GAAG,EAAE,CACD,iBAAiB,CAAC,YAAY,KAAK,CAAC;QAChC,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,iBAAiB,CAAC,WAAW,CAAC,MAAM;QAChE,CAAC,CAAC,cAAc,CAAC,MAAM,KAAK,iBAAiB,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,uBAAuB;IACrG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CACtC,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAC1F,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CACnC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,iBAAiB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,OAAO;QACX,CAAC;QACD,IAAI,CAAC;YACD,MAAM,oBAAoB,CAAC;gBACvB,SAAS,EAAE;oBACP,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,cAAc,EAAE,mBAAmB;oBACnC,WAAW,EAAE,iBAAiB,CAAC,EAAE;oBACjC,SAAS,EAAE,cAAc;iBAC5B;aACJ,CAAC,CAAC;YAEH,UAAU,EAAE,CAAC;YACb,eAAe,CAAC,IAAI,CAAC;gBACjB,OAAO,EAAE,CAAC,CAAC,6DAA6D,CAAC;gBACzE,WAAW,EAAE,CAAC,CAAC,mEAAmE,EAAE;oBAChF,OAAO,EAAE,WAAW;iBACvB,CAAC;gBACF,QAAQ,EAAE,0BAA0B;gBACpC,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC;gBACX,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,oBAAoB;gBAC9B,OAAO,EAAE,CAAC,CAAC,sBAAsB,CAAC;gBAClC,WAAW,EAAE,CAAC,CAAC,gDAAgD,CAAC;gBAChE,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO;YACH,uBAAuB,EAAE,IAAI;YAC7B,4BAA4B,EAAE,IAAI;SACrC,CAAC;IACN,CAAC;IAED,OAAO;QACH,uBAAuB,EAAE,wBAAwB;QACjD,4BAA4B,EAAE,CAC1B,MAAC,4BAA4B,IACzB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,kBAAkB,EAC9B,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,WAAW,EAC1B,eAAe,EAAE,CAAC,kBAAkB,EACpC,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,UAAU,aAE9B,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAC,OAAO,KAAG,CAAC,CAAC,CAAC,IAAI,EAC3E,iBAAiB,EAAE,IAAI,KAAK,aAAa,CAAC,IAAI,IAAI,CAC/C,KAAC,8BAA8B,IAC3B,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,iBAAiB,EACpC,mBAAmB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBACnC,iBAAiB,CACb,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC,CACxF,CAAC;oBACN,CAAC,GACH,CACL,IAC0B,CAClC;KACJ,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {\n type AttributeDetailsFragment,\n AttributeType,\n type RecordFilterInput,\n useSaveValueBulkMutation,\n} from '_ui/_gqlTypes';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {useEffect, useMemo, useState} from 'react';\nimport {FaEdit} from 'react-icons/fa';\nimport {MASS_SELECTION_ALL} from '../_constants';\nimport {type FeatureHook, type IMassActions} from '../_types';\nimport {type IViewSettingsState} from '../manage-view-settings';\nimport {EditTreeAttributeValuesMapping} from './edit-attribute/EditTreeAttributeValuesMapping';\nimport {EditAttributeMassActionModal} from './edit-attribute/EditAttributeMassActionModal';\nimport {useListEditableAttributeHook} from './edit-attribute/useListEditableAttributeHook';\nimport {useCountValuesOccurrencesHook} from './edit-attribute/useCountValuesOccurrencesHook';\nimport {KitAlert, KitNotification} from 'aristid-ds';\nimport {ERROR_ALERT_DURATION, INFO_NOTIFICATION_DURATION} from '_ui/constants';\nimport {Loading} from '_ui/components/Loading';\n\nexport const useEditAttributeMassAction = ({\n isEnabled,\n store: {view},\n totalCount,\n}: FeatureHook<{\n store: {\n view: IViewSettingsState;\n };\n totalCount: number;\n}>) => {\n if (!isEnabled) {\n return {\n editAttributeMassAction: null,\n editAttributeMassActionModal: null,\n };\n }\n\n const {t} = useSharedTranslation();\n\n const [selectedAttribute, setSelectedAttribute] = useState<AttributeDetailsFragment | undefined>(undefined);\n const [massSelectionFilter, setMassSelectionFilter] = useState<RecordFilterInput[]>([]);\n const [openModal, setOpenModal] = useState<boolean>(false);\n const [editionMapping, setEditionMapping] = useState<Array<{before: string | null; after: string | null}>>([]);\n\n const editableAttributes = useListEditableAttributeHook({libraryId: view.libraryId});\n const valuesOccurrences = useCountValuesOccurrencesHook({\n attributeId: selectedAttribute?.id,\n libraryId: view.libraryId,\n recordFilters: massSelectionFilter,\n });\n\n const [executeSaveValueBulk] = useSaveValueBulkMutation();\n\n useEffect(() => {\n setEditionMapping([]);\n }, [selectedAttribute]);\n\n const _editAttributeMassAction: IMassActions = useMemo(\n () => ({\n label: t('explorer.massAction.editAttribute'),\n icon: <FaEdit />,\n deselectAll: false,\n callback: _massSelectionFilter => {\n setMassSelectionFilter(_massSelectionFilter);\n setEditionMapping([]);\n setOpenModal(true);\n },\n }),\n [t, view.massSelection],\n );\n\n const closeModal = () => {\n setOpenModal(false);\n setMassSelectionFilter([]);\n setSelectedAttribute(undefined);\n setEditionMapping([]);\n };\n\n const isMappingCompleted = useMemo(\n () =>\n valuesOccurrences.noValueCount === 0\n ? editionMapping.length === valuesOccurrences.occurrences.length\n : editionMapping.length === valuesOccurrences.occurrences.length + 1, // for undefined values\n [editionMapping, valuesOccurrences],\n );\n\n const bulkCounter = useMemo(\n () => (view.massSelection === MASS_SELECTION_ALL ? totalCount : view.massSelection.length),\n [view.massSelection, totalCount],\n );\n\n const onOkButtonClick = async () => {\n if (!selectedAttribute || !isMappingCompleted) {\n return;\n }\n try {\n await executeSaveValueBulk({\n variables: {\n libraryId: view.libraryId,\n recordsFilters: massSelectionFilter,\n attributeId: selectedAttribute.id,\n mapValues: editionMapping,\n },\n });\n\n closeModal();\n KitNotification.info({\n message: t('explorer.massAction.editAttribute_submit_notification_title'),\n description: t('explorer.massAction.editAttribute_submit_notification_description', {\n counter: bulkCounter,\n }),\n duration: INFO_NOTIFICATION_DURATION,\n closable: true,\n });\n } catch (error) {\n KitAlert.error({\n showIcon: true,\n duration: ERROR_ALERT_DURATION,\n message: t('error.error_occurred'),\n description: t('explorer.massAction.editAttribute_submit_error'),\n closable: true,\n });\n }\n };\n\n if (editableAttributes.length === 0) {\n return {\n editAttributeMassAction: null,\n editAttributeMassActionModal: null,\n };\n }\n\n return {\n editAttributeMassAction: _editAttributeMassAction,\n editAttributeMassActionModal: (\n <EditAttributeMassActionModal\n isOpen={openModal}\n attributes={editableAttributes}\n setSelectedAttribute={setSelectedAttribute}\n massSelectionFilter={massSelectionFilter}\n elementsCount={bulkCounter}\n disableOkButton={!isMappingCompleted}\n onOkButtonClick={onOkButtonClick}\n onCancelButtonClick={closeModal}\n >\n {selectedAttribute != null && valuesOccurrences.loading ? <Loading /> : null}\n {selectedAttribute?.type === AttributeType.tree && (\n <EditTreeAttributeValuesMapping\n selectedAttribute={selectedAttribute}\n valuesOccurrences={valuesOccurrences}\n setAttributeMapping={(before, after) => {\n setEditionMapping(\n editionMapping.filter(mapping => mapping.before !== before).concat([{before, after}]),\n );\n }}\n />\n )}\n </EditAttributeMassActionModal>\n ),\n };\n};\n"]}
|
|
@@ -8,7 +8,7 @@ import { KitAlert, KitModal, KitNotification } from 'aristid-ds';
|
|
|
8
8
|
import { useExportLazyQuery } from '../../../_gqlTypes';
|
|
9
9
|
import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
|
|
10
10
|
import { BREAK_TWO_LINES, MASS_SELECTION_ALL } from '../_constants';
|
|
11
|
-
import { ERROR_ALERT_DURATION,
|
|
11
|
+
import { ERROR_ALERT_DURATION, INFO_NOTIFICATION_DURATION } from '../../../constants';
|
|
12
12
|
/**
|
|
13
13
|
* Hook that provides a mass action configuration for exporting selected or all items
|
|
14
14
|
* from a view/data set
|
|
@@ -60,7 +60,8 @@ export const useExportMassAction = ({ isEnabled, store: { view, dispatch }, tota
|
|
|
60
60
|
count: total,
|
|
61
61
|
total,
|
|
62
62
|
}),
|
|
63
|
-
duration:
|
|
63
|
+
duration: INFO_NOTIFICATION_DURATION,
|
|
64
|
+
closable: true,
|
|
64
65
|
});
|
|
65
66
|
onExport?.(massSelectionFilter, view.massSelection);
|
|
66
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExportMassAction.js","sourceRoot":"","sources":["../../../../src/components/Explorer/actions-mass/useExportMassAction.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAgB,OAAO,EAAC,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAC,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAGpE,OAAO,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,EAAC,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"useExportMassAction.js","sourceRoot":"","sources":["../../../../src/components/Explorer/actions-mass/useExportMassAction.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type Dispatch, useMemo} from 'react';\nimport {FaFileExport} from 'react-icons/fa';\nimport {KitAlert, KitModal, KitNotification} from 'aristid-ds';\nimport {useExportLazyQuery} from '_ui/_gqlTypes';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type FeatureHook, type IMassActions} from '../_types';\nimport {type IViewSettingsAction, type IViewSettingsState} from '../manage-view-settings';\nimport {BREAK_TWO_LINES, MASS_SELECTION_ALL} from '../_constants';\nimport {ERROR_ALERT_DURATION, INFO_NOTIFICATION_DURATION} from '_ui/constants';\n\n/**\n * Hook that provides a mass action configuration for exporting selected or all items\n * from a view/data set\n */\nexport const useExportMassAction = ({\n isEnabled,\n store: {view, dispatch},\n totalCount,\n onExport,\n}: FeatureHook<{\n store: {\n view: IViewSettingsState;\n dispatch: Dispatch<IViewSettingsAction>;\n };\n totalCount: number;\n onExport?: IMassActions['callback'];\n}>) => {\n const {t} = useSharedTranslation();\n\n const [exportQuery] = useExportLazyQuery();\n\n const _exportMassAction: IMassActions = useMemo(\n () => ({\n label: t('explorer.massAction.export'),\n icon: <FaFileExport />,\n deselectAll: false,\n callback: massSelectionFilter => {\n KitModal.confirm({\n width: '100%',\n style: {content: {width: '90vw', maxWidth: '656px'}},\n icon: false,\n type: 'confirm',\n title:\n t('explorer.export_item', {\n count: view.massSelection === MASS_SELECTION_ALL ? Infinity : view.massSelection.length,\n }) ?? undefined,\n content:\n t('explorer.export_item_description', {\n count: view.massSelection === MASS_SELECTION_ALL ? Infinity : view.massSelection.length,\n }) +\n BREAK_TWO_LINES +\n t('global.are_you_sure'),\n okText: t('global.confirm') ?? undefined,\n cancelText: t('global.cancel') ?? undefined,\n onOk: async () => {\n const total =\n view.massSelection === MASS_SELECTION_ALL ? totalCount : view.massSelection.length;\n try {\n const {error} = await exportQuery({\n fetchPolicy: 'no-cache',\n variables: {\n library: view.libraryId,\n filters: massSelectionFilter,\n profile: 'default', // Set 'default' by default, it'll change when we can select a profile from the UI\n },\n });\n if (error) {\n // Preserve the extensions property which contains the error code\n const graphQLError = error.graphQLErrors?.[0];\n const errorWithExtensions = new Error(error.message);\n (errorWithExtensions as any).extensions = graphQLError?.extensions;\n throw errorWithExtensions;\n }\n\n KitNotification.info({\n message: t('explorer.massAction.export_message'),\n description: t('explorer.massAction.export_description', {\n count: total,\n total,\n }),\n duration: INFO_NOTIFICATION_DURATION,\n closable: true,\n });\n\n onExport?.(massSelectionFilter, view.massSelection);\n } catch (e) {\n if (e.extensions?.code === 'CUSTOM_CONFIG_ERROR') {\n KitAlert.error({\n showIcon: true,\n duration: ERROR_ALERT_DURATION,\n message: t('explorer.massAction.export_config_error_message'),\n description: t('explorer.massAction.export_config_error_description'),\n closable: true,\n });\n } else {\n KitAlert.error({\n showIcon: true,\n duration: ERROR_ALERT_DURATION,\n message: t('explorer.massAction.export_error_message'),\n description: t('explorer.massAction.export_error_description', {count: total}),\n closable: true,\n });\n }\n }\n },\n });\n },\n }),\n [t, exportQuery, view.massSelection, dispatch, view.libraryId],\n );\n\n return {\n exportMassAction: isEnabled ? _exportMassAction : null,\n };\n};\n"]}
|
|
@@ -17,7 +17,7 @@ import { useEditLabelView } from '../manage-view-settings/save-view/useEditLabel
|
|
|
17
17
|
import { IoCopy } from 'react-icons/io5';
|
|
18
18
|
import classNames from 'classnames';
|
|
19
19
|
import { DefaultViewId } from '../manage-view-settings/store-view-settings/viewSettingsInitialState';
|
|
20
|
-
import {
|
|
20
|
+
import { INFO_NOTIFICATION_DURATION } from '../../../constants';
|
|
21
21
|
const ContentWrapperStyledDiv = styled.div `
|
|
22
22
|
display: flex;
|
|
23
23
|
flex-direction: column;
|
|
@@ -96,7 +96,8 @@ export const SavedViews = () => {
|
|
|
96
96
|
KitNotification.info({
|
|
97
97
|
message: `Id : ${viewItem?.id}`,
|
|
98
98
|
description: t('explorer.viewList.copied'),
|
|
99
|
-
duration:
|
|
99
|
+
duration: INFO_NOTIFICATION_DURATION,
|
|
100
|
+
closable: true,
|
|
100
101
|
});
|
|
101
102
|
}, children: _jsx(IoCopy, {}) }))] }), _jsx(StyledIconsDiv, { children: _jsxs(KitSpace, { children: [iconEditLabel(viewItem), iconDelete(viewItem)] }) })] }, viewItem.id)))] }), _jsxs(StyleKitRadioGroup, { onChange: _onClickLoadView, value: currentView?.id, children: [_jsx(KitTypography.Title, { level: "h4", children: t('explorer.viewList.shared-views') }), sharedViews.length === 0 ? (_jsx(KitTypography.Text, { size: "fontSize5", children: t('explorer.viewList.no-shared-views') })) : (sharedViews.map(viewItem => (_jsxs(StyledViewDiv, { className: _selectedViewClass(viewItem.id), children: [_jsxs(KitRadio, { value: viewItem.id, children: [localizedTranslation(viewItem.label, availableLangs), viewItem?.id && (_jsx(StyledCopySpan, { title: `${t('explorer.viewList.copy-id')} : ${viewItem?.id}`, onClick: async (e) => {
|
|
102
103
|
e.preventDefault();
|
|
@@ -105,7 +106,8 @@ export const SavedViews = () => {
|
|
|
105
106
|
KitNotification.info({
|
|
106
107
|
message: `Id : ${viewItem?.id}`,
|
|
107
108
|
description: t('explorer.viewList.copied'),
|
|
108
|
-
duration:
|
|
109
|
+
duration: INFO_NOTIFICATION_DURATION,
|
|
110
|
+
closable: true,
|
|
109
111
|
});
|
|
110
112
|
}, children: _jsx(IoCopy, {}) }))] }), isOwnerView(viewItem.ownerId) ? (_jsx(StyledIconsDiv, { children: _jsxs(KitSpace, { children: [iconEditLabel(viewItem), iconDelete(viewItem)] }) })) : null] }, viewItem.id))))] })] }), _jsx(ViewActionsButtons, {})] })] }));
|
|
111
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SavedViews.js","sourceRoot":"","sources":["../../../../src/components/Explorer/list-saved-views/SavedViews.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useEffect, useState} from 'react';\nimport styled from 'styled-components';\nimport {KitRadio, KitSpace, KitTypography, KitNotification} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {useViewSettingsContext} from '../manage-view-settings/store-view-settings/useViewSettingsContext';\nimport {localizedTranslation} from '@leav/utils';\nimport {useLang} from '_ui/hooks';\nimport {ViewActionsButtons} from '../manage-view-settings/save-view/ViewActionsButtons';\nimport {useLoadView} from '../useLoadView';\nimport {type Radio} from 'antd';\nimport {useMeQuery} from '_ui/_gqlTypes';\nimport {useDeleteView} from '../manage-view-settings/save-view/useDeleteView';\nimport {useEditLabelView} from '../manage-view-settings/save-view/useEditLabelView';\nimport {IoCopy} from 'react-icons/io5';\nimport {type IUserView} from '../_types';\nimport classNames from 'classnames';\nimport {DefaultViewId} from '../manage-view-settings/store-view-settings/viewSettingsInitialState';\nimport {INFO_NOTIFICATION_DURATION_SECONDS} from '_ui/constants';\n\nconst ContentWrapperStyledDiv = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n`;\n\nconst StyledListViewsDiv = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst StyleKitRadioGroup = styled(KitRadio.Group)`\n padding: calc(var(--general-spacing-s) * 1px) 0;\n margin: 0 0 calc(var(--general-spacing-xs) * 1px) 0;\n color: var(--general-utilities-text-primary);\n gap: calc(var(--general-spacing-xs) * 1px);\n`;\n\nconst StyledViewDiv = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: calc(var(--general-spacing-xs) * 1px);\n border-radius: calc(var(--general-border-radius-xs) * 1px);\n\n &.selected,\n &:has(label:hover),\n &:has(svg:hover) {\n background: var(--general-utilities-main-light);\n }\n`;\n\nconst StyledIconsDiv = styled.div`\n .edit,\n .delete {\n font-size: calc(var(--general-typography-fontSize5) * 1px);\n flex: 0 0 auto;\n cursor: pointer;\n display: inline-block;\n }\n\n .edit {\n color: var(--general-utilities-main-default);\n }\n\n .delete {\n color: var(--general-utilities-error-default);\n }\n`;\n\nconst StyledCopySpan = styled.span`\n margin-left: calc(var(--general-spacing-xs) * 1px);\n color: var(--general-colors-neutral-grey-400);\n`;\n\nexport const SavedViews: FunctionComponent = () => {\n const {t} = useSharedTranslation();\n const {availableLangs} = useLang();\n const {view} = useViewSettingsContext();\n const {loadView} = useLoadView();\n const {iconDelete, deleteModal} = useDeleteView();\n const {iconEditLabel, editViewModal} = useEditLabelView();\n\n const [currentView, setCurrentView] = useState<IUserView | undefined>(\n view.savedViews.find(viewItem => view.viewId === viewItem.id) ?? undefined,\n );\n\n const {data: userData} = useMeQuery();\n\n const isOwnerView = (ownerId: string | null) => ownerId === userData?.me?.whoAmI?.id;\n\n const sharedViews = view.savedViews.filter(viewItem => viewItem.shared);\n const myViews = view.savedViews.filter(viewItem => !viewItem.shared);\n\n const _selectedViewClass = (viewId: string | null) =>\n classNames({\n selected: view.viewId === viewId,\n });\n\n useEffect(() => {\n setCurrentView(view.savedViews.find(viewItem => view.viewId === viewItem.id) ?? undefined);\n }, [view.viewId]);\n\n const _onClickLoadView: ComponentProps<typeof Radio>['onChange'] = e => {\n loadView(e.target.value);\n };\n\n return (\n <>\n {editViewModal}\n {deleteModal}\n <ContentWrapperStyledDiv>\n <StyledListViewsDiv>\n <StyleKitRadioGroup onChange={_onClickLoadView} value={currentView?.id}>\n <KitTypography.Title level=\"h4\">{t('explorer.viewList.my-views')}</KitTypography.Title>\n <StyledViewDiv className={_selectedViewClass(DefaultViewId)}>\n <KitRadio value={undefined}>{t('explorer.viewList.default-view')}</KitRadio>\n </StyledViewDiv>\n {myViews.map(viewItem => (\n <StyledViewDiv className={_selectedViewClass(viewItem.id)} key={viewItem.id}>\n <KitRadio value={viewItem.id}>\n {localizedTranslation(viewItem.label, availableLangs)}\n {viewItem?.id && (\n <StyledCopySpan\n title={`${t('explorer.viewList.copy-id')} : ${viewItem?.id}`}\n onClick={async e => {\n e.preventDefault();\n e.stopPropagation();\n await navigator.clipboard.writeText(viewItem.id || '');\n KitNotification.info({\n message: `Id : ${viewItem?.id}`,\n description: t('explorer.viewList.copied'),\n duration: INFO_NOTIFICATION_DURATION_SECONDS,\n });\n }}\n >\n <IoCopy />\n </StyledCopySpan>\n )}\n </KitRadio>\n <StyledIconsDiv>\n <KitSpace>\n {iconEditLabel(viewItem)}\n {iconDelete(viewItem)}\n </KitSpace>\n </StyledIconsDiv>\n </StyledViewDiv>\n ))}\n </StyleKitRadioGroup>\n <StyleKitRadioGroup onChange={_onClickLoadView} value={currentView?.id}>\n <KitTypography.Title level=\"h4\">{t('explorer.viewList.shared-views')}</KitTypography.Title>\n {sharedViews.length === 0 ? (\n <KitTypography.Text size=\"fontSize5\">\n {t('explorer.viewList.no-shared-views')}\n </KitTypography.Text>\n ) : (\n sharedViews.map(viewItem => (\n <StyledViewDiv className={_selectedViewClass(viewItem.id)} key={viewItem.id}>\n <KitRadio value={viewItem.id}>\n {localizedTranslation(viewItem.label, availableLangs)}\n {viewItem?.id && (\n <StyledCopySpan\n title={`${t('explorer.viewList.copy-id')} : ${viewItem?.id}`}\n onClick={async e => {\n e.preventDefault();\n e.stopPropagation();\n await navigator.clipboard.writeText(viewItem.id || '');\n KitNotification.info({\n message: `Id : ${viewItem?.id}`,\n description: t('explorer.viewList.copied'),\n duration: INFO_NOTIFICATION_DURATION_SECONDS,\n });\n }}\n >\n <IoCopy />\n </StyledCopySpan>\n )}\n </KitRadio>\n {isOwnerView(viewItem.ownerId) ? (\n <StyledIconsDiv>\n <KitSpace>\n {iconEditLabel(viewItem)}\n {iconDelete(viewItem)}\n </KitSpace>\n </StyledIconsDiv>\n ) : null}\n </StyledViewDiv>\n ))\n )}\n </StyleKitRadioGroup>\n </StyledListViewsDiv>\n <ViewActionsButtons />\n </ContentWrapperStyledDiv>\n </>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SavedViews.js","sourceRoot":"","sources":["../../../../src/components/Explorer/list-saved-views/SavedViews.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useEffect, useState} from 'react';\nimport styled from 'styled-components';\nimport {KitRadio, KitSpace, KitTypography, KitNotification} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {useViewSettingsContext} from '../manage-view-settings/store-view-settings/useViewSettingsContext';\nimport {localizedTranslation} from '@leav/utils';\nimport {useLang} from '_ui/hooks';\nimport {ViewActionsButtons} from '../manage-view-settings/save-view/ViewActionsButtons';\nimport {useLoadView} from '../useLoadView';\nimport {type Radio} from 'antd';\nimport {useMeQuery} from '_ui/_gqlTypes';\nimport {useDeleteView} from '../manage-view-settings/save-view/useDeleteView';\nimport {useEditLabelView} from '../manage-view-settings/save-view/useEditLabelView';\nimport {IoCopy} from 'react-icons/io5';\nimport {type IUserView} from '../_types';\nimport classNames from 'classnames';\nimport {DefaultViewId} from '../manage-view-settings/store-view-settings/viewSettingsInitialState';\nimport {INFO_NOTIFICATION_DURATION} from '_ui/constants';\n\nconst ContentWrapperStyledDiv = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n`;\n\nconst StyledListViewsDiv = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst StyleKitRadioGroup = styled(KitRadio.Group)`\n padding: calc(var(--general-spacing-s) * 1px) 0;\n margin: 0 0 calc(var(--general-spacing-xs) * 1px) 0;\n color: var(--general-utilities-text-primary);\n gap: calc(var(--general-spacing-xs) * 1px);\n`;\n\nconst StyledViewDiv = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: calc(var(--general-spacing-xs) * 1px);\n border-radius: calc(var(--general-border-radius-xs) * 1px);\n\n &.selected,\n &:has(label:hover),\n &:has(svg:hover) {\n background: var(--general-utilities-main-light);\n }\n`;\n\nconst StyledIconsDiv = styled.div`\n .edit,\n .delete {\n font-size: calc(var(--general-typography-fontSize5) * 1px);\n flex: 0 0 auto;\n cursor: pointer;\n display: inline-block;\n }\n\n .edit {\n color: var(--general-utilities-main-default);\n }\n\n .delete {\n color: var(--general-utilities-error-default);\n }\n`;\n\nconst StyledCopySpan = styled.span`\n margin-left: calc(var(--general-spacing-xs) * 1px);\n color: var(--general-colors-neutral-grey-400);\n`;\n\nexport const SavedViews: FunctionComponent = () => {\n const {t} = useSharedTranslation();\n const {availableLangs} = useLang();\n const {view} = useViewSettingsContext();\n const {loadView} = useLoadView();\n const {iconDelete, deleteModal} = useDeleteView();\n const {iconEditLabel, editViewModal} = useEditLabelView();\n\n const [currentView, setCurrentView] = useState<IUserView | undefined>(\n view.savedViews.find(viewItem => view.viewId === viewItem.id) ?? undefined,\n );\n\n const {data: userData} = useMeQuery();\n\n const isOwnerView = (ownerId: string | null) => ownerId === userData?.me?.whoAmI?.id;\n\n const sharedViews = view.savedViews.filter(viewItem => viewItem.shared);\n const myViews = view.savedViews.filter(viewItem => !viewItem.shared);\n\n const _selectedViewClass = (viewId: string | null) =>\n classNames({\n selected: view.viewId === viewId,\n });\n\n useEffect(() => {\n setCurrentView(view.savedViews.find(viewItem => view.viewId === viewItem.id) ?? undefined);\n }, [view.viewId]);\n\n const _onClickLoadView: ComponentProps<typeof Radio>['onChange'] = e => {\n loadView(e.target.value);\n };\n\n return (\n <>\n {editViewModal}\n {deleteModal}\n <ContentWrapperStyledDiv>\n <StyledListViewsDiv>\n <StyleKitRadioGroup onChange={_onClickLoadView} value={currentView?.id}>\n <KitTypography.Title level=\"h4\">{t('explorer.viewList.my-views')}</KitTypography.Title>\n <StyledViewDiv className={_selectedViewClass(DefaultViewId)}>\n <KitRadio value={undefined}>{t('explorer.viewList.default-view')}</KitRadio>\n </StyledViewDiv>\n {myViews.map(viewItem => (\n <StyledViewDiv className={_selectedViewClass(viewItem.id)} key={viewItem.id}>\n <KitRadio value={viewItem.id}>\n {localizedTranslation(viewItem.label, availableLangs)}\n {viewItem?.id && (\n <StyledCopySpan\n title={`${t('explorer.viewList.copy-id')} : ${viewItem?.id}`}\n onClick={async e => {\n e.preventDefault();\n e.stopPropagation();\n await navigator.clipboard.writeText(viewItem.id || '');\n KitNotification.info({\n message: `Id : ${viewItem?.id}`,\n description: t('explorer.viewList.copied'),\n duration: INFO_NOTIFICATION_DURATION,\n closable: true,\n });\n }}\n >\n <IoCopy />\n </StyledCopySpan>\n )}\n </KitRadio>\n <StyledIconsDiv>\n <KitSpace>\n {iconEditLabel(viewItem)}\n {iconDelete(viewItem)}\n </KitSpace>\n </StyledIconsDiv>\n </StyledViewDiv>\n ))}\n </StyleKitRadioGroup>\n <StyleKitRadioGroup onChange={_onClickLoadView} value={currentView?.id}>\n <KitTypography.Title level=\"h4\">{t('explorer.viewList.shared-views')}</KitTypography.Title>\n {sharedViews.length === 0 ? (\n <KitTypography.Text size=\"fontSize5\">\n {t('explorer.viewList.no-shared-views')}\n </KitTypography.Text>\n ) : (\n sharedViews.map(viewItem => (\n <StyledViewDiv className={_selectedViewClass(viewItem.id)} key={viewItem.id}>\n <KitRadio value={viewItem.id}>\n {localizedTranslation(viewItem.label, availableLangs)}\n {viewItem?.id && (\n <StyledCopySpan\n title={`${t('explorer.viewList.copy-id')} : ${viewItem?.id}`}\n onClick={async e => {\n e.preventDefault();\n e.stopPropagation();\n await navigator.clipboard.writeText(viewItem.id || '');\n KitNotification.info({\n message: `Id : ${viewItem?.id}`,\n description: t('explorer.viewList.copied'),\n duration: INFO_NOTIFICATION_DURATION,\n closable: true,\n });\n }}\n >\n <IoCopy />\n </StyledCopySpan>\n )}\n </KitRadio>\n {isOwnerView(viewItem.ownerId) ? (\n <StyledIconsDiv>\n <KitSpace>\n {iconEditLabel(viewItem)}\n {iconDelete(viewItem)}\n </KitSpace>\n </StyledIconsDiv>\n ) : null}\n </StyledViewDiv>\n ))\n )}\n </StyleKitRadioGroup>\n </StyledListViewsDiv>\n <ViewActionsButtons />\n </ContentWrapperStyledDiv>\n </>\n );\n};\n"]}
|
|
@@ -3,12 +3,16 @@ import { jsx as _jsx } 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 { useSharedTranslation } from '../../hooks/useSharedTranslation';
|
|
6
|
-
import {
|
|
6
|
+
import { KitSearchInput } from 'aristid-ds';
|
|
7
7
|
import { useState } from 'react';
|
|
8
8
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
9
9
|
import { faMagnifyingGlass } from '@fortawesome/free-solid-svg-icons';
|
|
10
10
|
import { ViewSettingsActionTypes, } from './manage-view-settings/store-view-settings/viewSettingsReducer';
|
|
11
11
|
import { MASS_SELECTION_ALL } from './_constants';
|
|
12
|
+
import styled from 'styled-components';
|
|
13
|
+
const SearchInputStyled = styled(KitSearchInput) `
|
|
14
|
+
width: 214px;
|
|
15
|
+
`;
|
|
12
16
|
/**
|
|
13
17
|
* Hook used to handle a full search text in a library
|
|
14
18
|
*
|
|
@@ -37,7 +41,7 @@ export const useSearchInput = ({ view, dispatch, setNewPage, }) => {
|
|
|
37
41
|
setNewPage(1, 0);
|
|
38
42
|
};
|
|
39
43
|
return {
|
|
40
|
-
searchInput: view.entrypoint.type === 'library' ? (_jsx("form", { onSubmit: _handleSubmit, children: _jsx(
|
|
44
|
+
searchInput: view.entrypoint.type === 'library' ? (_jsx("form", { onSubmit: _handleSubmit, children: _jsx(SearchInputStyled, { prefix: _jsx(FontAwesomeIcon, { icon: faMagnifyingGlass }), title: String(t('global.search')), placeholder: String(t('global.search')), value: search ?? '', disabled: view.massSelection === MASS_SELECTION_ALL, onChange: _handleChange, size: "middle", expandable: true }) })) : null,
|
|
41
45
|
};
|
|
42
46
|
};
|
|
43
47
|
//# sourceMappingURL=useSearchInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSearchInput.js","sourceRoot":"","sources":["../../../src/components/Explorer/useSearchInput.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"useSearchInput.js","sourceRoot":"","sources":["../../../src/components/Explorer/useSearchInput.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAyD,QAAQ,EAAC,MAAM,OAAO,CAAC;AACvF,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAGH,uBAAuB,GAC1B,MAAM,gEAAgE,CAAC;AACxE,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAEhD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;;CAE/C,CAAC;AACF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC3B,IAAI,EACJ,QAAQ,EACR,UAAU,GAKb,EAAE,EAAE;IACD,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAS,IAAI,CAAC,cAAc,CAAC,CAAC;IAElE,MAAM,aAAa,GAAsD,CAAC,CAAC,EAAE;QACzE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,SAAS,CAAC,EAAE,CAAC,CAAC;YACd,QAAQ,CAAC,EAAC,IAAI,EAAE,uBAAuB,CAAC,qBAAqB,EAAC,CAAC,CAAC;YAChE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAA+C,CAAC,CAAC,EAAE;QAClE,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAC,IAAI,EAAE,uBAAuB,CAAC,sBAAsB,EAAE,OAAO,EAAE,EAAC,MAAM,EAAC,EAAC,CAAC,CAAC;QACpF,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO;QACH,WAAW,EACP,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CACjC,eAAM,QAAQ,EAAE,aAAa,YACzB,KAAC,iBAAiB,IACd,MAAM,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,iBAAiB,GAAI,EACpD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EACjC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,EACvC,KAAK,EAAE,MAAM,IAAI,EAAE,EACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,KAAK,kBAAkB,EACnD,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAC,QAAQ,EACb,UAAU,SACZ,GACC,CACV,CAAC,CAAC,CAAC,IAAI;KACf,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {KitSearchInput} from 'aristid-ds';\nimport {type ComponentProps, type Dispatch, type DOMAttributes, useState} from 'react';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faMagnifyingGlass} from '@fortawesome/free-solid-svg-icons';\nimport {\n type IViewSettingsAction,\n type IViewSettingsState,\n ViewSettingsActionTypes,\n} from './manage-view-settings/store-view-settings/viewSettingsReducer';\nimport {MASS_SELECTION_ALL} from './_constants';\nimport {type SetNewPage} from './_types';\nimport styled from 'styled-components';\n\nconst SearchInputStyled = styled(KitSearchInput)`\n width: 214px;\n`;\n/**\n * Hook used to handle a full search text in a library\n *\n * > The feature is hidden on a link entrypoint.\n *\n * @param view - represent the current view\n * @param dispatch - method to change the current view\n */\nexport const useSearchInput = ({\n view,\n dispatch,\n setNewPage,\n}: {\n view: IViewSettingsState;\n dispatch: Dispatch<IViewSettingsAction>;\n setNewPage: SetNewPage;\n}) => {\n const {t} = useSharedTranslation();\n const [search, setSearch] = useState<string>(view.fulltextSearch);\n\n const _handleChange: ComponentProps<typeof KitSearchInput>['onChange'] = e => {\n if (!e.target.value) {\n setSearch('');\n dispatch({type: ViewSettingsActionTypes.CLEAR_FULLTEXT_SEARCH});\n setNewPage(1, 0);\n } else {\n setSearch(e.target.value);\n }\n };\n\n const _handleSubmit: DOMAttributes<HTMLFormElement>['onSubmit'] = e => {\n e.preventDefault();\n e.stopPropagation();\n dispatch({type: ViewSettingsActionTypes.CHANGE_FULLTEXT_SEARCH, payload: {search}});\n setNewPage(1, 0);\n };\n\n return {\n searchInput:\n view.entrypoint.type === 'library' ? (\n <form onSubmit={_handleSubmit}>\n <SearchInputStyled\n prefix={<FontAwesomeIcon icon={faMagnifyingGlass} />}\n title={String(t('global.search'))}\n placeholder={String(t('global.search'))}\n value={search ?? ''}\n disabled={view.massSelection === MASS_SELECTION_ALL}\n onChange={_handleChange}\n size=\"middle\"\n expandable\n />\n </form>\n ) : null,\n };\n};\n"]}
|
|
@@ -11,7 +11,7 @@ import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
|
|
|
11
11
|
import { AttributeType, ImportMode, ImportType, } from '../../../_gqlTypes';
|
|
12
12
|
import { ImportReducerActionTypes } from '../importReducer/importReducer';
|
|
13
13
|
import { useImportReducerContext } from '../importReducer/ImportReducerContext';
|
|
14
|
-
import {
|
|
14
|
+
import { ERROR_NOTIFICATION_DURATION } from '../../../constants';
|
|
15
15
|
const defaultType = ImportType.STANDARD;
|
|
16
16
|
const defaultMode = ImportMode.upsert;
|
|
17
17
|
function ImportModalSelectFileStep({ onGetAttributes }) {
|
|
@@ -146,7 +146,8 @@ function ImportModalSelectFileStep({ onGetAttributes }) {
|
|
|
146
146
|
KitNotification.error({
|
|
147
147
|
message: t('error.error_occurred'),
|
|
148
148
|
description: errorMessage,
|
|
149
|
-
duration:
|
|
149
|
+
duration: ERROR_NOTIFICATION_DURATION,
|
|
150
|
+
closable: true,
|
|
150
151
|
});
|
|
151
152
|
}
|
|
152
153
|
};
|
|
@@ -160,7 +161,8 @@ function ImportModalSelectFileStep({ onGetAttributes }) {
|
|
|
160
161
|
KitNotification.error({
|
|
161
162
|
message: t('error.error_occurred'),
|
|
162
163
|
description: reader.error?.message ?? '',
|
|
163
|
-
duration:
|
|
164
|
+
duration: ERROR_NOTIFICATION_DURATION,
|
|
165
|
+
closable: true,
|
|
164
166
|
});
|
|
165
167
|
};
|
|
166
168
|
// Prevent default upload. We'll handle it ourselves later on
|
package/dist/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImportModalSelectFileStep.js","sourceRoot":"","sources":["../../../../src/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.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 {extractArgsFromString} from '@leav/utils';\nimport {message, Space, Spin} from 'antd';\nimport {KitAlert, KitUpload, KitNotification} from 'aristid-ds';\nimport {type IKitDragger} from 'aristid-ds/dist/Kit/DataEntry/Upload/types';\nimport {useState} from 'react';\nimport {read as xlsxRead, utils as xlsxUtils} from 'xlsx';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n type AttributesByLibAttributeFragment,\n type AttributesByLibAttributeLinkAttributeFragment,\n AttributeType,\n ImportMode,\n ImportType,\n} from '_ui/_gqlTypes';\nimport {ImportReducerActionTypes} from '../importReducer/importReducer';\nimport {useImportReducerContext} from '../importReducer/ImportReducerContext';\nimport {type ISheet} from '../_types';\nimport {ERROR_NOTIFICATION_DURATION_SECONDS} from '_ui/constants';\n\ninterface IImportModalSelectFileStepsProps {\n onGetAttributes: (library: string) => Promise<AttributesByLibAttributeFragment[]>;\n}\n\nconst defaultType = ImportType.STANDARD;\nconst defaultMode = ImportMode.upsert;\n\nfunction ImportModalSelectFileStep({onGetAttributes}: IImportModalSelectFileStepsProps): JSX.Element {\n const {t} = useSharedTranslation();\n\n const {state, dispatch} = useImportReducerContext();\n const {file} = state;\n\n const _setFileData = async content => {\n const workbook = xlsxRead(content, {type: 'binary'});\n\n const s: ISheet[] = [];\n\n for (const sheetName in workbook.Sheets) {\n if (workbook.Sheets.hasOwnProperty(sheetName)) {\n // Use the sheet_to_json method to convert excel to json data\n const sheetData: Array<{[col: string]: string}> = xlsxUtils.sheet_to_json(workbook.Sheets[sheetName], {\n blankrows: false,\n defval: null,\n });\n\n // if sheet is empty we skip it\n if (!sheetData.length) {\n continue;\n }\n\n // get columns' name\n const sheetColumns = Object.keys(sheetData[0]);\n\n // match only first line cells (A1, B1, etc.)\n const firstRowAddresses = Object.keys(workbook.Sheets[sheetName]).filter(\n k => !!k.match(/\\b[A-Z]+1\\b/g),\n );\n\n const isMapped = !!workbook.Sheets[sheetName][firstRowAddresses[0]]?.c;\n\n // Mapping is present.\n if (isMapped) {\n const comments: string[] = [];\n\n for (const address of firstRowAddresses) {\n // get first line comments and delete \"\\n\" characters\n comments.push(workbook.Sheets[sheetName][address].c?.[0]?.t?.replace(/\\n/g, ' ') || null);\n }\n\n const params = extractArgsFromString(comments[0]);\n\n const sType = params.type ?? defaultType;\n const sLibrary = params.library;\n const sLinkAttribute = params.linkAttribute;\n const sMode = params.mode ?? defaultMode;\n let sMapping = [];\n const sTreeLinkLibrary = params.treeLinkLibrary;\n let sKeyColumnIndex: number;\n let sKeyToColumnIndex: number;\n\n let sKeyToAttributes: AttributesByLibAttributeFragment[] = [];\n\n const attributes = await onGetAttributes(sLibrary);\n\n // Extract mapping, keyIndex and keyToIndex from all columns comments\n for (const [index, comm] of comments.entries()) {\n const commArgs = extractArgsFromString(comm);\n sMapping.push(String(commArgs.id) ?? null);\n\n if (commArgs.key) {\n sKeyColumnIndex = index;\n }\n\n if (commArgs.keyTo) {\n sKeyToColumnIndex = index;\n }\n }\n\n const linkAttributeProps =\n sKeyToColumnIndex && sLinkAttribute\n ? (attributes.find(\n a => a.id === sLinkAttribute,\n ) as AttributesByLibAttributeLinkAttributeFragment)\n : null;\n\n if (linkAttributeProps && (linkAttributeProps.type !== AttributeType.tree || sTreeLinkLibrary)) {\n const keyToLibrary =\n linkAttributeProps.type === AttributeType.tree\n ? sTreeLinkLibrary\n : linkAttributeProps?.linked_library?.id;\n sKeyToAttributes = await onGetAttributes(keyToLibrary);\n }\n\n // Check if all mapping attributes actually exist\n sMapping = sMapping.map((mappingAttribute, index) => {\n const attributesToCheck = index === sKeyToColumnIndex ? sKeyToAttributes : attributes;\n return attributesToCheck.find(attribute => attribute.id === mappingAttribute)\n ? mappingAttribute\n : null;\n });\n\n s.push({\n name: sheetName,\n attributes,\n columns: sheetColumns,\n type: ImportType[sType],\n mode: ImportMode[sMode],\n library: sLibrary,\n linkAttribute: sLinkAttribute,\n linkAttributeProps,\n keyColumnIndex: sKeyColumnIndex,\n keyToColumnIndex: sKeyToColumnIndex,\n keyToAttributes: sKeyToAttributes,\n treeLinkLibrary: sTreeLinkLibrary,\n data: sheetData.length ? sheetData : null,\n mapping: sMapping,\n });\n } else {\n const sLibrary = state.defaultLibrary;\n const attributes = await onGetAttributes(sLibrary);\n\n s.push({\n name: sheetName,\n library: sLibrary,\n columns: sheetColumns,\n type: defaultType,\n mode: defaultMode,\n attributes,\n mapping: [],\n data: sheetData.length ? sheetData : null,\n });\n }\n }\n }\n\n if (!s.length || s.every(sheet => sheet.data === null)) {\n message.error(t('import.empty_file'));\n return false;\n }\n\n dispatch({type: ImportReducerActionTypes.SET_SHEETS, sheets: s});\n\n return true;\n };\n\n const [loading, setLoading] = useState(false);\n\n const draggerProps: IKitDragger = {\n name: 'file',\n multiple: false,\n accept: '.xlsx',\n description: t('import.file_selection_restriction', {allowedFormat: '.xlsx'}),\n title: file?.name ?? t('import.file_selection_instruction'),\n beforeUpload: fileToImport => {\n // Read file to read mapping and display a preview on next step\n const reader = new FileReader();\n reader.readAsBinaryString(fileToImport);\n\n reader.onload = async e => {\n try {\n const res = await _setFileData(reader.result);\n\n if (res) {\n dispatch({type: ImportReducerActionTypes.SET_FILE, file: fileToImport});\n }\n dispatch({type: ImportReducerActionTypes.SET_OK_BTN, okBtn: res});\n } catch (error) {\n const errorMessage = error?.message ?? t('error.error_occurred');\n KitNotification.error({\n message: t('error.error_occurred'),\n description: errorMessage,\n duration: ERROR_NOTIFICATION_DURATION_SECONDS,\n });\n }\n };\n\n reader.onloadstart = e => {\n setLoading(true);\n };\n\n reader.onloadend = e => {\n setLoading(false);\n };\n\n reader.onerror = e => {\n KitNotification.error({\n message: t('error.error_occurred'),\n description: reader.error?.message ?? '',\n duration: ERROR_NOTIFICATION_DURATION_SECONDS,\n });\n };\n\n // Prevent default upload. We'll handle it ourselves later on\n return false;\n },\n };\n\n return (\n <Space direction=\"vertical\" style={{width: '100%'}}>\n <Spin spinning={loading}>\n <KitUpload.Dragger {...draggerProps} />\n </Spin>\n <KitAlert message={t('import.first_line_info')} type=\"info\" showIcon />\n </Space>\n );\n}\n\nexport default ImportModalSelectFileStep;\n"]}
|
|
1
|
+
{"version":3,"file":"ImportModalSelectFileStep.js","sourceRoot":"","sources":["../../../../src/components/ImportModal/ImportModalSelectFileStep/ImportModalSelectFileStep.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 {extractArgsFromString} from '@leav/utils';\nimport {message, Space, Spin} from 'antd';\nimport {KitAlert, KitUpload, KitNotification} from 'aristid-ds';\nimport {type IKitDragger} from 'aristid-ds/dist/Kit/DataEntry/Upload/types';\nimport {useState} from 'react';\nimport {read as xlsxRead, utils as xlsxUtils} from 'xlsx';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n type AttributesByLibAttributeFragment,\n type AttributesByLibAttributeLinkAttributeFragment,\n AttributeType,\n ImportMode,\n ImportType,\n} from '_ui/_gqlTypes';\nimport {ImportReducerActionTypes} from '../importReducer/importReducer';\nimport {useImportReducerContext} from '../importReducer/ImportReducerContext';\nimport {type ISheet} from '../_types';\nimport {ERROR_NOTIFICATION_DURATION} from '_ui/constants';\n\ninterface IImportModalSelectFileStepsProps {\n onGetAttributes: (library: string) => Promise<AttributesByLibAttributeFragment[]>;\n}\n\nconst defaultType = ImportType.STANDARD;\nconst defaultMode = ImportMode.upsert;\n\nfunction ImportModalSelectFileStep({onGetAttributes}: IImportModalSelectFileStepsProps): JSX.Element {\n const {t} = useSharedTranslation();\n\n const {state, dispatch} = useImportReducerContext();\n const {file} = state;\n\n const _setFileData = async content => {\n const workbook = xlsxRead(content, {type: 'binary'});\n\n const s: ISheet[] = [];\n\n for (const sheetName in workbook.Sheets) {\n if (workbook.Sheets.hasOwnProperty(sheetName)) {\n // Use the sheet_to_json method to convert excel to json data\n const sheetData: Array<{[col: string]: string}> = xlsxUtils.sheet_to_json(workbook.Sheets[sheetName], {\n blankrows: false,\n defval: null,\n });\n\n // if sheet is empty we skip it\n if (!sheetData.length) {\n continue;\n }\n\n // get columns' name\n const sheetColumns = Object.keys(sheetData[0]);\n\n // match only first line cells (A1, B1, etc.)\n const firstRowAddresses = Object.keys(workbook.Sheets[sheetName]).filter(\n k => !!k.match(/\\b[A-Z]+1\\b/g),\n );\n\n const isMapped = !!workbook.Sheets[sheetName][firstRowAddresses[0]]?.c;\n\n // Mapping is present.\n if (isMapped) {\n const comments: string[] = [];\n\n for (const address of firstRowAddresses) {\n // get first line comments and delete \"\\n\" characters\n comments.push(workbook.Sheets[sheetName][address].c?.[0]?.t?.replace(/\\n/g, ' ') || null);\n }\n\n const params = extractArgsFromString(comments[0]);\n\n const sType = params.type ?? defaultType;\n const sLibrary = params.library;\n const sLinkAttribute = params.linkAttribute;\n const sMode = params.mode ?? defaultMode;\n let sMapping = [];\n const sTreeLinkLibrary = params.treeLinkLibrary;\n let sKeyColumnIndex: number;\n let sKeyToColumnIndex: number;\n\n let sKeyToAttributes: AttributesByLibAttributeFragment[] = [];\n\n const attributes = await onGetAttributes(sLibrary);\n\n // Extract mapping, keyIndex and keyToIndex from all columns comments\n for (const [index, comm] of comments.entries()) {\n const commArgs = extractArgsFromString(comm);\n sMapping.push(String(commArgs.id) ?? null);\n\n if (commArgs.key) {\n sKeyColumnIndex = index;\n }\n\n if (commArgs.keyTo) {\n sKeyToColumnIndex = index;\n }\n }\n\n const linkAttributeProps =\n sKeyToColumnIndex && sLinkAttribute\n ? (attributes.find(\n a => a.id === sLinkAttribute,\n ) as AttributesByLibAttributeLinkAttributeFragment)\n : null;\n\n if (linkAttributeProps && (linkAttributeProps.type !== AttributeType.tree || sTreeLinkLibrary)) {\n const keyToLibrary =\n linkAttributeProps.type === AttributeType.tree\n ? sTreeLinkLibrary\n : linkAttributeProps?.linked_library?.id;\n sKeyToAttributes = await onGetAttributes(keyToLibrary);\n }\n\n // Check if all mapping attributes actually exist\n sMapping = sMapping.map((mappingAttribute, index) => {\n const attributesToCheck = index === sKeyToColumnIndex ? sKeyToAttributes : attributes;\n return attributesToCheck.find(attribute => attribute.id === mappingAttribute)\n ? mappingAttribute\n : null;\n });\n\n s.push({\n name: sheetName,\n attributes,\n columns: sheetColumns,\n type: ImportType[sType],\n mode: ImportMode[sMode],\n library: sLibrary,\n linkAttribute: sLinkAttribute,\n linkAttributeProps,\n keyColumnIndex: sKeyColumnIndex,\n keyToColumnIndex: sKeyToColumnIndex,\n keyToAttributes: sKeyToAttributes,\n treeLinkLibrary: sTreeLinkLibrary,\n data: sheetData.length ? sheetData : null,\n mapping: sMapping,\n });\n } else {\n const sLibrary = state.defaultLibrary;\n const attributes = await onGetAttributes(sLibrary);\n\n s.push({\n name: sheetName,\n library: sLibrary,\n columns: sheetColumns,\n type: defaultType,\n mode: defaultMode,\n attributes,\n mapping: [],\n data: sheetData.length ? sheetData : null,\n });\n }\n }\n }\n\n if (!s.length || s.every(sheet => sheet.data === null)) {\n message.error(t('import.empty_file'));\n return false;\n }\n\n dispatch({type: ImportReducerActionTypes.SET_SHEETS, sheets: s});\n\n return true;\n };\n\n const [loading, setLoading] = useState(false);\n\n const draggerProps: IKitDragger = {\n name: 'file',\n multiple: false,\n accept: '.xlsx',\n description: t('import.file_selection_restriction', {allowedFormat: '.xlsx'}),\n title: file?.name ?? t('import.file_selection_instruction'),\n beforeUpload: fileToImport => {\n // Read file to read mapping and display a preview on next step\n const reader = new FileReader();\n reader.readAsBinaryString(fileToImport);\n\n reader.onload = async e => {\n try {\n const res = await _setFileData(reader.result);\n\n if (res) {\n dispatch({type: ImportReducerActionTypes.SET_FILE, file: fileToImport});\n }\n dispatch({type: ImportReducerActionTypes.SET_OK_BTN, okBtn: res});\n } catch (error) {\n const errorMessage = error?.message ?? t('error.error_occurred');\n KitNotification.error({\n message: t('error.error_occurred'),\n description: errorMessage,\n duration: ERROR_NOTIFICATION_DURATION,\n closable: true,\n });\n }\n };\n\n reader.onloadstart = e => {\n setLoading(true);\n };\n\n reader.onloadend = e => {\n setLoading(false);\n };\n\n reader.onerror = e => {\n KitNotification.error({\n message: t('error.error_occurred'),\n description: reader.error?.message ?? '',\n duration: ERROR_NOTIFICATION_DURATION,\n closable: true,\n });\n };\n\n // Prevent default upload. We'll handle it ourselves later on\n return false;\n },\n };\n\n return (\n <Space direction=\"vertical\" style={{width: '100%'}}>\n <Spin spinning={loading}>\n <KitUpload.Dragger {...draggerProps} />\n </Spin>\n <KitAlert message={t('import.first_line_info')} type=\"info\" showIcon />\n </Space>\n );\n}\n\nexport default ImportModalSelectFileStep;\n"]}
|
|
@@ -25,7 +25,7 @@ import MenuItemListSelected from '../MenuItemListSelected';
|
|
|
25
25
|
import Sidebar from '../Sidebar';
|
|
26
26
|
import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
|
|
27
27
|
import { KitNotification } from 'aristid-ds';
|
|
28
|
-
import {
|
|
28
|
+
import { SUCCESS_NOTIFICATION_DURATION } from '../../../constants';
|
|
29
29
|
const MenuWrapper = styled.div `
|
|
30
30
|
border-bottom: 1px solid rgb(235, 237, 240);
|
|
31
31
|
padding: 0 1rem;
|
|
@@ -189,7 +189,8 @@ const LibraryItemsListContent = ({ selectionMode, library, defaultView, showTran
|
|
|
189
189
|
KitNotification.success({
|
|
190
190
|
message: t('items_list.created_in_success.message'),
|
|
191
191
|
description: '',
|
|
192
|
-
duration:
|
|
192
|
+
duration: SUCCESS_NOTIFICATION_DURATION,
|
|
193
|
+
closable: true,
|
|
193
194
|
});
|
|
194
195
|
};
|
|
195
196
|
// If some elements are selected and the selection type is search, show the selection Menu
|
package/dist/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LibraryItemsListContent.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ApolloQueryResult, useQuery} from '@apollo/client';\nimport {type FunctionComponent, useEffect, useMemo, useReducer} from 'react';\nimport styled, {type CSSObject} from 'styled-components';\nimport {Loading} from '_ui/components';\nimport {SearchContext} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchContext';\nimport searchReducer, {\n initialSearchState,\n SearchActionTypes,\n} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport {type ISearchRecord} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/_types';\nimport {useGetRecordUpdatesSubscription, useLang} from '_ui/hooks';\nimport {type IField, type IFilter, type ISearchSelection, SearchMode} from '_ui/types/search';\nimport {type IView} from '_ui/types/views';\nimport {useSaveUserDataMutation} from '_ui/_gqlTypes';\nimport {type ILibraryDetailExtended} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\nimport {\n getRecordsFromLibraryQuery,\n type IGetRecordsFromLibraryQuery,\n type IGetRecordsFromLibraryQueryVariables,\n} from '_ui/_queries/records/getRecordsFromLibraryQuery';\nimport {objectValueVersionToArray} from '_ui/_utils';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {getSelectedViewKey} from '../constants';\nimport DisplayTypeSelector from '../DisplayTypeSelector';\nimport extractAttributesFromLibrary from '../helpers/extractAttributesFromLibrary';\nimport getFieldFromKey from '../helpers/getFieldFromKey';\nimport LibraryItemsListEmpty from '../LibraryItemsListEmpty';\nimport {manageItems} from '../manageItems';\nimport MenuItemList from '../MenuItemList';\nimport MenuItemListSelected from '../MenuItemListSelected';\nimport Sidebar from '../Sidebar';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {KitNotification} from 'aristid-ds';\nimport {SUCCESS_NOTIFICATION_DURATION_SECONDS} from '_ui/constants';\n\nconst MenuWrapper = styled.div`\n border-bottom: 1px solid rgb(235, 237, 240);\n padding: 0 1rem;\n height: 4rem;\n\n display: flex;\n align-content: center;\n justify-content: space-around;\n`;\n\ninterface IWrapperProps {\n $showSide: boolean;\n style?: CSSObject;\n}\n\nconst panelSize = '22.5rem';\nconst Wrapper = styled.div<IWrapperProps>`\n display: grid;\n\n ${({$showSide}) =>\n $showSide\n ? `\n grid-template-columns: ${panelSize} calc(100% - ${panelSize});\n grid-template-rows: 92% auto;\n grid-template-areas:\n 'side data'\n 'side pagination';`\n : `\n grid-template-columns: auto;\n grid-template-rows: 92% auto;\n grid-template-areas:\n 'data'\n 'pagination';`}\n\n height: calc(100vh - 7rem);\n position: relative;\n overflow: auto;\n`;\n\ninterface ILibraryItemsListContentProps {\n library: ILibraryDetailExtended;\n defaultView: IView;\n selectionMode?: boolean;\n style?: CSSObject;\n showTransparency?: boolean;\n mode?: SearchMode;\n onSelectChange?: (selection: ISearchSelection, filters?: IFilter[]) => void;\n}\n\nconst LibraryItemsListContent: FunctionComponent<ILibraryItemsListContentProps> = ({\n selectionMode,\n library,\n defaultView,\n showTransparency,\n onSelectChange,\n style,\n}) => {\n const {lang} = useLang();\n const {t} = useSharedTranslation();\n\n const defaultAttributes = extractAttributesFromLibrary(library);\n\n const _getFieldsFromView = (view: IView): IField[] =>\n (view.attributes ?? []).reduce((acc, fieldKey) => {\n const field = getFieldFromKey(fieldKey, library, defaultAttributes, lang);\n return field ? [...acc, field] : acc;\n }, []);\n\n const [searchState, searchDispatch] = useReducer(searchReducer, {\n ...initialSearchState,\n library,\n loading: true,\n attributes: defaultAttributes,\n trees: library.linkedTrees,\n fields: _getFieldsFromView(defaultView),\n filters: defaultView.filters,\n sort: defaultView.sort,\n display: defaultView.display,\n view: {\n current: defaultView,\n reload: false,\n sync: true,\n },\n lang,\n valuesVersions: defaultView.valuesVersions,\n showTransparency,\n mode: selectionMode ? SearchMode.SELECT : SearchMode.SEARCH,\n });\n\n useGetRecordUpdatesSubscription({libraries: [library.id]});\n\n const [updateSelectedViewMutation] = useSaveUserDataMutation();\n const selectedViewKey = getSelectedViewKey(library.id);\n\n const _applyResults = (result: ApolloQueryResult<IGetRecordsFromLibraryQuery>) => {\n const itemsFromQuery = result?.data?.records?.list ?? [];\n\n const newRecords: ISearchRecord[] = manageItems({\n items: itemsFromQuery,\n fields: searchState.fields,\n });\n\n searchDispatch({\n type: SearchActionTypes.UPDATE_RESULT,\n records: newRecords,\n errors: result?.errors,\n totalCount: result?.data?.records?.totalCount ?? searchState.totalCount,\n });\n };\n\n const _getVersionForRequest = () =>\n searchState.valuesVersions\n ? objectValueVersionToArray(searchState.valuesVersions).filter(v => !!v.treeNodeId)\n : [];\n\n // We're using a useMemo here to prevent query being fired on every change of searchState.\n // Subsequent search will be triggered on user request and are handled elsewhere.\n // We were previously using the skip property of useQuery but it was causing issues with data update\n const variables = useMemo(\n () => ({\n library: library.id,\n limit: searchState.pagination,\n offset: searchState.offset,\n filters: getRequestFromFilters(searchState.filters),\n sort: searchState.sort?.[0] ?? null,\n fullText: searchState.fullText,\n version: _getVersionForRequest(),\n }),\n [],\n );\n\n const getRecordsQueryResult = useQuery<IGetRecordsFromLibraryQuery, IGetRecordsFromLibraryQueryVariables>(\n getRecordsFromLibraryQuery(searchState.fields, !searchState.offset),\n {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n variables,\n },\n );\n const {\n loading: getRecordsLoading,\n data: searchData,\n error: searchError,\n called: searchCalled,\n fetchMore: getRecordsFetchMore,\n } = getRecordsQueryResult;\n\n const _fetchRecords = async () => {\n const queryFilters = getRequestFromFilters(searchState.filters);\n\n const currentVariables = {\n library: library.id,\n limit: searchState.pagination,\n offset: searchState.offset,\n filters: queryFilters,\n sort: searchState.sort?.[0] ?? null,\n fullText: searchState.fullText,\n version: _getVersionForRequest(),\n };\n\n // Records have already been fetched, we use fetchMore to make sure\n // we request the right fields by passing in a whole new query\n const results = await getRecordsFetchMore({\n query: getRecordsFromLibraryQuery(searchState.fields, !searchState.offset),\n variables: currentVariables,\n //@ts-expect-error errorPolicy is applied at runtime even though it's not in the types\n errorPolicy: 'all',\n });\n\n // We have to call applyResults here because onCompleted is not called when fetchMore is used\n _applyResults(results);\n };\n\n const isLoading = getRecordsLoading || searchState.view.reload || searchState.loading;\n\n useEffect(() => {\n if (searchData || searchError) {\n _applyResults(getRecordsQueryResult);\n }\n }, [searchData, searchError]);\n\n useEffect(() => {\n if (searchState.loading && searchCalled) {\n _fetchRecords();\n }\n }, [searchState.loading]);\n\n /**\n * Called when current view changes. In charge of refetching record and saving last used view\n */\n useEffect(() => {\n if (!searchState.view.reload) {\n return;\n }\n\n _fetchRecords();\n\n updateSelectedViewMutation({\n variables: {\n key: selectedViewKey,\n value: searchState.view.current.id,\n global: false,\n },\n });\n searchDispatch({type: SearchActionTypes.SET_VIEW_RELOAD, reload: false});\n }, [selectedViewKey, updateSelectedViewMutation, searchState.view, searchState.fields, searchDispatch, library]);\n\n /**\n * Calls onSelectChange when selection changes\n */\n useEffect(() => {\n if (!onSelectChange) {\n return;\n }\n\n onSelectChange(searchState.selection, searchState.selection.allSelected ? searchState.filters : null);\n }, [searchState.selection]);\n\n const _reload = () => {\n searchDispatch({type: SearchActionTypes.SET_LOADING, loading: true});\n };\n\n const _notifyNewCreation = () => {\n _reload();\n KitNotification.success({\n message: t('items_list.created_in_success.message'),\n description: '',\n duration: SUCCESS_NOTIFICATION_DURATION_SECONDS,\n });\n };\n\n // If some elements are selected and the selection type is search, show the selection Menu\n const menuSelectedActive = !!searchState.selection.selected.length || searchState.selection.allSelected;\n\n return (\n <SearchContext.Provider value={{state: searchState, dispatch: searchDispatch}}>\n <MenuWrapper>\n <MenuItemList refetch={_reload} notifyNewCreation={_notifyNewCreation} library={library} />\n <MenuItemListSelected active={menuSelectedActive} />\n </MenuWrapper>\n\n <Wrapper\n $showSide={searchState.sideBar.visible}\n className={searchState.sideBar.visible ? 'wrapper-open' : 'wrapper-close'}\n style={style}\n >\n <Sidebar />\n {isLoading && <Loading />}\n {!isLoading &&\n (!searchState.records.length ? (\n <LibraryItemsListEmpty notifyNewCreation={_notifyNewCreation} />\n ) : (\n <DisplayTypeSelector />\n ))}\n </Wrapper>\n </SearchContext.Provider>\n );\n};\n\nexport default LibraryItemsListContent;\n"]}
|
|
1
|
+
{"version":3,"file":"LibraryItemsListContent.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/LibraryItemsListContent/LibraryItemsListContent.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ApolloQueryResult, useQuery} from '@apollo/client';\nimport {type FunctionComponent, useEffect, useMemo, useReducer} from 'react';\nimport styled, {type CSSObject} from 'styled-components';\nimport {Loading} from '_ui/components';\nimport {SearchContext} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchContext';\nimport searchReducer, {\n initialSearchState,\n SearchActionTypes,\n} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport {type ISearchRecord} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/_types';\nimport {useGetRecordUpdatesSubscription, useLang} from '_ui/hooks';\nimport {type IField, type IFilter, type ISearchSelection, SearchMode} from '_ui/types/search';\nimport {type IView} from '_ui/types/views';\nimport {useSaveUserDataMutation} from '_ui/_gqlTypes';\nimport {type ILibraryDetailExtended} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\nimport {\n getRecordsFromLibraryQuery,\n type IGetRecordsFromLibraryQuery,\n type IGetRecordsFromLibraryQueryVariables,\n} from '_ui/_queries/records/getRecordsFromLibraryQuery';\nimport {objectValueVersionToArray} from '_ui/_utils';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {getSelectedViewKey} from '../constants';\nimport DisplayTypeSelector from '../DisplayTypeSelector';\nimport extractAttributesFromLibrary from '../helpers/extractAttributesFromLibrary';\nimport getFieldFromKey from '../helpers/getFieldFromKey';\nimport LibraryItemsListEmpty from '../LibraryItemsListEmpty';\nimport {manageItems} from '../manageItems';\nimport MenuItemList from '../MenuItemList';\nimport MenuItemListSelected from '../MenuItemListSelected';\nimport Sidebar from '../Sidebar';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {KitNotification} from 'aristid-ds';\nimport {SUCCESS_NOTIFICATION_DURATION} from '_ui/constants';\n\nconst MenuWrapper = styled.div`\n border-bottom: 1px solid rgb(235, 237, 240);\n padding: 0 1rem;\n height: 4rem;\n\n display: flex;\n align-content: center;\n justify-content: space-around;\n`;\n\ninterface IWrapperProps {\n $showSide: boolean;\n style?: CSSObject;\n}\n\nconst panelSize = '22.5rem';\nconst Wrapper = styled.div<IWrapperProps>`\n display: grid;\n\n ${({$showSide}) =>\n $showSide\n ? `\n grid-template-columns: ${panelSize} calc(100% - ${panelSize});\n grid-template-rows: 92% auto;\n grid-template-areas:\n 'side data'\n 'side pagination';`\n : `\n grid-template-columns: auto;\n grid-template-rows: 92% auto;\n grid-template-areas:\n 'data'\n 'pagination';`}\n\n height: calc(100vh - 7rem);\n position: relative;\n overflow: auto;\n`;\n\ninterface ILibraryItemsListContentProps {\n library: ILibraryDetailExtended;\n defaultView: IView;\n selectionMode?: boolean;\n style?: CSSObject;\n showTransparency?: boolean;\n mode?: SearchMode;\n onSelectChange?: (selection: ISearchSelection, filters?: IFilter[]) => void;\n}\n\nconst LibraryItemsListContent: FunctionComponent<ILibraryItemsListContentProps> = ({\n selectionMode,\n library,\n defaultView,\n showTransparency,\n onSelectChange,\n style,\n}) => {\n const {lang} = useLang();\n const {t} = useSharedTranslation();\n\n const defaultAttributes = extractAttributesFromLibrary(library);\n\n const _getFieldsFromView = (view: IView): IField[] =>\n (view.attributes ?? []).reduce((acc, fieldKey) => {\n const field = getFieldFromKey(fieldKey, library, defaultAttributes, lang);\n return field ? [...acc, field] : acc;\n }, []);\n\n const [searchState, searchDispatch] = useReducer(searchReducer, {\n ...initialSearchState,\n library,\n loading: true,\n attributes: defaultAttributes,\n trees: library.linkedTrees,\n fields: _getFieldsFromView(defaultView),\n filters: defaultView.filters,\n sort: defaultView.sort,\n display: defaultView.display,\n view: {\n current: defaultView,\n reload: false,\n sync: true,\n },\n lang,\n valuesVersions: defaultView.valuesVersions,\n showTransparency,\n mode: selectionMode ? SearchMode.SELECT : SearchMode.SEARCH,\n });\n\n useGetRecordUpdatesSubscription({libraries: [library.id]});\n\n const [updateSelectedViewMutation] = useSaveUserDataMutation();\n const selectedViewKey = getSelectedViewKey(library.id);\n\n const _applyResults = (result: ApolloQueryResult<IGetRecordsFromLibraryQuery>) => {\n const itemsFromQuery = result?.data?.records?.list ?? [];\n\n const newRecords: ISearchRecord[] = manageItems({\n items: itemsFromQuery,\n fields: searchState.fields,\n });\n\n searchDispatch({\n type: SearchActionTypes.UPDATE_RESULT,\n records: newRecords,\n errors: result?.errors,\n totalCount: result?.data?.records?.totalCount ?? searchState.totalCount,\n });\n };\n\n const _getVersionForRequest = () =>\n searchState.valuesVersions\n ? objectValueVersionToArray(searchState.valuesVersions).filter(v => !!v.treeNodeId)\n : [];\n\n // We're using a useMemo here to prevent query being fired on every change of searchState.\n // Subsequent search will be triggered on user request and are handled elsewhere.\n // We were previously using the skip property of useQuery but it was causing issues with data update\n const variables = useMemo(\n () => ({\n library: library.id,\n limit: searchState.pagination,\n offset: searchState.offset,\n filters: getRequestFromFilters(searchState.filters),\n sort: searchState.sort?.[0] ?? null,\n fullText: searchState.fullText,\n version: _getVersionForRequest(),\n }),\n [],\n );\n\n const getRecordsQueryResult = useQuery<IGetRecordsFromLibraryQuery, IGetRecordsFromLibraryQueryVariables>(\n getRecordsFromLibraryQuery(searchState.fields, !searchState.offset),\n {\n fetchPolicy: 'network-only',\n errorPolicy: 'all',\n variables,\n },\n );\n const {\n loading: getRecordsLoading,\n data: searchData,\n error: searchError,\n called: searchCalled,\n fetchMore: getRecordsFetchMore,\n } = getRecordsQueryResult;\n\n const _fetchRecords = async () => {\n const queryFilters = getRequestFromFilters(searchState.filters);\n\n const currentVariables = {\n library: library.id,\n limit: searchState.pagination,\n offset: searchState.offset,\n filters: queryFilters,\n sort: searchState.sort?.[0] ?? null,\n fullText: searchState.fullText,\n version: _getVersionForRequest(),\n };\n\n // Records have already been fetched, we use fetchMore to make sure\n // we request the right fields by passing in a whole new query\n const results = await getRecordsFetchMore({\n query: getRecordsFromLibraryQuery(searchState.fields, !searchState.offset),\n variables: currentVariables,\n //@ts-expect-error errorPolicy is applied at runtime even though it's not in the types\n errorPolicy: 'all',\n });\n\n // We have to call applyResults here because onCompleted is not called when fetchMore is used\n _applyResults(results);\n };\n\n const isLoading = getRecordsLoading || searchState.view.reload || searchState.loading;\n\n useEffect(() => {\n if (searchData || searchError) {\n _applyResults(getRecordsQueryResult);\n }\n }, [searchData, searchError]);\n\n useEffect(() => {\n if (searchState.loading && searchCalled) {\n _fetchRecords();\n }\n }, [searchState.loading]);\n\n /**\n * Called when current view changes. In charge of refetching record and saving last used view\n */\n useEffect(() => {\n if (!searchState.view.reload) {\n return;\n }\n\n _fetchRecords();\n\n updateSelectedViewMutation({\n variables: {\n key: selectedViewKey,\n value: searchState.view.current.id,\n global: false,\n },\n });\n searchDispatch({type: SearchActionTypes.SET_VIEW_RELOAD, reload: false});\n }, [selectedViewKey, updateSelectedViewMutation, searchState.view, searchState.fields, searchDispatch, library]);\n\n /**\n * Calls onSelectChange when selection changes\n */\n useEffect(() => {\n if (!onSelectChange) {\n return;\n }\n\n onSelectChange(searchState.selection, searchState.selection.allSelected ? searchState.filters : null);\n }, [searchState.selection]);\n\n const _reload = () => {\n searchDispatch({type: SearchActionTypes.SET_LOADING, loading: true});\n };\n\n const _notifyNewCreation = () => {\n _reload();\n KitNotification.success({\n message: t('items_list.created_in_success.message'),\n description: '',\n duration: SUCCESS_NOTIFICATION_DURATION,\n closable: true,\n });\n };\n\n // If some elements are selected and the selection type is search, show the selection Menu\n const menuSelectedActive = !!searchState.selection.selected.length || searchState.selection.allSelected;\n\n return (\n <SearchContext.Provider value={{state: searchState, dispatch: searchDispatch}}>\n <MenuWrapper>\n <MenuItemList refetch={_reload} notifyNewCreation={_notifyNewCreation} library={library} />\n <MenuItemListSelected active={menuSelectedActive} />\n </MenuWrapper>\n\n <Wrapper\n $showSide={searchState.sideBar.visible}\n className={searchState.sideBar.visible ? 'wrapper-open' : 'wrapper-close'}\n style={style}\n >\n <Sidebar />\n {isLoading && <Loading />}\n {!isLoading &&\n (!searchState.records.length ? (\n <LibraryItemsListEmpty notifyNewCreation={_notifyNewCreation} />\n ) : (\n <DisplayTypeSelector />\n ))}\n </Wrapper>\n </SearchContext.Provider>\n );\n};\n\nexport default LibraryItemsListContent;\n"]}
|
|
@@ -3,6 +3,7 @@ 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 { useNotificationSubscription } from '../../../_gqlTypes';
|
|
6
|
+
import { SUBSCRIPTION_NOTIFICATION_DURATION } from '../../../constants';
|
|
6
7
|
import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
|
|
7
8
|
import { KitButton, KitSpace, KitNotification, KitTypography } from 'aristid-ds';
|
|
8
9
|
import dayjs from 'dayjs';
|
|
@@ -17,10 +18,11 @@ export const useNotificationsSubscription = () => {
|
|
|
17
18
|
const { level, title, message, attachments, relatedEntities, date } = data.data.notification;
|
|
18
19
|
const kitNotificationLevel = typeof KitNotification[level] === 'function' ? level : 'info';
|
|
19
20
|
KitNotification[kitNotificationLevel]({
|
|
21
|
+
closable: true,
|
|
20
22
|
message: title,
|
|
21
23
|
description: message,
|
|
22
24
|
messageExtra: (_jsx(KitTypography.Text, { size: "fontSize7", children: dayjs.unix(date).format('HH:mm DD/MM/YYYY') })),
|
|
23
|
-
duration:
|
|
25
|
+
duration: SUBSCRIPTION_NOTIFICATION_DURATION,
|
|
24
26
|
footer: (_jsxs(KitSpace, { direction: "horizontal", size: "xs", children: [attachments?.map(attachment => (_jsx(KitButton, { type: "secondary", onClick: () => window.open(attachment.url, '_blank'), icon: _jsx(FaDownload, {}), children: t('global.download') }, attachment.url))), relatedEntities?.map(relatedEntity => (_jsx(KitButton, { type: "secondary", onClick: () => {
|
|
25
27
|
window.location.href = relatedEntity.url;
|
|
26
28
|
}, children: t('global.show') }, relatedEntity.url)))] })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotificationSubscription.js","sourceRoot":"","sources":["../../../../src/components/Notifications/hooks/useNotificationSubscription.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,2BAA2B,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC7C,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,OAAO,2BAA2B,CAAC;QAC/B,MAAM,EAAE,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YACD,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAE3F,MAAM,oBAAoB,GAAG,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAE3F,eAAe,CAAC,oBAAoB,CAAC,CAAC;gBAClC,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,CACV,KAAC,aAAa,CAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC3B,CACxB;gBACD,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"useNotificationSubscription.js","sourceRoot":"","sources":["../../../../src/components/Notifications/hooks/useNotificationSubscription.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,2BAA2B,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,kCAAkC,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC7C,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,OAAO,2BAA2B,CAAC;QAC/B,MAAM,EAAE,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YACD,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAE3F,MAAM,oBAAoB,GAAG,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAE3F,eAAe,CAAC,oBAAoB,CAAC,CAAC;gBAClC,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,CACV,KAAC,aAAa,CAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC3B,CACxB;gBACD,QAAQ,EAAE,kCAAkC;gBAC5C,MAAM,EAAE,CACJ,MAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,IAAI,aACrC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAC5B,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,EACpD,IAAI,EAAE,KAAC,UAAU,KAAG,YAEnB,CAAC,CAAC,iBAAiB,CAAC,IALhB,UAAU,CAAC,GAAG,CAMX,CACf,CAAC,EACD,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CACnC,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE;gCACV,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC;4BAC7C,CAAC,YAEA,CAAC,CAAC,aAAa,CAAC,IANZ,aAAa,CAAC,GAAG,CAOd,CACf,CAAC,IACK,CACd;aACJ,CAAC,CAAC;QACP,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,eAAe,4BAA4B,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {useNotificationSubscription} from '_ui/_gqlTypes';\nimport {SUBSCRIPTION_NOTIFICATION_DURATION} from '_ui/constants';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {KitButton, KitSpace, KitNotification, KitTypography} from 'aristid-ds';\nimport dayjs from 'dayjs';\nimport {FaDownload} from 'react-icons/fa';\n\nexport const useNotificationsSubscription = () => {\n const {t} = useSharedTranslation();\n return useNotificationSubscription({\n onData: ({data}) => {\n if (!data?.data?.notification?.title) {\n return;\n }\n const {level, title, message, attachments, relatedEntities, date} = data.data.notification;\n\n const kitNotificationLevel = typeof KitNotification[level] === 'function' ? level : 'info';\n\n KitNotification[kitNotificationLevel]({\n closable: true,\n message: title,\n description: message,\n messageExtra: (\n <KitTypography.Text size=\"fontSize7\">\n {dayjs.unix(date).format('HH:mm DD/MM/YYYY')}\n </KitTypography.Text>\n ),\n duration: SUBSCRIPTION_NOTIFICATION_DURATION,\n footer: (\n <KitSpace direction=\"horizontal\" size=\"xs\">\n {attachments?.map(attachment => (\n <KitButton\n key={attachment.url}\n type=\"secondary\"\n onClick={() => window.open(attachment.url, '_blank')}\n icon={<FaDownload />}\n >\n {t('global.download')}\n </KitButton>\n ))}\n {relatedEntities?.map(relatedEntity => (\n <KitButton\n key={relatedEntity.url}\n type=\"secondary\"\n onClick={() => {\n window.location.href = relatedEntity.url;\n }}\n >\n {t('global.show')}\n </KitButton>\n ))}\n </KitSpace>\n ),\n });\n },\n });\n};\n\nexport default useNotificationsSubscription;\n"]}
|
|
@@ -11,7 +11,7 @@ import { useForcePreviewsGenerationMutation, useGetLibraryPreviewsSettingsQuery,
|
|
|
11
11
|
import useLang from '../../hooks/useLang';
|
|
12
12
|
import { ErrorDisplay } from '../ErrorDisplay';
|
|
13
13
|
import { Loading } from '../Loading';
|
|
14
|
-
import {
|
|
14
|
+
import { INFO_NOTIFICATION_DURATION, SUCCESS_NOTIFICATION_DURATION } from '../../constants';
|
|
15
15
|
function TriggerPreviewsGenerationModal({ libraryId, filesLibraryId, recordIds, filters, onClose, }) {
|
|
16
16
|
const { t } = useSharedTranslation();
|
|
17
17
|
const { lang } = useLang();
|
|
@@ -52,16 +52,18 @@ function TriggerPreviewsGenerationModal({ libraryId, filesLibraryId, recordIds,
|
|
|
52
52
|
const isSuccess = result.data?.forcePreviewsGeneration ?? false;
|
|
53
53
|
if (isSuccess) {
|
|
54
54
|
KitNotification.success({
|
|
55
|
+
closable: true,
|
|
55
56
|
description: null,
|
|
56
57
|
message: t('files.previews_generation_success'),
|
|
57
|
-
duration:
|
|
58
|
+
duration: SUCCESS_NOTIFICATION_DURATION,
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
else {
|
|
61
62
|
KitNotification.info({
|
|
63
|
+
closable: true,
|
|
62
64
|
description: null,
|
|
63
65
|
message: t('files.previews_generation_nothing_to_do'),
|
|
64
|
-
duration:
|
|
66
|
+
duration: INFO_NOTIFICATION_DURATION,
|
|
65
67
|
});
|
|
66
68
|
}
|
|
67
69
|
onClose();
|
package/dist/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerPreviewsGenerationModal.js","sourceRoot":"","sources":["../../../src/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {localizedTranslation} from '@leav/utils';\nimport {Checkbox, Divider, Modal, Tree} from 'antd';\nimport {KitNotification} from 'aristid-ds';\nimport {useState} from 'react';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n type RecordFilterInput,\n useForcePreviewsGenerationMutation,\n useGetLibraryPreviewsSettingsQuery,\n} from '_ui/_gqlTypes';\nimport useLang from '../../hooks/useLang';\nimport {ErrorDisplay} from '../ErrorDisplay';\nimport {Loading} from '../Loading';\nimport {INFO_NOTIFICATION_DURATION_SECONDS, SUCCESS_NOTIFICATION_DURATION_SECONDS} from '_ui/constants';\n\ninterface ITriggerPreviewsGenerationModalProps {\n libraryId: string;\n filesLibraryId?: string;\n recordIds?: string[];\n filters?: RecordFilterInput[];\n onClose: () => void;\n}\n\nfunction TriggerPreviewsGenerationModal({\n libraryId,\n filesLibraryId,\n recordIds,\n filters,\n onClose,\n}: ITriggerPreviewsGenerationModalProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang} = useLang();\n\n const [isFailedOnlyChecked, setIsFailedOnlyChecked] = useState(false);\n const [checkedSizes, setCheckedSizes] = useState<string[]>([]);\n const [treeData, setTreeData] = useState([]);\n const [allSizes, setAllSizes] = useState<string[]>([]);\n\n const [startPreviewsGeneration, {loading}] = useForcePreviewsGenerationMutation();\n\n const {error: getLibrariesError, loading: getLibrariesLoading} = useGetLibraryPreviewsSettingsQuery({\n variables: {id: filesLibraryId || libraryId},\n onCompleted: getLibrariesData => {\n const previewSettings = getLibrariesData.libraries.list?.[0].previewsSettings || [];\n const sizes = [];\n\n const td = previewSettings.map(s => {\n const children = s.versions.sizes.map(vs => ({title: `${vs.name} (${vs.size}px)`, key: vs.name}));\n sizes.push(...children.map(c => c.key));\n\n return {\n title: localizedTranslation(s.label, lang),\n key: localizedTranslation(s.label, lang),\n children,\n };\n });\n\n setTreeData(td);\n setAllSizes(sizes);\n },\n });\n\n const _triggerPreviewsGeneration = async () => {\n try {\n const result = await startPreviewsGeneration({\n variables: {\n libraryId,\n recordIds,\n filters: filters ?? null,\n failedOnly: isFailedOnlyChecked,\n previewVersionSizeNames: checkedSizes,\n },\n });\n\n const isSuccess = result.data?.forcePreviewsGeneration ?? false;\n\n if (isSuccess) {\n KitNotification.success({\n description: null,\n message: t('files.previews_generation_success'),\n duration: SUCCESS_NOTIFICATION_DURATION_SECONDS,\n });\n } else {\n KitNotification.info({\n description: null,\n message: t('files.previews_generation_nothing_to_do'),\n duration: INFO_NOTIFICATION_DURATION_SECONDS,\n });\n }\n\n onClose();\n } catch (e) {\n // Nothing to do here, error should be handled globally by Apollo. Uncomment next line for easier debugging\n // console.error(e);\n }\n };\n\n const _handleFailedOnlyChange = () => {\n setIsFailedOnlyChecked(!isFailedOnlyChecked);\n };\n\n const onCheck = (_, {checkedNodes}) => {\n const checked = checkedNodes.filter(n => !n.children).map(n => n.key) as string[]; // we keep only sizes name\n\n setCheckedSizes(checked);\n };\n\n const onChange = () => {\n if (checkedSizes.length === allSizes.length) {\n setCheckedSizes([]);\n } else {\n setCheckedSizes(allSizes);\n }\n };\n\n return (\n <Modal\n open\n title={t('files.generate_previews')}\n cancelText={t('global.cancel')}\n okText={t('global.submit')}\n onCancel={onClose}\n width={600}\n onOk={_triggerPreviewsGeneration}\n okButtonProps={{\n disabled: !checkedSizes.length,\n }}\n confirmLoading={loading}\n >\n {getLibrariesLoading && <Loading />}\n {!getLibrariesLoading && getLibrariesError && <ErrorDisplay message={getLibrariesError.message} />}\n {!getLibrariesLoading && !getLibrariesError && (\n <>\n <Checkbox onChange={onChange} checked={checkedSizes.length === allSizes.length}>\n {t('files.previews_generation_select_all')}\n </Checkbox>\n <Tree\n checkable\n onCheck={onCheck}\n checkedKeys={checkedSizes}\n selectable={false}\n treeData={treeData}\n />\n <Divider />\n <Checkbox onChange={_handleFailedOnlyChange} checked={isFailedOnlyChecked} aria-label=\"failed-only\">\n {t('files.previews_generation_failed_only')}\n </Checkbox>\n </>\n )}\n </Modal>\n );\n}\n\nexport default TriggerPreviewsGenerationModal;\n"]}
|
|
1
|
+
{"version":3,"file":"TriggerPreviewsGenerationModal.js","sourceRoot":"","sources":["../../../src/components/TriggerPreviewsGenerationModal/TriggerPreviewsGenerationModal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {localizedTranslation} from '@leav/utils';\nimport {Checkbox, Divider, Modal, Tree} from 'antd';\nimport {KitNotification} from 'aristid-ds';\nimport {useState} from 'react';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n type RecordFilterInput,\n useForcePreviewsGenerationMutation,\n useGetLibraryPreviewsSettingsQuery,\n} from '_ui/_gqlTypes';\nimport useLang from '../../hooks/useLang';\nimport {ErrorDisplay} from '../ErrorDisplay';\nimport {Loading} from '../Loading';\nimport {INFO_NOTIFICATION_DURATION, SUCCESS_NOTIFICATION_DURATION} from '_ui/constants';\n\ninterface ITriggerPreviewsGenerationModalProps {\n libraryId: string;\n filesLibraryId?: string;\n recordIds?: string[];\n filters?: RecordFilterInput[];\n onClose: () => void;\n}\n\nfunction TriggerPreviewsGenerationModal({\n libraryId,\n filesLibraryId,\n recordIds,\n filters,\n onClose,\n}: ITriggerPreviewsGenerationModalProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang} = useLang();\n\n const [isFailedOnlyChecked, setIsFailedOnlyChecked] = useState(false);\n const [checkedSizes, setCheckedSizes] = useState<string[]>([]);\n const [treeData, setTreeData] = useState([]);\n const [allSizes, setAllSizes] = useState<string[]>([]);\n\n const [startPreviewsGeneration, {loading}] = useForcePreviewsGenerationMutation();\n\n const {error: getLibrariesError, loading: getLibrariesLoading} = useGetLibraryPreviewsSettingsQuery({\n variables: {id: filesLibraryId || libraryId},\n onCompleted: getLibrariesData => {\n const previewSettings = getLibrariesData.libraries.list?.[0].previewsSettings || [];\n const sizes = [];\n\n const td = previewSettings.map(s => {\n const children = s.versions.sizes.map(vs => ({title: `${vs.name} (${vs.size}px)`, key: vs.name}));\n sizes.push(...children.map(c => c.key));\n\n return {\n title: localizedTranslation(s.label, lang),\n key: localizedTranslation(s.label, lang),\n children,\n };\n });\n\n setTreeData(td);\n setAllSizes(sizes);\n },\n });\n\n const _triggerPreviewsGeneration = async () => {\n try {\n const result = await startPreviewsGeneration({\n variables: {\n libraryId,\n recordIds,\n filters: filters ?? null,\n failedOnly: isFailedOnlyChecked,\n previewVersionSizeNames: checkedSizes,\n },\n });\n\n const isSuccess = result.data?.forcePreviewsGeneration ?? false;\n\n if (isSuccess) {\n KitNotification.success({\n closable: true,\n description: null,\n message: t('files.previews_generation_success'),\n duration: SUCCESS_NOTIFICATION_DURATION,\n });\n } else {\n KitNotification.info({\n closable: true,\n description: null,\n message: t('files.previews_generation_nothing_to_do'),\n duration: INFO_NOTIFICATION_DURATION,\n });\n }\n\n onClose();\n } catch (e) {\n // Nothing to do here, error should be handled globally by Apollo. Uncomment next line for easier debugging\n // console.error(e);\n }\n };\n\n const _handleFailedOnlyChange = () => {\n setIsFailedOnlyChecked(!isFailedOnlyChecked);\n };\n\n const onCheck = (_, {checkedNodes}) => {\n const checked = checkedNodes.filter(n => !n.children).map(n => n.key) as string[]; // we keep only sizes name\n\n setCheckedSizes(checked);\n };\n\n const onChange = () => {\n if (checkedSizes.length === allSizes.length) {\n setCheckedSizes([]);\n } else {\n setCheckedSizes(allSizes);\n }\n };\n\n return (\n <Modal\n open\n title={t('files.generate_previews')}\n cancelText={t('global.cancel')}\n okText={t('global.submit')}\n onCancel={onClose}\n width={600}\n onOk={_triggerPreviewsGeneration}\n okButtonProps={{\n disabled: !checkedSizes.length,\n }}\n confirmLoading={loading}\n >\n {getLibrariesLoading && <Loading />}\n {!getLibrariesLoading && getLibrariesError && <ErrorDisplay message={getLibrariesError.message} />}\n {!getLibrariesLoading && !getLibrariesError && (\n <>\n <Checkbox onChange={onChange} checked={checkedSizes.length === allSizes.length}>\n {t('files.previews_generation_select_all')}\n </Checkbox>\n <Tree\n checkable\n onCheck={onCheck}\n checkedKeys={checkedSizes}\n selectable={false}\n treeData={treeData}\n />\n <Divider />\n <Checkbox onChange={_handleFailedOnlyChange} checked={isFailedOnlyChecked} aria-label=\"failed-only\">\n {t('files.previews_generation_failed_only')}\n </Checkbox>\n </>\n )}\n </Modal>\n );\n}\n\nexport default TriggerPreviewsGenerationModal;\n"]}
|
package/dist/constants.d.ts
CHANGED
|
@@ -30,9 +30,10 @@ export declare const GLOBAL_BASE_URL: string;
|
|
|
30
30
|
export declare const PREFIX_USER_VIEWS_ORDER_KEY = "user_views_order_";
|
|
31
31
|
export declare const PREFIX_SHARED_VIEWS_ORDER_KEY = "shared_views_order_";
|
|
32
32
|
export declare const TOOLTIP_DEFAULT_DELAY_IN_SECONDS = 0.5;
|
|
33
|
-
export declare const
|
|
34
|
-
export declare const
|
|
35
|
-
export declare const
|
|
33
|
+
export declare const INFO_NOTIFICATION_DURATION = 5000;
|
|
34
|
+
export declare const ERROR_NOTIFICATION_DURATION = 5000;
|
|
35
|
+
export declare const SUCCESS_NOTIFICATION_DURATION = 5000;
|
|
36
|
+
export declare const SUBSCRIPTION_NOTIFICATION_DURATION = 10000;
|
|
36
37
|
export declare const SUCCESS_ALERT_DURATION = 3000;
|
|
37
38
|
export declare const ERROR_ALERT_DURATION = 5000;
|
|
38
39
|
export declare const EDIT_RECORD_SIDEBAR_ID = "edit_record_sidebar";
|
package/dist/constants.js
CHANGED
|
@@ -41,9 +41,10 @@ export const GLOBAL_BASE_URL = window.__global_base_url__ || '';
|
|
|
41
41
|
export const PREFIX_USER_VIEWS_ORDER_KEY = 'user_views_order_';
|
|
42
42
|
export const PREFIX_SHARED_VIEWS_ORDER_KEY = 'shared_views_order_';
|
|
43
43
|
export const TOOLTIP_DEFAULT_DELAY_IN_SECONDS = 0.5;
|
|
44
|
-
export const
|
|
45
|
-
export const
|
|
46
|
-
export const
|
|
44
|
+
export const INFO_NOTIFICATION_DURATION = 5000;
|
|
45
|
+
export const ERROR_NOTIFICATION_DURATION = 5000;
|
|
46
|
+
export const SUCCESS_NOTIFICATION_DURATION = 5000;
|
|
47
|
+
export const SUBSCRIPTION_NOTIFICATION_DURATION = 10000;
|
|
47
48
|
export const SUCCESS_ALERT_DURATION = 3000;
|
|
48
49
|
export const ERROR_ALERT_DURATION = 5000;
|
|
49
50
|
export const EDIT_RECORD_SIDEBAR_ID = 'edit_record_sidebar';
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,gCAAgC;AAChC,sCAAsC;AACtC,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AAE3D,sEAAsE;AACtE,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,0BAAW,CAAA;AACf,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAmE;IACnG,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7C,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAChD,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC/C,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IACrD,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAqE;IACvG,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAC9C,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3C,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IACpD,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;IAC/C,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;IAClD,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAChD,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5C,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC9C,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;CACtD,CAAC;AAEF,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,oCAAe,CAAA;IACf,0DAAqC,CAAA;IACrC,4DAAuC,CAAA;AAC3C,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAaD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC;AAEhE,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAC/D,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AAEnE,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAEpD,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.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\n// Copyright LEAV Solutions 2017\n// This file is released under LGPL V3\nimport {AttributeFormat, AttributeType} from './_gqlTypes';\n\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nexport enum PreviewSize {\n TINY = 'tiny',\n SMALL = 'small',\n MEDIUM = 'medium',\n BIG = 'big',\n}\n\nexport const tagColorByAttributeType: {[key in AttributeType]: [border: string, background: string]} = {\n [AttributeType.simple]: ['purple', '#ffe5ff'],\n [AttributeType.simple_link]: ['blue', '#e5e5ff'],\n [AttributeType.advanced]: ['orange', '#fff6e5'],\n [AttributeType.advanced_link]: ['#d4380d', '#fde4dd'],\n [AttributeType.tree]: ['green', '#e5ffe5'],\n};\n\nexport const tagColorByAttributeFormat: {[key in AttributeFormat]: [border: string, background: string]} = {\n [AttributeFormat.boolean]: ['gold', '#fff099'],\n [AttributeFormat.date]: ['blue', '#e5e5ff'],\n [AttributeFormat.date_range]: ['#1d39c4', '#e9ecfc'],\n [AttributeFormat.encrypted]: ['red', '#ffe5e5'],\n [AttributeFormat.extended]: ['magenta', '#ffe5e5'],\n [AttributeFormat.numeric]: ['orange', '#fff6e5'],\n [AttributeFormat.text]: ['green', '#e5ffe5'],\n [AttributeFormat.color]: ['purple', '#ffe5ff'],\n [AttributeFormat.rich_text]: ['#d4380d', '#fde4dd'],\n};\n\nexport enum ErrorDisplayTypes {\n ERROR = 'error',\n PERMISSION_ERROR = 'permission_error',\n PAGE_NOT_FOUND = 'page_not_found_error',\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n interface Window {\n __dynamic_base__?: string;\n __global_base_url__?: string;\n __bugsnag_api_key__?: string;\n __bugsnag_app_version__?: string;\n __bugsnag_release_stage__?: string;\n }\n}\n\nexport const defaultPaginationPageSize = 20;\n\nexport const GLOBAL_BASE_URL = window.__global_base_url__ || '';\n\nexport const PREFIX_USER_VIEWS_ORDER_KEY = 'user_views_order_';\nexport const PREFIX_SHARED_VIEWS_ORDER_KEY = 'shared_views_order_';\n\nexport const TOOLTIP_DEFAULT_DELAY_IN_SECONDS = 0.5;\n\nexport const INFO_NOTIFICATION_DURATION = 5_000;\nexport const ERROR_NOTIFICATION_DURATION = 5_000;\nexport const SUCCESS_NOTIFICATION_DURATION = 5_000;\nexport const SUBSCRIPTION_NOTIFICATION_DURATION = 10_000;\n\nexport const SUCCESS_ALERT_DURATION = 3_000;\nexport const ERROR_ALERT_DURATION = 5_000;\n\nexport const EDIT_RECORD_SIDEBAR_ID = 'edit_record_sidebar';\n\nexport const STANDARD_FIELD_ID_PREFIX = 'standardfield-';\n\nexport const LINK_FIELD_ID_PREFIX = 'linkfield-';\n\nexport const TREE_FIELD_ID_PREFIX = 'treefield-';\n\nexport const SUBMIT_BUTTONS_PORTAL = 'submit_buttons_portal';\nexport const NEW_RECORD_ID = 'newRecord';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leav/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0-239ebf18",
|
|
4
4
|
"description": "Shared React components and hooks",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepublishOnly": "yarn build",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"@apollo/client": "3.8.1",
|
|
28
28
|
"@babel/preset-env": "7.28.5",
|
|
29
29
|
"@babel/preset-react": "7.28.5",
|
|
30
|
-
"@graphql-codegen/add": "5.0.
|
|
31
|
-
"@graphql-codegen/cli": "5.0.
|
|
30
|
+
"@graphql-codegen/add": "5.0.3",
|
|
31
|
+
"@graphql-codegen/cli": "5.0.7",
|
|
32
32
|
"@testing-library/jest-dom": "5.16.5",
|
|
33
33
|
"@testing-library/react": "14.0.0",
|
|
34
34
|
"@testing-library/react-hooks": "8.0.1",
|
|
@@ -37,18 +37,18 @@
|
|
|
37
37
|
"@types/dompurify": "3.0.3",
|
|
38
38
|
"@types/jest": "29.0.2",
|
|
39
39
|
"@types/lodash.isequal": "^4",
|
|
40
|
-
"@types/object-path": "0.11.
|
|
40
|
+
"@types/object-path": "0.11.4",
|
|
41
41
|
"@types/react": "18.2.14",
|
|
42
|
-
"@types/react-beautiful-dnd": "13.1.
|
|
42
|
+
"@types/react-beautiful-dnd": "13.1.8",
|
|
43
43
|
"@types/react-dom": "18.2.6",
|
|
44
|
-
"@types/react-table": "7.7.
|
|
44
|
+
"@types/react-table": "7.7.20",
|
|
45
45
|
"@types/uuid": "^9",
|
|
46
46
|
"antd": "5.22.2",
|
|
47
|
-
"aristid-ds": "14.0.0-
|
|
47
|
+
"aristid-ds": "14.0.0-c13d6a5",
|
|
48
48
|
"babel-jest": "29.3.1",
|
|
49
49
|
"commander": "9.5.0",
|
|
50
50
|
"graphql": "16.12.0",
|
|
51
|
-
"i18next": "22.5.
|
|
51
|
+
"i18next": "22.5.1",
|
|
52
52
|
"jest": "29.0.3",
|
|
53
53
|
"jest-environment-jsdom": "29.3.1",
|
|
54
54
|
"jest-styled-components": "7.1.1",
|
|
@@ -57,16 +57,16 @@
|
|
|
57
57
|
"react-i18next": "12",
|
|
58
58
|
"react-router-dom": "6.22.0",
|
|
59
59
|
"styled-components": "6.0.8",
|
|
60
|
-
"ts-jest": "29.
|
|
61
|
-
"tsc-alias": "1.8.
|
|
60
|
+
"ts-jest": "29.4.6",
|
|
61
|
+
"tsc-alias": "1.8.16",
|
|
62
62
|
"typescript": "5.5.3",
|
|
63
|
-
"vite": "7.2.
|
|
63
|
+
"vite": "7.2.6"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@ant-design/icons": ">=5.2",
|
|
67
67
|
"@apollo/client": ">=3.8.1",
|
|
68
68
|
"antd": "5.22.2",
|
|
69
|
-
"aristid-ds": "14.0.0-
|
|
69
|
+
"aristid-ds": "14.0.0-c13d6a5",
|
|
70
70
|
"dayjs": "^1.11.13",
|
|
71
71
|
"i18next": "22.5",
|
|
72
72
|
"react": "18.2.0",
|
|
@@ -77,14 +77,14 @@
|
|
|
77
77
|
"styled-components": ">=5.3"
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
|
-
"@ckeditor/ckeditor5-build-inline": "39.0.
|
|
80
|
+
"@ckeditor/ckeditor5-build-inline": "39.0.2",
|
|
81
81
|
"@ckeditor/ckeditor5-react": "6.1.0",
|
|
82
82
|
"@dnd-kit/core": "6.1.0",
|
|
83
83
|
"@dnd-kit/sortable": "8.0.0",
|
|
84
|
-
"@leav/utils": "1.
|
|
84
|
+
"@leav/utils": "1.6.0",
|
|
85
85
|
"@uidotdev/usehooks": "2.4.1",
|
|
86
86
|
"dompurify": "3.2.4",
|
|
87
|
-
"html-react-parser": "4.2.
|
|
87
|
+
"html-react-parser": "4.2.10",
|
|
88
88
|
"i18next-resources-to-backend": "1.1.4",
|
|
89
89
|
"lodash.isequal": "4.5.0",
|
|
90
90
|
"object-path": "0.11.8",
|
|
@@ -95,6 +95,6 @@
|
|
|
95
95
|
"react-table-sticky": "1.1.3",
|
|
96
96
|
"uuid": "9.0.1",
|
|
97
97
|
"xlsx": "0.18.5",
|
|
98
|
-
"zod": "3.25.
|
|
98
|
+
"zod": "3.25.76"
|
|
99
99
|
}
|
|
100
100
|
}
|